99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

時(shí)序約束系列之D觸發(fā)器原理和FPGA時(shí)序結(jié)構(gòu)

潘文明 ? 來源:明德?lián)P吳老師 ? 作者:明德?lián)P吳老師 ? 2022-07-11 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

明德?lián)P有完整的時(shí)序約束課程與理論,接下來我們會(huì)一章一章以圖文結(jié)合的形式與大家分享時(shí)序約束的知識(shí)。要掌握FPGA時(shí)序約束,了解D觸發(fā)器以及FPGA運(yùn)行原理是必備的前提。今天第一章,我們就從D觸發(fā)器開始講起。

一、D觸發(fā)器的基本概念

1、D觸發(fā)器結(jié)構(gòu)

首先是D觸發(fā)器的結(jié)構(gòu),其硬件電路圖如下所示,可以看到D觸發(fā)器包含復(fù)位、時(shí)鐘、輸入和輸出;信號(hào)由D端輸入,clk給到上升沿的指示,Q端輸出信號(hào)。

pYYBAGLLmWyAMUelAABC-4R0Mxw405.png

D觸發(fā)器的功能很簡(jiǎn)單。

當(dāng)R等于0時(shí),q固定輸出0;

當(dāng)R等于1時(shí),遇到CLK的上升沿時(shí),將D的值賦給Q,D是什么Q就是什么;非CLK的上升沿,Q保持不變。

2、D觸發(fā)器代碼

D觸發(fā)器的代碼也很簡(jiǎn)單,如下圖所示,從代碼的描述來看,依舊是

當(dāng)rst_n等于0時(shí),q固定輸出0;

當(dāng)rst_n等于1時(shí),遇到clk的上升沿時(shí),將d的值賦給q,d是什么q就是什么;非clk的上升沿,q保持不變。

poYBAGLLmXSAUYSJAAAnqkVKOxM120.png


3、D觸發(fā)器波形

D觸發(fā)器工作波形如下所示,時(shí)鐘處于上升沿的時(shí),如果輸入信號(hào)D為1,輸出信號(hào)Q也為1;如果輸入信號(hào)D為0,那么輸出信號(hào)Q也為0。

pYYBAGLLmXyAWrBaAAAmNidVcjI115.png

4、建立時(shí)間和保持時(shí)間

前面波形圖可以看到,D觸發(fā)器在上升沿處進(jìn)行信號(hào)采集,為了保證采集到的數(shù)據(jù)準(zhǔn)確性,信號(hào)D在上升沿前后會(huì)保持狀態(tài)一段時(shí)間。在上升沿前的這段時(shí)間為setup_time,叫做建立時(shí)間;上升沿后的這段時(shí)間為hold_time部分,叫做保持時(shí)間。
1
關(guān)于建立時(shí)間和保持時(shí)間有幾個(gè)關(guān)鍵點(diǎn)需要注意。

首先D觸發(fā)器的數(shù)據(jù)輸入端必須在建立時(shí)間前到達(dá),并且要保持到持續(xù)時(shí)間以后,這樣才可以保證FPGA可以采集到正確的數(shù)據(jù)。

其次建立時(shí)間和保持時(shí)間是D觸發(fā)器的固有屬性,是不可改變的。注意,這里說的不可改變,是指不能從代碼層次去改變。例如我們買了一個(gè)FPGA開發(fā)板,其FPGA芯片的D觸發(fā)器建立時(shí)間和保持時(shí)間就是固定的,沒辦法從VERILOG去修改,除非換一個(gè)芯片。

二、電路的延時(shí)

1、電路延時(shí)原理

我們知道從物理層面看電平通過每個(gè)階段都是需要一段時(shí)間的,這就是電路的延時(shí),我們通過FPGA中最經(jīng)典的結(jié)構(gòu)來學(xué)習(xí)一下電路的延時(shí)。使用了兩個(gè)D觸發(fā)器,中間由組合邏輯進(jìn)行相連,即通過一個(gè)組合邏輯電路將兩個(gè)D觸發(fā)器相連。電路圖如下圖所示:

pYYBAGLLmYOAYirmAABQyl_FbbE877.png

從圖中可以看出,一個(gè)有效信號(hào)經(jīng)過D觸發(fā)器1之后,接著經(jīng)過一段組合邏輯(可以是加法器、選擇器、乘法器這些電路,也可以僅僅是連線)然后到達(dá)另一個(gè)D觸發(fā)器2,D觸發(fā)器2對(duì)信號(hào)進(jìn)行判斷后繼續(xù)進(jìn)行輸出。下面逐個(gè)分析這個(gè)基本結(jié)構(gòu)里面包含的時(shí)間參數(shù)。

首先Tclk1是時(shí)鐘到D觸發(fā)器1的時(shí)間。Tclk2為時(shí)鐘到達(dá)D觸發(fā)器2的時(shí)間,在真實(shí)的物理情況下,因?yàn)橛芯€路的延時(shí),兩個(gè)時(shí)鐘采到的上升沿其實(shí)是不同的,有一點(diǎn)微小的差別;但是FPGA里面,我們經(jīng)常把這個(gè)時(shí)間忽略掉,因?yàn)槲覀僃PGA時(shí)鐘時(shí)專門優(yōu)化過的,它們之間的差別會(huì)比較小,因此在這里我們先忽略不計(jì)。Tclk1和Tclk2是時(shí)鐘延時(shí)。

還有一段時(shí)間為D觸發(fā)器的傳輸延時(shí),即上升沿之后,采集到的數(shù)據(jù)從進(jìn)入到出來這段時(shí)間延時(shí)。如下圖所示,輸出信號(hào)Q在上升沿后一段時(shí)間由0變1,這段為D觸發(fā)器的傳輸延時(shí)。

pYYBAGLLmXyAWrBaAAAmNidVcjI115.png

接著D觸發(fā)器1之后信號(hào)需要通過組合邏輯賦到D觸發(fā)器2之前的位置,這段時(shí)間是組合邏輯的延時(shí),即信號(hào)通過組合邏輯這段時(shí)間的延時(shí)為組合邏輯延時(shí)Tdata。

最后還有前面講到的建立時(shí)間和保持時(shí)間,信號(hào)在D觸發(fā)器2會(huì)有建立時(shí)間和保持時(shí)間,這就是D觸發(fā)器本身的延時(shí)。

2、時(shí)序表示電路的延時(shí)

這里我們可以用時(shí)序來表示這組結(jié)構(gòu)中的信號(hào)變化。如下所示,比如我們有兩個(gè)時(shí)鐘上升沿,在最開始,所有位置的信號(hào)都為0。

poYBAGLLmZSAXakJAAAB5zq3MKU239.png

假設(shè)一個(gè)由0變1的信號(hào)需要通過前面的組合邏輯,首先D觸發(fā)器1前面一段由0變1,即圖中點(diǎn)a到點(diǎn)b變?yōu)?,這段時(shí)間在時(shí)序中如下圖中點(diǎn)a與點(diǎn)b的位置。

poYBAGLLmZqAPilfAACMT25owk4611.png

1)D觸發(fā)器傳輸延時(shí)

接著是D觸發(fā)器的傳輸延時(shí),在時(shí)鐘上升沿處,信號(hào)1從D觸發(fā)器1后輸出,即下圖中信號(hào)從c點(diǎn)輸出,這段時(shí)間的延時(shí)在時(shí)序中為時(shí)鐘上升沿處到信號(hào)輸出的延時(shí),即下面時(shí)序圖中Tco部分。

poYBAGLLmaGAPhGfAACQjlbETdE856.png

2)組合邏輯延時(shí)間

之后信號(hào)會(huì)通過組合邏輯,這段時(shí)間為組合邏輯的延時(shí)Tdata。如下圖所示,此信號(hào)由點(diǎn)c通過組合邏輯接著傳輸?shù)近c(diǎn)d,在時(shí)序圖中為Tdata部分。

poYBAGLLmaiAM5bfAACZy1Q0MRI360.png

