使用文件初始化ROM后,MIF文件内容会自动更改
问题描述:
我正在使用单周期risc处理器。我正在使用altera LPM向导ROM 1端口作为指令存储器。 ROM由mif文件初始化。下面使用文件初始化ROM后,MIF文件内容会自动更改
WIDTH=16;
DEPTH=256;
ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;
CONTENT BEGIN
-- default value
[00..FF] : 00;
-- instructions
00 : 2401; -- ADI R1, R0, x01
01 : 2802; -- ADI R2, R0, x02
02 : 2C03; -- ADI R3, R0, x03
03 : 3011; -- ADI R4, R0, x11
04 : 1648; -- ADD R5, R4, R4
05 : 1AC8; -- ADD R6, R5, R4
06 : C0C1; -- ST R1, R4
07 : C151; -- ST R2, R5
08 : C1E1; -- ST R3, R6
09 : 80FF; -- BZ R0, -1
END;
文件的内容后,给我完成初始化过程MIF文件的内容会自动更改为
-- Clearbox generated Memory Initialization File (.mif)
WIDTH=16;
DEPTH=256;
ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;
CONTENT BEGIN
000 : FFF0;
001 : FFF1;
002 : FFF2;
003 : FFF3;
004 : FFF4;
005 : FFF5;
-------------
-------------
0fd : FFFD;
0fe : FFFE;
0ff : FFFF;
END;
我不知道发生了什么,所以请help..I是刚刚学习VHDL编程
答
这不是一个VHDL问题!但IMO,VHDL给你一个更好的答案。用普通的VHDL常量数组替换这个“LPM向导ROM”,初始化(以VHDL)到你想要的值。
package InstMem is
type Instruction is std_logic_vector(15 downto 0);
type ProgMem_Array is array 0 to 255 of Instruction;
constant Progmem : Progmem_Array := (
00 => 16#2401#, -- ADI R1, R0, x01
01 => 16#2802#, -- ADI R2, R0, x02
02 => 16#2C03#, -- ADI R3, R0, x03
others => (others => 0));
end package InstMem;
说服你的汇编或Python脚本写这个VHDL包是微不足道的......
我的家庭作业是通过使用LPM向导ROM 1端口指令存储器这样我就可以改变这种设计RISC处理器。我已经完成了其他的事情,但在这里我卡住了。 – kajay
我在Quartus II 12.0中测试过,工作正常。在Quartus II 8.1中它不起作用。 – kajay