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

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

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

【教程分享】在FPGA中,同步信號、異步信號和亞穩(wěn)態(tài)的理解

電子發(fā)燒友論壇 ? 來源:未知 ? 2023-05-16 09:30 ? 次閱讀

本系列將帶來FPGA的系統(tǒng)性學(xué)習(xí),從最基本的數(shù)字電路基礎(chǔ)開始,最詳細(xì)操作步驟,最直白的言語描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業(yè)學(xué)生、初入職場小白及打算進(jìn)階提升的職業(yè)開發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會。


系統(tǒng)性的掌握技術(shù)開發(fā)以及相關(guān)要求,對個人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對大家有所幫助。后續(xù)會陸續(xù)更新 Xilinx 的 Vivado、ISE 及相關(guān)操作軟件的開發(fā)的相關(guān)內(nèi)容,學(xué)習(xí)FPGA設(shè)計(jì)方法及設(shè)計(jì)思想的同時,實(shí)操結(jié)合各類操作軟件,會讓你在技術(shù)學(xué)習(xí)道路上無比的順暢,告別技術(shù)學(xué)習(xí)小BUG卡破腦殼,告別目前忽悠性的培訓(xùn)誘導(dǎo),真正的去學(xué)習(xí)去實(shí)戰(zhàn)應(yīng)用,這種快樂試試你就會懂的。話不多說,上貨。


在FPGA中,同步信號、異步信號和亞穩(wěn)態(tài)的理解

PGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列。主要是利用內(nèi)部的可編程邏輯實(shí)現(xiàn)設(shè)計(jì)者想要的功能。FPGA屬于數(shù)字邏輯芯片,其中也有可能會集成一部分模擬電路的功能,大多數(shù)模擬電路都是當(dāng)做asic進(jìn)行工作的,可編程的部分大多數(shù)都是數(shù)字邏輯部分。


數(shù)字邏輯電路是由組合邏輯和時序邏輯器件構(gòu)成,在時序邏輯器件中,常用就是時鐘觸發(fā)的寄存器。



如果在設(shè)計(jì)中,所有的寄存器的時鐘端都是連接的同一個時鐘,那么稱之為同步電路設(shè)計(jì)。所謂同步也就是所有的寄存器的輸出端都是由同一個時鐘端驅(qū)動出來的,所有的寄存器在同一個步調(diào)上進(jìn)行更新。


同步電路中的信號,我們稱之為同步信號。


如果在設(shè)計(jì)中,寄存器的時鐘端連接在不同的時鐘上,那么稱之為異步電路設(shè)計(jì)。



在異步電路中,被clk1驅(qū)動的寄存器和組合邏輯電路構(gòu)成時鐘域clk1的電路,被clk2驅(qū)動的寄存器和組合邏輯電路構(gòu)成時鐘域clk2的電路。信號從clk1的時鐘域到clk2的時鐘域,被稱為跨時鐘域。而對于信號D5來說,我們認(rèn)為它是clk1時鐘域的信號,那么對于clk2時鐘域來說,就是異步信號,因?yàn)樗慌cclk2的驅(qū)動沿對齊。


寄存器有一種特性,在clk的有效邊沿時,采樣數(shù)據(jù)D,輸出到Q,此過程如果想要穩(wěn)定進(jìn)行,那么要求,數(shù)據(jù)D在clk有效邊沿之前一段時間保持穩(wěn)定(建立時間),在clk有效邊沿之后一段時間保持穩(wěn)定(保持時間),如果任何一個不滿足,就會導(dǎo)致此過程失敗,結(jié)果就是clk的有效邊沿過去后,Q的值可能就不會出現(xiàn)預(yù)想值。那么是什么呢?先不著急,后面慢慢談。


在真實(shí)的電路中,各部分元器件都是有延遲的。對于同步電路來說,Q的更新都是在clk上上升沿之后的一段時間(Tco:輸出延遲),輸出的數(shù)據(jù)經(jīng)過組合邏輯或者線路也會有延遲(delay:線路延遲),到達(dá)下一個寄存器。此時,信號早就偏離了clk的上升沿。所以對于下級寄存器來說,這個信號也是“異步信號”。所以說真實(shí)電路中,全部的信號都是“異步信號”。


