ASIC設計的這些問題不可忽視

2020-12-11 電子產品世界

本文結合NCverilog,DesignCompile,Astro等ASIC設計所用到的EDA軟體,從工藝獨立性、系統的穩定性、複雜性的角度對比各種ASIC的設計方法,介紹了在編碼設計、綜合設計、靜態時序分析和時序仿真等階段經常忽視的問題以及避免的辦法,從而使得整個設計具有可控性。

本文引用地址:http://www.eepw.com.cn/article/201807/384725.htm

一.基本的ASIC設計流程

ASIC設計流程可以粗分為前端設計和後端設計,如果需要更細的劃分,可以分成如下幾個步驟:

1.包括系統結構分析設計、RTL編碼以及功能驗證;

2.邏輯綜合、PreLayoutSTA以及形式驗證(RTL代碼與邏輯綜合生成的Netlist之間);

3.Floorplan、Placement、ClockTree插入以及全局布線(GlobalRouting)

4.形式驗證(邏輯綜合的Netlist與帶有CT信息的Netlist之間)、STA;

5.DetailedRouting,DRC;

6.PostlayoutSTA,帶有反標延遲信息的門級仿真;

7.Tape-Out

當然,這還是一個比較粗的流程,其中每個步驟還可以分得更細,通常所說的前端設計主要包括上述流程中的1,2,4,6這幾個部分。同時,這個流程是一個迭代的過程。對於一些通常的問題以及其中的一些方法,已經有大量的文獻中提到,本文將不再贅述,因此本文著力於討論在設計各個階段中一些容易被忽視的或者可能帶來潛在危險的地方。

二.結構分析設計、RTL編碼

這一階段在整個ASIC設計中佔非常重要的地位,結構分析設計階段主要是從產品的功能定義出發,對產品採用的工藝、功耗、面積、性能以及代價進行初步的評估,從而制定相應的設計規劃,對於規模很大的ASIC設計,在這一階段估算晶片的功耗面積非常困難。

在這裡引入一個ASIC設計中很重要的概念:劃分(Partitioning),在不同的設計階段這個概念都將提到。首先,必須在晶片的Top-1級進行功能劃分,Top-1級通常可以分為4個大的功能模塊,IOPads、邊界掃描邏輯、核心功能邏輯,以及PLL時鐘模塊,然後再對核心功能邏輯依據功能進一步細化。核心功能部分將是RTL編碼設計的重點部分,下面就這一部分展開說明。

1.良好的編碼風格

編碼風格對晶片的正確性、可讀性、可維護性以及綜合後晶片的性能、面積都有很大的影響。自然,對於編碼中遇到的所有問題一一闡述不是一篇論文所能做到的,下面只對一些經常遇到的可能產生錯誤的地方進行重點說明。

無論從可重用設計的角度還是代碼仿真行為與實際晶片的行為一致性的角度來說,採用工藝獨立的設計是必要的,一些工程師在編碼時可能用到一些延遲單元或者延遲線,來生成一個脈衝來操作,由於延遲單元對溫度、電壓以及製造工藝敏感,這些因素的改變也會改變生成的脈衝的寬度,因此,可能在仿真的時候沒有問題,或者在某些操作條件下沒有問題,而實際晶片工作時或者工作條件改變時晶片就沒有按照設計目標工作了。

在RTL級編碼時應該儘量避免採用例化標準單元門的方式編碼,這不僅降低代碼的可讀性,當採用新的單元庫或者新的工藝時,這些代碼就需要反覆的修改,綜合工具也不會對這些代碼進行邏輯優化。

其他問題如:由於沒有對所有的條件分支賦值引起潛在的Latch問題、always塊中的敏感列表問題,以及阻塞賦值與非阻塞賦值的選擇問題很多文獻中都提到,就不再贅述。下面提到一個容易被忽視的問題,在定義時序塊時,有些信號是需要復位的,有些不需要復位,如果編碼時把它們寫在一個always塊中,綜合出來的電路就不是我們設想的。對於那些不需要復位的信號,綜合後可能把復位信號連到對應的觸發器使能端,這樣導致RTL代碼和Netlist的行為不一致,而這類問題在形式驗證時也沒法發現,需要通過大量的門級仿真才可能發現。

