【Vivado】ROM IP核的使用
ROM IP核的创建方法




然后点击确定,就能生成一个ROM IP核。
ROM IP核的调用方法

由于ROM IP核是在 _上升沿_ 读数据,所以如果要将从ROM读的数据写入到其他地方的话,可以在时钟的 _下降沿_ 写数据,具体操作如下:// clk下降沿进行address自增,下一个上升沿在rom进行读数据 always @(negedge clk) begin // rom是clk上升沿读,所以这里一定要是下降沿! if (rst) begin // 同步复位 addra_7bit <= 0; in <= 0; end else begin // 将上个上升沿读的数据写入 in[addra_7bit] <= wave_douta; if(addra_7bit < (len-1)) begin addra_7bit <= addra_7bit + 1'b1; end else begin addra_7bit <= 0; end end end rom_wave_64w_128d rom_wave ( // 上升沿读数据 .clka(clk), .addra(addra_7bit), .douta(wave_douta)  );
ROM IP核的注意事项
- IP核设置的width可以比实际coe内的数据的width更宽,但是depth必须和实际coe文件内的数据一致。
- 当更新coe文件后,必须在IP核配置界面重新LOAD FILE,如下图:

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 tyhiwzm!
评论


