银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-02-28 | gingko | 初次建立 |
1、 打开 Tools——MegaWizard Plug-In Manager. 2、 弹出界面里默认选择第一个,创建新的宏功能模块,然后直接点击 Next。如果已经建立了IP核,想要做参数的修改,可以在这一步选择第二个选项。 3、 在Memory Complier下选择FIFO,如下图1所示。在下图中2所示位置选择FPGA类型,在3所示位置选择输出文件的命名,然后点击 Next。 4、接下来如图所示,设置FIFO的存储宽度为16bit,存储深度为256字节,类型设置为异步模式,即读写操作不使用同一个时钟信号。可以在左侧状态显示里看到当前设置的FIFO的控制信号和存储信息,核对无误后点击 Next 。 5、对FIFO进行优化类型的选择,该页面保持默认设置,直接点击 Next。 6、设置控制信号,这里勾选了写满标志位信号。FIFO 就建好了。 7、读取模式设置为预读取模式,即先读取一个数据,当rdreq有效时开始读取第二个数据。存储类型选择Auto,点击Next。 8、优化设置和仿真相关设置,参考下图设置,点击Next。 9、点击Finish,完成FIFO的构建。
//--------------------ab_r------------------// reg [15:0]data_in; always @ (posedge wr or negedge rst_n) begin if(!rst_n) data_in <= 16'd0; else data_in <= db; //锁存数据 end //--------------------wr------------------// /*提取写信号*/ reg wr1,wr2; wire wr = (csn | wrn); //提取写信号 always @ (posedge pll_150m or negedge rst_n) begin if(!rst_n) begin wr1 <= 1'd0; wr2 <= 1'd0; end else begin {wr2,wr1} <= {wr1,wr}; end end //--------------------rd------------------// /*fifo读操作*/ wire rd = (csn | rdn); //提取读信号 assign db = rd ? 16'hzzzz : db_out;