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