使用VHDL和C进行FPGA编程

3
我需要完成一个项目,其中需要使用FPGA。主题是,我需要使用VHDL在FPGA上创建一个电路,执行一些任务,如乘法或除法。然后,我需要将输入数据从PowerPC(Virtex 4内置微控制器)发送到该电路,并使用PowerPC从FPGA电路的输出收集数据。我尝试查看手册,但未能理解FPGA电路和微控制器之间的通信。Google也没有帮助。请告诉我是否有书籍或更好的教程可以帮助我完成这个项目。非常感谢您的关注。
注意:我正在使用Virtex-4 ml403 FPGA板。谢谢。

1
嗨,Jasim Khan Afridi,我认为您的FPGA模块可以通过一组寄存器与PowerPC核心通信。 PowerPC可以设置寄存器的值以配置FPGA模块,另一方面,PowerPC核心可以读取(获取)寄存器的值以获取您的模块的状态。如果您有一个先进的FPGA模块,则您的模块可以执行DMA到SDRAM,而PowerPC核心也可以从SDRAM获取数据。 - Dien Nguyen
顺便提一下,您可以访问Altera的网站http://www.altera.com/education/univ/materials/manual/unv-lab-manual.html。这里有一些关于软CPU和外围设备接口的教程。 - Dien Nguyen
1
FPGA将被映射到一些内存地址,在PowerPC上,您将读取或写入这些内存位置以读取和写入FPGA。您需要在板子的文档中搜索术语“内存映射”。例如,如果您有一个映射到内存位置0x1000的8位FPGA寄存器,则可以执行volatile unsigned char *fpga_reg = 0x1000; * fpga_reg = 0xAB; //将0xab写入映射到0x1000的寄存器 - indiv
@dien 当我在FPGA上创建电路时,输入和输出端口会像内存寄存器一样工作吗?它们的名称是什么?你有一些示例可以给我看吗?感谢您的回复... - Jasim Khan Afridi
1
嗨,Jasim Khan Afridi,希望这是您正在寻找的内容:http://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/labs/lab3/index.html - Dien Nguyen
你看过Xilinx为ML403提供的参考设计了吗? http://www.xilinx.com/products/boards/ml403/reference_designs.htm - davidd
3个回答

2
请看来自赛灵思的Xapp717。 http://www.xilinx.com/support/documentation/application_notes/xapp717.pdf 在介绍中,它明确提到了您要尝试做的事情。这里的APU是指PowerPC。
引用: “本应用笔记介绍了APU,并描述了APU增强系统的主要特点。包括的示例说明了APU如何在处理器和FPGA之间传输数据。两个示例分别是: •一个简单的系统,将数据从内存通过处理器和APU移动到FPGA中的寄存器,然后再移回内存。”
源代码已包含(需要登录赛灵思账号)。 http://www.xilinx.com/bvdocs/appnotes/xapp717.zip

很抱歉,那并没有帮助太多...我仍然感到困惑。PowerPC处理已经很清楚了,但FPGA设计并没有被解释清楚。请帮忙... - Jasim Khan Afridi

0

我们的软件 Impulse C 将自动连接到 PPC 总线。欢迎免费尝试。如果您有兴趣,请将您的以太网 MAC 地址发送给我或发送至 ImpulseC 的 info 邮箱,我们会帮助您开始使用。

最好的祝福, Brian


0

您需要在FPGA上实现一个乘法器/除法器来加速计算吗?如果是这样,您应该使用VHDL代码设计一个乘法器/除法器。也许使用Xilinx IP core是最方便的方法。您只需要指定所需的参数(例如输入数字为32位),合成您的设计并分配输入/输出引脚。然后,您就可以通过这些引脚在PowerPC和FPGA之间传输数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接