例说FPGA连载84:工业现场实时监控界面设计之双口RAM
0赞例说FPGA连载84:工业现场实时监控界面设计之双口RAM
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
① 在新建的工程中,点击菜单ToolsàMegaWizard Plug-In Manager。在弹出的选项卡中选择“Creat a new custom megafunction variation”,然后点击“Next”。
② 接着选择我们所需要的IP核,如图17.3所示进行设置。
图17.3 IP核选择页面
● 在“Select a megafunction from the list below”下面选择IP核为“Memory Compiler à RAM: 2-PORT”。
● 在“What device family will you be using”后面的下拉栏中选择我们所使用的器件系列为“Cyclone IV E”。
● 在“What type of output file do you want to create?”下面选择语言为“Verilog HDL”。
● 在“What name do you want for the output file?”下面输入工程所在的路径,并且在最后面加上一个名称,这个名称是我们现在正在例化的片内双口RAM IP核的名称,这里我们可以给他起名叫waveRAM,然后点击Next进入下一个页面。
③ 如图17.4所示,在第一个配置页面“Parameter Settings à General”中,我们需要做如下的设置。
● 在“How will you be using the dual port RAM?”下面勾选“With one read port and one write port”选项,即我们这个双口RAM配置为一组读端口和一组写端口。
● 在“How do you want to specify the memory size?”下面勾选“As a number of words”,即以“words”为单位来配置查看端口的位宽。
图17.4 双口RAM基本配置页面
④ 如图17.5所示,在第二个配置页面“Parameter Settings à Widths/Blk Type”中,我们需要做如下的设置。
● 在“How many 8-bit words of memory?”后面输入“1024”words,即该双口RAM的存储深度为1024。
● 在“What wide should the ‘data_a’ input bus be?”后面输入“8”,即端口位宽为8bit。
图17.5 双口RAM的位宽、存储器类型配置页面
⑤ 如图17.6所示,在第三个配置页面“Parameter Settings à Clks/Rd,Byte En”中,做如下设置。
● 在“Which clocking method do you want to use?”下面勾选“Dual clock: use separate ‘read’ and ‘write’ clocks”,表示读写操作使用不同的时钟。
图17.6 双口RAM的控制信号配置页面
⑥ 如图17.7所示,第四个配置页面“Parameter Settings à Regs/Clkens/Aclrs” 中,做如下设置。
● 在“Which ports should be registered?”下面勾选“Read output port(s) ‘q’”,即对双口RAM的读出数据q用rdclock打一拍,确保更好的时序性能。
● 勾选“Create an ‘aclr’ asynchronous clear for the registered ports”,即增加异步清除信号接口。
图17.7 双口RAM的时钟使能、复位信号配置页面
⑦ 第五个配置页面“Parameter Settings à Mem Init”无需设置,默认即可。
⑧ 最后,在“Summary”页面中,如图17.8所示,勾选上“waveRAM_inst.v”文件所在选项。点击“Finish”完成设置。
图17.8 双口RAM的Summary配置页面
waveRAM_inst.v文件打开如图17.9所示,这里有新建双口RAM的接口例化模板,可以复制到工程顶层源码中重新做接口映射。
图17.9 双口RAM例化模板