Непредвиденная ошибка Verilog '=', ожидается идентификатор или type_identifier

Сейчас я строю тестовый стенд и не знаю, как мне соединить несколько модулей, которые я построил ранее. Вот модули, которые я использовал, все они были проверены и работают должным образом.

    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;"

Кто-нибудь знает, что может вызвать эту проблему? Я работаю над этим больше часа, пробуя все, что могу. Спасибо.


person SYM2RR    schedule 15.06.2016    source источник


Ответы (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
person nanofarad    schedule 15.06.2016