女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

詳解RTL設(shè)計(jì)中多時(shí)鐘域的處理方法

路科驗(yàn)證 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:IamSarah ? 2022-05-17 13:52 ? 次閱讀

【 一 】

數(shù)字IC系統(tǒng)邏輯設(shè)計(jì)這部分主要介紹兩個(gè)方面,一個(gè)是RTL的設(shè)計(jì)基礎(chǔ);另一方面是verilog基本語(yǔ)法。這一篇文章主要介紹一下RTL的設(shè)計(jì)基礎(chǔ)。

RTL設(shè)計(jì)都是采用同步電路設(shè)計(jì)方式,了解同步電路的設(shè)計(jì)要求是RTL設(shè)計(jì)的第一步。下圖是一個(gè)同步電路的示例:

d8a421f6-d597-11ec-bce3-dac502259ad0.png

其中,組合邏輯實(shí)現(xiàn)設(shè)計(jì)所需要的功能,寄存器用于暫存數(shù)據(jù)用時(shí)鐘控制。只有當(dāng)時(shí)鐘進(jìn)行有效跳變時(shí),才將新的數(shù)據(jù)所存起來(lái),否則數(shù)據(jù)保持原值。時(shí)鐘相當(dāng)于同步電路中的指揮。時(shí)鐘一般是由晶振產(chǎn)生,或者由外部輸入,如果需要還需要用鎖相環(huán)進(jìn)行倍頻、相移等操作。

下面對(duì)寄存器做一個(gè)介紹,一個(gè)寄存器的結(jié)構(gòu)如下圖所示:

d8ba413e-d597-11ec-bce3-dac502259ad0.png

寄存器的功能如下圖所示:

d8d61062-d597-11ec-bce3-dac502259ad0.png

由圖可得,該寄存器在時(shí)鐘的跳變沿鎖存數(shù)據(jù),然后數(shù)據(jù)會(huì)保持直到下一個(gè)跳變沿。寄存器要正常工作,必須保證D端的數(shù)據(jù)變化與時(shí)鐘的有效沿不能距離太近,否則有可能鎖存錯(cuò)誤的數(shù)據(jù)。在綜合庫(kù)中,規(guī)定了數(shù)據(jù)變化端跟時(shí)鐘跳變沿最短的時(shí)間要求,即建立時(shí)間約束和保持時(shí)間約束。建立時(shí)間規(guī)定,在時(shí)鐘沿到達(dá)前的某段時(shí)間內(nèi),數(shù)據(jù)必須穩(wěn)定;保持時(shí)間定義了在時(shí)鐘沿之后的某段時(shí)間之后,數(shù)據(jù)才能發(fā)生變化。

對(duì)于一個(gè)寄存器來(lái)說(shuō),除了數(shù)據(jù)端與時(shí)鐘端有時(shí)序要求。異步復(fù)位端與時(shí)鐘端也有要求。假設(shè)一個(gè)寄存器是已不復(fù)位的,復(fù)位信號(hào)低電平有效。當(dāng)復(fù)位信號(hào)是低電平時(shí),寄存器被初始化。當(dāng)異步復(fù)位信號(hào)跳高時(shí),寄存器在時(shí)鐘跳變沿鎖存新的數(shù)據(jù)。如果異步復(fù)位信號(hào)跳高的時(shí)刻距離時(shí)鐘有效沿太近,寄存器可能繼續(xù)保持復(fù)位狀太,也可能鎖存新的數(shù)據(jù)。因此有必要定義時(shí)鐘有效沿與異步復(fù)位無(wú)效沿之間的時(shí)序要求,這就是recovery/removal的時(shí)序要求,如圖所示;

d8fd6900-d597-11ec-bce3-dac502259ad0.png

