【发布时间】:2015-02-14 20:45:40
【问题描述】:
module syncounter(qa,qabar,qb,qbbar,overflow,ja,ka,jb,kb,clk,rst);
output qa,qabar,qb,qbbar,overflow;
input ja,ka,jb,kb,clk,rst;
reg qa,qb,qabar,qbbar,overflow;
//var1 = qa;
jkflip jk1(qa,qabar,ja,ka,clk,rst);
assign var1 = qa;
jkflip jk2(qb,qbbar,var1,var1,clk,rst);
always @ (ja,ka,jb,kb)
begin
if(qa & qb)
begin
overflow = 1;
end
end
endmodule
触发器的代码是
module jkflip(q,qbar,j,k,clk,rst);
input j,k,clk,rst;
output q,qbar;
wire j,k,clk,rst;
reg q,qbar;
always @(posedge clk)
begin
if(rst) q<=~q;
else
begin
case ({j,k})
2'b00 : q<=q;
2'b01 : q<=1'b0;
2'b10 : q<=1'b1;
2'b11 : q<=~q;
endcase
end
end
endmodule
计数器测试台
module syncountw();
reg j0,k0,j1,k1,clk,rst;
wire q0,q0bar,q1,q1bar,overflow;
syncounter syn1(q0,q0bar,q1,q1bar,overflow,j0,k0,j1,k1,clk,rst);
always #1 clk = !clk;
//always #1 j0 =1 ;
//always #1 k0 = 1;
initial begin
clk = 1;
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
#2
j0 = 1;
k0 = 1;
end
endmodule
我收到一个错误,称为:
错误(可抑制):(vsim-3053)C:/Modeltech_pe_edu_10.4/examples/syncounter.v(7):端口“q”的非法输出或输入端口连接。 # 时间:0 ns 迭代:0 实例:/syncountw/syn1/jk1 文件:C:/Modeltech_pe_edu_10.4/examples/jkflip.v # ** 错误(可抑制):(vsim-3053)C:/Modeltech_pe_edu_10.4/examples/syncounter.v(7):端口“qbar”的非法输出或输入端口连接。 # 时间:0 ns 迭代:0 实例:/syncountw/syn1/jk1 文件:C:/Modeltech_pe_edu_10.4/examples/jkflip.v # ** 错误(可抑制):(vsim-3053)C:/Modeltech_pe_edu_10.4/examples/syncounter.v(9):端口“q”的非法输出或输入端口连接。 # 时间:0 ns 迭代:0 实例:/syncountw/syn1/jk2 文件:C:/Modeltech_pe_edu_10.4/examples/jkflip.v # ** 错误(可抑制):(vsim-3053)C:/Modeltech_pe_edu_10.4/examples/syncounter.v(9):端口“qbar”的非法输出或输入端口连接。 # 时间:0 ns 迭代:0 实例:/syncountw/syn1/jk2 文件:C:/Modeltech_pe_edu_10.4/examples/jkflip.v【问题讨论】: