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
模块。
如果你能清除这些错误,你就会运行进入其他人。 A
、B
和 C
.
有多个驱动程序
我正在制作一个计数器,其中 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
模块。
如果你能清除这些错误,你就会运行进入其他人。 A
、B
和 C
.