我再次请求你的指导。
我已经通过Quartus-II和Modelsim成功设计了一个电路,
详细说明:
基本上它是一种基于使用FSM的二进制定点算法的(有点复杂的)算术电路(为了产生尽可能少的硬件,我只能访问1个模块用于除法,1个用于乘法,据说这个应该保存区域。)
数据输入来自 .txt文件我用32位二进制数字串写,总共57.600。我使用命令$ readmemb将该文件读入内存排列,如下所示:
reg [31:0] in_ram [0:57599];
然后用信号(最初为零)读取每个数字并处理它(然后触发下一个数字)。结果也会加载到内存排列中,并通过公式计算每个数字的结果。
到目前为止,一切运行都很完美,算术结果是正确的,数据是从这个"内存安排加载到#34;。在Testbench中,我使用命令$ fopen和$ fdisplay分别打开和写入带有结果的新.txt文件。
我的下一步:
。 现在我想将此设计传递给我的DE1-SOC Altera FPGA并测量**面积,速度和能量的结果值。**
我不知道从哪里开始,我现在应该做什么,因为我猜测试台不会传递给FPGA,它不是可合成的#34;。推测,我应该以某种方式将这些数据加载到 FPGA中,然后从>> FPGA 访问结果,并以某种方式向用户读取。
我的工作条件非常灵活,我想用更简单的方法来实现它。数据不经常变化,它是具有预期结果的预先建立的数据。此外,我没有经常性,速度限制直接建立,但它应该运行标准约束(这是我忽略的部分之一)。
感谢您的意见。谢谢。
PD:这是怎么回事? :另一种可能性,更不用说资源要求,就是使用 FPGA板上的内置器件发送1000字节数组 通过串口或USB,在PC上接收并保存到磁盘 从那里。
源: i want a synthesizable code to save the output in a file in verilog,,,,in vertex 6 kit
答案 0 :(得分:0)
这看起来像个大问题。我试图通过解释如果我是你,我会做什么来解答它:
Prashant对内存使用有一个很好的观点。由于您不经常更新基础数据,因此可以将其存储在设计中,而不是使用SOC的处理器。
话虽这么说,您需要SOC的处理器才能让用户可以访问您的数据。为此,您可以使用 Altera QSYS 来提供IP来编程HPS(芯片上的硬处理器)。这些IP包括与FPGA设计的链接,通过它您可以在逻辑和HPS本身之间传递数据。
在QSYS项目中,您可以生成HDL以包含在您的代码中,此HDL是HPS模块。
一旦将其集成到您的代码中,您就可以生成可以上传到开发板的位文件(.rbf)。
最后一步是对HPS进行编程(安装基本的Linux发行版)以便访问这些数据。
困难的部分是为用户提供数据,有很多方法可以做到这一点。这是一个也可能不是最简单的一个,但它只使用您的电路板资源,一旦您有了QSYS项目,您就可以在开发板上重复使用它来进行其他FPGA项目。
希望这对你有所帮助。