ROM-IP核配置(FPGA学习笔记)

1.ROM介绍

ROM是只读存储器(only read memory)的简称,是一种只能读出事先所存储数据的固态半导体存储器。FPGA中是没有非易性存储器的,ROM ip核其实是使用到FPGA中的RAM资源。在 FPGA 运行时通过数据文件给 ROM 模块初始化,模拟成非易失存储器。
Altera 推出的 ROM IP 核分为两种类型:单端口 ROM 和双端口 ROM。对于单端口ROM 提供一个读地址端口和一个读数据端口,只能进行读操作;双端口 ROM 与单端口ROM 类似,区别是其提供两个读地址端口和两个读数据端口。

ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除,且资料不会因为电源关闭而消失。

  

单端口ROM     

 

双端口ROM

                                                                        

2.1.单端口参数配置

2.1.1.How wide should the 'q' output bus be?

How many x-bit words of memory?

配置ROM的位宽和深度

2.1.2.What should the memory block type be?

使用什么类型的内存

在官方资料中,有提及什么类型的芯片适合用什么类型的内存,一般不使用Logic Cell即LCS

本人使用的是Cyclone IV芯片,只支持M9K或LCS,选择Auto(自动)即选择M9K

2.1.3.What docking method would you like to use?

选择单时钟控制输入输出,还是选择双时钟分别控制输入输出

2.1.4.建议命名规则:rom_(数据宽度)x(数据深度)

例如:rom_8x256

2.2.寄存器时钟和复位信号的设置

2.2.1.Create one dock enable signal for each dock signal. Note: All registered ports are controlled by the enable signal(s)

是否创建一个时钟使能信号

2.2.1.Create an 'adr'asynchronous dear for the registered ports

是否创建一个清零信号

2.3.存储器的初始化

2.3.1.使用mif文件对ROM进行初始化

文件名为黑色,则为添加成功,文件名为红色则为添加失败

2.4.仿真文件的设置

本次按照默认参数

2.5.总体设计

取个所需生成文件,本人此次只生成inst文件

最后可观察左上角图片,是否配置正确,点击FInsh配置完成

3.双端口ROM配置

建议命名规则:rom_(数据宽度)x(数据深度)_double

例如:rom_8x256_double

3.1.宽度设置

3.1.1.How do you want to specify the memory size?

As a number of words第一种使用word类型,即和单端口ROM一样

As a number of bits第二种使用bit类型。

这里使用word类型

3.1.2.How many 8-bit words of memory?

数据深度,即数据容量的选择,本次我设计的为256

3.1.3.Use different data widths on different ports

是否对两个输出端口使用不同的大小,勾选即可分别设计两个端口的大小,不勾选,则使用相同大小

3.1.4.What should the memory block type be?

使用的寄存器类型,可以参考单端口配置的第1点

3.2.时钟/使能信号的设置

3.2.1.What docking method do you want to use?

Single dock:单时钟,即所有的输入输出信号使用同一时钟

Dual dock: use separate 'read' and 'write' docks:“读取”和“写入”分别使用同一的时钟

Dual dock: use separate 'input' and 'output' docks:的“输入”和“输出”分别使用同一时钟

No dock(fully asynchronous):完全异步

Dual dock: use separate docks for A and B ports:A和B端口分别使用同一的时钟

3.2.2.Create 'rden_a' and 'rden_b'read enable signals Byte Enable Ports

是否创建A、B端口的读使能信号

3.3.寄存器、时钟使能信号、清零信号的设置

3.3.1.Read output port(s)'q_a'and'q_b'

是否将两个输出端口添加寄存器

注意:若选否,则我们的输出端口将会延后输入信号一个时钟周期,

           若选是,则我们的输出端口将会延后输入信号两个时钟周期,并且时钟信号clock可以输入更高的频率

3.3.2.Create one dock enable signal for each dlock signal

是否给时钟信号添加使能信号

3.3.3.Create an 'adr'asynchronous dear for the registered ports

是否给寄存器(两输出端口的寄存器)添加清零信号

3.3.4.使用mif文件对ROM初始化

文件名为黑色,则为添加成功,文件名为红色则为添加失败

3.4.文件的设置

本次按照默认参数

3.5.总体设计

取个所需生成文件,本人此次只生成inst文件

最后可观察左上角图片,是否配置正确,点击Finsh配置完成

参考文章链接:
《FPGA——ROM》:https://blog.csdn.net/a17377547725/article/details/125949625

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值