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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

模擬IC設計的這些坑你都踩過嗎?

Spinal FPGA ? 來源:速石科技 ? 2023-03-06 15:51 ? 次閱讀

如果說數(shù)字IC像科學,那么模擬IC,就更像是一種魔法。 利用計算機來輔助模擬芯片設計,本質是在解一道又一道高階微分方程題。

EDA工具就是干這個的,ta的價值,就不需要我們來解釋了。

而我們今天的主題是:模擬IC設計不同階段有哪些典型的業(yè)務特點,使用的EDA工具有哪些特性,我們如何利用計算機技術提升不同業(yè)務場景的計算效率,協(xié)助模擬芯片工程師更高效地完成芯片研發(fā)工作,提升整體效率。

本篇主要從EDA工具的計算任務視角出發(fā)。

而在計算角度之外,調度/管理/數(shù)據(jù)/協(xié)同/CAD等視角,那就是另外的(價錢)篇章了~ 先給大家一個模擬芯片設計全流程分析圖:

57317f5e-bbd5-11ed-bfe3-dac502259ad0.jpg

1、前仿階段:前端電路設計仿真

本階段包括了設計需求/說明書架構、原理圖輸入、前仿結果比對設計需求3大步驟。

前仿階段本質上是數(shù)值計算,因此對主頻要求很高,一旦資源無法滿足,會直接造成CPU過載,且任務之間獨立可切割,十分適合并行

基于設計圖的設計與仿真,參數(shù)范圍較少,對內存要求不高

此階段多為多corner與蒙特卡羅Monte Carlo任務,峰值算力需求較高,存儲需求一般。

2、中期:版圖設計驗證

本階段包括版圖設計、版圖規(guī)則檢查DRC/LVS兩個步驟。 版圖繪制/驗證同屬規(guī)則檢查,因為不涉及數(shù)值計算,對主頻要求不高,重內存需求。

版圖可以模塊為單位進行切割,子任務間幾乎無數(shù)據(jù)關聯(lián)、適合并行。但版圖檢查量十分大,算力需求比前仿高推薦使用多核+大內存機型,存儲要求最高。

3、后仿階段:后端仿真

后仿包括寄生參數(shù)提取、后端仿真、GDS文件形成。

后仿和前仿類似,多個任務可進行分布式處理。

但后仿階段任務,因為有可能涉及電磁場仿真,本質雖為數(shù)值計算,但需在優(yōu)先滿足內存情況下,再滿足高主頻需求,因為加入了各類元器件的寄生參數(shù),算力需求是三大階段里最高的,存儲比前仿要求高,有時會與版圖階段相當。

下圖是我們某客戶全生命周期月度算力實際用量曲線,可以看到后端的波峰相當明顯

5752bca0-bbd5-11ed-bfe3-dac502259ad0.png

以下,我們選了三種典型場景,展開說說:

兩大超常見數(shù)值計算場景

多corner又稱為多工藝角,和蒙特卡羅Monte Carlo屬于兩種不同的電路性能與工藝誤差的估計方法,本質上都是數(shù)值計算,前仿和后仿都會大量使用這兩種方法進行任務處理。

這兩種方法里的單個任務間都獨立、沒有數(shù)據(jù)關聯(lián),不論是多corner 還是Monte Carlo都很適合進行
分布式并行計算。

多corner是將元件的電阻、溫度、電壓等參數(shù)的誤差上下限固定后,取每個參數(shù)的極值(誤差上限或誤差下限)進行排列組合,每一個組合都是一個獨立的任務。

一種組合就是一個corner,全部的排列組合即多corner。

這就像你來到一家二選一奶茶店。這家店奶茶店的甜度、熱度、加多少配料都只提供兩個選擇,你要么選擇不甜,要么最甜。你每喝一次無非都在這些選項里排列組合(2*2*2種),比如超多糖、燙嘴、超多料;下次你換一種排列組合,無糖,多冰,無料;所有選項的排列組合全點了,那就是多corner。

蒙特卡羅Monte Carlo則是在上、下限之間無窮盡地取值進行排列組合。

這次你來到了一家新的奶茶店,名字叫無窮∞奶茶店,選項完全定制化。你可以在選擇任意一個值,比如第一次你喝的是3分甜、少少冰、不加料;下一次覺得不夠甜,不冰,你點了6.6分甜、7.8分冰、加兩顆珍珠。

這樣就會有出現(xiàn)無數(shù)種排列組合的奶茶,這就是蒙特卡羅Monte Carlo了。

可取無數(shù)個組合的蒙特卡羅Monte Carlo可以用來估算良率的范圍,隨著取值組合越多,對工藝偏差導致的誤差估計范圍越準確,對實際的成品良率預測范圍越準確,當然計算量也會成倍提高。

不管是哪家奶茶店,這杯奶茶與那杯奶茶之間互相獨立,你喝你的,我喝我的。

這就是多corner和蒙特卡羅Monte Carlo任務特別適合分布式并行計算的本質原因。

不同任務,你算你的,我算我的,分開算,人多力量大。 不論是前仿還是后仿階段,都需要大量多corner與蒙特卡羅Monte Carlo仿真。

兩者相比,蒙特卡羅Monte Carlo仿真因為取值選擇多,組合多,計算量明顯比多corner大。 而前仿和后仿之間,后仿因涉及更多的物理參數(shù),兩種算法的計算量都會呈幾何倍增長,算力需求也更大。

整體來說,這兩種數(shù)值計算方法任務間獨立,算力需求大,是我們幫用戶提高效率的典型場景之一。

“大家來找茬”之版圖驗證任務

版圖設計,就是把設計好的電路原理圖變成包含實際布局布線規(guī)劃內容的掩模版圖,設計師每天在電路圖上畫花花綠綠的MOS管,確定要用多少元件、用哪種排列方法,在保證芯片電氣性能的前提下,怎么跨層使得芯片體積最小、最省錢。

版圖驗證就是把畫好的版圖和原理圖進行比對,確保兩者的拓撲連接關系一致,同時檢查版圖是否符合foundry的設計工藝

版圖設計與驗證,就像是在玩一個“大家來找茬”的游戲,首先幾個版圖設計師先一起把這張圖分工合作給畫出來。到了版圖驗證階段,就開始正式玩找茬游戲了。目的是檢查版圖有哪些地方不對,有問題的話,打回去重新畫。畫完再繼續(xù)檢查,循環(huán)往復。

如果使用“小F影分身術(版圖分割術),可以把小F分為9個影子,每個影子只需負責找茬九分之一個版圖,影分身的數(shù)量越多(版圖切割的任務數(shù))越多,分配的資源數(shù)越多,單位效率越高(當然,版圖大小有個物理上限,沒必要走極端)。 更重要的一點,切割版圖與找茬任務之間互不干擾,你改你的,我改我的。你改完了重新提交下一輪,也不影響我還在上一輪。中間也不用因為等待而停工。

579b28b4-bbd5-11ed-bfe3-dac502259ad0.jpg

切割版圖并合理分配資源的檢查方法,可以讓版圖設計師無需苦苦等待一臺計算機對單個大版圖各部分逐一檢查,而可以讓多臺計算機并行檢查同一張大版圖的不同部分,并自動匯總結果

這樣一來就能更快地完成任務。 版圖、原理圖對比與設計規(guī)則檢查同屬檢查類任務,都是以模塊為單位,本質上是數(shù)據(jù)對比工作、重內存需求、子任務間沒有數(shù)據(jù)關聯(lián),是一種高并行度任務。

因此這一階段很適合在云上使用內存優(yōu)化型資源,通過暴力堆資源的方式快速完成任務。

模擬電路王冠上的明珠--射頻電路

射頻芯片作為模擬電路王冠上的明珠,一直被認為是芯片設計中的“華山之巔”。

一方面因為射頻電路的物理形狀和周圍介質分布會對射頻信號的傳輸造成很大影響,因此設計之路十分困難,前期需要進行大量仿真測試,而且為了保證高頻性能,材料的選取也十分講究,比如砷化鎵和氮化鎵

