我可以使用连接,重复或`定义$ readmemb或$ readmemh?

时间:2014-10-31 14:09:21

标签: verilog hdl

我正在实施单周期MIPS处理器并使用$readmemb$readmemh初始化我的内存。在这种情况下,我想用一些32位指令初始化我的寄存器文件,但我不想手动写出这些指令。

我可以将下面的方案提供给$readmemh并让它将内存初始化为这些值吗?我对这些$readmemh$readmemb的限制是什么?

`define ADD 5'b0xx01
{1'b1, 5'd0, 5'd0, 5'd0, `ADD, 11'd1}
{1'b1, 5'd0, 5'd0, 5'd0, `ADD, 11'd7}

1 个答案:

答案 0 :(得分:1)

您无法在传递给define$readmemb的文件中使用连接,重复或$readmemh宏。这些文件的语法在IEEE Std 1800-2012,“21.4从文件加载存储器阵列数据”部分中描述。语法非常有限。值仅由空格分隔,可能包含可选的下划线以便于阅读,并允许注释(/**///)。

可能的替代方案包括:

  • 使用脚本(如Perl)生成Verilog之外的readmem文件。
  • 使用您在Verilog for for循环中显示的连接,重复和定义语法。
相关问题