实验13:JK触发器
实验目的
实验任务
本实验的任务是设计一个JK触发器
实验原理
带使能端RS锁存器的输入端R=S=1时,锁存器的次态不确定,这一因素限制了其应用。为了解决这个问题,根据双稳态元件两个输出端互补的特点,用Q和非Q反馈控制输入信号,并用J代替S,用K代替R,构成了J-K锁存器。
Verilog HDL建模描述
用行为级描述实现的带异步复位和置位端的边沿触发器
程序清单 jk_ff.v
module jk_ff( //模块名及参数定义input clk,j,k,rst,set, output reg q,output wire qb); assign qb = ~q;//clk上升沿以及复位和置位下降沿时触发器工作always@(posedge clk or negedge rst or negedge set) begin if(!rst) q <= 1'b0; // 异步清零 else if (!set) q <= 1'b1; // 异步置1 else case({j,k}) 2'b00: q <= q; //保持 2'b01: q <= 0; //置0 2'b10: q <= 1; //置1 2'b11: q <= ~q; //翻转 endcase endendmodule
仿真文件jkff_tb.v
`timescale 1ns/100ps //仿真时间单位/时间精度 module jk_ff_tb(); reg clk,j,k,rst,set; //需要产生的激励信号定义wire q,qb; //需要观察的输出信号定义 //初始化过程块initialbegin clk = 0; j = 0; k = 0; rst = 1; set = 1; #50 set = 0; #50 set = 1; #50 rst = 0; #50 rst = 1;endalways #10 clk = ~clk; //产生输入clk,频率50MHzalways #20 j = ~j;always #30 k = ~k;//module调用例化格式jk_ff u1 ( //jk_ff表示所要例化的module名称,u1是我们定义的例化名称 .clk(clk), //输入输出信号连接。 .j(j), .k(k), .rst(rst), .set(set), .q(q), //输出信号连接 .qb(qb) );endmodule
实验步骤
仿真结果和实验现象
仿真结果如下图所示:
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码