ASIC設計應該儘量避免採用Latch作為時序單元,Latch設計潛在的問題,如:如果使能輸入端有Glitch,就會導致鎖存噪聲數據。或者你能夠保證數據穩定時間可以包住使能信號,可你很難保證在使能關閉的瞬間D輸入端沒有Glitch,尤其在接收總線數據的時候。同時,Latch設計還帶來STA和DFT的困難,而採用觸發器的設計,通過Setup/Hold時間的檢查報出這些問題。因此,儘管Latch設計有面積、低功耗等方面的優勢,由於這些潛在的風險使得設計變得不可控,因此不推薦使用。

儘量避免把時鐘當作信號使用,在RTL驗證時不會出現什麼問題,但是,如果在後端設計的時候忽略了對這些點的時鐘skew控制,就會產生意想不到的結果。例如:

例1:

這個代碼在RTL級仿真時是不會有任何問題的,其中潛在的問題留待後面討論。

2.同步設計和跨時鐘域數據傳輸

儘管異步系統有很多優勢,如低功耗,也沒有同步系統中讓工程師頭疼的時鐘分布以及skew問題,但是其複雜的各種握手協議,以及異步電路在測試上的困難,使得同步系統還是數字電路設計的首選。同步設計的一個特點就是所有的時序單元都是對統一的時鐘邊沿敏感。要使整個晶片只採用一個時鐘並不現實,因此,異步時鐘域之間的數據傳輸以及其中的一些問題將是本節討論的重點。

通常,為了能夠更好的綜合和STA,需要對設計進行劃分,一般的原則是將異步時鐘域之間有數據交換的部分獨立出來單獨處理,其他的模塊都在單一的同步時鐘域中工作。對於這些模塊如何在綜合過程中特殊處理在下面的章節中討論,本節主要討論在代碼設計中需要考慮的問題。

異步時鐘之間的亞穩態(Metastability)問題,亞穩態主要是由於被採樣數據的變化十分靠近採樣時鐘的邊沿引起的,這樣接收(採樣)觸發器的輸出就是亞穩態,並在傳輸過程中發散而引發邏輯錯誤,也就是通常所說的同步失敗。在同步時鐘域中的這種問題是Hold問題,可以通過EDA工具或插入buffer消除,因為EDA工具可以檢測到這種問題。那麼在異步接收設計中通過兩級Flipflop來消除這種可能出現的亞穩態。現在也有工具檢測代碼中可能出現的亞穩態問題。多位接收控制信號之間的skew引起的問題如圖1,如果其中一位如C2延遲大於C1,Ck採樣的數據就變成了C2=1,C1=0,如果按照無skew傳輸的波形是C2』的樣子,應該是00才對。而skew是不可避免的,可能是由於C2C1信號的Launch時鐘本身的skew引起,也可能是傳輸延遲引起。對於簡單的情況,我們可以通過簡化邏輯,儘量讓控制信號是1位寬。而這樣的問題同樣出現在多位寬的數據接收情況。這時通常推薦使用異步FIFO接收,或者通過握手協議接收。有的系統設計數據交換協議約定,異步接收過程中,當某個事件發生後(如圖1中採樣到V信號為1後)的1個Cycle後(也可以約定多個Cycle)數據肯定是正確的;也可以消除這種skew問題,但是,這種實現需要後端設計時保證這些相關信號的skew不會超過約定的周期,同時發送方的數據也要保持足夠的周期數。如圖1中C2」信號,如果skew2>Period(一個CKCycle),則收到V信號一個Cycle後採樣數據還是錯誤的。

3.復位策略

復位信號中最主要的問題是Removal,也就是要保證所有的觸發器必須在同一節拍內離開Reset狀態,另外,Reset信號完成的時刻不能與時鐘邊沿太靠近,以防止觸發器進入亞穩態(Metastability)。同步復位和異步復位各有利弊,很難說哪種更有優勢。除了在編碼風格時講到的一個問題,在這裡再對兩種策略中可能出現的問題進行分析說明。

