微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于Quartus II调用ROM IP核时的一连串问题,纠结两天了~求高人解答

关于Quartus II调用ROM IP核时的一连串问题,纠结两天了~求高人解答

时间:10-02 整理:3721RD 点击:
最近做仿真需要用到Quartus ii里的ROM IP核,为了验证功能,我新建了工程,生成IP核,数据深度512,位宽8bit,用MATLAB产生512个随机整数,新建hex文件,将512个随机数粘贴进hex文件表格里,保存后导入ip核。编写v文件和testbench代码,想在测试时根据addr依次读出rom中存储的随机数。结果仿真波形如下,没报错:
                             


输出波形完全看不懂。
后来我又生成了mif文件,直接在已生成的ip核中修改了初始化文件为mif文件,结果点击Finish按钮时就开始报错,


实在弄不动了,请教大神是什么原因~

怀疑你的hex路径有问题,需要保存在工程根目录才能被识别

确实保存在根目录没问题

涉及到一些细节问题,可能是你的文件格式问题,或者安装的软件问题;
像ram,rom这样的,可以采用代码映射的模块,不如直接用verilog,这样描述问题更清晰。如:
module rom
#(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=9)
(
        input [(ADDR_WIDTH-1):0] addr,
        input clk,
        output reg [(DATA_WIDTH-1):0] q
);
        reg [DATA_WIDTH-1:0] rom[2**ADDR_WIDTH-1:0];
        initial
        begin
                $readmemb("rom_init_binary.txt", rom);
        end
        always @ (posedge clk)
        begin
                q <= rom[addr];
        end
endmodule
数据文件这里用的是二进制,每行一个数据即可。

多谢大神!回去试试

还是不对啊,是不是读入的txt文件有什么特殊的格式要求啊?modelsim报错fail to open readmem file"xxx.txt"in read mode。我文件就放在工程目录下的。

搞出来了,是文件路径描述不对,多谢各位大神

我建议你看看小梅哥的视频第14讲吧,有这部分的内容非常详细

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top