馬馳遠(yuǎn),雷國(guó)慶
(國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
同步數(shù)字電路設(shè)計(jì)經(jīng)常需要使用不同來(lái)源的多個(gè)異步時(shí)鐘,這些異步時(shí)鐘間信號(hào)的傳遞稱為跨時(shí)鐘域信號(hào)傳遞CDC(Clock Domain Crossing)。跨時(shí)鐘域傳遞的信號(hào)稱為CDC信號(hào),該信號(hào)對(duì)于目的時(shí)鐘域來(lái)說(shuō)是異步信號(hào),即不能確保被穩(wěn)定地采樣。這種不穩(wěn)定性會(huì)造成意想不到的錯(cuò)誤[1],使電路無(wú)法正常工作。針對(duì)這種情況,研究人員在設(shè)計(jì)中通常會(huì)插入CDC邏輯,將CDC信號(hào)穩(wěn)定地傳遞到目的時(shí)鐘域[2]。
對(duì)于一個(gè)多位總線CDC信號(hào)的CDC邏輯,多位信號(hào)之間還需滿足一定的時(shí)序要求才能確保信號(hào)正確地傳遞到目的時(shí)鐘域。CDC信號(hào)的時(shí)序分析是分析源時(shí)鐘域寄存器發(fā)出的多位CDC信號(hào)是否能被目的時(shí)鐘域寄存器正確地采樣。CDC信號(hào)的一般時(shí)序要求是目的時(shí)鐘域采樣時(shí)刻范圍內(nèi)同時(shí)變化的CDC信號(hào)不超過(guò)1個(gè)[3],因此CDC信號(hào)被目的時(shí)鐘域采樣的時(shí)刻偏差只要不超過(guò)一個(gè)源時(shí)鐘周期就可以滿足時(shí)序要求。
CDC信號(hào)產(chǎn)生時(shí)序違反的主要原因是時(shí)鐘頻率過(guò)高導(dǎo)致約束較嚴(yán)或CDC邏輯過(guò)于分散。近年來(lái)隨著設(shè)計(jì)頻率的逐漸提升、設(shè)計(jì)規(guī)模的逐漸增大,CDC信號(hào)時(shí)序檢查開始成為芯片投片前的必備檢查項(xiàng)。通常CDC邏輯采用固定約束分析方法進(jìn)行時(shí)序檢查,但這種方法由于約束條件過(guò)嚴(yán)會(huì)導(dǎo)致虛假時(shí)序違反及不必要的時(shí)序修復(fù),從而增大了設(shè)計(jì)面積。
本文提出了一種CDC信號(hào)滑動(dòng)窗口時(shí)序分析方法,在每種工藝角(corner)的每條CDC通路上單獨(dú)設(shè)置適合的檢查窗口進(jìn)行時(shí)序分析,有效避免了固定約束分析方法的問(wèn)題。
隨著設(shè)計(jì)頻率的逐漸提升、設(shè)計(jì)規(guī)模的逐漸增大,CDC邏輯電路的失效率也逐漸增大。為了避免CDC問(wèn)題導(dǎo)致的電路錯(cuò)誤,近年來(lái)國(guó)內(nèi)外學(xué)者對(duì)CDC電路和時(shí)序展開了大量研究。Cummings[3]對(duì)CDC電路原理進(jìn)行了闡述,給出了一種通用CDC邏輯結(jié)構(gòu)并對(duì)這種結(jié)構(gòu)的應(yīng)用提出了具體實(shí)施方案。Chaturvedi[4]提出了一種CDC結(jié)構(gòu)檢查和時(shí)序分析的流程并在芯片投片時(shí)應(yīng)用成功。Matsuda等[5]在FPGA中對(duì)CDC結(jié)構(gòu)進(jìn)行了驗(yàn)證方法學(xué)和時(shí)序分析的研究。Talupuru等[6]也提出了一種通過(guò)形式驗(yàn)證和時(shí)序分析來(lái)避免CDC電路毛刺的方法。還有些學(xué)者針對(duì)CDC邏輯結(jié)構(gòu)展開了研究[7,8]。
目前存在多種多位CDC信號(hào)的CDC邏輯,最常見的是如圖1所示的CDC邏輯結(jié)構(gòu)[3],它包括2個(gè)方向的CDC信號(hào):從寫時(shí)鐘wclk到讀時(shí)鐘rclk的CDC信號(hào)有寫指針信號(hào)和數(shù)據(jù)信號(hào),從讀時(shí)鐘rclk到寫時(shí)鐘wclk的CDC信號(hào)有讀指針信號(hào)。這些CDC信號(hào)都應(yīng)該滿足一定的時(shí)序要求。
Figure 1 Structure of CDC logic圖1 CDC邏輯結(jié)構(gòu)
不同設(shè)計(jì)對(duì)CDC信號(hào)的時(shí)序要求是不一樣的。如果一個(gè)設(shè)計(jì)的時(shí)鐘頻率只有幾百兆赫茲并且CDC邏輯所在設(shè)計(jì)模塊面積不大,這時(shí)CDC信號(hào)幾乎不會(huì)違反時(shí)序要求,因此對(duì)這種設(shè)計(jì)不用檢查CDC信號(hào)的時(shí)序。如果設(shè)計(jì)頻率很高并且經(jīng)過(guò)后端設(shè)計(jì)后的CDC邏輯比較分散,CDC信號(hào)就有可能違反時(shí)序約束。為了保證設(shè)計(jì)的功能正確,CDC信號(hào)就必須進(jìn)行時(shí)序分析和收斂。
目前主要的CDC信號(hào)時(shí)序分析方法是固定約束分析方法[3 - 5],它在分析CDC信號(hào)是否滿足時(shí)序要求時(shí),對(duì)所有CDC信號(hào)統(tǒng)一設(shè)置固定的約束參數(shù)。因?yàn)镃DC邏輯一般在2個(gè)方向傳遞信號(hào),所以既要分析源時(shí)鐘域到目的時(shí)鐘域的CDC信號(hào),也要分析目的時(shí)鐘域到源時(shí)鐘域的CDC信號(hào)。以源時(shí)鐘域到目的時(shí)鐘域的分析來(lái)說(shuō),約束參數(shù)要設(shè)置2個(gè):最大延時(shí)和最小延時(shí)。最大延時(shí)是指源時(shí)鐘域的CDC信號(hào)到目的時(shí)鐘域采樣時(shí)的最大延時(shí)約束,最小延時(shí)是指源時(shí)鐘域的CDC信號(hào)到目的時(shí)鐘域采樣時(shí)的最小延時(shí)約束。對(duì)源時(shí)鐘域到目的時(shí)鐘域的所有信號(hào)統(tǒng)一設(shè)置約束參數(shù)且參數(shù)是固定的,電路滿足最大延時(shí)約束和最小延時(shí)約束后就能確保正常工作。芯片投片前設(shè)計(jì)人員會(huì)在多個(gè)corner下進(jìn)行時(shí)序分析。深亞微米工藝的corner數(shù)可能會(huì)有二、三十個(gè)且不同corner的時(shí)序情況差別很大,同一條時(shí)序路徑在針對(duì)setup分析的corner下和針對(duì)hold分析的corner下的延時(shí)會(huì)相差一倍甚至更多。固定約束分析方法只能選擇最嚴(yán)格的約束參數(shù)進(jìn)行分析,以保證功能正確,并且為了通過(guò)檢查不得不加入一些不必要的邏輯。此外,2個(gè)時(shí)鐘域間可能存在多條CDC通路而不同通路的時(shí)鐘樹延時(shí)不一定相同。為了保證電路的時(shí)序正確性,固定約束分析方法可能在本來(lái)能滿足時(shí)序要求的電路上加入更多的邏輯,這些額外邏輯都是不必要的面積開銷,會(huì)導(dǎo)致電路的成本升高、功耗變大。
為了解決固定約束分析方法帶來(lái)的邏輯和面積增大的問(wèn)題,本文提出了一種CDC信號(hào)滑動(dòng)窗口時(shí)序分析方法。這種方法在每種corner的每條CDC通路上單獨(dú)設(shè)置適合的時(shí)序分析檢查窗口進(jìn)行時(shí)序分析,分析流程如圖2所示。
Figure 2 Flow chart of the sliding window timing analysis method of CDC signals圖2 CDC信號(hào)滑動(dòng)窗口時(shí)序分析方法流程圖
首先對(duì)設(shè)計(jì)進(jìn)行corner劃分和CDC信號(hào)分組。設(shè)計(jì)在不同corner下的時(shí)序情況差別很大,所以要在所有corner下對(duì)設(shè)計(jì)進(jìn)行時(shí)序分析并修復(fù)。2個(gè)異步時(shí)鐘域之間可能存在多組CDC通路,如果對(duì)多組CDC通路統(tǒng)一設(shè)置時(shí)序約束顯然會(huì)使約束過(guò)于嚴(yán)格,從而導(dǎo)致虛假的時(shí)序違反并增加額外的時(shí)序修復(fù)工作,因此根據(jù)通路對(duì)CDC信號(hào)進(jìn)行分組會(huì)使時(shí)序檢查更加精確。當(dāng)然,能夠?qū)DC信號(hào)進(jìn)行分組的前提是能完全理解CDC邏輯,這對(duì)設(shè)計(jì)人員來(lái)說(shuō)通常不是問(wèn)題,但某些繼承的設(shè)計(jì)或重用的IP可能使用了特殊的CDC邏輯,從而造成分組困難。
其次,本文方法對(duì)于某一corner下的某一組CDC通路會(huì)單獨(dú)設(shè)置時(shí)序約束。在worst corner下和best corner下的設(shè)計(jì)頻率一般是不一樣的,這種差別也同樣要反映在CDC信號(hào)的時(shí)序約束上。如圖1所示,每一組CDC信號(hào)包括3類:寫指針信號(hào)、讀指針信號(hào)和數(shù)據(jù)信號(hào)。同一CDC通路信號(hào)的時(shí)序偏差不能超過(guò)1個(gè)源時(shí)鐘周期,按此原則可設(shè)置相應(yīng)的約束。每一類信號(hào)可用最大延時(shí)命令和最小延時(shí)命令進(jìn)行約束,最大延時(shí)和最小延時(shí)具體設(shè)置的值并不重要,但對(duì)CDC信號(hào)設(shè)置的最大延時(shí)和最小延時(shí)之差不能大于1個(gè)源時(shí)鐘周期。為了方便后續(xù)分析,同一個(gè)CDC通路寫指針信號(hào)和數(shù)據(jù)信號(hào)最小延時(shí)的設(shè)置最好一樣。
接著要計(jì)算每組CDC信號(hào)的時(shí)序偏差是否滿足時(shí)序要求。CDC信號(hào)時(shí)序滿足要求的關(guān)鍵在于每個(gè)總線的多位信號(hào)是否能在一個(gè)要求的時(shí)間段內(nèi)被目的時(shí)鐘捕獲,也就是要在一個(gè)源時(shí)鐘周期內(nèi)被捕獲,因此單個(gè)信號(hào)即使違反了時(shí)序約束也并不意味著有真正的時(shí)序違反。圖3所示是一個(gè)多位總線的CDC信號(hào),clock_0是源時(shí)鐘,clock_1是目的時(shí)鐘,launch regs是n位源時(shí)鐘域寄存器,capture regs是n位目的時(shí)鐘域寄存器,在CDC邏輯里這些寄存器一一對(duì)應(yīng)。時(shí)鐘到不同寄存器的時(shí)鐘樹延時(shí)是不一樣的,所以圖3中每組regs的不同reg并沒(méi)有對(duì)齊。本文方法是先計(jì)算出每個(gè)信號(hào)的時(shí)序偏差,以圖3中reg0為例,它的時(shí)序偏差是clock_0從產(chǎn)生點(diǎn)出發(fā)經(jīng)過(guò)launch regs中的reg0并經(jīng)過(guò)D0的延時(shí)減去clock_1從產(chǎn)生點(diǎn)出發(fā)到capture regs中的reg0的延時(shí),這個(gè)偏差與clock_0和clock_1的時(shí)鐘樹偏差有關(guān),結(jié)果可能是正值也可能是負(fù)值。對(duì)所有信號(hào)的時(shí)序偏差分別進(jìn)行計(jì)算后,可以找出最大偏差值和最小偏差值,二者的差值如果小于時(shí)序約束值就可認(rèn)為此類CDC信號(hào)的時(shí)序滿足要求。
Figure 3 CDC signals circuit圖3 CDC信號(hào)電路
本文方法實(shí)際上是劃定了一個(gè)時(shí)序約束窗口,這個(gè)窗口的寬度對(duì)于同一corner下同一組內(nèi)的信號(hào)是固定的,但對(duì)不同corner或不同組的信號(hào)窗口是不同的。如圖4所示,wsignals是寫時(shí)鐘wclk相關(guān)寄存器發(fā)出的一組多位CDC信號(hào),rsignals_1和rsignals_2分別是在不同corner下這些CDC信號(hào)到達(dá)讀時(shí)鐘rclk相關(guān)寄存器的輸入信號(hào)范圍。由于不同corner下的電路延時(shí)不一樣,因此rsignals_1和rsignals_2的到達(dá)時(shí)間范圍是有區(qū)別的。但是,只要所有CDC信號(hào)的捕獲時(shí)刻落在約束要求的窗口內(nèi),就可認(rèn)為滿足了時(shí)序要求。所以,本文方法對(duì)于CDC信號(hào)的路徑延時(shí)沒(méi)有要求。信號(hào)捕獲窗口在不同情況下是可以左右移動(dòng)的,因此本文將這種方法稱為滑動(dòng)窗口時(shí)序分析方法。邏輯在后端設(shè)計(jì)時(shí)會(huì)生成時(shí)鐘樹,不同時(shí)鐘的時(shí)鐘樹延時(shí)是不一樣的,固定約束分析方法無(wú)法避免時(shí)鐘樹延時(shí)的影響,而本文方法可以避免時(shí)鐘樹延時(shí)的影響,降低了時(shí)序要求,獲得了最精確的分析結(jié)果,避免了由于約束過(guò)嚴(yán)而導(dǎo)致加入額外邏輯的情況。
Figure 4 Sliding window waveform of CDC signals圖4 CDC信號(hào)滑動(dòng)窗口波形
計(jì)算完每一類信號(hào)的時(shí)序偏差后,根據(jù)時(shí)序報(bào)告可判斷當(dāng)前CDC信號(hào)是否滿足時(shí)序要求。如果不滿足要求就需進(jìn)行時(shí)序修復(fù),常用的修復(fù)手段是在時(shí)鐘路徑或數(shù)據(jù)路徑中加入緩沖器來(lái)縮小時(shí)鐘樹偏差或彌補(bǔ)數(shù)據(jù)路徑的偏差,這些方法都會(huì)加入額外的邏輯,增加芯片面積。
上述時(shí)序約束設(shè)置和時(shí)序計(jì)算及修復(fù)需要在每種corner下對(duì)每條CDC通路分別進(jìn)行,以確保在所有條件下功能都正確。因此,在完成物理設(shè)計(jì)和正常的靜態(tài)時(shí)序分析外,還要額外對(duì)設(shè)計(jì)進(jìn)行CDC通路的分析。這種分析無(wú)需改動(dòng)設(shè)計(jì),只要通過(guò)時(shí)序分析軟件編寫程序進(jìn)行分析即可。當(dāng)然,這相對(duì)于固定約束分析方法來(lái)說(shuō)增加了一定的軟件運(yùn)行時(shí)間和分析工作量。
CDC邏輯通路在布局布線后的放置通常較為集中,因此較少出現(xiàn)真正的數(shù)據(jù)捕獲錯(cuò)誤。本文方法針對(duì)規(guī)模較大且頻率較高的多個(gè)真實(shí)CDC設(shè)計(jì)進(jìn)行時(shí)序檢查,只有極少數(shù)的CDC電路出現(xiàn)了時(shí)序違反。而采用固定約束分析方法經(jīng)常會(huì)檢查出時(shí)序違反的情況,大部分的時(shí)序違反是由于分析方法不當(dāng)而產(chǎn)生的,在實(shí)際工作中這部分電路時(shí)序是沒(méi)有問(wèn)題的。
對(duì)于CDC信號(hào)時(shí)序功能正確的情況,本文方法能精確確認(rèn)時(shí)序而無(wú)需改動(dòng)邏輯。而固定約束分析方法要求每一位信號(hào)都要滿足時(shí)序約束,這無(wú)疑使檢查過(guò)于嚴(yán)格,因此常常會(huì)出現(xiàn)虛假時(shí)序違反,不得不進(jìn)行額外的時(shí)序修復(fù),時(shí)序修復(fù)規(guī)模和源時(shí)鐘樹/目的時(shí)鐘樹的偏差以及CDC邏輯特性相關(guān)。
假設(shè)寫時(shí)鐘和讀時(shí)鐘的頻率都是2 GHz且同一時(shí)鐘到相關(guān)寄存器時(shí)鐘引腳的時(shí)鐘樹延時(shí)相等,圖5和圖6是在16 nm工藝下使用typical庫(kù)在CDC邏輯FIFO深度為4且通路位寬為32位時(shí),分別評(píng)估讀寫時(shí)鐘樹延時(shí)不等時(shí)采用本文方法和固定約束分析方法進(jìn)行時(shí)序修復(fù)后的面積對(duì)比情況。采用的設(shè)計(jì)經(jīng)過(guò)驗(yàn)證都沒(méi)有時(shí)序問(wèn)題。圖中的時(shí)鐘偏差是讀時(shí)鐘樹延時(shí)減去寫時(shí)鐘樹延時(shí)的差。固定約束分析方法設(shè)置的最大延時(shí)和最小延時(shí)的值不一定是固定的,只要二者的差為一個(gè)時(shí)鐘周期就可以,但這2個(gè)值一旦設(shè)置好就不會(huì)隨設(shè)計(jì)的物理實(shí)現(xiàn)情況而改變,因此稱這種方法為固定約束分析方法。為了簡(jiǎn)單起見,固定約束分析方法的最小延時(shí)和最大延時(shí)分別設(shè)為0和一個(gè)時(shí)鐘周期,設(shè)置成其他值的效果也是一樣的。固定約束分析方法是時(shí)鐘樹延時(shí)偏差敏感的,它會(huì)根據(jù)設(shè)置將CDC信號(hào)的讀寫時(shí)鐘樹延時(shí)取平。對(duì)于違反延時(shí)約束的信號(hào),在寫時(shí)鐘樹延時(shí)比讀時(shí)鐘樹延時(shí)短的時(shí)候,寫時(shí)鐘樹可能會(huì)被加大延時(shí);在寫時(shí)鐘樹延時(shí)比讀時(shí)鐘樹延時(shí)長(zhǎng)的時(shí)候,讀時(shí)鐘樹可能會(huì)被加大延時(shí)。加大延時(shí)的方法是在每個(gè)相關(guān)寄存器的時(shí)鐘端插入緩沖單元。圖5給出了自動(dòng)時(shí)序修復(fù)情況下在時(shí)鐘偏差為-900 ps~600 ps時(shí)使用固定約束分析方法和本文方法進(jìn)行時(shí)序修復(fù)后的面積對(duì)比。由于時(shí)鐘偏差大小對(duì)本文方法的分析結(jié)果無(wú)影響,時(shí)序修復(fù)后的面積沒(méi)有變化;而對(duì)于固定約束分析方法,由于每位信號(hào)都要滿足時(shí)序要求,時(shí)鐘偏差的不同造成結(jié)果差別很大。
Figure 5 Area comparison of two timing analysis methods after automatic timing repair (FIFO depth is 4)圖5 2種時(shí)序分析方法自動(dòng)時(shí)序修復(fù)后的面積對(duì)比(FIFO深度為4)
由圖5可知,使用固定約束分析方法在時(shí)鐘偏差為0時(shí)讀寫時(shí)鐘樹的延時(shí)相等,此時(shí)所有信號(hào)都滿足時(shí)序要求,因此不需進(jìn)行時(shí)序修復(fù),面積結(jié)果和本文方法是一樣的。時(shí)鐘偏差為負(fù)時(shí)表示寫時(shí)鐘樹延時(shí)大于讀時(shí)鐘樹延時(shí),在一定范圍內(nèi)所有信號(hào)還是可以滿足時(shí)序要求的,如圖5中時(shí)序偏差為-300 ps時(shí),因此面積不會(huì)因?yàn)闀r(shí)序修復(fù)而增加。但是,偏差一旦超過(guò)某個(gè)閾值,就需要減小讀寫時(shí)鐘樹偏差進(jìn)行時(shí)序修復(fù),由圖1可知讀時(shí)鐘CDC信號(hào)為寫指針和讀數(shù)據(jù),修復(fù)的方法是加大這些信號(hào)相關(guān)寄存器的讀時(shí)鐘樹延時(shí)。如圖5中時(shí)序偏差為-600 ps和-900 ps的情況,時(shí)鐘偏差越大插入單元越多,因此造成面積增大。時(shí)鐘偏差為正時(shí)表示寫時(shí)鐘樹延時(shí)小于讀時(shí)鐘樹延時(shí),在一定范圍內(nèi)所有信號(hào)也是可以滿足時(shí)序要求的,因此面積不會(huì)因?yàn)闀r(shí)序修復(fù)而增加。但是,偏差一旦超過(guò)某個(gè)閾值也需要減小讀寫時(shí)鐘樹偏差進(jìn)行時(shí)序修復(fù),由圖1可知寫時(shí)鐘CDC信號(hào)為讀指針和FIFO寄存器,修復(fù)的方法是加大這些信號(hào)相關(guān)寄存器的寫時(shí)鐘樹延時(shí)。如圖5中時(shí)序偏差為300 ps和600 ps時(shí),時(shí)鐘偏差越大插入單元越多,因?yàn)镕IFO寄存器數(shù)量較大且FIFO數(shù)據(jù)的每一位會(huì)通過(guò)mux直接連接到讀時(shí)鐘域,在自動(dòng)修復(fù)過(guò)程中所有FIFO數(shù)據(jù)寄存器的時(shí)鐘端都會(huì)被插入延時(shí)單元,因此最終插入的單元數(shù)量取決于FIFO的容量。在時(shí)序偏差為600 ps時(shí),采用本文方法的CDC邏輯面積是采用固定約束分析方法進(jìn)行修復(fù)后面積的42%。從圖5中還可以觀察到,采用固定約束方法修復(fù)時(shí)時(shí)鐘偏差為600 ps和-600 ps的面積相差很大。這是因?yàn)榧哟髮憰r(shí)鐘樹延時(shí)要插入單元的寄存器數(shù)量很多(主要是FIFO寄存器),而加大讀時(shí)鐘樹延時(shí)要插入單元的寄存器數(shù)量較少。
物理設(shè)計(jì)階段有2種時(shí)序修復(fù)方式。一種是工具自動(dòng)插入單元進(jìn)行時(shí)序修復(fù),圖5就是自動(dòng)時(shí)序修復(fù)的結(jié)果,這種方式會(huì)在每個(gè)跨時(shí)鐘域寄存器前插入緩沖單元。另一種是手工時(shí)序修復(fù),就是由設(shè)計(jì)人員手工插入延時(shí)單元進(jìn)行時(shí)序修復(fù),這種方式的好處是可以找到時(shí)鐘樹的公共點(diǎn)插入緩沖單元,在達(dá)到相同效果的同時(shí)減少插入的緩沖單元數(shù)。假設(shè)平均5個(gè)寄存器的時(shí)鐘端能找到一個(gè)時(shí)鐘樹的公共點(diǎn),插入的單元數(shù)量就可以減少到自動(dòng)時(shí)序修復(fù)的1/5。圖6給出了手工時(shí)序修復(fù)方式下的面積評(píng)估結(jié)果,可以看到這種方式下的面積比自動(dòng)時(shí)序修復(fù)方式的小,在時(shí)序偏差為600 ps時(shí)采用本文方法的CDC邏輯面積是采用固定約束分析方法進(jìn)行修復(fù)后面積的78%,這比自動(dòng)時(shí)序修復(fù)的效果好,但手工時(shí)序修復(fù)使物理設(shè)計(jì)工作量加大。
Figure 6 Area comparison of two time analysis methods after the manual timing repair (FIFO depth is 4)圖6 手工時(shí)序修復(fù)時(shí)2種時(shí)序分析方法的面積對(duì)比(FIFO深度為4)
以上是FIFO深度為4時(shí)使用2種方法進(jìn)行分析時(shí)的面積對(duì)比。在設(shè)計(jì)中FIFO深度為4是最小深度,更大的FIFO深度在實(shí)際設(shè)計(jì)中也經(jīng)常會(huì)用到,本文進(jìn)一步評(píng)估了FIFO深度為8時(shí)的情況。圖7為FIFO深度為8時(shí)自動(dòng)時(shí)序修復(fù)方式下使用2種方法進(jìn)行時(shí)序修復(fù)后的面積對(duì)比。圖8是FIFO深度為8時(shí)手工時(shí)序修復(fù)方式下使用2種方法進(jìn)行時(shí)序修復(fù)后的面積對(duì)比。
Figure 7 Area comparison of two time analysis methods after automatic timing repair (FIFO depth is 8)圖7 2種時(shí)序分析方法自動(dòng)時(shí)序修復(fù)后的面積對(duì)比(FIFO深度為8)
Figure 8 Area comparison of two time analysis methods after the manual timing repair (FIFO depth is 8)圖8 手工時(shí)序修復(fù)時(shí)2種時(shí)序分析方法的面積對(duì)比(FIFO深度為8)
從圖7和圖8可以看出,F(xiàn)IFO深度為8時(shí)本文方法在2種修復(fù)方式下相對(duì)固定約束分析方法的面積比例和FIFO深度為4時(shí)是基本一樣的,實(shí)驗(yàn)表明,更深的FIFO深度的情況也類似,但固定約束方法增加單元的絕對(duì)面積要遠(yuǎn)遠(yuǎn)超過(guò)FIFO為4的情況。這是因?yàn)镕IFO深度增加后無(wú)論加大寫時(shí)鐘樹延時(shí)還是加大讀時(shí)鐘樹延時(shí)都需要插入更多的緩沖單元,因此FIFO深度越大本文方法相對(duì)固定約束分析方法的優(yōu)勢(shì)越明顯。
無(wú)論采取何種時(shí)序修復(fù)方式,固定約束分析方法都可能會(huì)導(dǎo)致單元面積的增長(zhǎng),而本文方法只在真正違反時(shí)序的路徑上進(jìn)行時(shí)序修復(fù),因此采用本文方法避免了由于檢查條件過(guò)嚴(yán)而增加不必要的邏輯,加速了時(shí)序收斂且最終能得到最優(yōu)的實(shí)現(xiàn)結(jié)果。
多異步時(shí)鐘域設(shè)計(jì)中CDC信號(hào)的時(shí)序分析及修復(fù)是保證設(shè)計(jì)功能正確的必要手段。本文提出的CDC信號(hào)滑動(dòng)窗口時(shí)序分析方法在每種corner的每條CDC通路上單獨(dú)設(shè)置適合的檢查窗口進(jìn)行時(shí)序分析,有效避免了常用的固定約束分析方法由于約束條件過(guò)嚴(yán)導(dǎo)致的虛假時(shí)序違反及不必要的時(shí)序修復(fù)而使設(shè)計(jì)面積增大的問(wèn)題,同時(shí)減輕了后端設(shè)計(jì)工作量。實(shí)驗(yàn)結(jié)果表明,本文方法顯著節(jié)省了單元面積。
本文方法針對(duì)的是圖1中的CDC結(jié)構(gòu),這種結(jié)構(gòu)也是目前使用最廣泛的CDC結(jié)構(gòu)。本文方法對(duì)其他類型的CDC結(jié)構(gòu)同樣適用,但具體實(shí)施方式需要相應(yīng)地進(jìn)行調(diào)整優(yōu)化。