另一方面,為了保證射頻芯片各類指標的性能均衡,很多指標的性能要求都需要挑戰(zhàn)工藝極限或設計創(chuàng)新性的電路結構,十分考驗工程師的經(jīng)驗積累。

射頻需要使用電磁場仿真,需要計算三維空間向量。

如果說版圖是將二維世界切成一片片的,那射頻就是將立體空間切成一粒粒的,當然更具挑戰(zhàn)性,算力需求也會呈指數(shù)級增加。

57b0d3bc-bbd5-11ed-bfe3-dac502259ad0.png

當遇到CPU無法滿足的情況,不妨嘗試使用GPU處理,他們可是處理向量計算的一把好手

目前射頻電路電磁場仿真的三種常用軟件分別為:HFSS、EMX、ADS。

HFSS處理智能制造/汽車制造場景下的電磁場仿真較多、也支持部分芯片設計場景,EMX和ADS處理芯片設計場景的電磁場仿真更為廣泛。

其中,HFSS和19版之后的ADS支持GPU處理電磁場仿真任務,且通過并行化處理后,效率提升十分顯著;EMX作為Cadence里的萬能插件暫不支持GPU任務。

關于計算量級的本質

單模塊、多模塊和top級任務是三種計算量級的任務,從字面上就能猜到單模塊任務,計算量最少;以此遞增,top級任務計算量最多。

57e30ecc-bbd5-11ed-bfe3-dac502259ad0.png

單模塊任務指的是單一模塊的任務,比如單層上的某個元器件就是一個單模塊任務,計算量級最小,可能可以繼續(xù)拆,也可能是最小不可拆分任務;

多模塊任務指的是多個單模塊合并在一起的任務,比如一層上的多個元器件組合在一起的模塊,計算量級中等,可將多個模塊拆分進行多線程處理;

top級任務,字如其名,是整個芯片設計階段最大規(guī)模的仿真,將整個芯片的全部功能模塊聚在一起,做全功能驗證。top級仿真是在頂視圖下的一整套前仿或后仿,算力需求最高。

如果涉及到進工藝(28nm以下芯片),更小的空間,更多的模塊,更復雜的PDK工藝庫,計算量呈指數(shù)級增長。

而且先進制程芯片后仿時還要做IR Drop的獨立性檢查,是SignOff的一個必要步驟。業(yè)內在該步驟使用的工具大多為Redhawk,和DRC/LVS的算法流程基本一致。

關于模擬IC設計,從不同設計階段的計算任務視角出發(fā),我們總結了三點:

1、三大階段的算力需求呈現(xiàn)前期<中期<后期的趨勢。和波谷相比,峰值算力最高可達到百萬級別,使用彈性云端資源可以高效且動態(tài)地滿足峰值需求;

2、多corner、蒙特卡羅Monte Carlo以及DRC、LVS這類任務,非常適合直接用多機并行來提升任務效率;

3、基于單模塊不可拆的任務,雖不能做到多機分布式處理,但可以通過上大內存、高主頻機型,靠機器的性能實現(xiàn)任務效率的提升。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模擬IC
    +關注

    關注

    8

    文章

    167

    瀏覽量

    29328
  • IC設計
    +關注

    關注

    37

    文章

    1290

    瀏覽量

    103628
  • EDA工具
    +關注

    關注

    4

    文章

    264

    瀏覽量

    31640
  • 模擬信號
    +關注

    關注

    8

    文章

    1098

    瀏覽量

    52320
  • PDK
    PDK
    +關注

    關注

    0

    文章

    15

    瀏覽量

    7621

原文標題:模擬IC設計的這些坑,你都踩過嗎?

