天天看點

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

一.典型方法(雙鎖存器法)

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

   典型方法即雙鎖存器法,第一個鎖存器可能出現亞穩态,但是第二個鎖存器出現亞穩态的幾率已經降到非常小,雙鎖存器雖然不能完全根除亞穩态的出現(事實上所有電路都無法根除,隻能盡可能降低亞穩态的出現),但是基本能夠在很大程度上減小這種幾率。最後的一個D觸發器和邏輯電路組成的是一個采沿(上升沿,修改一下就能采集下降沿)電路,即當第二個鎖存器的輸出中出現1個上升沿,那麼最後的邏輯輸出就會産生1個clock的高電平脈沖。             

  優點:結構簡單、易實作。 

  缺點:(1) 增加了兩級觸發器延時;

        (2)當快時鐘域轉到慢時鐘域時,易造成慢時鐘采樣丢失(還未來得及采樣,資料就變化了);

        故常用于慢時鐘域轉到快時鐘域。(Clk_slow to Clk_fast) 

 适用條件:[1] {(Clk_slow的周期)} > {(Clk_fast的周期) + (路徑延時)}    ,確定信号可以被Clk_fast采樣到(假設Clk_fast和Clk_slow起始時刻相同求得)。

           [2] {(data資料變化間隔,即脈沖)} > {(Clk_slow的周期) + 2*(Clk_fast的周期) + (路徑延時)}    ,確定所有的資料變化均能采集到。

二.結繩法

 1、結繩法1:利用資料的邊沿作時鐘(例子中上升沿)。(可以将脈沖無限延長,直到可以采集到資料,然後複位,要考慮産生資料的頻率)。

  執行個體1:

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)
結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

說明:這種結繩法的原理是,資料作為Din_clkA,即當資料有上升沿(0->1)時,寄存器1的輸出将會穩定在高電平,此時等待ClkB采樣;當ClkB完成采樣後,寄存器4會輸出高電平,若此時Din_clkA為低電平,那麼即可完成複位,開始下一次采樣等待。

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

  這裡需要注意的是當資料來臨(即上升沿)時,ClkB域需要等待3個ClkB才會在寄存器4輸出并完成輸入端的複位,是以Din_ClkA如果變化較快,即持續時間短于3個ClkB,也就是Din_ClkA頻率大于ClkB的1/3,那麼這時Din_ClkA的變化将無法被采樣到,因為ClkB域需要3個ClkB才能完成采樣,并且此時Din_ClkA必須是低電平才能複位,采用異步複位。

 是以說,在慢時鐘采樣快時鐘的時候,結繩法适合采樣資料較少(即脈沖間隔較大)的控制信号。即脈沖間隔Ta>3Tb;即等待3個clkB時鐘後,完成複位,才允許下一個輸入脈沖。

執行個體1電路适用條件:

(1) {Din_ClkA的脈沖間隔} > {2*(ClkB的周期) + (組合邏輯電路延時及路徑延時)};(確定Din_ClkA的變化均能被撲捉到)

(2) {Din_ClkA的脈沖高電平的寬度} < {2*(ClkB的周期) + (組合邏輯電路延時及路徑延時)}。(確定有複位信号産生,此時Din_ClkA應為低電平)  

執行個體2:複位需等待(原理與執行個體1類似)

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

執行個體2電路适用條件:

(1) {Din_ClkA的脈沖間隔} > {4*(ClkB的周期) +2*(組合邏輯電路延時及路徑延時)};(確定Din_ClkA的變化均能被撲捉到)

(2) {Din_ClkA的脈沖高電平的寬度} < {4*(ClkB的周期) +2*(組合邏輯電路延時及路徑延時)}。

與執行個體1的差別:增加了複位等待延時。

執行個體3:與執行個體2的差別是,這種複位更迅速,不需要等到Din_ClkA為低電平,即可完成複位。複位後,經過3個clkB,寄存器2~4相繼複位

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

 執行個體3電路使用條件:

(1) {Din_ClkA的脈沖間隔} > {4*(ClkB的周期) + 2*(組合邏輯電路延時及路徑延時)};(確定Din_ClkA的變化均能被撲捉到)

與執行個體2的差別:對Din_ClkA的脈沖寬度沒有要求。

