“工欲善其事必先利其器”,做好數(shù)?;旌向?yàn)證必須了解EDA工具的工作原理。EDA仿真器是在干兩件事情(時(shí)間和數(shù)值),即在什么樣的時(shí)間,該出什么樣的數(shù)值(表現(xiàn));數(shù)字和模擬的差別在要解的方程組是完全不同的。
1.數(shù)字仿真器
Event Driven的邏輯方程是順序和并發(fā)執(zhí)行的,有很清晰的信號(hào)流和事件發(fā)生順序,可以同一個(gè)時(shí)刻多個(gè)Event并發(fā)執(zhí)行,但是不會(huì)回頭計(jì)算,所以它快。由于時(shí)間和數(shù)值都是離散的,所以不容易出現(xiàn)不收斂性的問題。完成代碼編程后,應(yīng)該知道有哪些Event要發(fā)生,等待那個(gè)時(shí)刻的反饋,如果沒有其他事情抵消掉(就不發(fā)生了),就只和邏輯方程打交道。問題是現(xiàn)實(shí)世界(對(duì)象是Transistor),并非是非黑即白的0,1世界,所以它的精度會(huì)低些;只要做好協(xié)議和糾錯(cuò)功能,倒是不會(huì)出錯(cuò)的。所以 SOC的頂層,如果用數(shù)字仿真器,也是因?yàn)樗臁?/p>
2.模擬仿真器
需要解決模擬大環(huán)境、大矩陣( System Matrix),而且要在仿真的每一步都站在全局的角度,看各種需求是否被滿足。模擬仿真器考慮的是真實(shí)的信號(hào)(電壓和電流)與系統(tǒng)。KCL、KVL,節(jié)點(diǎn)電流為0,回路電壓為0,往往用簡(jiǎn)單邏輯方程理不清楚,必須建立大型的矩陣。任何一個(gè)Analog環(huán)境里的元素/器件(Element)都直接影響到其他元件,正所謂的“牽一發(fā)而動(dòng)全身”。即使EDA工具可以對(duì)Analog電路做分割(Partition),以減小矩陣的規(guī)模。
Analog仿真器每往下走一步,都先試一試是否滿足Tolerance要求,滿足則往下繼續(xù);不符合,修改后再試,直到最終各種要求滿足;但是想滿足所有限制,有時(shí)候是比較困難的,所以大規(guī)模模擬仿真會(huì)經(jīng)常出現(xiàn)Convergence Issue,即仿真不收斂,這就需要考慮是否需要修改仿真設(shè)置與參數(shù),或者考慮電路哪里有薄弱點(diǎn),再進(jìn)行反復(fù)迭代。由于時(shí)間和數(shù)值都是連續(xù)量且相互影響,所以Analog仿真很慢,但比較精確,故高性能的Analog IC,都離不開Analog仿真器。
SPICE是一個(gè)解非線性常微分方程的工具,其快速仿真(Fast Spice,XPS)可以將整個(gè)電路分成幾個(gè)獨(dú)立的小塊單獨(dú)求解矩陣,然后再把各塊聯(lián)接起來。這樣速度比原來Spice快上幾十倍,而精度差別在Spice的5%-10%之內(nèi)。
3.數(shù)模混合仿真
當(dāng)DUT同時(shí)包含模擬電路(schematic)和數(shù)字電路(RTL)或者模擬模型(Verilog-AMS,SystemVerilog)的時(shí)候,仿真會(huì)同時(shí)使用模擬仿真器和數(shù)字仿真器,進(jìn)行數(shù)?;旌戏抡妗DM電路和Verilog-AMS模型中的Analog Statement部分,會(huì)由模擬仿真器進(jìn)行矩陣計(jì)算,有較高的精度。數(shù)字電路和模擬模型中的離散部分,則有數(shù)字仿真器進(jìn)行Event-Driven的邏輯方程計(jì)算。最終模擬和數(shù)字仿真器相互協(xié)調(diào)完成對(duì)DUT的整體仿真。。當(dāng)信號(hào)需要在模擬(連續(xù)時(shí)間域)和數(shù)字(離散時(shí)間域)進(jìn)行穿梭時(shí),則需要通過Connect Module(CM)。對(duì)于從數(shù)字到模擬的轉(zhuǎn)換,CM定義了信號(hào)的具體電特性,例如:阻抗,上升沿下降沿速率,電壓鉗位等等。對(duì)于從模擬到數(shù)字的轉(zhuǎn)換,CM決定了量化精度和采樣率。由此可見,Connect Module的設(shè)置對(duì)混合仿真的速度和準(zhǔn)確性都有很大的影響。
典型的混合信號(hào)交互過程融合了包含迭代算法和后向步長功能的模擬求解器和沿前向計(jì)算的數(shù)字求解器。這種功能組合定義了模擬的即時(shí)方程求解和數(shù)字的事件驅(qū)動(dòng)求解,必須在系統(tǒng)的DC工作點(diǎn)和瞬態(tài)Trans分析中協(xié)同工作。
A、DC 工作點(diǎn)分析
模擬的靜態(tài)工作點(diǎn)和數(shù)字在零時(shí)刻的初始化工作。在數(shù)?;旆鹿ぞ呱系捻樞蚴牵?/p>
1)運(yùn)行所有離散的初始化
2)在零時(shí)刻執(zhí)行所有離散initial模塊
3)在零時(shí)刻執(zhí)行所有離散always模塊
4)模擬迭代得到所有電壓電流結(jié)果
B、Trans工作點(diǎn)分析
模擬部分從0時(shí)刻工作點(diǎn)計(jì)算出發(fā),按時(shí)間步長重復(fù)計(jì)算。模擬仿真器用Spice,由牛頓-拉夫遜迭代技術(shù)反復(fù)迭代;數(shù)字求解邏輯方程。如果他們兩個(gè)各自運(yùn)行/沒有數(shù)據(jù)交換,那就在下一個(gè)步長重復(fù)。一般而言,每次模擬求解器的時(shí)間軸先向前移動(dòng),數(shù)字仿真器在后面跟上,這是因?yàn)閿?shù)字仿真器只能向前,而模擬仿真器允許退回操作(重新計(jì)算之前時(shí)間點(diǎn)的數(shù)值)。因此如果數(shù)字在追趕的過程中,有離散數(shù)據(jù)或者事件變化了,模擬仿真器需要退回到數(shù)字改變數(shù)據(jù)的時(shí)間點(diǎn),重新和數(shù)字同步。
總之,無論是DC還是Trans瞬態(tài)工作點(diǎn)分析,混合信號(hào)的同步過程都可以概括為防止任意一個(gè)仿真器計(jì)算出另外一個(gè)仿真器不能夠接受的敏感數(shù)據(jù)。
Model介紹
“對(duì)于先進(jìn)的數(shù)?;旌向?yàn)證而言,行為建模對(duì)模擬設(shè)計(jì)的高級(jí)抽象起到了至關(guān)重要的作用?!?Alberto Sangiovanni-Vincentelli,美國工程院院士。
基于模型的模擬驗(yàn)證方法,是唯一能夠驗(yàn)證復(fù)雜模擬設(shè)計(jì)的驗(yàn)證方法,可以幫助模擬設(shè)計(jì)工程師進(jìn)行模擬集成電路設(shè)計(jì)驗(yàn)證。----Ken Kundert博士,Spectre的發(fā)明者。
可見Model是非常重要的。在這里,我們以獨(dú)特的視角、豐富的設(shè)計(jì)經(jīng)驗(yàn),做數(shù)?;旌闲盘?hào)里面Model的全面剖析。做Model的目的是什么?Model有哪些級(jí)別?與Model相關(guān)的概念有哪些?現(xiàn)有EDA工具中有哪些和Model相關(guān)的產(chǎn)品?這些都是我們應(yīng)該關(guān)注的。
1.Model的本質(zhì)目的
Model的本質(zhì)目的是為了“洞見”(就是明察),清楚的看到、而且提前看到?!懊鞑?、清楚”是對(duì)“精度”的要求;“提前”是對(duì)時(shí)間的要求。所以做Model的本質(zhì)目標(biāo)就是“時(shí)間和精度”。誰在控制“時(shí)間”和“精度”?顯然是仿真器。所以搞清楚仿真器之后,通常事半功倍。
2.Model的級(jí)別
仿真器所需的“時(shí)間”和“精度”怎么協(xié)調(diào)?想快就向Digital仿真器靠攏;想準(zhǔn)就向Analog靠攏。做Model不是做加法、就是做減法。做Analog出身的熟悉Schematic,對(duì)Schematic的加法得到:Critical Part Model、BA Model;對(duì)Schematic的減法得到:VerilogA;VerilogAMS;Real Number Model(RNM);Verilog;Reference Model等。
圖1 Model的等級(jí)
圖2 Schematic
工藝給出PDK,用EDA工具直接仿真,這不也是Model嘛!它通過EDA工具把環(huán)境和數(shù)據(jù)設(shè)置好,Schematic直接用就行了。所以劃分Model等級(jí)的時(shí)候它可以作為Golden標(biāo)準(zhǔn)。
1) 對(duì)schematic的加法
PDK總能cover到我們想要的么?什么情況下Schematic Model做加法呢?
圖3 Critical Part Model
A、Critical Part Model
工藝PDK也是一種Model,它是經(jīng)Fab驗(yàn)證的較精準(zhǔn)的Model。PDK上給出常用的范圍內(nèi)的數(shù)據(jù)是比較準(zhǔn)確的,當(dāng)超出時(shí),例如電流太小時(shí),PDK曲線上的數(shù)據(jù))會(huì)導(dǎo)致Model和實(shí)際的silicon之間不吻合。當(dāng)Analog要求處理的數(shù)據(jù)是連續(xù)的,即各種大小的電流、尺寸都滿足時(shí),對(duì)數(shù)學(xué)表達(dá)式的要求就比較復(fù)雜,導(dǎo)致仿真器會(huì)更慢。當(dāng)要求低功耗減小電流的時(shí),必須考慮PDK建Model時(shí)數(shù)據(jù)的真實(shí)性;而不是表達(dá)式外推憶斷(extrapolate)的虛假數(shù)值而已。相反,對(duì)大管子,(powerFET)本身的走線電阻、電容形成的網(wǎng)絡(luò),對(duì)其Model也要相應(yīng)調(diào)整。
又例如,對(duì)于器件的噪聲,Cadence的仿真工具有trans noise,ac noise等模型,但trans noise 一開啟,仿真時(shí)間就上漲了。所以仿真器有Option可以設(shè)置某個(gè)時(shí)間點(diǎn)turn on,還是turn off噪聲,來分析電路中關(guān)鍵的、敏感的節(jié)點(diǎn)。到那時(shí)整體速度還是慢。為了能夠快速的得到噪聲的影響結(jié)果,可以用VerilogA/VerilogAMS去寫一個(gè)隨機(jī)變化的噪聲源的Model,而不用打開trans noise,就可以得到有noise時(shí)候芯片的一個(gè)預(yù)判。這就是所謂的Critical Part Model。
圖4 后仿真Model
B、BA Model
Layout后,EDA(LVS,DRC)工具幫你提取R、C和RC等寄生參數(shù),做(av_extracted view)參數(shù)提取后仿真(BA sim),不過仿真就更慢了。而Layout都出來了,把一些不重要的block換成schematic甚至Model,這時(shí)只關(guān)心重要block的性能。如果只提取C,而不提取R的話,這時(shí)整個(gè)電路的仿真時(shí)間并不會(huì)增加多少。因?yàn)樘崛,則大大的增加了求解矩陣的復(fù)雜程度,所以仿真時(shí)間也長了很多。
對(duì)Schematic做加法的目的在于提高精度。這是高性能的模擬IC、模擬IC占很大比重的混合IC所在乎的。如果再加上Thermal Model, Package Model, Board Model, Transmission Line Model 等,就是更精準(zhǔn)的實(shí)際IC應(yīng)用環(huán)境了。如果關(guān)心速度和時(shí)間,就需要對(duì)所設(shè)計(jì)的芯片一層層地對(duì)Schematic做各種減法。
2)對(duì)schematic的減法
顯然對(duì)Schematic做加法的弊端就在于其速度。如果關(guān)心速度,就需要做減法的Model。
圖5 VerilogA Model
A、VerilogA
如果不涉及工藝PDK,VerilogA比Schematic要快。VerilogA Model和VerilogAMS相比,它是純Analog仿真器,但引入digital時(shí)、接口處理不好會(huì)導(dǎo)致收斂性問題,缺點(diǎn)還是慢。習(xí)慣了Verilog的人,去看純VerilogA的程序,當(dāng)Control等信號(hào)太多的時(shí)候,有時(shí)候會(huì)覺得VerilogA太啰嗦。
圖6 VerilogAMS
B、VerilogAMS
VerilogA還是純Spice的模擬仿真器,純模擬仿真器的劣勢(shì)是矩陣求解要多控制信號(hào)。這些控制信號(hào)又給Analog仿真器增加了負(fù)擔(dān),Analog最討厭高頻擾動(dòng)信號(hào),尤其是方波。所以AMS橫空出世,于是高速Switching信號(hào)、控制信號(hào)、trim信號(hào)都Model化。于是像cross,above!,和Analog的transition,timer等關(guān)鍵字,把這A-2-D,D-2-A的事情做了。
為了把Analog和digital仿真器做成Mix-signal的仿真器,需要引入Connect Module,當(dāng)然它提高了做Model人的經(jīng)驗(yàn)要求。因?yàn)樗头抡嫫髌鹾隙忍?,就不可能提高仿真的速度,即使降低了精度要求。有的時(shí)候A到D, D到A寫不好會(huì)相互纏繞和給仿真器帶來不收斂問題。
圖7 RNM--Wreal
C、Real Number Model(RNM)
Real Number Model(RNM)是解決混合仿真快和準(zhǔn)的手段:用實(shí)數(shù)來表示電氣信號(hào),用離散Solver替代模擬Solver,在更抽象層級(jí)上端口間傳送的電壓/電流信號(hào)可以描述為單個(gè)實(shí)數(shù)。在VerilogAMS, System Verilog(SV) 和VHDL中RNM得到支持。
在VAMS中”wreal”的定義就是“A real valued wire”,言簡(jiǎn)意賅,一個(gè)能夠做wire,又能連續(xù)變化的variable。作用是做model和用來做verification。
仿真器怎么處理一根wreal的線呢?因?yàn)閣real在時(shí)間上是離散的:它只根據(jù)離散的event來變化;故它用digital solver來解決問題。而同時(shí)又有Analog的痕跡的(它不是0,1,x,z時(shí)是一串串浮點(diǎn)數(shù),和連續(xù)變化的模擬信號(hào)非常接近的)。用wreal做RNM(下表綠色填充色為優(yōu)勢(shì)點(diǎn)),它將Digital和Analog仿真器兩者的優(yōu)點(diǎn)給綜合到了一起,并在仿真速度和精度之間取得了折中(Wreal的Analog痕跡保證了精度,它數(shù)字化處理的機(jī)會(huì)保證速度)。還可以把random,coverage、assertion-based verification等概念利用到Analog 信號(hào)上,集速度和精度于一身。
Wreal和electrical如何通信呢?由R2E (wreal to electrical), and E2R(Electrical to wreal)實(shí)現(xiàn)。他們轉(zhuǎn)換關(guān)系總結(jié)如下表:
表3 RNM--Connection Module 2
RNM的缺點(diǎn)是在離散域要定義一些基本模塊。因?yàn)闃?biāo)準(zhǔn)的模擬建模語言中的內(nèi)嵌函數(shù)(上升時(shí)間/轉(zhuǎn)換/積分/微分和模擬濾波)離散實(shí)數(shù)域沒有,需要按時(shí)間步長格式去實(shí)現(xiàn)。
Wreal由于忽略了阻抗效應(yīng)的,只用于沒有直接強(qiáng)反饋的模塊的輸入輸出傳輸,所以在處理Inout端口時(shí)候比較吃力。所以在用SystemVerilog寫的RNM中,支持用戶自定義的Nettype (User Defined Nettype),Cadence利用這個(gè)標(biāo)準(zhǔn)引入了EEnet。在這個(gè)自定義的Nettype中,包含三個(gè)實(shí)數(shù)變量,分別用來表示電壓,電阻和電流,進(jìn)而實(shí)現(xiàn)戴維南或者諾頓等效。當(dāng)多個(gè)EEnet連接到一起時(shí),就形成了一個(gè)局域的電壓源,電流源和電阻的網(wǎng)絡(luò)。因?yàn)樵摼W(wǎng)路只有有限節(jié)點(diǎn),而且只求解當(dāng)前狀態(tài),因此可以在一次運(yùn)算中根據(jù)基爾霍夫電流和電壓定律求解出連接點(diǎn)的電壓,和流入/出各個(gè)模塊的電流。由于求解EEnet構(gòu)成的局域網(wǎng)絡(luò)不需要進(jìn)行迭代,因此可以有數(shù)字仿真器來進(jìn)行數(shù)值求解。進(jìn)而EEnet提供在離散模型中對(duì)loading effect的建模,從而在不犧牲速度的情況下提高模型精度。
D、Verilog
很多人都懂Verilog,不再詳細(xì)介紹。
圖9 Reference Model
E 、Reference Model
對(duì)于模擬IC了解Verilog就夠了,但做數(shù)字的對(duì)Verilog形成的Model仍不滿意。如何打通軟件和硬件之間的聯(lián)系?讓一個(gè)軟件工程師去懂硬件描述語言,顯然太苦了,對(duì)Verilog進(jìn)行再抽象就很有必要,很多驗(yàn)證工程師熟悉UVM,搞出Reference Model,或者系統(tǒng)工程師的Virtual Prototype或算法模型Model就是進(jìn)一步的做減法而得到的Model。System Verilog,System C,都有支持你需求的描述Model,實(shí)現(xiàn)硬、較件工程師的一次跨界。
圖10 不同建模類型的速度精度對(duì)比圖
上述Model做減法(VerilogA、VerilogAMS、RVM、Verilog和Reference Model),一步步脫離Analog,一步步走進(jìn)Digital,甚至硬件邁向軟件,這就是Model做減法的魔力??梢詤⒁妶D16經(jīng)典的不同仿真模型的速度與精度對(duì)比圖。
作者簡(jiǎn)介
邵亞利,模擬混合信號(hào)設(shè)計(jì)驗(yàn)證專家。浙江大學(xué)本碩,“模擬混合信號(hào)設(shè)計(jì)驗(yàn)證”公眾號(hào)(yaliDV)創(chuàng)始人。曾就職于德州儀器(TI),現(xiàn)就職于亞德諾(ADI)半導(dǎo)體公司。ADI(Analog Devices) 是全球領(lǐng)先的高性能模擬技術(shù)公司,憑借杰出的檢測(cè)、測(cè)量、電源、連接和解譯技術(shù),搭建連接現(xiàn)實(shí)模擬世界和數(shù)字世界的智能化橋梁。
責(zé)任編輯:pj
-
仿真器
+關(guān)注
關(guān)注
14文章
1018瀏覽量
83746 -
Model
+關(guān)注
關(guān)注
0文章
339瀏覽量
25071 -
Schematic
+關(guān)注
關(guān)注
1文章
13瀏覽量
11302
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論