在FPGA中读取文件

时间:2015-06-11 00:41:40

标签: vhdl fpga xilinx

在开始之前,请知道我对FPGA的全新内容。我想知道是否可以在FPGA中存储文件(* .txt或* .csv)并逐行读取(即文件I / O操作)。请告诉我。任何帮助将不胜感激。

我将使用VHDL进行编码,并且可能使用Xilinx XUPV5 LX110T板。

2 个答案:

答案 0 :(得分:4)

可以使用外部数据文件初始化Block RAM,但此文件必须是纯二进制或十六进制内容,不带注释或其他信息。然后,您可以在不同地址的一个周期内进行读写。您可以将RAM配置为双端口。有关更多信息,请查看适用于Virtex-5的XST用户指南。 http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/xst.pdf

答案 1 :(得分:1)

FPGA不是微控制器,它没有文件系统或某些控制器具有的任何其他类型的存储器。

但是你可以通过在其内部实现一个软CPU,如MicroBlaze或Neon,使FPGA像控制器一样工作。完成后,将CPU系统连接到SD卡控制器或通过Uart或以太网连接到文件所在的位置,并使用SoftCore CPU上运行的C代码读取文件。

在FPGA中执行此操作,对于不了解其工作原理的人来说,这将是一项非常困难的任务。您可以通过在FPGA内部创建一个简单的UART来实现这一目标,并且有一个状态机可以从UART接收数据并将其放入内存中,但即使这样做,如果您从未这样做过,也会非常棘手和困难。

第三个选项是将文件转换为二进制文件,然后将其转换为可连接到FPGA内部ROM或RAM的内存可加载文件,但是,每次需要新文件时都必须重新编译项目文件!

前一段时间StackExchange上也有类似的问题: Transferring a 1MB bitstream to a FPGA and reading it out