新闻中心

EEPW首页>消费电子>设计应用> 实验13:JK触发器

实验13:JK触发器

作者: 时间:2023-10-11 来源:电子森林 收藏

本实验的任务是设计一个

本文引用地址: //m.amcfsurvey.com/article/202310/451353.htm

带使能端RS锁存器的输入端R=S=1时,锁存器的次态不确定,这一因素限制了其应用。为了解决这个问题,根据双稳态元件两个输出端互补的特点,用Q和非Q反馈控制输入信号,并用J代替S,用K代替R,构成了J-K锁存器。


用行为级描述实现的带异步复位和置位端的边沿触发器
程序清单 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
  1. 打开 ,建立工程。
  2. 新建 设计文件,并键入设计代码。
  3. 根据仿真教程,实现对本工程的仿真,验证仿真结果是否与预期相符。

仿真结果如下图所示:



评论


相关推荐

技术专区

关闭