3)建立時(shí)間

當(dāng)然不要忘記我們前面講的D觸發(fā)器傳輸信號(hào)會(huì)有一段的建立時(shí)間,因此在時(shí)序中信號(hào)1會(huì)提前到達(dá)d點(diǎn),即信號(hào)到達(dá)d點(diǎn)時(shí),到達(dá)下一個(gè)時(shí)鐘上升沿還有一段時(shí)間,如下面時(shí)序圖中Tus部分所示。

pYYBAGLLmbGADh1HAACbj7-mILQ643.png

當(dāng)然像上圖中這樣信號(hào)到達(dá)d點(diǎn)的時(shí)間與建立時(shí)間相等的情況是比較理想的狀態(tài),現(xiàn)實(shí)工程中大多數(shù)情況下信號(hào)1都會(huì)提前到達(dá)d點(diǎn),等待建立時(shí)間的到來,即時(shí)間預(yù)量。實(shí)際的時(shí)序圖如下所示,可以看到信號(hào)達(dá)到d點(diǎn)的時(shí)間與D觸發(fā)器建立時(shí)間并不重合,中間會(huì)有一段時(shí)間預(yù)量,這才是實(shí)際工程中可以見到的情況。

poYBAGLLmbqAZ-gvAAAX5p2NcTs085.png

以上就是由0變1的信號(hào)通過兩個(gè)D觸發(fā)器和一段組合邏輯的流程。在理想狀態(tài)下整個(gè)過程的延時(shí)與時(shí)間周期是相等的,但是實(shí)際情況下會(huì)有一定的變化,這時(shí)需要我們具體問題具體分析。

三、D觸發(fā)器在FPGA中的使用

1、FPGA的電路結(jié)構(gòu)

了解了兩個(gè)D觸發(fā)器的組合使用,下面學(xué)習(xí)FPGA的基本電路結(jié)構(gòu)。

pYYBAGLLmb-AAv0cAABAAWSmPq0337.png

FPGA的基本電路結(jié)構(gòu)如上圖所示。我們可以把電路分成兩個(gè)部分:D觸發(fā)器和組合邏輯。每?jī)蓚€(gè)D觸發(fā)器之間,都會(huì)有或多或少的組合邏輯。組合邏輯可以是乘法器、加法器、RAM,甚至就是一條簡(jiǎn)單的連線。前一個(gè)D觸發(fā)器的輸出端,經(jīng)過組合邏輯運(yùn)算后,給了下一個(gè)D觸發(fā)器的輸入端,等待時(shí)鐘上升沿的時(shí)候,再傳遞給D觸發(fā)器的輸出端。

上圖中,所有的D觸發(fā)器都統(tǒng)一受時(shí)鐘CLK的控制,都是在CLK的上升沿把輸入的值傳遞給輸出端。

FPGA中有4個(gè)組合邏輯A、B、C、D ,邏輯與邏輯之間,共使用了5個(gè)D觸發(fā)器傳輸數(shù)據(jù)。其中組合邏輯A持續(xù)20納秒,組合邏輯B持續(xù)40納秒,組合邏輯C持續(xù)50納秒,組合邏輯D持續(xù)35納秒。時(shí)鐘周期為100納秒,即上升沿100納秒產(chǎn)生一次;每個(gè)觸發(fā)器的建立時(shí)間為5納秒,保持時(shí)間為25納秒。

2、現(xiàn)實(shí)案例

為了便于理解,我們用一個(gè)生活中的例子類比一下D觸發(fā)器與組合邏輯的關(guān)系。如下圖所示,現(xiàn)在有一個(gè)生產(chǎn)線生產(chǎn)一款產(chǎn)品,一共需要4個(gè)步驟,分別由員工ABCD來完成,其中A做完一個(gè)工序需要2小時(shí),B需要1小時(shí),C需要3小時(shí),D是0.5小時(shí)。工廠統(tǒng)一規(guī)定每隔5個(gè)小時(shí)交接一次;為了避免交接混亂,要求交接點(diǎn)前5分鐘交接,交接點(diǎn)后10分鐘才能繼續(xù)工作。

