0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

時序邏輯電路設(shè)計之D觸發(fā)器

CHANBAEK ? 來源:通信情報工學(xué)算法學(xué)習(xí) ? 作者:syu ikko ? 2023-05-22 16:54 ? 次閱讀

本文旨在總結(jié)近期復(fù)習(xí)的數(shù)字電路D觸發(fā)器(邊沿觸發(fā))的內(nèi)容。

D觸發(fā)器是一個具有 記憶功能 ,持有 兩個穩(wěn)定狀態(tài)(0和1)信息存儲器件,是數(shù)字電路初學(xué)者所能接觸到最簡單的 時序邏輯電路 , 也是多種時序邏輯的電路的基本邏輯單元。

邊沿觸發(fā)D觸發(fā)器特點是可以在時鐘脈沖到來時刻從一個狀態(tài)翻轉(zhuǎn)到另一個狀態(tài),其具有的存儲特性也是時序邏輯的基本特征。

圖片

其內(nèi)部結(jié)構(gòu)可以由3個RS鎖存器構(gòu)成

將其繪制成一個模型,最簡單的如下圖表示,D為數(shù)據(jù)輸入端,clk為時鐘輸入端,Q為數(shù)據(jù)輸出端口

圖片

這種D觸發(fā)器的功能也是相當(dāng)簡單的,就是當(dāng)CLK上升沿到來時,Q的輸出等于D,特征方程寫為 Q=D* (沒有任何控制輸入的情況下)。 波形圖如下所示:

圖片

為了進一步具體得知其作用,接下來在FPGA開發(fā)板上展示其功能,使用的辦卡為德致倫的genesys2,芯片為kintex-7系列的xc7k325tffg900-2。

為了更加全面一些,在此為D觸發(fā)器增加復(fù)位功能(按下按鈕回到初始狀態(tài)),此時可以有兩種復(fù)位D觸發(fā)器,一種是同步復(fù)位,一種是異步復(fù)位。

同步復(fù)位:按鈕按下,上升沿到來時刻復(fù)位,復(fù)位動作和系統(tǒng)時鐘同步。

異步復(fù)位:按鈕按下立刻復(fù)位,復(fù)位無需看系統(tǒng)時鐘的臉色。

下面給出本設(shè)計的模塊框圖:

圖片

說明一下各個端口的作用,sys_clk為時鐘,sys_rst_n為復(fù)位,key_in為按鍵輸入,即為觸發(fā)器的D,led_out為輸出,本demo會將其接到開發(fā)板的燈上,用燈的亮滅展示D觸發(fā)器的效果。

首先展示同步D觸發(fā)器的verilog代碼和testbench以及仿真結(jié)果。

module flip_flop(


input wire sys_clk,
input wire sys_rst_n,
input wire key_in,


output reg led_out
    );


always@(posedge sys_clk)


