北邮22信通一枚~
跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章
持续关注作者 迎接数电实验学习~
获取更多文章,请访问专栏:
北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客
JK.v
module JK
(
input clk,
input J,
input K,
input set,
input reset,
output reg q
);
always @(posedge clk or negedge reset or negedge set)
begin
if(!reset) //异步清零
begin
q<=1'b0;
end
else if(!set) //异步置1
begin
q<=1'b1;
end
else
begin
case({J,K})
2'b00:q<=q;
2'b01:q<=0;
2'b10:q<=1;
2'b11:q<=~q;
endcase
end
end
endmodule
JK_tb.v
`timescale 1ns/100ps
module JK_tb();
reg clk;
reg j;
reg k;
reg reset;
reg set;
wire q;
initial
begin
clk=0;
j=0;
k=0;
reset=1;
set=1;
#50;
set=0;
#50;
set=1;
#50;
reset=0;
#50;
reset=1;
end
always #10 clk<=-clk;
always #20 j<=-j;
always #30 k<=-k;
JK JK_1
(
.clk(clk),
.J(j),
.K(k),
.set(set),
.reset(reset),
.q(q)
);
endmodule