poYBAGLLmcaAcfJvAABumncdysI897.png

此生產(chǎn)線就像是前面我們講到的FPGA電路結(jié)構(gòu),四個(gè)員工就相當(dāng)于FPGA中四個(gè)組合邏輯,大家在同一個(gè)環(huán)境下工作,被同一個(gè)時(shí)鐘所支配,相互間又有著傳輸關(guān)系。

要求每5個(gè)小時(shí)交接一次相當(dāng)于100納秒產(chǎn)生一次時(shí)鐘上升沿;每一位員工交接給下一位員工的這個(gè)過程就相當(dāng)于D觸發(fā)器將輸入的值賦給輸出。

所有員工在交接點(diǎn)前5分鐘都停下手中工作,進(jìn)入準(zhǔn)備交接狀態(tài),5分鐘相當(dāng)于D觸發(fā)器的建立時(shí)間5納秒;交接點(diǎn)后10分鐘,大家依舊保持交接狀態(tài),10分鐘相當(dāng)于D觸發(fā)器的保持時(shí)間25納秒。

公司的規(guī)定必須提前5分鐘,等待10分鐘進(jìn)行交接,就和D觸發(fā)器的硬件特性相同,交接時(shí)間是不能因?yàn)閭€(gè)人改變的;不論工作什么時(shí)候完成,在交接點(diǎn)前5分鐘一定要準(zhǔn)備交接,交接點(diǎn)后保持交接狀態(tài)10分鐘才可以繼續(xù)工作,這樣才可以保證整個(gè)生產(chǎn)線可以流暢進(jìn)行。

我們用了一個(gè)簡(jiǎn)單的案例比較清晰的理解了D觸發(fā)器,通俗來說就是需要傳輸?shù)臄?shù)據(jù)等待在D觸發(fā)器前,D觸發(fā)器每個(gè)時(shí)鐘都會(huì)在門口進(jìn)行檢測(cè),檢測(cè)到了有效數(shù)據(jù)后,在此時(shí)鐘上升沿進(jìn)行數(shù)據(jù)輸出。

