【发布时间】:2020-11-26 21:41:49
【问题描述】:
这是一个简单的异步2位计数器,正在使用两种JK触发器。 P>
下面是我的TwoBitCounter.v脚本。 P>
`timescale 1ns / 1ps
module TwoBitCounter(
input wire clk,
output wire q0,
output wire q1
);
JK jk1(1, 1, clk, q0);
JK jk2(1, 1, q0, q1);
endmodule
module JK(
input wire J,
input wire K,
input wire clk,
output reg out
);
always @(posedge clk) begin
if(J==0&&K==0)
begin end
else if(J==0&&K==1) begin
out <= 1'b0;
end else if(J==1&&K==0) begin
out <= 1'b1;
end else if(J==1&&K==1) begin
out <= ~out;
end
end
endmodule
,这是我的仿真代码:
`timescale 1ns / 1ps
module TwoBitCounter_sim();
reg clk;
wire q0;
wire q1;
TwoBitCounter twoBitCounter(.clk(clk), .q0(q0));
initial clk = 1'b0;
always clk = #100 ~clk;
initial begin
#1000;
$finish;
end
endmodule
我已经检查了JK模块单独工作正常。我尝试禁用一个JK触发器,看它是否有没有错误,而在TwoBitCounter模块来实现,也没有工作。虽然我已经多次检查,看是否该算法本身是错误的,但毫无头绪的根本问题是什么。 P>
【问题讨论】: