【问题标题】:Verilog Error unexpected '=', expecting identifier or type_identifierVerilog 错误意外'=',需要标识符或 type_identifier
【发布时间】:2016-06-15 21:57:53
【问题描述】:

我现在正在构建一个测试台,我不知道应该如何连接我之前构建的几个模块。这是我使用的模块,所有模块都经过测试并且工作正常。

    counter11bit_abc ctr2(ctr_enable, ctr_clr, clk_out, counter);
    register10bit_abc dut3(clk_out, d_in, q_out);
    clk #(400) clk1(clk_enable, clk_out);
    hc85_abc dut4(a_in, b_in, ia_lt_b, ia_eq_b, ia_gt_b, qa_lt_b, qa_eq_b, qa_gt_b);

我需要连接以下端口:

    assign a_in = counter [3:0];
    assign b_in = counter [7:4];
    assign ia_lt_b = counter [8];
    assign ia_eq_b = counter [9];
    assign ia_gt_b = counter [10];
    assign d_in[0] = ia_gt_b;
    assign d_in[1] = ia_eq_b;
    assign d_in[2] = ia_lt_b;

声明如下:

    wire [9:0] d_in;
    wire [9:0] q_out;
    wire [3:0] a_in, b_in;
    wire ia_lt_b, ia_eq_b, ia_gt_b, qa_lt_b, qa_eq_b, qa_gt_b;

    reg        clk_enable;  
    reg        ctr_enable;  
    reg        ctr_clr;     
    wire       clk_out;     
    wire [10:0] counter; 

对于最初的部分,我下拉如下:

initial 
    clk_enable = 1;
    ctr_enable = 1;
    ctr_clr = 1;
    #400
    ctr_clr = 0;
    #1000000

现在编译器给我一个抱怨说

“=”附近:语法错误,意外的“=”,需要 IDENTIFIER 或 TYPE_IDENTIFIER

这是针对“ctr_enable = 1;”的行

有谁知道可能导致此问题的原因吗?我已经为此工作了一个多小时,尽我所能。谢谢。

【问题讨论】:

    标签: verilog quartus procedural


    【解决方案1】:

    在 Verilog 中,initial 将仅适用于以下语句,除非包含在 begin/end 中,与缩进无关(因为它不是 Python)。

    因此,您的第二行 (ctr_enable = 1) 完全独立于 always 关键字。修复是添加begin/end:

    initial begin 
        clk_enable = 1;
        ctr_enable = 1;
        ctr_clr = 1;
        #400
        ctr_clr = 0;
        #1000000;
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多