那么為什么在同步電路中,我們都稱為同步信號呢?


因?yàn)樵陔娐分校械难舆t都是已知的(TCO、delay等等),我們可以通過擴(kuò)大clk的周期,確保clk的周期大于TCO等等之類延遲之和,那么就可以保證下級寄存器采樣到數(shù)據(jù)。所以這種電路中的信號,我們依然把他稱之為同步信號。


在跨時鐘域時,由于兩個時鐘之間沒有任何關(guān)系,無論怎么調(diào)整周期,都不一定能滿足下級寄存器采樣到數(shù)據(jù),肯定不能調(diào)成一致周期,那就變成了同步設(shè)計(jì)。例:用寄存器采樣外部按鍵的輸入,那么此時外部按鍵的信號對于寄存器來說就是異步信號,因?yàn)橥獠啃盘柺请S時都有可能有效,所以無論怎么調(diào)整,都不一定能夠保證信號滿足寄存器的建立保持時間。


那么既然在很多情況下,無論如何也避免不了異步信號帶的壞處,那么能不能全部采用同步設(shè)計(jì)?顯然是不太現(xiàn)實(shí),不同接口或者存儲器等都有自己頻率,全部采用同步電路設(shè)計(jì)的方式將失去很多功能。例如:千兆以太網(wǎng)的GMII接口,采用125M接口,1080P的HDMI接口采用148.5MHz的接口。


既然無法避免,那就勇敢面對。


當(dāng)信號不滿足建立和保持時間時,寄存器會輸出什么值呢?



在上圖中,輸入信號在clock的上升沿左右有了一個從高到低的變化,即不滿足建立和保持時間。那么寄存器的輸出端就會輸出一個既不是高電平也是低電平的一個電平。


在數(shù)字電路中,高電平和低電平是兩個穩(wěn)定的電平值,能夠一直維持不變化。如果不滿足建立或者保持時間的話,輸出的電平值不高也不低,但是此電平不穩(wěn)定,稱為亞穩(wěn)態(tài)(類似于健康和亞健康)。亞穩(wěn)定是不穩(wěn)定的,終究要向高或者低電平進(jìn)行變化。


那么有人說,亞穩(wěn)態(tài)終究會走向穩(wěn)態(tài),那么豈不是沒有影響了。答案是錯誤的??梢韵胂?,亞穩(wěn)態(tài)走向穩(wěn)態(tài)是必然趨勢,可是需要一定的時間,如果在這一段時間內(nèi),被其他電路所引用,那么就會造成亞穩(wěn)態(tài)的傳播,進(jìn)而導(dǎo)致整個電路的癱瘓(因?yàn)檎麄€電路都會變成非高非低的信號在運(yùn)行)。


那么應(yīng)該如何處理呢?


對于單bit信號,我們一般采用同步寄存器鏈來進(jìn)行處理。



對于同步寄存器鏈的要求有三點(diǎn):



第一:在同步寄存器鏈中,所有的寄存器都必須用同一個或者相關(guān)(例如:一個時鐘是另外一個時鐘的相位延遲180度)時鐘驅(qū)動。


第二:第一個寄存器的輸入為外部的異步信號。


第三:在同步寄存器鏈中,所有的輸出只能給下一級使用。只有最后一級寄存器可以給其他的電路使用。


對于第一點(diǎn)和第二點(diǎn),不再解釋。下面解釋一下第三點(diǎn)。



D3信號為clk2時鐘域的異步信號,那么D4信號就有可能出現(xiàn)亞穩(wěn)態(tài)。假設(shè)D4信號出現(xiàn)亞穩(wěn)態(tài)后,恢復(fù)至穩(wěn)態(tài)的時間為T1,組合邏輯2的延遲為T2,那么D5信號得到穩(wěn)態(tài)的時間為T1+T2。如果沒有組合邏輯2時,D5信號得到穩(wěn)態(tài)的時間為T1。如果clk2的周期大于T1+T2,那么有無組合邏輯2,將不受影響;如果clk2的周期大于T1且小于T1+T2,那么有組合邏輯2,就會造成亞穩(wěn)態(tài)的傳播。如果clk2的周期小于T1,也會亞穩(wěn)態(tài)的傳播。


