【发布时间】:2021-05-26 08:20:53
【问题描述】:
我正在 SystemVerilog 上设计 MIPS 处理器。指令内存是这样制作的:
module instr_mem
#(
parameter SIZE = 7 //64
)
(
input logic rst_n,
input logic clk,
input logic [31:0] addr,
output logic [31:0] rd
);
logic [31:0] rom [0 : SIZE-1];
assign rd = rom[addr];
initial begin
rom <= {
32'h0,
32'h2408000F, // a = F
32'h240A0000, // res = 0
32'h01485021, // (*) res = res + a
32'h2508FFFF, // a = a - 1
32'h1500FFFD, // if (a != 0) goto (*)
32'hAC0A0ADD
};
end
endmodule
但是这段代码不综合作为一个“黑匣子”/单独的模块等,顶部模块看起来像:“核心,数据存储器,”。
我尝试让 IM 组合(assign rom = {..}),但合成方式相同。
如何制作可综合的指令存储器?顺便说一句,是否有任何指南可以编写确定可合成的代码?
【问题讨论】:
标签: system-verilog processor synthesis