1.2.3 FPGA片内RAM设置与集成
① Quartus II工程中,单击菜单Tools-MegaWizard Plug-In Manager命令,创建IP核模块。
② 在弹出的选项卡中选择“Create a new custom megafunction variation”,然后单击“Next”按钮
③ 在“Select a megafunction from the list below”下面的列表框中选择Ip核为“Memory Compiler-RAM:1-PORT”并选择好使用器件、语言以及工作路径,注意在工作路径后要加上IP核的名称。单击“Next”。
④ 在“How wide should the ‘q’ output bus be?”后面输入64,既该片内RAM的存储位宽是64bit
在“How many 64 bit words of Memory”后面输入256,既该片内RAM的存储深度为256words,此RAM的总容量为256*64bit
在“What should the memory block type be?”下面选择Auto,也可以选择M9K,表示我们使用的是FPGA中的Block RAM而不是LCs的DRAM。
在“What clocking method would you like to use”下面选择Single clock,表示该RAM读操作或者写操作使用一个时钟
⑤ 在“Which ports should be registered”下面选择q output port,表示q信号输出时会用clock拍打一拍,这样更有利于时序收敛[使用registerd输出比输入延迟了两个周期。]。[为什么会有利于时序收敛?]
下面有创建时钟使能、字节选通、输入异步复位、读取使能选项,用户可以根据自己的需求使用相应的信号。
⑥ 在“what should the q output be when reading from a memory location being written to?”选择“new data”表示在同一地址读出的数据为刚刚写入的新的数据。如果选择“old data”表示在同一地址读出的数据为未写入之前的数据。
“get x’s for write mask bytes instead of old data when byte enable is used”目前还不清楚具体的含义,本例程中不使用byte enable,所以此处可以不用理会。
⑦ 在“Do you want to specify the initial content of the memory?”下面选择“No,leave it blank”表示我们不需要设置RAM的初始化文件。如果在别的场合需要初始化文件,则点击相应的选项并设置初始化文件路径即可。
在“Allow In-System Memory Content Editor to capture and updata content independently of the system clock”打勾,因为我们在板级调试时,需要使用In-System Memory Content Editor工具来实时查看RAM中内容的变化。
在“The ‘Instance ID’ of this RAM is”后面输入一个数字,代表此RAM的ID,它主要的功能是In-System Memory Content Editor工具区分查看不同的RAM。