綜上所述,組合邏輯2,還是不要有的好,能夠大大增加D5得到穩(wěn)態(tài)的幾率。


在上述敘述中,我們只是提高了得到穩(wěn)態(tài)的幾率,但是還是有亞穩(wěn)態(tài)傳播的幾率。


在實(shí)際電路中,一般同步寄存器鏈會有兩級甚至多級。那么多級的同步寄存器鏈會有什么作用呢?


在上述敘述中得知,亞穩(wěn)態(tài)是一種不穩(wěn)定的狀態(tài),會向穩(wěn)定狀態(tài)過渡。如果第一級寄存器輸出亞穩(wěn)態(tài),恢復(fù)時間為T1,如果clk的周期小于T1,那么亞穩(wěn)態(tài)將會在第二級寄存器輸出,由于第一級亞穩(wěn)態(tài)已經(jīng)經(jīng)過clk一個周期的恢復(fù),所以在第二級寄存器輸出時,亞穩(wěn)態(tài)恢復(fù)至穩(wěn)態(tài)的時間T2將會縮短。T2< T1。


再多級的寄存器,也無法避免亞穩(wěn)態(tài),只是級數(shù)越多,最后一級輸出亞穩(wěn)態(tài)的幾率將會越低。


在實(shí)際電路中,一般采用兩級或者三級即可。






聲明本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請注明以上來源。如需社區(qū)合作及入群交流,請?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。


更多熱點(diǎn)文章閱讀

  • 電子工程師分享:常用電平轉(zhuǎn)換電路、電源自動切換電路、太陽能充電電路總結(jié)

  • 基于32位RISC-V設(shè)計(jì)的互聯(lián)型微控制器,沁恒微CH32V307開發(fā)樣例

  • RK3568!四核64位ARMv8.2A架構(gòu),匯聚編譯源碼及實(shí)戰(zhàn)樣例

  • 尺寸僅有21mm*51mm,板邊采用郵票孔設(shè)計(jì),合宙 Air105 核心板開發(fā)總結(jié)

  • 基于ESP32芯片,搭載OpenHarmony操作系統(tǒng),NiobeU4開發(fā)板應(yīng)用實(shí)例


原文標(biāo)題:【教程分享】在FPGA中,同步信號、異步信號和亞穩(wěn)態(tài)的理解

文章出處:【微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

原文標(biāo)題:【教程分享】在FPGA中,同步信號、異步信號和亞穩(wěn)態(tài)的理解