同步復位有一個好處就是復位的時刻發生在時鐘的邊沿,這樣可以防止復位信號的Glitch。如果是內部生產的Reset信號,就必須保證Reset脈衝有足夠的寬,至少2個Cycles,能夠讓時鐘採樣到。同時,這也是它的缺點,因為它需要一個活動的時鐘,在加電時無法對一些電路產生復位。另外,綜合可能把同步復位的邏輯移到觸發器的D輸入端,作為普通的信號處理,由於Reset信號通常有傳輸負載和延遲,這樣處理會導致DataPath上較長的延遲。

異步復位的最大好處就是不需要活動的時鐘,對於一些需要加電復位的電路,如總線,是很必要的;同時,不像同步復位那樣,復位信號會被用作D端的輸入邏輯,使得整個DataPath非常乾淨。如果異步復位有Glitch可能使晶片進入復位狀態,這時可以通過兩級DFF接收Reset,再通過tree給復位觸發器使用,這樣可以消除輸入引起的Glitch,如果設計中有多個時鐘域,可以對每個時鐘分配兩個DFF接收Reset信號。

4.門控時鐘

GatedClock主要的優點在於能夠降低功耗面積,也可以簡化邏輯從而提高頻率。在編碼時需要考慮無Glitch的門控信號設計。同時,在DFT設計時,由於觸發器的時鐘是前一級邏輯的輸出(其他派生時鐘也有同樣的問題),為了測試這類觸發器,需要為時鐘增加一級Mux,在正常工作模式下,採用派生時鐘,在掃描測試時採用正常的時鐘。門控時鐘的主要問題出現在綜合、CTS插入以及STA分析的時候,在後面將進行特別的分析討論。

5.總線實現

在這裡只討論總線實現的方式,不涉及總線的協議。在設計總線時將面臨著兩種基本方式的選擇,是採用三態總線還是採用多路選擇結構的總線。在全定製設計時,設計者似乎更喜歡採用三態,掛在總線上的各個部件可以分布在晶片的各個部分。同時,由於可以減少連線的數量,它必須保證在任何時候,不發生總線衝突,如果多個驅動總線可能導致嚴重的錯誤,需要通過一些措施消除這種隱患,比如三態的使能通過解碼器產生Onehot的編碼,防止多驅動引起的邏輯錯誤和對晶片的損害;同時,三態總線需要連到上拉電阻上,以防止在一段時間內不驅動總線產生總線數據不確定,而DC等綜合併不支持。另外,三態總線的電容負載也是一個不可忽視的問題,對性能和面積造成不利的影響,其負載主要來自總線連接的多個電路單元,總線布局本身帶來一定的負載;最後,三態總線給DFT設計也帶來困難。基於這些理由,在非定製ASIC設計時,我們實在不必要選擇三態總線的方式。相比之下,採用多路選擇器的問題是較多連線帶來的布線擁塞問題,選擇器的延遲問題基本上不是什麼問題,深亞微米設計中,門的延遲差別已經變少,同時多層金屬也帶來了足夠的布線資源。

三.邏輯綜合以及後端設計相關問題

1.編碼風格檢查

DC對編碼風格的檢查提供良好的支持,在進行邏輯綜合之前最好先分析一下DC的log文件,看是否有上述的或其他的一些編碼風格問題。通過set_dont_use命令可以禁止使用一些工藝相關的單元,all_registers帶參數也可以報告出設計中所用到的Latch。下面主要討論前面提到的一些情況在綜合以及後端實現時的特殊處理。同時,還有很多EDA工具提供編碼風格進行檢查。

2.異步時鐘域

在編碼設計中我們通過劃分,將異步時鐘域接收模塊分離成獨立的模塊,其他模塊都採用單獨的時鐘,綜合約束相對簡單。對於那些帶有異步時鐘域的模塊,如果不進行約束,DC總是試圖去滿足採樣時鐘的setup/hold時間,事實上,設計者並不關心異步時鐘域之間的這些問題,而其Metastability問題在編碼階段已經解決。通常,可以設置異步時鐘域之間的Path為false_path。如:

set_false_path-from[get_clocksCLKB]-to[get_clocksCLKA]

如果異步接口數據的控制按照最後一種方式

