模拟寄存器文件时Modelsim中的Verilog编译器错误
我正试图编写一些verilog代码来创建一个包含32位寄存器的寄存器文件 下面是我的代码:模拟寄存器文件时Modelsim中的Verilog编译器错误,verilog,modelsim,Verilog,Modelsim,我正试图编写一些verilog代码来创建一个包含32位寄存器的寄存器文件 下面是我的代码: module regfile (clk, we, ra1, ra2, wa, wd, rd1, rd2); input logic we, input logic clk, input logic [4:0] ra1, ra2, wa, input logic [31:0] wd, output logic
module regfile (clk, we, ra1, ra2, wa, wd, rd1, rd2);
input logic we,
input logic clk,
input logic [4:0] ra1, ra2, wa,
input logic [31:0] wd,
output logic [31:0] rd1, rd2;
logic [31:0] rf[31:0];
always @ (posedge clock)
begin
rd1 = rf[ra1];
rd2 = rf[ra2];
end
always_comb
begin
if(we == 1)
rf[wa] = wd;
rf[0] = 0;
end
endmodule
我根据一些教程文件对上面的代码进行了建模,所以我很困惑Modelsim为什么会给出编译错误
语法上有没有明显的错误
在CMD:vsim-do regfile.do中运行命令时
我怎样才能让它输出详细的警告,这样我才能真正看到问题的原因?您使用的是一种奇怪的2001年之前和2001年之后的语法组合。我建议您的端口使用2001年后的语法:
module regfile (
input logic we,
input logic clk,
input logic [4:0] ra1, ra2, wa,
input logic [31:0] wd,
output logic [31:0] rd1, rd2
);