if (sys_rst_n == 1'b0)
    led_out <= 1'b0;


else
    led_out <= key_in;

endmodule


————————————————————testbench——————————————————————————————————
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2023/01/21 20:02:21
// Design Name: 
// Module Name: tb_flip_flop
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////




module tb_flip_flop(


    );
    reg sys_clk;
    reg sys_rst_n;
    reg key_in;


    wire led_out;


    initial begin
        sys_clk = 1'b1; //時鐘信號初始化為1


        sys_rst_n <= 1'b0; //復(fù)位信號初始化,因為低電平有效,所以為0
        key_in    <= 1'b0; //輸入信號的初始化

        #20


        sys_rst_n <= 1'b1; //20ns后,復(fù)位信號釋放,因為低電平復(fù)位,所以變成高電平開始工作。


        #210
        sys_rst_n <= 1'b0;


        #40
        sys_rst_n <= 1'b1; //復(fù)位40ns再次釋放


    end


always #10 sys_clk = ~sys_clk;


always #20 key_in <= {$random}%2; //20ns產(chǎn)生一次隨機數(shù),比時鐘周期大,利于波形觀察


flip_flop flip_flop_inst


(
    .sys_clk(sys_clk),
    .sys_rst_n(sys_rst_n),
    .key_in(key_in),


    .led_out(led_out)
);


endmodule

仿真結(jié)果跑500ns:

圖片

可以發(fā)現(xiàn),盡管系統(tǒng)已經(jīng)處于復(fù)位釋放的狀態(tài)(復(fù)位鍵為高電平),時鐘,數(shù)據(jù)和上升沿也都到來,但是輸出會在時鐘的下一拍進行變化。 **即:當(dāng)時鐘和信號在同一時刻變化時,我們以時鐘的上升沿前一時刻采集的輸入信號為依據(jù)來產(chǎn)生輸出信號。 **

下面是異步D觸發(fā)器的代碼,區(qū)別是增加了復(fù)位下降沿到來時刻的敏感性(always語句),testbench和同步D觸發(fā)器的一致。

module flip_flop(


input wire sys_clk,
input wire sys_rst_n,
input wire key_in,


output reg led_out
    );


always@(posedge sys_clk or negedge sys_rst_n)


if (sys_rst_n == 1'b0)
    led_out <= 1'b0;


else
    led_out <= key_in;

endmodule

圖片

可以觀察到復(fù)位下降沿到來時刻,輸出即刻置為0,經(jīng)過綜合之后的RTL電路如圖所示,和設(shè)計(異步D觸發(fā)器電路,同步D觸發(fā)器電路多一個MUX模塊)的差不多。

圖片

然后分配管腳。

此次實驗中出現(xiàn)的一個問題是,此次使用的FPGA已經(jīng)沒有單端口時鐘輸出,所以需要調(diào)用PLL的IP核合成輸出一個單端口的時鐘信號,這個準(zhǔn)備下一篇再說。

實驗設(shè)備(謝謝老板買的高級貨,可惜許可證快到期了):

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

    131484
  • D觸發(fā)器
    +關(guān)注

    關(guān)注

    3

    文章

    164

    瀏覽量

    47917
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1605

    瀏覽量

    80625
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61158
  • 時序邏輯電路
    +關(guān)注

    關(guān)注

    2

    文章

    94

    瀏覽量

    16546
收藏 人收藏

    評論

    相關(guān)推薦

    時序邏輯電路設(shè)計

    時序邏輯電路設(shè)計6.1 基本D觸發(fā)器的設(shè)計6.2 JK觸發(fā)器6.3 帶異步復(fù)位/置位端的使能T觸發(fā)器
    發(fā)表于 03-20 10:04

    時序邏輯電路的概述和觸發(fā)器

    的對象就是觸發(fā)器。 描述時序電路時通常使用狀態(tài)表和狀態(tài)圖,我們分析時序電路的方法通常是比較相鄰的兩種狀態(tài)(即現(xiàn)態(tài)和次態(tài))。 例 1:列出下表所示時序電路
    發(fā)表于 08-23 10:36

    請問怎樣去設(shè)計多輸入時序邏輯電路?

    多輸入時序電路的基本原理是什么?基于數(shù)據(jù)選擇D觸發(fā)器的多輸入時序邏輯電路設(shè)計
    發(fā)表于 04-29 07:04

    觸發(fā)器時序邏輯電路

    一、基本要求1、理解R-S觸發(fā)器、J-K觸發(fā)器D觸發(fā)器邏輯功能;2、掌握觸發(fā)器構(gòu)成的
    發(fā)表于 08-26 11:40 ?57次下載

    D觸發(fā)器

    D觸發(fā)器 同步式D觸發(fā)器邏輯電路D觸發(fā)器功能
    發(fā)表于 10-20 09:57 ?2598次閱讀
    <b class='flag-5'>D</b><b class='flag-5'>觸發(fā)器</b>

    時序邏輯電路實例解析

    時序邏輯電路實例解析 一、觸發(fā)器 1、電位觸發(fā)方式觸發(fā)器
    發(fā)表于 04-15 13:46 ?5590次閱讀

    基于D觸發(fā)器和數(shù)據(jù)選擇的多輸入時序網(wǎng)絡(luò)的電路設(shè)計

      在SSI時序邏輯電路設(shè)計中,遵循的設(shè)計準(zhǔn)則是:在保證所設(shè)計的時序邏輯電路具有正確功能的前提下,觸發(fā)器的激勵函數(shù)應(yīng)最小化,從而簡化
    發(fā)表于 08-13 09:22 ?3256次閱讀
    基于<b class='flag-5'>D</b><b class='flag-5'>觸發(fā)器</b>和數(shù)據(jù)選擇<b class='flag-5'>器</b>的多輸入<b class='flag-5'>時序</b>網(wǎng)絡(luò)的<b class='flag-5'>電路設(shè)計</b>

    時序邏輯電路分為幾類

    時序邏輯電路是由組合邏輯電路與記憶電路(又稱存儲電路) 組合而成的。 常見時序
    的頭像 發(fā)表于 02-26 15:25 ?5.1w次閱讀

    時序邏輯電路的分析方法

    將驅(qū)動方程代入相應(yīng)觸發(fā)器的特性方程中,便得到該觸發(fā)器的次態(tài)方程。時序邏輯電路的狀態(tài)方程由各觸發(fā)器次態(tài)的
    的頭像 發(fā)表于 02-28 14:06 ?2.5w次閱讀

    時序邏輯電路設(shè)計同步計數(shù)

    時序電路的考察主要涉及分析與設(shè)計兩個部分,上文介紹了時序邏輯電路的一些分析方法,重點介紹了同步時序電路分析的步驟與注意事項。 本文就時序
    的頭像 發(fā)表于 05-22 17:01 ?3395次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯電路設(shè)計</b><b class='flag-5'>之</b>同步計數(shù)<b class='flag-5'>器</b>

    時序邏輯電路的分析方法

      時序邏輯電路分析和設(shè)計的基礎(chǔ)是組合邏輯電路觸發(fā)器,所以想要分析和設(shè)計,前提就是必須熟練掌握各種常見的組合邏輯電路
    的頭像 發(fā)表于 05-22 18:24 ?3912次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯電路</b>的分析方法

    D觸發(fā)器與Latch鎖存電路設(shè)計

    D觸發(fā)器,是時序邏輯電路中必備的一個基本單元,學(xué)好 D 觸發(fā)器,是學(xué)好
    的頭像 發(fā)表于 10-09 17:26 ?3522次閱讀
    <b class='flag-5'>D</b><b class='flag-5'>觸發(fā)器</b>與Latch鎖存<b class='flag-5'>器</b><b class='flag-5'>電路設(shè)計</b>

    時序邏輯電路有哪些 時序邏輯電路和組合邏輯電路區(qū)別

    產(chǎn)生相應(yīng)的輸出信號。本文將詳細(xì)介紹時序邏輯電路的分類、基本原理、設(shè)計方法以及與組合邏輯電路的區(qū)別。 一、時序邏輯電路的分類
    的頭像 發(fā)表于 02-06 11:18 ?9990次閱讀

    觸發(fā)器時序邏輯電路詳解

    在數(shù)字電路設(shè)計中,觸發(fā)器時序邏輯電路是構(gòu)建復(fù)雜數(shù)字系統(tǒng)不可或缺的基礎(chǔ)元素。觸發(fā)器(Flip-Flop)作為基本的存儲單元,能夠存儲一位二進
    的頭像 發(fā)表于 07-18 17:43 ?1756次閱讀

    時序邏輯電路有哪些結(jié)構(gòu)特點呢

    具有兩個穩(wěn)定狀態(tài)的電路,可以用來存儲一位二進制信息。觸發(fā)器的類型有很多,如SR觸發(fā)器、JK觸發(fā)器D觸發(fā)
    的頭像 發(fā)表于 08-28 11:07 ?415次閱讀