審核編輯:湯梓紅

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

    關(guān)注

    1645

    文章

    22049

    瀏覽量

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

    關(guān)注

    3

    文章

    173

    瀏覽量

    48758
  • 時(shí)序約束
    +關(guān)注

    關(guān)注

    1

    文章

    118

    瀏覽量

    13683
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    FPGA的IO口時(shí)序約束分析

      在高速系統(tǒng)中FPGA時(shí)序約束不止包括內(nèi)部時(shí)鐘約束,還應(yīng)包括完整的IO時(shí)序約束
    發(fā)表于 09-27 09:56 ?2052次閱讀

    FPGA時(shí)序約束衍生時(shí)鐘約束和時(shí)鐘分組約束

    FPGA設(shè)計(jì)中,時(shí)序約束對(duì)于電路性能和可靠性非常重要。在上一篇的文章中,已經(jīng)詳細(xì)介紹了FPGA時(shí)序約束
    發(fā)表于 06-12 17:29 ?3425次閱讀

    什么是時(shí)序分析?教你掌握FPGA時(shí)序約束

    時(shí)序分析本質(zhì)上就是一種時(shí)序檢查,目的是檢查設(shè)計(jì)中所有的D觸發(fā)器是否能夠正常工作,也就是檢查D觸發(fā)器
    發(fā)表于 07-14 10:48 ?4729次閱讀
    什么是<b class='flag-5'>時(shí)序</b>分析?教你掌握<b class='flag-5'>FPGA</b><b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>

    FPGA I/O口時(shí)序約束講解

    前面講解了時(shí)序約束的理論知識(shí)FPGA時(shí)序約束理論篇,本章講解時(shí)序
    發(fā)表于 08-14 18:22 ?2279次閱讀
    <b class='flag-5'>FPGA</b> I/O口<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>講解

    FPGA設(shè)計(jì)為什么要加時(shí)序約束?加時(shí)序約束有什么作用?

    ,因此,為了避免這種情況,必須對(duì)fpga資源布局布線進(jìn)行時(shí)序約束以滿足設(shè)計(jì)要求。因?yàn)闀r(shí)鐘周期是預(yù)先知道的,而觸發(fā)器之間的延時(shí)是未知的(兩個(gè)觸發(fā)器
    發(fā)表于 08-29 09:34

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

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

    Xilinx時(shí)序約束培訓(xùn)教材

    時(shí)序約束的概念 時(shí)序約束主要包括周期約束(FFS到FFS,即觸發(fā)器
    發(fā)表于 03-16 18:10 ?0次下載

    FPGA時(shí)序約束方法

    FPGA時(shí)序約束方法很好地資料,兩大主流的時(shí)序約束都講了!
    發(fā)表于 12-14 14:21 ?19次下載

    FPGA中的時(shí)序約束設(shè)計(jì)

    一個(gè)好的FPGA設(shè)計(jì)一定是包含兩個(gè)層面:良好的代碼風(fēng)格和合理的約束。時(shí)序約束作為FPGA設(shè)計(jì)中不可或缺的一部分,已發(fā)揮著越來越重要的作用。毋
    發(fā)表于 11-17 07:54 ?2760次閱讀
    <b class='flag-5'>FPGA</b>中的<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>設(shè)計(jì)

    D觸發(fā)器結(jié)構(gòu)時(shí)序介紹

    D觸發(fā)器是一個(gè)具有記憶功能的,具有兩個(gè)穩(wěn)定狀態(tài)的信息存儲(chǔ)器件,是構(gòu)成多種時(shí)序電路的最基本邏輯單元,也是數(shù)字邏輯電路中一種重要的單元電路。
    的頭像 發(fā)表于 12-02 07:06 ?7374次閱讀
    <b class='flag-5'>D</b><b class='flag-5'>觸發(fā)器</b>:<b class='flag-5'>結(jié)構(gòu)</b>及<b class='flag-5'>時(shí)序</b>介紹

    FPGA時(shí)序約束的概念和基本策略

    A 時(shí)序約束的概念和基本策略 時(shí)序約束主要包括周期約束(FFS到FFS,即觸發(fā)器
    的頭像 發(fā)表于 09-30 15:17 ?5510次閱讀

    FPGA約束、時(shí)序分析的概念詳解

    A 時(shí)序約束的概念和基本策略 時(shí)序約束主要包括周期約束(FFS到FFS,即觸發(fā)器
    的頭像 發(fā)表于 10-11 10:23 ?6039次閱讀
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>約束</b>、<b class='flag-5'>時(shí)序</b>分析的概念詳解

    FPGA設(shè)計(jì)之時(shí)序約束

    上一篇《FPGA時(shí)序約束分享01_約束四大步驟》一文中,介紹了時(shí)序約束的四大步驟。
    發(fā)表于 03-18 10:29 ?1892次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)之<b class='flag-5'>時(shí)序</b><b class='flag-5'>約束</b>

    FPGA時(shí)序input delay約束

    本文章探討一下FPGA時(shí)序input delay約束,本文章內(nèi)容,來源于明德?lián)P時(shí)序約束專題課視頻。
    的頭像 發(fā)表于 07-25 15:37 ?3416次閱讀
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>時(shí)序</b>input delay<b class='flag-5'>約束</b>

    FPGA設(shè)計(jì)的D觸發(fā)器與亞穩(wěn)態(tài)

    系列整理數(shù)字系統(tǒng)設(shè)計(jì)的相關(guān)知識(shí)體系架構(gòu),為了方便后續(xù)自己查閱與求職準(zhǔn)備。對(duì)于FPGA和ASIC設(shè)計(jì)中,D觸發(fā)器是最常用的器件,也可以說是時(shí)序
    的頭像 發(fā)表于 05-12 16:37 ?2525次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)的<b class='flag-5'>D</b><b class='flag-5'>觸發(fā)器</b>與亞穩(wěn)態(tài)