3

fpga实操训练(ip rom)

 1 year ago
source link: https://blog.csdn.net/feixiaoxing/article/details/128474878
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

fpga实操训练(ip rom)

嵌入式-老费 于 2022-12-28 22:50:04 发布 142

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        altera的fpga本身自带了rom的ip,使用起来也十分方便。实际开发中,使用rom的场景也很多,比如一些默认的配置文件,需要存储的寄存器数据,还有就是一些保存chip信息的数据,这些都是可以当成rom最后综合到sof文件里面的。

        要实现ip rom的使用,需要完成这么几个步骤,

1、创建mif文件

        创建mif文件,主要是给ip rom使用的,最终导入到ip里面。选择File,再选择New,

658004eddd044105a4c7123a6e354aeb.png

         在弹出来的对话框中选择Memory Initialization File,就可以看到这样的对话框,

39a965076675404f9fed7299fd7f2570.png

         这里提示我们需要多少个word,每个word是多长。不妨输入32和8,

778db09f2d9e4fd7a26589e13b4f7bfa.png

         因为我们只是测试,所以只要在对应的矩阵框里面输入相关的数据即可。修改后记得保存,把这个生成的mif文件添加到刚刚创建的工程当中。

2、创建ip rom

        创建ip rom的过程也不复杂,首先在ip catalog中输入rom即可,

41e2d8220b66498ab533f3e6046ed652.png

         在对话框中输入文件名之后,就可以开始配置,

9a5b0dfe99954fa8be081142c9b7f121.png

         首先当然还是要输入word个数和word的bit数目。这里需要和之前创建的mif文件保持一致。完成后,继续下一步,

bd15d5852b864fdf839742f92ded4031.png

         这里为了提高输出速度,取消了‘q’ output port之前的勾选按钮。下一步,

7395fcc3f31048aca30e403d2df1afed.png

         这是ip rom里面比较重要的一步。最主要的工作就是需要把刚才创建的top.mif文件导入到ip rom中去。走到这一步,其实主要的工作已经完成了,可以直接单击Finish。Quartus会提示我们是否把文件添加到工程中,选择是即可。

3、准备测试文件rom_test.v



newCodeMoreWhite.png

        测试的代码比较简单,主要的工作就是递增address地址。其次输入信号只有clk和rst,没有输出信号。它们对应的引脚是E1和N13。既然没有输出信号,那么怎么判断我们的配置和测试代码是否正确呢,一个重要的办法就是借助于signal tap来检验。

4、配置signal tap

95b8e4ef86f1493cb1349279d18a8552.png

        配置signal tap都是一些常规动作,比如设置jtag、配置clk、挑选address和q数据。 在输入F6和Esc之后,不出意外就可以看到这样的数据,

b3201bd10ed443c998edb95c33261304.png

         分析一下,之前mif文件设定的时候,0-7对应的数据是0-7,8-15对应的数据是8-17,以此类推。我们可以先找到address为0的时候,然后看q什么时候是0。有了0作为基准之后,就可以看剩下来的地址了。通过观察发现,q吐出数据的速度会慢一个节拍,也就是address为0的时候,下一个节拍才会出现0x00数据,接着address为1的时候,下一个节拍吐出0x01的数据。这就是从signal tap抓包的出来的结论,也是后面实际使用的时候需要注意的地方。

        ip rom和之前ip pll最大的不同就是需要创建一个类似于mif这样的文件。其他的地方就是如法炮制,创建好ip之后,实例化一个ip添加到top文件中,就可以开始使用了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK