1.同步電路設(shè)計(jì)
2.全異步電路設(shè)計(jì)
3.異步信號(hào)與同步電路交互的問題及其解決方法
4.SoC設(shè)計(jì)中的時(shí)鐘規(guī)劃策略
1.同步電路設(shè)計(jì)
同步電路,即電路中的所有受時(shí)鐘控制的單元,如觸發(fā)器(Flip Flop)或寄存器(Register),全部由一個(gè)統(tǒng)一的全局時(shí)鐘控制。
同步電路的時(shí)序收斂
觸發(fā)器的建立時(shí)間和保持時(shí)間
同步電路設(shè)計(jì)的優(yōu)點(diǎn)
在同步設(shè)計(jì)中,EDA工具可以保證電路系統(tǒng)的時(shí)序收斂,有效避免了電路設(shè)計(jì)中競爭冒險(xiǎn)現(xiàn)象
由于觸發(fā)器只有在時(shí)鐘邊緣才改變?nèi)≈?,很大限度地減少了整個(gè)電路受毛刺和噪聲影響的可能
同步電路設(shè)計(jì)的缺點(diǎn)
時(shí)鐘偏斜(Clock Skew)
時(shí)鐘樹綜合,需要加入大量的延遲單元,使得電路的面積和功耗大大增加
時(shí)鐘抖動(dòng)(Clock Jitter)
時(shí)鐘偏斜
2.全異步電路設(shè)計(jì)
全異步設(shè)計(jì)跟同步設(shè)計(jì)最大的不同就是它的電路中的數(shù)據(jù)傳輸可以在任何時(shí)候發(fā)生,電路中沒有一個(gè)全局的或局部的控制時(shí)鐘。
異步電路設(shè)計(jì)的基本原理
自定時(shí)的流水線數(shù)據(jù)通路
握手協(xié)議
握手協(xié)議原理
異步電路設(shè)計(jì)的優(yōu)點(diǎn)
模塊化特性突出
對(duì)信號(hào)的延遲不敏感
沒有時(shí)鐘偏斜問題
有潛在的高性能特性
好的電磁兼容性
具有低功耗的特性異步電路設(shè)計(jì)的缺點(diǎn)
設(shè)計(jì)復(fù)雜
缺少相應(yīng)的EDA工具的支持
在大規(guī)模集成電路設(shè)計(jì)中應(yīng)避免采用異步電路設(shè)計(jì)
3.異步信號(hào)與同步電路交互的問題及其解決方法
3.1亞穩(wěn)態(tài)現(xiàn)象
亞穩(wěn)態(tài)示意圖 亞穩(wěn)態(tài)信號(hào)的傳播
亞穩(wěn)態(tài)問題的解決及其RTL實(shí)現(xiàn)
亞穩(wěn)態(tài)現(xiàn)象的解決方法
modulesynchronizer( bclk,//目的時(shí)鐘,與aclk異步的時(shí)鐘 reset_b,//全局異步復(fù)位信號(hào) adat,//異步輸入信號(hào),工作在aclk bdat,//同步器輸出 ); inputbclk; inputreset_b; inputadapt; outputbdat; wirebdat; regbdat1; regbdat2; always@(posedgebclkornegedgereset_b) if(reset_b) {bdat2,bdat1}<=?2?'?b0; else ????{bdat2,bdat1}?<=?{bdat1,adat}; assign?bdat?=?bdat2; endmodule
3.2快時(shí)鐘同步慢時(shí)鐘域下的異步控制信號(hào)
快時(shí)鐘同步慢時(shí)鐘信號(hào)示意圖
modulesynchronizer( clk_fst, reset_b, rd_en, rd_en_s2f ); inputclk_fst,reset_b,rd_en outputrd_en_s2f; wirerd_en_s2f; regrd_en_s2f1,rd_en_s2f2,rd_en_s2f3 always@(posedgeclk_fstornegedgereset_b) if(!reset_b) {rd_en_s2f3,rd_en_s2f2,rd_en_s2f1}<=?3'b111; ????else ??? {rd_en_s2f3,rd_en_s2f2,rd_en_s2f1}<={rd_en_s2f2,rd_en_s2f1,rd_en}; always?@?(rd_en_s2f3??or??rd_en_s2f2) ????case?({rd_en_s2f3,rd_en_s2f2}) ????????????2'b01: ????????????????rd_en_s2f?<=?1'b1;???????? ????????????default: ????????????????rd_en_s2f?<=?1'b0; ?????endcase
3.3慢時(shí)鐘同步快時(shí)鐘域下的異步控制信號(hào)
慢時(shí)鐘同步快時(shí)鐘信號(hào)示意圖
解決辦法 : 握手機(jī)制實(shí)現(xiàn)方法一
moduleadapt_gen( aclk,//快時(shí)鐘 reset_b,//系統(tǒng)復(fù)位信號(hào) adat,//原始控制信號(hào) abdat2, //從慢時(shí)鐘域反饋回來的同步控制信號(hào) adat1 //經(jīng)過保持后的信號(hào)輸出 ); inputaclk,reset_b,adat,abdat2; outputadat1; regadat1; always@(posedgeaclkornegedgereset_b) if(!reset_b) adat1<=?1'b0;???? ????else?if?(abdat2) ??????????adat1?<=?1'b0; ????else if?(adat) ??????????adat1?<=?1'b1; endmoudule?
解決辦法 : 握手機(jī)制實(shí)現(xiàn)方法二
modulestall_logic( rd_en, rd_en_ ack_s2f, stall_b ); inputrd_en; inputrd_en_ack_s2f; outputstall_b; wirestall_b; always@(rd_enorrd_en_ack_s2f) if(rd_en_ack_s2f) stall_b<=?1'b1; else if?(rd_en) ????stall_b?<=?1'b0; else ????stall_b?<=?1'b1; endmodule
3.4異步時(shí)鐘域的數(shù)據(jù)同步
握手機(jī)制
握手同步異步數(shù)據(jù)
先入先出隊(duì)列(FIFO)
FIFO結(jié)構(gòu)圖 FIFO空滿示意圖
同步異步時(shí)鐘FIFO的電路行為
待同步的數(shù)據(jù)時(shí)鐘域會(huì)在其寫信號(hào)的控制之下,將數(shù)據(jù)寫入到FIFO中
目的時(shí)鐘域在發(fā)現(xiàn)空標(biāo)志位無效后,執(zhí)行FIFO讀動(dòng)作,讀出被異步時(shí)鐘域?qū)懭隖IFO的數(shù)據(jù)
如果只要同步一個(gè)數(shù)據(jù),空標(biāo)志位再次有效
如果需要同步多個(gè)數(shù)據(jù),因?yàn)镕IFO的讀/寫之間可以不受影響的進(jìn)行,所以待同步
FIFO設(shè)計(jì)中的亞穩(wěn)態(tài)問題
通常,通過比較讀/寫指針是否相等來判斷FIFO是否為空。而因?yàn)樽x/寫指針屬于不同的時(shí)鐘域,兩者顯然不能直接連到比較器的兩端來產(chǎn)生空信號(hào),否則會(huì)造成讀FIFO的目的時(shí)鐘域的電路碰到亞穩(wěn)態(tài)現(xiàn)象.
解決辦法
以格雷碼編碼表示讀/寫指針,用格雷碼加法器來實(shí)現(xiàn)讀/寫地址的加一動(dòng)作
用同步器將讀指針同步到FIFO滿標(biāo)志的產(chǎn)生邏輯,同樣用同步器將寫指針同步到FIFO空標(biāo)志的產(chǎn)生邏輯中
新的異步FIFO的結(jié)構(gòu)框圖
4.SoC設(shè)計(jì)中的時(shí)鐘規(guī)劃策略
首先盡可能使用同步設(shè)計(jì):
對(duì)于同步電路,邏輯綜合和時(shí)鐘樹綜合等EDA工具能發(fā)揮更大的作用,可以用靜態(tài)時(shí)序分析工具分析單時(shí)鐘同步設(shè)計(jì)的時(shí)序收斂問題
可測性設(shè)計(jì)(DFT)的插入工作得到最大的簡化
其次,注意同步電路設(shè)計(jì)的缺陷
噪聲問題
時(shí)鐘樹上的功耗很大
如果必須采用不同的時(shí)鐘,則要注意
后端設(shè)計(jì)的復(fù)雜化,如約束條件中要考慮多周期路徑(Multi Cycle Path)
可測性設(shè)計(jì)更加復(fù)雜,因?yàn)榇藭r(shí)系統(tǒng)中需要有多條獨(dú)立的掃描鏈
越多的時(shí)鐘域,發(fā)生亞穩(wěn)態(tài)的概率就會(huì)越大
最后,設(shè)計(jì)規(guī)劃中應(yīng)注意以下幾點(diǎn):
盡可能將不同時(shí)鐘域的數(shù)量減到越少越好
盡可能將異步交互電路歸入同一或多個(gè)獨(dú)立的模塊,這樣不但方便后端設(shè)計(jì)腳本的書寫,也方便代碼的閱讀
盡可能避免使用電平觸發(fā)器(Latch),因?yàn)殪o態(tài)時(shí)序分析會(huì)變得復(fù)雜,不能得到EDA工具很好的支持
盡可能減小時(shí)鐘樹的延時(shí),因?yàn)檫@個(gè)延時(shí)可能會(huì)造成系統(tǒng)功能失效和多余的功耗;
任何異步時(shí)鐘域交互的環(huán)節(jié)都要盡可能避免亞穩(wěn)態(tài)現(xiàn)象.
審核編輯:湯梓紅
-
電路設(shè)計(jì)
+關(guān)注
關(guān)注
6659文章
2420瀏覽量
202820 -
同步電路
+關(guān)注
關(guān)注
1文章
60瀏覽量
13276 -
異步電路
+關(guān)注
關(guān)注
2文章
48瀏覽量
11083
原文標(biāo)題:同步與異步電路信號(hào)交互的問題
文章出處:【微信號(hào):數(shù)字ICer,微信公眾號(hào):數(shù)字ICer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論