【问题标题】:Verilog compiler errors in Modelsim when simulating register file模拟寄存器文件时 Modelsim 中的 Verilog 编译器错误
【发布时间】:2021-01-27 04:43:27
【问题描述】:

我正在尝试编写一些 verilog 代码来创建一个包含 32 个 32 位寄存器的寄存器文件。

Register File Input/Output

下面是我的代码:

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

我怎样才能让它输出详细的警告,这样我才能真正看到导致问题的原因?

【问题讨论】:

    标签: verilog modelsim


    【解决方案1】:

    您正在使用 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
        );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 2010-12-10
      • 2022-01-10
      • 1970-01-01
      相关资源
      最近更新 更多