[導(dǎo)讀]最經(jīng)典的2DFF 1-bit同步器如下,下圖結(jié)構(gòu)通常用于單bit控制信號的異步處理:
(一)單bit信號同步器
最經(jīng)典的2DFF 1-bit同步器如下,下圖結(jié)構(gòu)通常用于單bit控制信號的異步處理:
當(dāng)Rx Clock Domain第一級寄存器R1的時鐘上升沿“恰好”碰到Tx Clock的上升沿,也就是不滿足Rx Clock的建立保持時間要求時,就會采樣到亞穩(wěn)態(tài)的值,在第二級寄存器R2采樣R1的輸出前,有70%~80%的概率是R1的輸出已經(jīng)能穩(wěn)定在0或1,再經(jīng)過R2的二級觸發(fā)器后,穩(wěn)定的概率為99%。
注意:
第一級寄存器R1的行為到底是啥樣子的?由于cdc_s信號是Tx clock Domain,而R1寄存器的采用時鐘是Rx clock Domain,當(dāng)Rx clock采樣時,若cdc_s正好跳變(不滿足setup/hold),那么就會出現(xiàn)如下兩種情況,而前仿真是無法仿真出下圖2種行為的(具體見芯片設(shè)計之CDC異步電路(一)一文)。
上面的論述是基于電平方式,那么怎么確保脈沖能被采到呢?源時鐘域的時鐘慢的話,快采慢OK,否則慢采快就有如下漏采的問題。
怎么保證異步脈沖被采到?先不說展寬的方式,先看下圖所示,假設(shè)第一個posedge采樣到了不確定電平(紅線),后面在脈沖拉低之前,還有第二個posedge采樣到穩(wěn)定電平(綠線)。
也就是說,只要采樣周期T小于被采樣周期(有“3個沿”),可以是上升沿或者下降沿,這樣就能保證這個脈沖一定會被采樣到,為了方便計算,一般加0.5個采樣周期的裕度,即目的時鐘頻率是源時鐘頻率的1.5倍。
(二)DMUX同步器兩級寄存器(先進(jìn)工藝要求三級)的同步器通常用于控制信號的異步處理,但是data bus的異步處理呢?我們可以采用DMUX結(jié)構(gòu)。
注意:
(三)握手處理源時鐘域先將數(shù)據(jù)發(fā)送到總線上,并給出一個valid信號,而目標(biāo)時鐘域同步valid信號后,若valid信號為高電平則采樣總線數(shù)據(jù),并返回一個ready信號給源時鐘域。源時鐘域再次同步該ready信號,若ready信號為高,則代表一次握手成功,數(shù)據(jù)傳輸完畢,開始進(jìn)行下一次數(shù)據(jù)傳輸。
采用握手機(jī)制可以保證異步multi-bit數(shù)據(jù)傳輸不出現(xiàn)錯誤,但由于需要等待握手的完成再傳輸數(shù)據(jù),因此傳輸效率較低。
相比下文將解說的異或展開的辦法,異步握手處理的來回的延遲更大,容易造成脈沖漏采,這是缺點,但是可以保證目標(biāo)時鐘域始終能采集到源時鐘域(不論異步時鐘頻率相差多少),尤其是,在項目繼承、項目換人的情況下,更改設(shè)計頻率不會埋雷,這一點對于敏捷開發(fā)尤其重要。
另外一個技巧,我們可以利用(rd_en_cdc | rd_en_ack_d2)作為門控時鐘,控制源時鐘域的控制信號、數(shù)據(jù)信號的翻轉(zhuǎn),降低功耗,等(rd_en_cdc | rd_en_ack_d2)都為低時,啟動下一次傳輸,這樣子既保證了數(shù)據(jù)穩(wěn)定傳輸、也降低了功耗,同時項目也能穩(wěn)定繼承,避免埋雷。
(四)異步FIFO老生常談的異步FIFO,其本質(zhì)是采用格雷碼,在地址連續(xù)的情況下,其對應(yīng)格雷碼每個周期只變化1bit,因此可以直接異步采樣。
注意:
-
FIFO的overflow、underflow問題;
-
tx_addr是連續(xù)的,即地址hamming distance是1;
-
FIFO深度須2^n;
經(jīng)典的FIFO結(jié)構(gòu)如下:
核心電路:是將FIFO讀寫地址指針的二進(jìn)制碼轉(zhuǎn)成格雷碼,方便同步器打兩拍傳遞到對向時鐘域去做空滿判斷。
空滿判斷:為了區(qū)別空滿,我們增加1bit的地址(MSB),我習(xí)慣直接用Gray碼比較讀寫指針判定空滿:
-
當(dāng)Gray碼讀寫指針完全相等時,F(xiàn)IFO空;
-
當(dāng)Gray碼讀寫指針最高2bit相反,其余bit相同時,F(xiàn)IFO滿;通常二進(jìn)制碼比較空滿是:最高bit不同,其余bit相同,則FIFO滿,而格雷碼則不同哈。
(五)結(jié)繩法
假設(shè)源時鐘域的信號脈沖rd_en是周期性的出現(xiàn),那么可以每次出現(xiàn)rd_en時與rd_en_cdc異或一下得到翻轉(zhuǎn)的rd_en_cdc。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
控制寄存器(Control Register)是中央處理器(CPU)中用于管理系統(tǒng)級操作的特殊寄存器,它為操作系統(tǒng)和硬件提供對處理器行為的精細(xì)控制。本文從計算機(jī)體系結(jié)構(gòu)角度系統(tǒng)闡述控制寄存器的設(shè)計原理、功能分類、操作機(jī)制...
關(guān)鍵字:
寄存器
處理器
在嵌入式系統(tǒng)開發(fā)中,硬件抽象層(Hardware Abstraction Layer,HAL)起著至關(guān)重要的作用。它為上層軟件提供了統(tǒng)一的硬件訪問接口,隱藏了底層硬件的細(xì)節(jié),使得軟件具有更好的可移植性和可維護(hù)性。C++作...
關(guān)鍵字:
嵌入式C++
HAL
寄存器
封裝
采用51單片機(jī)最小開發(fā)板,由8位自制獨立按鍵控制。單片機(jī)芯片為STC89C52RC,晶振為@12.000 mhz。8X8LED點陣屏模塊由MAX7219驅(qū)動,MAX7219包含一個自動掃描電路。你只需要把要顯示的數(shù)據(jù)發(fā)送...
關(guān)鍵字:
51單片機(jī)
MAX7219
寄存器
電源管理集成電路(PMIC)有益于簡化最終應(yīng)用并縮小其尺寸,也因此備受青睞。然而,當(dāng)默認(rèn)啟動時序和輸出電壓與應(yīng)用要求不符時,就需要定制上電設(shè)置。大多數(shù)情況下,電路沒有可以存儲這些設(shè)置的非易失性存儲器(NVM)。對此,低功...
關(guān)鍵字:
電源管理
集成電路
寄存器
我從Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中創(chuàng)建了一個項目來讓它工作,你可以在我的上一個項目帖子中閱讀,我在QDSP-6061的5位數(shù)上顯示滾動文本,上面寫著“Hell...
關(guān)鍵字:
寄存器
AXI4 QDSP-6061
RTL模塊
在單片機(jī)系統(tǒng)的設(shè)計中,復(fù)位電路是確保單片機(jī)正常工作的關(guān)鍵組成部分。它能夠在系統(tǒng)啟動時將單片機(jī)的內(nèi)部寄存器和狀態(tài)設(shè)置為初始值,保證單片機(jī)從一個確定的狀態(tài)開始運(yùn)行。與門芯片作為一種常見的數(shù)字邏輯芯片,有時會被應(yīng)用于單片機(jī)復(fù)位...
關(guān)鍵字:
復(fù)位電路
寄存器
單片機(jī)
在數(shù)字電路設(shè)計中,計數(shù)器是一種基礎(chǔ)的數(shù)字電路組件,用于記錄并顯示脈沖信號的數(shù)量或頻率。4進(jìn)制計數(shù)器,即模4計數(shù)器,是一種特殊的計數(shù)器,其計數(shù)范圍從0到3,共4個狀態(tài)。本文將深入探討如何結(jié)合D觸發(fā)器與寄存器來實現(xiàn)一個4進(jìn)制...
關(guān)鍵字:
D觸發(fā)器
寄存器
計數(shù)器
寄存器是CPU內(nèi)部存儲單元,即寄存器是CPU的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址等。
關(guān)鍵字:
寄存器
CPU
隨著電子技術(shù)的迅速發(fā)展,計算機(jī)已深入地滲透到我們的生活中,許多電子愛好者開始學(xué)習(xí)單片機(jī)知識,但單片機(jī)的內(nèi)容比較抽象,相對電子愛好者已熟悉的模擬電路、數(shù)字電路,單片機(jī)中有一些新的概念,這些概念非?;疽灾劣谝话阕髡卟恍既フ?..
關(guān)鍵字:
單片機(jī)
寄存器
今天,小編將在這篇文章中為大家?guī)砘谝莆患拇嫫鱐DM的實現(xiàn)方式的有關(guān)報道。
關(guān)鍵字:
寄存器
移位寄存器
74LS175是一款4D觸發(fā)器集成電路,它包含6個D觸發(fā)器,這些觸發(fā)器可以組合起來形成寄存器或搶答器等多種功能部件。
關(guān)鍵字:
74ls175
觸發(fā)器
寄存器
單片機(jī)復(fù)位電路的作用是:使單片機(jī)恢復(fù)到起始狀態(tài),讓單片機(jī)的程序從頭開始執(zhí)行,運(yùn)行時鐘處于穩(wěn)定狀態(tài)、各種寄存器、端口處于初始化狀態(tài)等等。
關(guān)鍵字:
復(fù)位電路
單片機(jī)
寄存器
寄存器變量是計算機(jī)中一種重要的存儲方式,它使用CPU中的寄存器來存儲數(shù)據(jù)和指令。寄存器直接與CPU的運(yùn)算和控制部件相連,因此訪問速度非??欤ǔT谝粋€CPU周期內(nèi)就能完成數(shù)據(jù)的讀寫操作。相比于內(nèi)存和硬盤等存儲設(shè)備,寄存器...
關(guān)鍵字:
寄存器
存儲器
寄存器和存儲器是計算機(jī)及其它電子設(shè)備中的兩種重要存儲組件,它們在存儲方式、存儲容量和訪問速度等方面存在明顯的差異。
關(guān)鍵字:
寄存器
存儲器
寄存器和內(nèi)存是計算機(jī)系統(tǒng)的兩個重要組成部分,它們之間存在著密切的關(guān)系。本文將介紹寄存器和內(nèi)存的基本概念、功能、類型以及它們之間的關(guān)系,旨在幫助讀者更好地理解計算機(jī)系統(tǒng)的運(yùn)行原理。
關(guān)鍵字:
寄存器
內(nèi)存
寄存器是計算機(jī)硬件中的重要組件,用于臨時存儲數(shù)據(jù)和指令。正確地使用寄存器能夠提高程序的執(zhí)行效率,然而不正確的使用也可能導(dǎo)致各種問題。本文將詳細(xì)介紹寄存器的使用方法以及在使用時需要注意的事項。
關(guān)鍵字:
寄存器
計算機(jī)硬件
寄存器和暫存器都是計算機(jī)硬件中的重要組件,它們在計算機(jī)系統(tǒng)中發(fā)揮著不同的作用。下面我們來詳細(xì)了解一下它們的區(qū)別以及各自的特點和應(yīng)用。
關(guān)鍵字:
寄存器
暫存器
寄存器是一種重要的計算機(jī)硬件組件,用于臨時存儲數(shù)據(jù)或指令。在計算機(jī)架構(gòu)中,寄存器是CPU內(nèi)部的一部分,用于加速數(shù)據(jù)的處理速度。寄存器通常由高速緩存(cache)和隨機(jī)存取存儲器(RAM)組成。
關(guān)鍵字:
寄存器
計算機(jī)硬件
寄存器是計算機(jī)中一種用于暫存數(shù)據(jù)的高速存儲器,也是計算機(jī)體系結(jié)構(gòu)中的重要組成部分。它們通常被集成在中央處理器(CPU)內(nèi)部,用于存儲和處理指令執(zhí)行過程中的數(shù)據(jù)。
關(guān)鍵字:
寄存器
存儲器
計算機(jī)
AVR單片機(jī)硬件結(jié)構(gòu)采取8位機(jī)與16位機(jī)的折中策略,即采用局部寄存器存堆(32個寄存器文件)和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器及相應(yīng)控制邏輯)。提高了指令執(zhí)行速度(1Mips/MHz),克服...
關(guān)鍵字:
AVR單片機(jī)
RAM
寄存器