4-разрядный регистр с включением и асинхронным сбросом

#verilog #fpga

#верилог #плис

Вопрос:

Я моделирую 4 — битный регистр с включением и асинхронным сбросом. Регистр имеет три однобитовых входа, а именно clk, reset и enable, один четырехбитовый вход, D и один четырехбитовый выход Q с использованием verilog. Вот мой дизайн и тестовый стенд. Дизайн

 
    module fourbitreg(D,clk,reset,enable, Q);
    input[3:0] D; // Data input
    input clk,reset,enable;
    output[3:0] Q; // output Q
    reg[3:0] Q;
    always @(posedge clk or posedge reset)
    begin
            if(reset)
                    Q <= 4’b0;
            else if (enable)
                    Q <= D;
    end
    endmodule

 

Испытательный стенд

 
    module four_bitreg_tb;
      reg [3:0] D;
    reg clk,reset,enable;
    wire[3:0]Q;
    always #5 clk = ~clk;
      fourbitreg uut(.D(D),.clk(clk),.reset(reset),.enable(enable),.Q(Q));
    initial begin
        $monitor("time=",$time,"D=%b  reset =%d  enable =%d  Q=%b",D,reset,enable,Q);
        $dumpfile("dump.vcd");
        $dumpvars;
        reset <= 0;
        enable <= 0;
        D <=  4'b0000; 
        #5 
        D <= 4'b0001; 
        reset <= 0;
        enable <= 1;
        #5
        D <= 4'b0010; 
        reset <= 1;
        enable <= 0;
        #5
        D <= 4'b0011; 
        reset <= 1;
        enable <=1;
        #5
        D <= 4'b0100; 
        reset <= 0;
            enable <= 0;
        #5
        D <= 4'b0101; 
        reset <= 0;
            enable <= 1;
        #5
        D <= 4'b0110; 
        reset <= 1;
            enable <= 0;
        #5
        D <= 4'b0111; 
        reset <= 1;
            enable <= 1;
        #5
        D <= 4'b1000; 
        reset <= 0;
            enable <= 0;
        #5
        D <= 4'b1001; 
        reset <= 0;
            enable <= 1;
        #5
        D <= 4'b1010; 
        reset <= 1;
            enable <= 0;
        #5
        D <= 4'b1011; 
        reset <= 1;
            enable <= 1;
        #5
        D <= 4'b1100; 
        reset <= 0;
            enable <= 0;
        #5
        D <= 4'b1101; 
        reset <= 0;
            enable <= 1;
        #5
        D <= 4'b1110; 
        reset <= 1;
            enable <= 0;
        #5
        D <= 4'b1111;
        reset <= 1;
            enable <= 1;
        #20 $finish;
    end
    endmodule

 

При компиляции кода я получаю следующие ошибки.

 
    4bitreg.v:9: syntax error
    I give up.

 

Я не обнаружил никаких проблем с кодом.

Ответ №1:

Q <= 4’b0; в строке 9 должно быть изменено как Q <= 4'b0; .