【導(dǎo)讀】一般公司如果沒(méi)有人做這一塊,會(huì)要求設(shè)計(jì)師直接作出他電路的行為級(jí)模型,用來(lái)和數(shù)字組進(jìn)行混合仿真。建模是一件不容易的工作,你如何證明你的建模能夠準(zhǔn)確反映出你的模擬電路的特性?
仔細(xì)看過(guò)幾篇Kundert, K H的關(guān)于這方面的論文,我感覺(jué)這個(gè)還是很重要的。
一般公司如果沒(méi)有人做這一塊,會(huì)要求設(shè)計(jì)師直接作出他電路的行為級(jí)模型,用來(lái)和數(shù)字組進(jìn)行混合仿真。
建模是一件不容易的工作,你如何證明你的建模能夠準(zhǔn)確反映出你的模擬電路的特性?
Kundert, K H [1]提出的觀點(diǎn)為:
1. 用Verilog-AMS 寫(xiě)出Testbench 去測(cè)試你的模擬電路,self-check。
如:驗(yàn)證一個(gè)VGA,如果有64組控制字,Verilog-AMS 的Testbench要去完整驗(yàn)證每一組控制字,做到self-check。
2. 寫(xiě)出你模擬電路的行為級(jí)模型,做到pin-accurate(嘗試用行為級(jí)模型代表單個(gè)模擬電路版圖后仿結(jié)果),讓這個(gè)行為級(jí)模型能夠通過(guò)第 一步中你的testbench。
注:電路級(jí)模型,基本是沒(méi)有辦法和數(shù)字組做聯(lián)合仿真的,這個(gè)仿真時(shí)間可能是數(shù)以星期記。
3. 將這個(gè)模型提供給數(shù)字組,進(jìn)行混合仿真。或者提供給你其他部分電路用。
4. 如果仿真速度仍然很慢,嘗試用Verilog建立你模擬電路的行為級(jí)模型 (見(jiàn)[2], [3])。
文獻(xiàn)[4] 給出了在Virtuoso (IC616)環(huán)境下,如何應(yīng)用Verilog-AMS語(yǔ)言中的 wreal 數(shù)據(jù)類(lèi)型 和 Verilog-2005,建立event-driven的模擬電路模型,極大提高仿真速度(1000倍以上)。
(注:Verilog-2005,內(nèi)部支持real數(shù)據(jù)類(lèi)型,但port不支持,需要通過(guò) $realtobits 和 $bitstoreal 兩個(gè)函數(shù)來(lái)在不同module間傳遞real數(shù)據(jù),而在Verilog-AMS和SystemVerilog-2012,可以直接傳遞real數(shù)據(jù),前者引入了一中新的數(shù)據(jù)類(lèi)型wreal,means wire real)
在Verilog-AMS中,我們可以用analog begin...end來(lái)建立模擬模型(如:Verilog-A中一樣),但這種建模方式仿真時(shí),AMS Designer Simulator會(huì)調(diào)用模擬解法器來(lái)求解電路,而采用wreal 數(shù)據(jù)類(lèi)型的event-driven建模方式,這樣 無(wú)論你的模擬電路和數(shù)字電路,AMS Designer Simulator都只會(huì)調(diào)用數(shù)字接法器,而大大提高功能級(jí)的驗(yàn)證速度。各個(gè)建模方式的性能和仿真速度,如下圖:
event-driven的方式建模模擬電路模型,最早見(jiàn)于上世紀(jì)80年代末,當(dāng)時(shí)還未有好的模擬電路建模語(yǔ)言,隨著Verilog-A和Verilog-AMS的出現(xiàn),人們開(kāi)始用模擬電路語(yǔ)言來(lái)建立模型,但又隨著數(shù)模混合電路規(guī)模越來(lái)越大,Verilog-A + Verilog的建模方式的仿真時(shí)間,越來(lái)越大,使得設(shè)計(jì)周期加大。于是,又開(kāi)始重新研究event-Driven的建模方式。
目前,最新的成果[6],是利用一個(gè)時(shí)間離散點(diǎn)的值和這點(diǎn)的斜率,來(lái)近似這個(gè)點(diǎn)和這個(gè)點(diǎn)到下一個(gè)離散點(diǎn)之間的信息(Piece-wise Linear),而之前時(shí)間離散點(diǎn)之間的信息用上一個(gè)離散點(diǎn)的值表示(零階保持),(Piece-wise constant)。
因?yàn)镾ystemVerilog提供結(jié)構(gòu)體數(shù)據(jù)變量,我們可以用值和它的斜率構(gòu)成一個(gè)新的變量,用這個(gè)變量來(lái)描述模擬信號(hào)。更為精確的event-Driven的建模方式,需要在SystemVerilog中實(shí)現(xiàn)。
5. 全Verilog級(jí)的數(shù)?;旌戏抡?,或者Verilog-AMS+Verilog的數(shù)?;旌戏抡?/div>
真實(shí)案例:
Min, H 給我們上課時(shí),講過(guò)一個(gè)他們公司草創(chuàng)期的一個(gè)真實(shí)案例,就是開(kāi)始時(shí)沒(méi)有模擬電路的行為級(jí)模型提供給數(shù)字組進(jìn)行混仿,而又不可能拿電路級(jí)的去仿真,最后流片結(jié)果出錯(cuò),功能級(jí)不對(duì),誤碼率偏高。然后,寫(xiě)了模擬電路的行為級(jí)模型(Verilog-AMS)給數(shù)字組,在仿真階段就發(fā)現(xiàn)了這個(gè)誤碼率高的原因,給解決了。
我目前的科研項(xiàng)目中,就是一個(gè)比較大數(shù)?;旌想娐?,直接開(kāi)電路級(jí)混合仿真,需要好幾天,直接被我放棄,準(zhǔn)備寫(xiě)模型試試。
不知道大家怎么看,這個(gè)Analog 建模的方面。
參考 (點(diǎn)擊文末閱讀原文可下載參考資料)
[1] DCAS-2007, Kundert, K S, “Verification of Complex Analog Integrated Circuits”
[2] ECCTD-2013, Wegener, C (from Dialog Semiconductor), "Method of modeling analog circuits in Verilog for Mixed-Signal design Simulaitons"
[3] Forum on specification & Design Languages - 2014, Sabiro, S G (from Mentor Graphics), "Event-Driven (RN) Modeling for AMS Circuits"
[4] Cadence, Verilog-AMS Real Valued Modeling Guide - 2013
[5] TCAS-I-2014,Liao, S (from Stanford), "A Verilog Piecewise-Linear Analog Behavior Model for Mixed-Signal Validation"
[6] Cadence-2015, "Workshop for AMS Designer in Virtuoso"
網(wǎng)友互動(dòng)摘錄:
kwankwaner:
我覺(jué)得行為模型在系統(tǒng)級(jí)仿真中既重要又方便,主要是驗(yàn)證架構(gòu)、算法、指標(biāo)等等。至于做數(shù)?;旆挛业接X(jué)得沒(méi)必要這么復(fù)雜,實(shí)際上數(shù)模相接的地方只有信號(hào)、電源和時(shí)鐘,這些完全都可以用一個(gè)描述清楚的源來(lái)代替。Q公司其實(shí)只要用Matlab建模就夠了,雙方把接口指標(biāo)定義清楚就無(wú)需混仿。
作者答復(fù):
Simulink建模確實(shí)最快最方便
- z-domain和s-domain可以放在一起仿真,采用ZOH連接
- 支持ModeSim - Simulink 和 Virtuoso - Simulink混合仿真
- 一直在推廣它內(nèi)含的HDL-Coder,和HDL-Verifier。前者描述算法狀態(tài)機(jī)非常不方便,后者主要是用Simulink搭建仿真平臺(tái)去測(cè)試你的 Verilog。
MATLAB也在推它的混合信號(hào)仿真流程,以前做過(guò)一些調(diào)研,分享給大家
我問(wèn)的一個(gè)QCOM的一個(gè)工程師,他說(shuō)他們用Verilog-A挺多的,哈哈
但我感覺(jué)Verilog-AMS應(yīng)該以后會(huì)用的越來(lái)越多。
angelaboy:
verillog-A and verilog-AMS都應(yīng)該學(xué)習(xí)掌握吧!
作者答復(fù):
Verilog-AMS 支持 Verilog-2005所有特性,同時(shí)支持模擬建模所有特性。 Verilog-A中不支持Verilog的語(yǔ)法。
Verilog-AMS最新標(biāo)準(zhǔn)是2014年6月發(fā)布的。
Verillog-A已經(jīng)不更新了吧?
關(guān)于ADPLL行為級(jí)建模,采用Verilog-AMS,實(shí)際上仍然較慢。
25us仿真,Cadence AMS Designer,消耗我2.5小時(shí);由于FMCW應(yīng)用,我的仿真時(shí)間大約需要10ms左右。
采用全Verilog建模方式,1ms仿真時(shí)間,消耗2分鐘。
采用Simulink最快,但Simulink的建模層次最高,不利于挑出混合信號(hào)IC中的需要綜合部分的Verilog的錯(cuò)誤。
因此,采用全Verilog方式,完成ADPLL建模,才是一個(gè)不錯(cuò)的方案。
在一樓,分享了兩篇Verilog 對(duì)模擬電路建模的文章,希望大家喜歡。
以下省略更多論壇互動(dòng)。。。
作者: JoyShockley(胡詣?wù)埽?本文為作者為EETOP Analog IC設(shè)計(jì)板塊版主