新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 實(shí)驗(yàn)13:JK觸發(fā)器

實(shí)驗(yàn)13:JK觸發(fā)器

作者: 時(shí)間:2023-10-11 來源:電子森林 收藏

本實(shí)驗(yàn)的任務(wù)是設(shè)計(jì)一個(gè)

本文引用地址:http://2s4d.com/article/202310/451353.htm

帶使能端RS鎖存器的輸入端R=S=1時(shí),鎖存器的次態(tài)不確定,這一因素限制了其應(yīng)用。為了解決這個(gè)問題,根據(jù)雙穩(wěn)態(tài)元件兩個(gè)輸出端互補(bǔ)的特點(diǎn),用Q和非Q反饋控制輸入信號(hào),并用J代替S,用K代替R,構(gòu)成了J-K鎖存器。


用行為級(jí)描述實(shí)現(xiàn)的帶異步復(fù)位和置位端的邊沿觸發(fā)器
程序清單 jk_ff.v

 module jk_ff(						//模塊名及參數(shù)定義input clk,j,k,rst,set,	output reg q,output wire qb); assign qb = ~q;//clk上升沿以及復(fù)位和置位下降沿時(shí)觸發(fā)器工作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;	//翻轉(zhuǎn)
			endcase
	endendmodule

仿真文件jkff_tb.v

   `timescale 1ns/100ps    //仿真時(shí)間單位/時(shí)間精度
 module jk_ff_tb();       
 reg    clk,j,k,rst,set;         	//需要產(chǎn)生的激勵(lì)信號(hào)定義wire   q,qb;      	  //需要觀察的輸出信號(hào)定義 //初始化過程塊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;      //產(chǎn)生輸入clk,頻率50MHzalways #20 j = ~j;always #30 k = ~k;//module調(diào)用例化格式j(luò)k_ff  u1 (      //jk_ff表示所要例化的module名稱,u1是我們定義的例化名稱
		.clk(clk),     //輸入輸出信號(hào)連接。
		.j(j),
		.k(k),
		.rst(rst),
		.set(set),
		.q(q),    //輸出信號(hào)連接
		.qb(qb)   );endmodule
  1. 打開,建立工程。
  2. 新建設(shè)計(jì)文件,并鍵入設(shè)計(jì)代碼。
  3. 根據(jù)仿真教程,實(shí)現(xiàn)對(duì)本工程的仿真,驗(yàn)證仿真結(jié)果是否與預(yù)期相符。

仿真結(jié)果如下圖所示:



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