(也就是在約定的節拍內讀取數據),也就需要發送方的數據skew控制在一定範圍內。由於沒有對這些路徑進行約束(雖然可以設置這些path的Maxdelay,但是這種約束對於skew的控制並不能取得好的效果),工具無法對這些路徑進行自動優化。因此最好採用手工布局的方法,讓這些skew在一個可控的範圍內,在STA階段,也需要對這些skew進行單獨的分析。

3.特殊時鐘信號處理

門控時鐘像所有的內部時鐘一樣,時鐘的skew可能引起一些保持時間問題,默認條件下,時鐘樹綜合工具並不把邏輯門相連的時鐘信號連到時鐘樹上,非門控的觸發器上的時鐘是連在時鐘樹上,這個時鐘延遲是相當可觀的,為了控制門控時鐘與非門控時鐘的skew,通常從時鐘樹葉子節點的上一級引出時鐘信號作為控制門的時鐘輸入。在STA階段需要對門控時鐘的Setup/Hold時間進行特殊分析,以及Glitch檢查。然後,我們再回顧一下例1的代碼中的情況,可以用圖2的示意圖表示。

圖2.時鐘作為普通信號使用的情況

為了方便討論,時鐘樹插入以後,假設A與B之間有1個ckaCycle的skew;從圖3可以看到如果採用A點作加法器的輸入時產生的波形是ckb』,採用B點作為輸入時的波形是ckb,顯然,從例1的代碼來看,ckb才是正確的。因此必須注意到,如果時鐘當作普通的信號使用時可能帶來的問題,這類問題並沒有一個通用的解決辦法。在這個例子中,不採用時鐘樹上的信號才是正確的,但是在另外一些應用中,就必須採用時鐘樹上的信號。比如,時鐘是CK的兩個觸發器中鎖存的數據再由CK的高電平和低電平選擇輸出,那麼,這個時候就需要作為選擇信號的CK從時鐘樹上拉過來。因此,如果設計中用到了時鐘信號作為普通信號的情況,在後端設計時就必須特殊處理。

圖3.Skew引起的設計錯誤

如果設計中用到時鐘的上升沿和下降沿,在時鐘樹插入的時候也需要注意採用能夠平衡上升沿和下降沿的buffer,以保證較好的佔空比。

4.復位信號

復位中的Removal問題,對於異步復位信號,需要tree來平衡各個負載點上的skew,但是,Reset信號的skew控制不像時鐘那麼嚴格,只要滿足Removal檢查就可以,PT等STA工具支持Removal的檢查。

四.帶Post-Layout延遲信息的門級仿真

門級仿真非常重要,它是最後一道關卡,可以從兩個方面入手,功能性驗證和時序驗證,最主要的是時序驗證,功能性驗證基本上由RTL級已經做了很多充分的工作,如果等價性驗證通過,功能性基本沒問題。

時序仿真需要了解到一些仿真工具所採用的延遲模型,仿真工具的延遲計算都是基於一種簡單延遲模型:

CircuitDelay=TransportDelayInertialDelay

時序仿真的目標是通過反標SDF文件中延遲信息,模擬一些在RTL級無法出現的一些情況,如復位,狀態機的翻轉。充分的驗證應該包括在bestcase下檢查短路徑的hold時間,在worstcase下檢查長路徑的setup時間。這些問題雖然在STA也作了檢查,門級仿真還是很必要的,尤其在用到時鐘雙邊沿的設計中;另外,對於有異步時鐘接口的設計,需要調整異步時鐘的相位關係,檢查是否存在著同步失敗問題;3.3中特殊時鐘問題,都可以通過門仿驗證其正確性;一些窄脈衝是否能通過IOBuffer。總之,這是一個非常重要的過程,需要花大量的時間去分析一些關鍵信號的波形與設想的是否一致。

總結

ASIC設計是一個複雜和全局的過程,從結構設計、代碼設計、綜合以及物理設計、時序分析、門級仿真,整個過程周期長,每個環節都不能孤立的思考。需要設計人員花費大量的時間去降低或消除設計中潛在的風險,才能設計出功能正確,性能滿足要求的產品。因此,IC設計的工具如果能在很大程度上緩解設計人員的操作壓力,令其可以安心進行設計工作,這樣的設計工具對於設計師來說,可以說是一枚「利器」。

