实验13:JK触发器

时间:2023-10-11来源:电子森林
  • (1)熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法;
  • (2)通过实验理解和掌握JK触发器原理;
  • (3)学习用Verilog HDL语言行为机描述方法描述JK触发器电路。

本实验的任务是设计一个JK触发器

带使能端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. 打开Lattice Diamond,建立工程。
  2. 新建Verilog HDL设计文件,并键入设计代码。
  3. 根据仿真教程,实现对本工程的仿真,验证仿真结果是否与预期相符。

仿真结果如下图所示:

关键词: JK触发器 FPGA Lattice Diamond Verilog HDL

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版