国产精品久久久久永久免费看,大地资源网更新免费播放视频,国产成人久久av免费,成人欧美一区二区三区黑人免费,丁香五月天综合缴情网

  • 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

芯片設(shè)計(jì) -- RDC問(wèn)題分析和處理

06/09 08:26
1669
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1. 什么是RDC?

RDC,即Reset Domain Crossing,一般是指信號(hào)跨越不同的異步復(fù)位域。RDC問(wèn)題可能會(huì)產(chǎn)生亞穩(wěn)態(tài),導(dǎo)致芯片設(shè)計(jì)出問(wèn)題。在設(shè)計(jì)時(shí)需要注意防范和處理RDC問(wèn)題。

下面介紹幾個(gè)RDC的典型實(shí)例。

RDC實(shí)例1:

如上圖所示,d1信號(hào)先后經(jīng)過(guò)了觸發(fā)器F1和F2,F(xiàn)1和F2的復(fù)位域不同,分別為rst1和rst2。由于rst1異步復(fù)位拉低,導(dǎo)致q1信號(hào)發(fā)生變化(由高變?yōu)榈停?,這樣就會(huì)使觸發(fā)器F2輸出的q2信號(hào)可能產(chǎn)生亞穩(wěn)態(tài),導(dǎo)致芯片發(fā)生邏輯錯(cuò)誤,如下圖。

其實(shí),主要原因是rst1為異步復(fù)位,可能在任意時(shí)刻發(fā)生復(fù)位,F(xiàn)1的q1立刻會(huì)發(fā)生變化,這個(gè)變化如果落在F2的setup/hold時(shí)間窗口里,就會(huì)導(dǎo)致setup/hold違例, 從而產(chǎn)生亞穩(wěn)態(tài)。還有一個(gè)重要原因是:async reset assert的路徑無(wú)法被STA約束,因?yàn)楫惒綇?fù)位的assert可以在任何時(shí)間發(fā)生,所以沒(méi)有辦法做STA。
如果將rst1進(jìn)行同步處理(異步復(fù)位,同步釋放)再給到F1,那么依然是存在RDC問(wèn)題的,異步復(fù)位的異步是RDC問(wèn)題,而同步釋放(是否做了同步)則是CDC問(wèn)題。CDC path和RDC path有可能重疊。

RDC實(shí)例2:

在某些情況下,即使只有一個(gè)異步復(fù)位也會(huì)導(dǎo)致RDC問(wèn)題。

如下圖所示,rst1異步復(fù)位給到了觸發(fā)器F1和F2,但是在給到F1之前delay了3個(gè)時(shí)鐘周期,這樣如果rst1的assert持續(xù)時(shí)間(例如2個(gè)周期)小于delay時(shí)間,那么就會(huì)產(chǎn)生RDC問(wèn)題。因?yàn)镕1發(fā)生復(fù)位時(shí),F(xiàn)2已經(jīng)復(fù)位完成并進(jìn)入工作狀態(tài)了。

2. RDC問(wèn)題處理方法

接下來(lái)介紹幾種常見(jiàn)的RDC解決方法。首先最簡(jiǎn)單直接的方法就是不使用異步復(fù)位,而是用同步復(fù)位。因?yàn)橥綇?fù)位的assert和deassert都可以被STA給約束,所以不會(huì)產(chǎn)生RDC問(wèn)題。如果無(wú)法避免使用異步復(fù)位且RDC問(wèn)題確實(shí)存在,那么可以參考以下幾種方法。

1. 控制復(fù)位順序

例如在RDC實(shí)例1中,可以通過(guò)硬件設(shè)計(jì)或者軟件來(lái)控制復(fù)位順序,保證rst2比rst1先assert。這樣在rst1 assert時(shí),觸發(fā)器F2輸出的q2信號(hào)會(huì)處于穩(wěn)定的復(fù)位值,不會(huì)產(chǎn)生亞穩(wěn)態(tài)。

如果保證了復(fù)位順序的話,可以在spyglass中通過(guò)如下命令來(lái)聲明復(fù)位順序:set_rdc_define_assertion_sequence -from_reset {rst2} -to_reset {rst1}

2. 控制時(shí)鐘和復(fù)位順序

例如在RDC實(shí)例1中,如果可以在rst1復(fù)位assert之前,將F2的clock給gating?。P(guān)閉),那么也可以解決RDC的問(wèn)題。

可以在spyglass中通過(guò)如下命令來(lái)聲明復(fù)位和時(shí)鐘的順序:set_rdc_define_assertion_sequence -from_reset {rst2} -to_clock {clk}

3. 加同步器

例如在RDC實(shí)例1中,可以在對(duì)F1的輸出q1進(jìn)行打拍同步,再給到F2。這樣F2的輸入就不會(huì)產(chǎn)生setup/hold violation了,但是同步器可能會(huì)影響原來(lái)的邏輯關(guān)系,并且?guī)?lái)一些面積開(kāi)銷。

4. clamp鉗位控制

還有一種常用的方法是加鉗位控制。例如下圖,在觸發(fā)器F1的輸出端加一個(gè)與門(或者或門),在rst1復(fù)位assert期間,通過(guò)clamp信號(hào)來(lái)控制與門的輸出為0(或門的輸出為1)。這樣當(dāng)F1異步復(fù)位時(shí),F(xiàn)1輸出的q1的變化不會(huì)影響到F2,從而就不會(huì)產(chǎn)生亞穩(wěn)態(tài)和RDC問(wèn)題了。

參考內(nèi)容:

掌握了CDC,你聽(tīng)說(shuō)過(guò)RDC嗎

https://blog.csdn.net/weixin_45260499/article/details/133920719

https://www.cnblogs.com/lanlancky/p/17400758.html

相關(guān)推薦