文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用STM32采集電池電壓的那些

    本文來解析一個盆友在使用STM32采集電池電壓。以STM32F4 的ADC屬于逐次逼近SAR 型ADC為例進行分析,參考STM32F405xxDatasheet,對于如何編寫ADC程序就不做描述了。
    發(fā)表于 03-01 07:39

    開發(fā)STM32 USB HID

    記錄一下 開發(fā)STM32 USB HID一、前言二、代碼配置一、前言MCU: STM32F103C8T6CubeMX: STM32CubeMX 5.3.0二、代碼配置引腳配置時鐘樹配置我
    發(fā)表于 08-24 07:15

    使用樹莓派搭建stm32開發(fā)環(huán)境以及碰到的問題

    使用樹莓派搭建stm32開發(fā)環(huán)境了很多,下面主要是記錄一下,以及碰到的問題。##開發(fā)方式的選擇1.使用Eclipse+GDB+O
    發(fā)表于 08-24 07:47

    Linux學習過程與如何解決

    Linux記錄記錄Linux學習過程與如何解決
    發(fā)表于 11-04 08:44

    使用MDK5時出現(xiàn)的一些error分享

    使用MDK5時出現(xiàn)的一些error分享
    發(fā)表于 12-17 07:49

    關于RK1808板子調試過程記錄

    關于RK1808板子調試過程記錄
    發(fā)表于 02-16 06:38

    STM32G070CB cubemx串口調試哪些

    使用G070CB時寫的中斷程序是怎樣的?STM32G070CB cubemx串口調試哪些呢?
    發(fā)表于 02-18 06:08

    專訪技術創(chuàng)業(yè)工程師吳才澤:感恩這些

    本期采訪對象技術創(chuàng)業(yè)工程師吳才澤,這些年從工程師到創(chuàng)業(yè)那些呢?
    發(fā)表于 11-25 16:53 ?3330次閱讀

    使用STM32采集電池電壓資料下載

    電子發(fā)燒友網(wǎng)為提供使用STM32采集電池電壓資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫
    發(fā)表于 04-05 08:49 ?73次下載
    使用STM32采集電池電壓<b class='flag-5'>踩</b><b class='flag-5'>過</b>的<b class='flag-5'>坑</b>資料下載

    舉例:說明IF函數(shù)公式,多條件判斷,一定資料下載

    電子發(fā)燒友網(wǎng)為提供舉例:說明IF函數(shù)公式,多條件判斷,一定資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資
    發(fā)表于 04-22 08:51 ?14次下載
    舉例:說明IF函數(shù)公式,多條件判斷,<b class='flag-5'>你</b>一定<b class='flag-5'>踩</b><b class='flag-5'>過</b>的<b class='flag-5'>坑</b>資料下載

    嵌入式Linux記錄

    Linux記錄記錄Linux學習過程與如何解決
    發(fā)表于 11-01 17:21 ?10次下載
    嵌入式Linux<b class='flag-5'>踩</b><b class='flag-5'>坑</b>記錄

    Arduino-IDE配置ESP32-CAM開發(fā)環(huán)境的那些

    Arduino-IDE配置ESP32-CAM開發(fā)環(huán)境的那些
    發(fā)表于 11-30 18:36 ?24次下載
    Arduino-IDE配置ESP32-CAM開發(fā)環(huán)境<b class='flag-5'>踩</b><b class='flag-5'>過</b>的那些<b class='flag-5'>坑</b>

    推挽電路的,沒?

    推挽電路的,沒?
    的頭像 發(fā)表于 11-24 16:25 ?1000次閱讀
    推挽電路的<b class='flag-5'>坑</b>,<b class='flag-5'>你</b><b class='flag-5'>踩</b><b class='flag-5'>過</b>沒?

    關于圖像傳感器圖像質量的四大誤區(qū)!幾個?

    關于圖像傳感器圖像質量的四大誤區(qū)!幾個?
    的頭像 發(fā)表于 11-27 16:56 ?395次閱讀
    關于圖像傳感器圖像質量的四大誤區(qū)!<b class='flag-5'>你</b><b class='flag-5'>踩</b><b class='flag-5'>過</b>幾個<b class='flag-5'>坑</b>?

    反相輸入放大器的,沒有?

    反相輸入放大器的,沒有?
    的頭像 發(fā)表于 12-06 15:35 ?531次閱讀
    反相輸入放大器的<b class='flag-5'>坑</b>,<b class='flag-5'>你</b><b class='flag-5'>踩</b><b class='flag-5'>過</b>沒有?