相關焦點

  • 想一次性流片成功 ASIC設計中這些問題不可忽視
    另外,三態總線的電容負載也是一個不可忽視的問題,對性能和面積造成不利的影響,其負載主要來自總線連接的多個電路單元,總線布局本身帶來一定的負載;最後,三態總線給DFT設計也帶來困難。基於這些理由,在非定製ASIC設計時,我們實在不必要選擇三態總線的方式。
  • 澳洲證券投資委員會(ASIC)
    ASIC  名稱:澳洲證券投資委員會  簡稱:ASIC 監管級別:四星  官方網站:http://www.asic.gov.au  如何查詢  第一,金融業務許可證號的查詢方式:  1.登錄澳洲金融監管協會ASIC的官網 http://www.asic.gov.au/asic/asic.nsf   2.選擇頁面右方的:Professional registers (專業查詢)  3.查詢方式有兩種,任選一種:①Enter
  • 鄭州服裝店裝修設計-不可忽視的重要細節
    鄭州服裝店裝修設計-不可忽視的重要細節,在生活中服裝店我們可以說是隨處可見了,人們也越來越追求時尚追求魅力,購物也已經成為當今的一種潮流了,好的裝修也能夠帶來一個好的生意,那麼我們在裝修設計中有哪些不可忽視的重要細節呢。
  • 電巢學堂:ASIC設計中各個階段需要注意的問題
    本文結合NCverilog,DesignCompile,Astro等ASIC設計所用到的EDA軟體,從工藝獨立性、系統的穩定性、複雜性的角度對比各種ASIC的設計方法,介紹了在編碼設計、綜合設計、靜態時序分析和時序仿真等階段經常忽視的問題以及避免的辦法,從而使得整個設計具有可控性。
  • 美容院加盟店經營這些方面不可忽視
    美容院行業的發展給很多美業創業者們提供了創業致富的途徑,同時很多美容顧客因此也變得更加美麗和自信,而對於美容院來說,服務體系的完善和品牌效應是給美容院長期持續經營的法寶,美容院加盟店想要經營好這些方面不可忽視!
  • 不可忽視的論文查重問題
    又有哪些不可忽視的論文查重問題呢?1、論文查重是十分嚴格的一個過程,因為論文檢測系統的不斷升級,論文檢測也變得越來越嚴格,不再是以前的根據一兩個單詞或句子進行判斷論文是否存在抄襲了。現在市面上很多的論文查重系統都能夠在一定程度上識別論文抄襲、語句、章節的順序調整,所以你如果只是簡單的替換一些重複用詞是達不到降低重複率效果的。
  • 違反中國法律,ASIC對USGFX及其兩家授權代表提起民事訴訟
    2019年4月11日,ASIC針對持牌外匯及差價合約經紀商發出通知,要求經紀商停止向包括中國在內的部分國家和地區客戶提供金融交易服務,因這些服務可能違反了當地法律法規。同時要求持牌經紀商在6月底之前處理完畢並向ASIC提交報告,否則將針對經紀商採取司法行動。
  • 溫馨提示:高考臨近,這些生活小細節不可忽視
    {"title":"溫馨提示:高考臨近,這些生活小細節不可忽視", "url":"https://www.cqcb.com/county/fengdu/fengduxinwen/2020-06-29/2607195.html", "image":"https://image2.cqcb.com/d/file
  • ASIC:部分在海外開展業務的持牌機構或違反當地法律
    2019年4月11日,ASIC在官網發布新聞稿指出,向海外散戶投資者提供場外衍生品的澳大利亞金融服務(AFS)許可證持有者,可能正在這些司法管轄區內提供未經許可或未經授權的服務。
  • 這些標誌萬萬不可忽視,否則很危險!
    這些標誌萬萬不可忽視,否則很危險!來源:平安遼寧微信搜索「遼寧普法」原標題:《這些標誌萬萬不可忽視,否則很危險!》
  • 突發:澳大利亞ASIC提議禁止二元期權,外匯槓桿降至20倍
    (詳見《ASIC:散戶投資者超100萬,交易量達21萬億美元》)Cathie ArmorAsic專員Cathie Armor對此表示,「這些產品交易中,僅有17%的客戶來自澳大利亞本土,而62%的交易者來自亞洲,剩下來自全球各地。我們認為二元期權是一種賭博產品,這是一種不合法的服務。
  • 寶寶睡覺愛踢被子,不一定是因為熱,這些問題不可忽視
    其實,寶寶睡覺愛踢被子,不一定是因為熱,這些問題不可忽視。睡前給寶寶吃太多,積食了對於很多新手媽媽們來說,能夠把孩子給照顧好確實是一件挺難的事情,有時候不小心就會給孩子吃太多,特別是在晚上的時候,不想讓孩子鬧夜,於是就在睡前讓孩子多吃一點。
  • 男人早洩不可忽視的問題-成都曙光醫院男科-復禾疾病庫
    男人早洩不可忽視的問題 時間:2020-12-03 10:32成都曙光醫院男科 醫院推薦:【男人早洩不可忽視的問題】要點:_男人早洩不可忽視的問題正文:說到早射,想來男生一定不生疏吧!
  • 這些用處你不可忽視!
    這些用處你不可忽視! 2020全國初中高級會計專業技術資格考試考試時間公布,會計資格證作為財經會計行業工作的標配證書每年都有大量人報考取證。那麼,有了會計資格證有哪些好處?自己考下會計資格證有啥用?山東會計取證網來告訴你!
  • 高考作文複習指南:不可忽視的5大問題,重視起來,高分不成問題
    導語:高考作文複習指南:不可忽視的5大問題,重視起來,高分不成問題努力拼搏,贏在高考不管高考制度如何變化那麼,下面老師就帶大家來看一下,高考作文複習指南:不可忽視的5大問題,重視起來,高分不成問題。1. 考試中作文時間安排高考語文一般是兩個半小時,正好是150分鐘的時間,而作文佔了60分,所以留給作文的時間也需要60分鐘,這是最合理的時間。
  • 飲料包裝設計很重要,這些要素不可忽視!
    對於飲料來說,有一個好的包裝是非常有必要的,如果飲料包裝設計得非常好看,可能會吸引更多的消費者去購買。從包裝的角度出發,它涉及的要素都有哪些呢?大家往下看。1、品牌或者商標不管是飲料包裝設計方面還是其它商品的包裝設計方面,包裝的要素包括很多,其中有一個主要的要素,那就是品牌或者商標,這一部分放在包裝上的位置是有要求的,一定是消費者看著比較醒目的地方,要顯眼才可以。
  • 白露前後水產養殖過程中不可忽視的那些問題
    白露前後水產養殖過程中不可忽視的那些問題2015-09-09 14:31:00  水產養殖網  出處:好潤生物科技有限公司        瀏覽量: 3069 次 我要評論   白露前後,實際上是全國所有水產養殖品種養殖進入到一個除了高溫雨季的又一輪發病高峰期,尤其在河蟹養殖過程中,很多養殖朋友非常注重養殖前期和中期的管理,但到了養殖後期往往容易掉以輕心,
  • 這些日常行為損聽力 健康用耳不可忽視
    這些日常行為損聽力 健康用耳不可忽視 原標題:   3月3日是第20個全國「愛耳日」,廣東省婦幼保健院耳鼻喉科主任醫師麥飛指出,耳機音量過大、高噪音環境、用力擤鼻涕、挖耳朵等日常行為可能對聽力造成不可逆的損傷
  • 科研選題前,不可忽視的探索性研究
    平時我們可以看到很多關於科研工作的方法論和流程,告訴大家科研工作發端於一個「問題」,或者某種「靈感」。卻很少會闡述如何才能發現「問題」,如何才能獲取「靈感」。很多對科研業績心懷抱負的研究者恰恰是在開題初期都會有無從下手之感。
  • 商鋪內部有什麼講究,這些要點不可忽視!
    店內有什麼講究,這些要點不容忽視!人車多而慢:在商業風水中人的流動性和車的流動性都代表著水,要旺要慢,它們就是你的財運,現在很多地方都被設計成了商業步行街,目的是降低人們的流動速度,這叫做「旺水慢而慢」。依山傍水:商店同樣也要考慮避開日曬和寒風,最好還是坐在那裡曬太陽。過於耀眼的光線在風水中被視為光煞,射入商鋪對商鋪的經營極為不利。