IP核——RAM

本文详细介绍了在Quartus和ISE中创建及配置RAM IP核的步骤,包括设置读写端口、深度、位宽等参数,并讨论了单口RAM、伪双口RAM和真双口RAM的区别,以及ROM、RAM和FIFO的特性。教程引用了威三学院和小梅哥FPGA教程的内容。
摘要由CSDN通过智能技术生成

一、Quartus

1.打开Quartus ii,点击Tools---MegaWizard Plug-In Manager

2.弹出创建页面,选择Creat a new custom megafunction variation,点Next

 

3.选择IP核,可以直接搜索ram,选择RAM:2-PORT,右上方选择器件型号,语言选成Verilog,再填写一下路径名字,点Next,后面就是参数设置了。

4.设置读写需要几个端口,深度计算按word还是bit。Next

5.设置深度,位宽,类型。Next

6.设置读写需要几个端口,深度计算按word还是bit,一般选word。Next

7.是否为输出添加一个寄存器(加了寄存器可以使RAM输出的数据更稳定)?本来ram的输出就是会慢1clk,勾选后又慢1clk,所以一般不勾选。Next

8.输出的是新数据还是老数据,一般是要新数据,所以I don't care就行。Next

9.是否添加初始化文件mif ? Next

10.告诉你此IP核的编译库是什么,Next

11.输出的文件列表,除了正常IP核,还可以选择例化文件,注意bb.v文件用不到,一般是不勾选的。之后点finish就生成IP核了。

 

二、ISE

1.创建ISE工程,IP核需要在ISE工程里面进行调用。点击Tools---Core Generator...

2.在新弹出来的界面中创建一个属于IP核的工程:file---new project,并填写文件存储位置和文件名称,一般为ipcore_dir文件夹,点击保存

3.弹出的Part处填写器件的系列、型号、封装以及速度等级,Generation处设置语言为Verilog,点击OK

4.点击文件夹,找到Memories & Storage Elements---RAMs & ROMs---Block Memory Generator,(也可以直接搜索)双击打开,进行参数设置

5.设置模块名称,Next

6.类型选择,一般选Single Dual RAM,该RAM为“a口负责写,b口负责读”,而对于真双口RAM来说,a和b都是可读可写。其他选项根据需要勾选。Next

7.RAM的位宽、深度、使能选择,Next

 

 8.是否在B端添加一个寄存器(加了寄存器可以使RAM输出的数据更稳定)?本来ram的输出就慢1clk,勾选了又慢1clk,所以一般不勾选。是否需要初始化并加载初始化ceo文件,Next

 9.是否对B口添加复位键,Next

 10.总结页面,注意里面一句话:B口的读取有1clk的延迟,点击Generate即可生成RAM。大功告成!

 

三、单RAM读写操作(by威三学院FPGA教程)

本代码针对Quartus的RAM:2-PORT

 1 //==========================================================================
 2 // --- 名称 : ram_ctrl.v
 3 // --- 作者 : xianyu_FPGA
 4 // --- 日期 : 2019-06-23
 5 // --- 描述 : 单个ram读写操作
 6 //==========================================================================
 7 
 8 module ram_ctrl
 9 //---------------------<端口声明>-------------------------------------------
10 (
11 input  wire             clk                 , //时钟,50Mhz
12 input  wire             rst_n               , //复位,低电平有效
13 input  wire [7:0]       din                 , //写入的数据
14 output wire [7:0]       dout                  //读出的数据
15 );
16 //---------------------<信号定义>-------------------------------------------
17 reg                     wr_en               ; //写使能
18 reg  [7:0]              wr_addr             ; //写地址
19 reg  [7:0]              rd_addr             ; //读地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值