上篇博文写了用仿真和综合来认识D触发器(通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)),这篇博文采用完全并行的方式来认识JK触发器。
让我们迅速进入正题吧。
J-K触发器的Verilog HDL程序代码
//边沿JK触发器
module jk_trigger(clk, j, k, q);
input clk, j, k;
output q;
reg q;
wire qb;
always@(posedge clk) //时钟上升沿到来时,判断jk的值
begin
case({j,k})
2'b00: q <= q; //如果{j,k}=00,则触发器处于保持状态
2'b01: q <= 1'b0; //如果{j,k}=01,则触发器置1
2'b10: q <= 1'b1; //同理10,清零
2'b11: q <= ~q; //11,翻转
default: q <= q;
endcase
end
assign qb = ~q;
endmodule
测试文件:
//jk触发器的测试文件
`timescale 1ns/1ps
module jk_trigger_tb;
reg j,k,clk;
wire q;
//时钟电路,周期为20ns
alw