JK_FF 非法引用计数器错误

JK_FF Counter Error with illegal reference

我正在制作一个计数器,其中 JK_FF 为 0->1->2->3->4->0

这是我的 Verilog 代码:

module JK_FF (Q, J, K, clk, rst);
output Q;
input J, K, clk, rst;
reg Q;

always @ (posedge clk or negedge rst)
    if(!rst) Q<=1'b0;
    else 
      case ({J,K})
        2'b00: Q<=Q;
        2'b01: Q<=1'b0;
        2'b10: Q<=1'b0;
        2'b11: Q<=~Q;
      endcase
endmodule

module Counter(A,B,C,JA,KA,JB,KB,JC,KC,clk,rst,in);
output A,B,C;
input JA,KA,JB,KB,JC,KC,clk,rst,in;
reg A,B,C;

JK_FF JKA(A,JA,KA,clk,rst);
JK_FF JKB(B,JB,KB,clk,rst);
JK_FF JKC(C,JC,KC,clk,rst);

always @ (posedge clk or negedge rst)
    if(in==1'b1) begin
        if(!rst) begin
            A<=1'b0;
            B<=1'b0;
            C<=1'b0;
        end
        else begin
            JA<=B&C;
            KA<=1'b1;
            JB<=C;
            KB<=C;
            JC<=~A;
            KC<=1'b1;
        end
    end
endmodule

我在

遇到错误
            JA<=B&C;
            KA<=1'b1;
            JB<=C;
            KB<=C;
            JC<=~A;
            KC<=1'b1;

程序说

Error: C:/Users/hoho/Desktop/project/Counter.v(34): (vlog-2110) Illegal reference to net "JA".

我应该如何修复此代码?

您显示的错误消息告诉您不能使用赋值语句为模块赋值 input

JA 是一个模块 input,你不能像这样给它赋值:

JA<=B&C;

这是非法的。您的其他输入也是如此:KA、JB、KB、JC、KC。您需要重新设计 Counter 模块。


如果你能清除这些错误,你就会运行进入其他人。 ABC.

有多个驱动程序