文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    復(fù)位電路的設(shè)計(jì)問題

    都有異步復(fù)位端口,因此采用異步復(fù)位可以節(jié)約資源。 ⑵設(shè)計(jì)相對簡單。 ⑶異步復(fù)位信號識別方便,而且可以很方便地使用fpga的全局復(fù)位端口。 缺
    的頭像 發(fā)表于 11-15 11:13 ?205次閱讀
    復(fù)位電路的設(shè)計(jì)問題

    pwm同步調(diào)制和異步調(diào)制的區(qū)別

    的差異。 PWM同步調(diào)制和異步調(diào)制的基本概念 1.1 PWM同步調(diào)制 PWM同步調(diào)制是指調(diào)制信號與載波
    的頭像 發(fā)表于 08-14 11:15 ?2607次閱讀

    怎么判斷同步清零和異步清零

    異步清零都是對寄存器或計(jì)數(shù)器進(jìn)行清零操作的方式,它們的主要區(qū)別在于清零信號的觸發(fā)方式。 同步清零:同步清零是指在時鐘信號的控制下,將寄存器
    的頭像 發(fā)表于 07-23 11:11 ?4059次閱讀

    異步置零和同步置零的區(qū)別在哪里

    異步置零和同步置零是數(shù)字電路設(shè)計(jì)兩種不同的置零方法。它們實(shí)現(xiàn)方式、性能和應(yīng)用場景上有所不同。 實(shí)現(xiàn)方式: 異步置零:
    的頭像 發(fā)表于 07-23 11:09 ?2671次閱讀

    同步電路和異步電路怎么判斷正負(fù)極

    同步電路和異步電路是電子電路設(shè)計(jì)的兩種基本類型。它們設(shè)計(jì)、工作原理和應(yīng)用方面都有很大的不同。 同步電路和
    的頭像 發(fā)表于 07-22 17:37 ?561次閱讀

    同步電路和異步電路的優(yōu)缺點(diǎn)

    同步電路和異步電路是數(shù)字電路設(shè)計(jì)的兩種基本類型。它們設(shè)計(jì)方法、性能、功耗、可靠性等方面存在顯著差異。 同步電路 定義
    的頭像 發(fā)表于 07-22 17:35 ?1579次閱讀

    同步電路和異步電路的優(yōu)缺點(diǎn)有哪些

    同步電路和異步電路是數(shù)字電路設(shè)計(jì)的兩種基本類型,它們設(shè)計(jì)方法、性能特點(diǎn)和應(yīng)用領(lǐng)域等方面存在顯著差異。 同步電路 定義
    的頭像 發(fā)表于 07-22 17:01 ?1340次閱讀

    FPGA同步復(fù)位和異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)的復(fù)位操作是設(shè)計(jì)過程不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動和穩(wěn)定運(yùn)行。
    的頭像 發(fā)表于 07-17 11:12 ?1724次閱讀

    FPGA異步信號處理方法

    FPGA(現(xiàn)場可編程門陣列)處理異步信號時,需要特別關(guān)注信號同步化、穩(wěn)定性以及潛在的
    的頭像 發(fā)表于 07-17 11:10 ?1257次閱讀

    示波器射頻信號測試的應(yīng)用

    測試前的準(zhǔn)備、示波器的設(shè)置、測試步驟以及結(jié)果分析等方面,旨在幫助讀者更好地理解和掌握示波器射頻信號測試的應(yīng)用。
    的頭像 發(fā)表于 05-27 16:13 ?1114次閱讀

    數(shù)字電路亞穩(wěn)態(tài)是什么

    在數(shù)字電路的設(shè)計(jì)與實(shí)現(xiàn),亞穩(wěn)態(tài)是一個不可忽視的現(xiàn)象。它可能由多種因素引發(fā),對電路的穩(wěn)定性和可靠性產(chǎn)生嚴(yán)重影響。本文將深入探討數(shù)字電路中亞穩(wěn)態(tài)的概念、產(chǎn)生原因、影響以及應(yīng)對策略,以期為讀者提供全面而深入的
    的頭像 發(fā)表于 05-21 15:29 ?1379次閱讀

    verilog同步異步的區(qū)別 verilog阻塞賦值和非阻塞賦值的區(qū)別

    Verilog是一種硬件描述語言,用于設(shè)計(jì)和模擬數(shù)字電路。Verilog,同步異步是用來描述數(shù)據(jù)傳輸和信號處理的兩種不同方式,而阻塞賦
    的頭像 發(fā)表于 02-22 15:33 ?1822次閱讀

    SPWM脈寬調(diào)制是異步還是同步?

    SPWM脈寬調(diào)制是異步還是同步? SPWM脈寬調(diào)制是一種用于調(diào)節(jié)交流電壓的技術(shù),通過調(diào)整脈沖的寬度來模擬純正的正弦電壓信號SPWM技術(shù)
    的頭像 發(fā)表于 02-06 11:33 ?859次閱讀

    FPGA輸入的時鐘信號必須是方波么?正弦波會有影響么?

    FPGA設(shè)計(jì),時鐘信號通常需要滿足一定的要求。 首先,時鐘信號FPGA
    的頭像 發(fā)表于 01-31 11:31 ?3732次閱讀

    觸發(fā)電路同步電壓與同步信號有何區(qū)別

    觸發(fā)電路同步電壓與同步信號有何區(qū)別? 觸發(fā)電路同步電壓與
    的頭像 發(fā)表于 01-31 10:57 ?1307次閱讀