特别:可将執行個體3和執行個體1結合起來組成一個最佳的結繩法電路,如下所示。

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

2、結繩法2:利用資料作為異步複位,異步置位信号。(适合将不足時鐘寬度的脈沖擴充1周期)

 執行個體1:輸入高脈沖(Clka域),輸出高脈沖(Clkb域)

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

     說明:當ClkB因為太慢,沒有采到Din_ClkA時,Din_ClkA的高電平脈沖會異步置位,即寄存器1從ClkA的上升沿開始到ClkB的下一個上升沿之間輸出為高,寄存器2采樣到高電平,并持續1個ClkB,高電平持續時間為1個ClkB多一點;(Q1和Q2輸出是同步的,起始相同)

           當ClkB足夠快,其上升沿采到了Din_ClkA時,置位作用從ClkA的上升沿開始,跨越了ClkB的上升沿,那麼輸出高電平持續了2個ClkB還多一點,因為寄存器1持續了1個周期多一點。(Q1和Q2輸出時同步的,起始相同)           

執行個體2:輸入高脈沖(ClkA域),輸出低脈沖(ClkB域)

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

    說明:同上

執行個體3:輸入低脈沖(clka域),輸出低脈沖(clkb域)

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

    說明:同上

執行個體4:輸入低脈沖(clka域),輸出高脈沖(clkb域)

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

    說明:同上 

3、結繩法3:輸入作為資料輸入,同樣也是檢測高有效後,輸出一直為高,異步時鐘域可以采集到資料後再複位。

因為沒有将輸入作為時鐘,或者作為異步set,reset,是以此類方法友善,比較常用。

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

觸發器3的回報的作用是:延長資料脈沖高電平的寬度,直到clk2采集到資料并且通過觸發器6回報回了複位信号。

電路适用條件:

{data_clk1資料變化間隔(脈沖間隔)}  >  {3*(clk1的周期)+1*(clk2的周期)+2*(clk1的周期)+(組合邏輯和路徑延時)}

data_clk1資料變化太快,不滿足條件,clk_2會出現采集不到的現象,在輸出data_clk2出現資料丢失。

參考代碼:http://bb2hh.blogbus.com/files/12357833650.v

仿真:

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

4、結繩法4:利用握手協定:(可以将脈沖無限延長,直到可以采集到資料,然後複位,要考慮産生資料的頻率)。

               Pulse2Toggle                             Synchronization                    Toggle2Pluse

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

               Toggle2Pluse                             Synchronization                      Pluse2Toggle       

         說明:     結繩子產品(Pluse2Toggle): 負責延長待采樣信号

                          同步子產品(Synchronization):負責雙觸發器鎖存

                          解繩子產品(Toggle2Pluse):  負責将長信号轉換成脈沖信号 

       電路适用條件:

       {Req_ClkA資料變化間隔(脈沖間隔)}  > 2* {2*(ClkB的周期)+1*(ClkA的周期)+(組合邏輯和路徑延時)}

        確定資料Req_ClkA的變化均能采集到;每次采集的信号,可以産生穩定的Req_ClkB和Ack_ClkA握手信号。

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

參考代碼:http://bb2hh.blogbus.com/files/12357826152.v

仿真:

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

另外對于為了提高速度和準确度的握手操作中,可以将設定一定的握手子產品(n>2(clk1+clk2)/Trd),流水操作

結繩法:文章詳細解讀(異步時鐘設計的同步政策)(五)

結繩就是将單脈沖延長,以友善采集到資料。

結繩的方法歸結為2類:

1.利用脈沖的邊沿做時鐘;

2.利用脈沖的電平(部分場合要求最小脈沖寬度)做選擇器或者異步複位,置位。

另外的關鍵點就是什麼時候結繩結束(采集到了資料就要讓對方回到初始狀态),

這裡的操作也有2種方法:

1.利用采集到的脈沖做異步複位,置位。

2.利用采集到的脈沖再次結繩采集做握手響應信号。

處理的時候應該選擇對應的方法。

聲明:本博文是對以下參考博文的了解和解讀,内容大體與參考博文相同,隻是進行了個人的總結、整理!!!

參考博文:http://hujianjust.blog.163.com/blog/static/72455072201181635239760/

繼續閱讀