寄存器中建立時(shí)間/保持時(shí)間、recovery/removal的時(shí)序要求, 對(duì)設(shè)計(jì)的最大組合邏輯延時(shí)、時(shí)鐘樹(shù)的構(gòu)造、復(fù)位樹(shù)的構(gòu)造都提出了要求。復(fù)位樹(shù)、時(shí)鐘樹(shù)一般由后端工具進(jìn)行處理。對(duì)RTL設(shè)計(jì)者來(lái)說(shuō),最需關(guān)注的是建立時(shí)間的問(wèn)題。設(shè)計(jì)中的時(shí)序違例通過(guò)靜態(tài)時(shí)序分析工具可以檢查出來(lái)。

在IC系統(tǒng)中, 復(fù)位的目的是為了將芯片強(qiáng)制到一個(gè)已知的狀態(tài)。同步復(fù)位與異步復(fù)位都能達(dá)到這個(gè)目的。兩者的差別在于:同步復(fù)位需要時(shí)鐘有效沿到達(dá)時(shí)才能起作用,而異步復(fù)位不需要。如下,是同步復(fù)位電路:

d9374468-d597-11ec-bce3-dac502259ad0.png

同步復(fù)位的優(yōu)點(diǎn)在于:

1)在采用基于周期的仿真器場(chǎng)合,同步復(fù)位簡(jiǎn)單

2)寄存器可以濾掉復(fù)位上的毛刺

缺點(diǎn):

1)需要時(shí)鐘,在某些場(chǎng)合帶來(lái)不便。假如設(shè)計(jì)中包含三態(tài)總線,總線上接著許多寄存器。當(dāng)上電后,晶振還未起振,鎖相環(huán)還未穩(wěn)定,這時(shí)候沒(méi)有時(shí)鐘,所以復(fù)位還沒(méi)有起作用,因此會(huì)導(dǎo)致總線上發(fā)生沖突。只有增加上電復(fù)位電路才能解決此問(wèn)題。

2)采用同步復(fù)位,復(fù)位成為路徑組合邏輯的一部分,由于復(fù)位的負(fù)載比較大,因此會(huì)使得復(fù)位樹(shù)的延遲比較大,從而導(dǎo)致在路徑上的延遲比較大。

異步復(fù)位的優(yōu)點(diǎn)是不需要時(shí)鐘,且復(fù)位不會(huì)影響到路徑延時(shí)。缺點(diǎn)是:復(fù)位上的毛刺不能被由它復(fù)位的寄存器過(guò)濾掉;復(fù)位的無(wú)效沿與時(shí)鐘之間存在時(shí)序要求。

將同步復(fù)位和異步復(fù)位優(yōu)點(diǎn)結(jié)合起來(lái):給出了一種異步復(fù)位,同步釋放的復(fù)位方法,如下圖所示:

d95479e8-d597-11ec-bce3-dac502259ad0.png

該電路的原理是:當(dāng)復(fù)位信號(hào)有效時(shí),兩個(gè)同步器都為低,因此同步器的輸出立即變低,而不管此時(shí)是否存在時(shí)鐘。當(dāng)復(fù)位信號(hào)變高后,經(jīng)過(guò)時(shí)鐘跳變沿后才能將高電平鎖存到同步器的輸出,也就是說(shuō),同步器的輸出的無(wú)效沿是與時(shí)鐘同步的。

【 二 】

這篇文章主要講一下RTL設(shè)計(jì)中多時(shí)鐘域的處理,之前在異步FIFO設(shè)計(jì)中已經(jīng)講到這個(gè)問(wèn)題,這篇更全面詳細(xì)的介紹一下多時(shí)鐘域的處理。

多時(shí)鐘域之所以難以處理,是因?yàn)樵趦蓚€(gè)時(shí)鐘域之間傳遞信號(hào)時(shí),不可避免地會(huì)出現(xiàn)建立時(shí)間/保持時(shí)間違例的問(wèn)題。寄存器會(huì)鎖存錯(cuò)誤的數(shù)據(jù),引起功能錯(cuò)誤。

現(xiàn)考慮在兩個(gè)時(shí)鐘域間傳遞1位信號(hào)的情況。如下圖是多時(shí)鐘域傳遞一位信號(hào)的示例:

d987681c-d597-11ec-bce3-dac502259ad0.png

在這個(gè)例子中,aclk與bclk是兩個(gè)異步時(shí)鐘。由aclk時(shí)鐘域產(chǎn)生的數(shù)據(jù)adat要送到bclk的時(shí)鐘域。由于bclk與aclk不同步,所以會(huì)出現(xiàn)這種情形:在一定時(shí)刻,adat的變化沿距離bclk的采樣沿非常接近,不能滿足建立時(shí)間和保持時(shí)間的要求。這樣, 寄存器可能會(huì)進(jìn)入亞穩(wěn)態(tài)。下圖是這種情況下的波形圖:

d9bd01a2-d597-11ec-bce3-dac502259ad0.png

bdat1的值會(huì)傳遞給其他模塊。在實(shí)際芯片中,在bdat1處于亞微態(tài)的時(shí)候,有些模塊會(huì)認(rèn)為自己收到的是“1”, 有些會(huì)認(rèn)為是“0”,這種不一致會(huì)導(dǎo)致功能錯(cuò)誤,如下圖所示:

d9cfbf4a-d597-11ec-bce3-dac502259ad0.png

這種情形需要采用下圖所示的同步器來(lái)避免:

da101c48-d597-11ec-bce3-dac502259ad0.png

采用同步器之后,其波形如下圖所示:

da4b14ba-d597-11ec-bce3-dac502259ad0.png

下面看一下相關(guān)的多位信號(hào)的傳遞,同步器適用于在多時(shí)鐘域間傳遞1位信號(hào),但是對(duì)于相關(guān)的多位信號(hào),采用這種技術(shù)仍然會(huì)出現(xiàn)問(wèn)題。如下圖所示,在多時(shí)鐘域間傳遞兩位信號(hào):

da5ef6f6-d597-11ec-bce3-dac502259ad0.png

在這個(gè)例子中,有兩個(gè)信號(hào)b-load和b-en由bclk時(shí)鐘域傳遞到aclk時(shí)鐘域。這兩個(gè)信號(hào)相關(guān)。我們假設(shè)在某個(gè)時(shí)鐘周期內(nèi), b-load與b-en同時(shí)有效,那么這兩個(gè)信號(hào)分別經(jīng)過(guò)同步器后,得到的波形如下所示:

da9e7966-d597-11ec-bce3-dac502259ad0.png

由于b-load信號(hào)與b-en信號(hào)的延遲不同,兩者的上升沿之間有一些偏移。如果同步器的采樣時(shí)鐘正好也位于兩個(gè)信號(hào)變化沿之間, 則采樣后的信號(hào)有可能會(huì)相差一個(gè)周期。這種情況下,可以將兩個(gè)信號(hào)進(jìn)行邏輯與操作變成一個(gè)信號(hào)送到同步器。但是很多時(shí)候,無(wú)法對(duì)傳遞信號(hào)進(jìn)行簡(jiǎn)單的合并。這個(gè)時(shí)候就可以考慮先將這些信號(hào)變成格雷碼,然后通過(guò)同步器來(lái)傳遞。由于格雷碼在一個(gè)周期內(nèi)僅有一位發(fā)生變化,這樣經(jīng)過(guò)同步器之后就可以得到正確的結(jié)果。

上述方案都是基于同步器的,依據(jù)的原理是降低寄存器處于亞穩(wěn)態(tài)的概率。另外一種方案是用多組寄存器來(lái)存儲(chǔ)信號(hào),過(guò)一段時(shí)間再進(jìn)行讀操作。在開(kāi)始讀操作的時(shí)候,數(shù)據(jù)早已經(jīng)穩(wěn)定下來(lái),就不會(huì)出現(xiàn)建立時(shí)間/保持時(shí)間違例的情況。這也就是基于異步fifo在多時(shí)鐘減傳遞信號(hào)的基本原理。關(guān)于異步FIFO的設(shè)計(jì),已經(jīng)講過(guò),在此不再贅述。

