【问题标题】:4 bit register with enable and asynchronous reset具有启用和异步复位功能的 4 位寄存器
【发布时间】:2021-01-14 04:37:58
【问题描述】:

我正在建模一个带有启用和异步复位的 4 位寄存器。该寄存器有 3 个一位输入,即 clk、reset 和 enable、1 个四位输入、D 和 1 个使用 verilog 的四位输出 Q。 这是我的设计和测试平台。 设计


    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.

我没有发现代码有任何问题。

【问题讨论】:

    标签: verilog fpga


    【解决方案1】:

    第 9 行的Q &lt;= 4’b0; 应更改为Q &lt;= 4'b0;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      相关资源
      最近更新 更多