Verilog 我可以用$readmemb或$readmemh连接、重复或`定义吗?
我正在实现一个单周期MIPS处理器,并使用Verilog 我可以用$readmemb或$readmemh连接、重复或`定义吗?,verilog,hdl,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
$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}
不能在传递给
$readmemb
或$readmemh
的文件中使用串联、重复或`define
宏。IEEE标准1800-2012“21.4从文件加载内存阵列数据”一节中描述了这些文件的语法。语法非常有限。值仅用空格分隔,可以包含可选下划线以便于阅读,并且允许使用注释(/***/
或/
)
可能的替代方案包括:
- 使用脚本(如Perl)在Verilog之外生成readmem文件
- 使用Verilog in for循环中显示的连接、重复和定义语法