實(shí)驗12:邊沿觸發(fā)的D觸發(fā)器
實(shí)驗目的
實(shí)驗任務(wù)
本實(shí)驗的任務(wù)是描述一個(gè)帶有邊沿觸發(fā)的同步D觸發(fā)器電路,并通過(guò)STEP FPGA開(kāi)發(fā)板的12MHz晶振作為觸發(fā)器時(shí)鐘信號clk,撥碼開(kāi)關(guān)的狀態(tài)作為觸發(fā)器輸入信號d,觸發(fā)器的輸出信號q和~q,用來(lái)分別驅動(dòng)開(kāi)發(fā)板上的LED,在clk上升沿的驅動(dòng)下,當撥碼開(kāi)關(guān)狀態(tài)變化時(shí)LED狀態(tài)發(fā)生相應變化。
本文引用地址:http://dyxdggzs.com/article/202310/451323.htm實(shí)驗原理
從D觸發(fā)器的特性我們知道,它的狀態(tài)僅僅取決于時(shí)鐘信號達到之前瞬間的D信號。為了防止SR鎖存器的S、R被同時(shí)置1的情況,常采用維持阻塞結構的D觸發(fā)器,其電路結構如下,邊沿觸發(fā)器的次態(tài)僅僅取決于CLK信號上升沿(或下降沿)到達時(shí)刻輸入信號的狀態(tài)。
Verilog HDL建模描述
用行為描述方式實(shí)現的D觸發(fā)器
程序清單dff.v
module dff ( //模塊名及參數定義 input clk,rst,d, output reg q, output wire qb ); assign qb = ~q; always @( posedge clk ) //只有clk上升沿時(shí)刻觸發(fā) if(!rst) //復位信號判斷,低有效 q <= 1'b0; //復位有效時(shí)清零 else q <= d; //觸發(fā)時(shí)輸出q值為輸入d endmodule
仿真文件dff_tb.v
`timescale 1ns/100ps //仿真時(shí)間單位/時(shí)間精度 module dff_tb(); reg clk,rst,d; //需要產(chǎn)生的激勵信號定義 wire q,qb; //需要觀(guān)察的輸出信號定義 //初始化過(guò)程塊 initial begin clk = 0; rst = 0; d = 0; #50 rst = 1; end always #10 clk = ~clk; //產(chǎn)生輸入clk,頻率50MHz always #15 d = ~d; //module調用例化格式 dff u1 ( //dff表示所要例化的module名稱(chēng),u1是我們定義的例化名稱(chēng) .clk(clk), //輸入輸出信號連接。 .rst(rst), .d(d), .q(q), //輸出信號連接 .qb(qb) ); endmodule
評論