下面講一下時(shí)鐘切換電路,有些設(shè)計(jì)中需要進(jìn)行時(shí)鐘切換。動(dòng)態(tài)地將始終從高頻切換到低頻或者由低頻切換到高頻,切換過(guò)程中會(huì)出現(xiàn)毛刺。時(shí)鐘上的毛刺是非常致命的,可能會(huì)導(dǎo)致功能錯(cuò)誤。要避免這種問(wèn)題可以采取兩種方法,一種是在時(shí)鐘切換時(shí),進(jìn)入復(fù)位,當(dāng)切換完成后,復(fù)位結(jié)束;另一種方法是采用時(shí)鐘切換電路,如下圖所示,這種切換電路跟鎖存器的設(shè)計(jì)有異曲同工之妙。

dae3d02e-d597-11ec-bce3-dac502259ad0.png

原文標(biāo)題:帶你科普RTL設(shè)計(jì)基礎(chǔ)

文章出處:【微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5421

    瀏覽量

    123308
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    388

    瀏覽量

    60661
  • 多時(shí)鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6082

原文標(biāo)題:帶你科普RTL設(shè)計(jì)基礎(chǔ)

文章出處:【微信號(hào):Rocker-IC,微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

    關(guān)于跨時(shí)鐘信號(hào)的處理方法

    我在知乎看到了多bit信號(hào)跨時(shí)鐘的問(wèn)題,于是整理了一下自己對(duì)于跨時(shí)鐘信號(hào)的處理方法
    的頭像 發(fā)表于 10-09 10:44 ?6924次閱讀

    如何處理好FPGA設(shè)計(jì)時(shí)鐘間的數(shù)據(jù)

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問(wèn)題,而如何處理好跨時(shí)鐘間的數(shù)據(jù),可以說(shuō)是每個(gè)FPGA初
    發(fā)表于 07-29 06:19

    多時(shí)鐘的設(shè)計(jì)和綜合技巧系列

    出現(xiàn)問(wèn)題,來(lái)自快時(shí)鐘的控制信號(hào)必須寬于較慢時(shí)鐘的周期。否則如下圖所示,快時(shí)鐘的控制信號(hào)無(wú)法被采樣到慢
    發(fā)表于 04-11 17:06

    IC設(shè)計(jì)多時(shí)鐘處理的常用方法相關(guān)資料推薦

    1、IC設(shè)計(jì)多時(shí)鐘處理方法簡(jiǎn)析我們?cè)贏SIC或FPGA系統(tǒng)設(shè)計(jì),常常會(huì)遇到需要在多個(gè)
    發(fā)表于 06-24 16:54

    基于多時(shí)鐘的異步FIFO設(shè)計(jì)

    在大規(guī)模集成電路設(shè)計(jì),一個(gè)系統(tǒng)包含了很多不相關(guān)的時(shí)鐘信號(hào),當(dāng)其目標(biāo)時(shí)鐘與源時(shí)鐘不同時(shí),如何
    發(fā)表于 12-14 10:19 ?14次下載

    關(guān)于FPGA時(shí)鐘的問(wèn)題分析

    時(shí)鐘問(wèn)題(CDC,Clock Domain Crossing )是多時(shí)鐘設(shè)計(jì)的常見(jiàn)現(xiàn)象。在FPGA領(lǐng)域,互動(dòng)的異步時(shí)鐘
    發(fā)表于 08-19 14:52 ?3597次閱讀

    多時(shí)鐘的同步時(shí)序設(shè)計(jì)和幾種處理異步時(shí)鐘接口的方法

    外部輸入的信號(hào)與本地時(shí)鐘是異步的。在SoC設(shè)計(jì),可能同時(shí)存在幾個(gè)時(shí)鐘,信號(hào)的輸出驅(qū)動(dòng)和輸入采樣在不同的時(shí)鐘節(jié)拍下進(jìn)行,可能會(huì)出現(xiàn)一些不穩(wěn)
    的頭像 發(fā)表于 07-24 09:52 ?4728次閱讀
    <b class='flag-5'>多時(shí)鐘</b><b class='flag-5'>域</b>的同步時(shí)序設(shè)計(jì)和幾種<b class='flag-5'>處理</b>異步<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>接口的<b class='flag-5'>方法</b>

    揭秘FPGA跨時(shí)鐘處理的三大方法

    時(shí)鐘處理方法,這三種方法可以說(shuō)是 FPGA 界最常用也最實(shí)用的方法,這三種
    的頭像 發(fā)表于 12-05 16:41 ?1900次閱讀

    RTL多時(shí)鐘的異步復(fù)位同步釋放

    1 多時(shí)鐘的異步復(fù)位同步釋放 當(dāng)外部輸入的復(fù)位信號(hào)只有一個(gè),但是時(shí)鐘有多個(gè)時(shí),使用每個(gè)時(shí)鐘搭建自己的復(fù)位同步器即可,如下所示。 veri
    的頭像 發(fā)表于 05-08 09:59 ?2740次閱讀
    <b class='flag-5'>RTL</b><b class='flag-5'>中</b><b class='flag-5'>多時(shí)鐘</b><b class='flag-5'>域</b>的異步復(fù)位同步釋放

    解析多時(shí)鐘和異步信號(hào)處理解決方案

    減少很多與多時(shí)鐘有關(guān)的問(wèn)題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。 FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過(guò)多I/O接口接收和發(fā)送數(shù)據(jù)
    的頭像 發(fā)表于 05-10 16:51 ?4187次閱讀
    解析<b class='flag-5'>多時(shí)鐘</b><b class='flag-5'>域</b>和異步信號(hào)<b class='flag-5'>處理</b>解決方案

    介紹3種方法時(shí)鐘處理方法

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問(wèn)題,而如何處理好跨時(shí)鐘間的數(shù)據(jù),可以說(shuō)是每個(gè)FPGA初
    的頭像 發(fā)表于 09-18 11:33 ?2.3w次閱讀
    介紹3種<b class='flag-5'>方法</b>跨<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>

    FPGA多時(shí)鐘和異步信號(hào)處理的問(wèn)題

    減少很多與多時(shí)鐘有關(guān)的問(wèn)題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過(guò)多I/O接口接收和發(fā)送數(shù)據(jù),
    的頭像 發(fā)表于 09-23 16:39 ?3281次閱讀

    IC設(shè)計(jì)多時(shí)鐘處理方法總結(jié)

    我們?cè)贏SIC或FPGA系統(tǒng)設(shè)計(jì),常常會(huì)遇到需要在多個(gè)時(shí)鐘下交互傳輸?shù)膯?wèn)題,時(shí)序問(wèn)題也隨著系統(tǒng)越復(fù)雜而變得更為嚴(yán)重。
    的頭像 發(fā)表于 04-06 10:56 ?1073次閱讀

    FPGA跨時(shí)鐘處理方法(二)

    上一篇文章已經(jīng)講過(guò)了單bit跨時(shí)鐘處理方法,這次解說(shuō)一下多bit的跨時(shí)鐘
    的頭像 發(fā)表于 05-25 15:07 ?1258次閱讀
    FPGA跨<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>(二)

    關(guān)于FPGA設(shè)計(jì)多時(shí)鐘和異步信號(hào)處理有關(guān)的問(wèn)題

    減少很多與多時(shí)鐘有關(guān)的問(wèn)題,但是由于FPGA外各種系統(tǒng)限制,只使用一個(gè)時(shí)鐘常常又不現(xiàn)實(shí)。FPGA時(shí)常需要在兩個(gè)不同時(shí)鐘頻率系統(tǒng)之間交換數(shù)據(jù),在系統(tǒng)之間通過(guò)多I/O接口接收和發(fā)送數(shù)據(jù),
    的頭像 發(fā)表于 08-23 16:10 ?844次閱讀