• ROM IP核的创建方法

    1
    2
    3
    4
    然后点击确定,就能生成一个ROM IP核。

  • ROM IP核的调用方法

    1
    由于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) ![输入图片说明](https://foruda.gitee.com/images/1675437561499899947/cd9436de_6531589.png "屏幕截图")
    );

  • ROM IP核的注意事项

  1. IP核设置的width可以比实际coe内的数据的width更宽,但是depth必须和实际coe文件内的数据一致。
  2. 当更新coe文件后,必须在IP核配置界面重新LOAD FILE,如下图:
    2