不知道大家跑仿真的時候,會不會遇到需要動態(tài)調(diào)整設(shè)置的情況?
比如一個bandgap的startup,一開始需要仿真精度比較高,之后電路基本上穩(wěn)定之后,各個工作點基本上不變,可以降低仿真精度。
又比如我想測試一個電路的溫度穩(wěn)定性能,假設(shè)這個芯片在冬天的東北,忽然從溫暖的室內(nèi)拿到室外,環(huán)境溫度驟降好幾十度。
或者是輸入的信號是個動態(tài)的幅值連續(xù)變化的情況。
一般來說,如果用一個高精度的仿真或者好幾個獨立的仿真,是足以應(yīng)付上面的需求的。不過Cadence既然已經(jīng)給了一個很不錯的設(shè)置功能,我們何不試試看呢?
在這篇文章的例子里面,作者君用了一個ahdlLib的理想放大器,test bench如下:
左邊是一個全差分輸入的設(shè)置,VDD是1.8V。右邊是ideal opamp,增益我填的是10。此時我們的輸入信號用的是V0的vsin, V4是個vdc,目前有個紅色的叉叉在上面。這個叉叉是shift加delete鍵按出來的,表示目前沒有用到這個模塊。后面需要這個模塊的時候,再按一次shift加delete鍵就可以清除掉這個叉叉了。
現(xiàn)在就讓我們來看看如何在transient仿真里面設(shè)置吧?
可以看到,最下面有個叫Dynamic Parameter的東西。打上勾之后,出現(xiàn)了Parameter和Parameter Set兩種選項。我們先來看看Parameter。
如果下面的Param選擇默認的User-defined,就可以手動輸入自己設(shè)置的變量。我這里的vamp是我在vsin里面設(shè)置的amplitude變量。輸入vamp之后,下面會出來這個可以一直添加的表格,自己填寫時間和vamp的數(shù)值,就可以了。
好了,我隨便寫了幾個變量值,讓我們跑一下transient吧!
仿真結(jié)果就是這樣的。顏色較淺的兩條線是差分輸入信號,藍色的線是ideal opamp的輸出??梢钥吹?,和我前面的設(shè)置相對應(yīng),在2us,4us,6us的時候,輸入信號發(fā)生了變化,因此輸出也隨之發(fā)生了變化。這個仿真結(jié)果說明了上面的設(shè)置是可行的。
同樣的,除了改變我們自己設(shè)置的參數(shù)變量值,我們還可以改變其他一些仿真設(shè)置。
這張圖里的errpreset就是仿真精度的設(shè)置。如同我剛剛舉的bandgap例子,大家可以在startup開始工作的一段時間內(nèi),使用高精度conservative,在后面的時間里使用moderate或者liberal。當需要跑大量的PVT或者MC時,這樣的設(shè)置方法相比于一直使用conservative的高精度,應(yīng)該是可以加快仿真速度的。有興趣的同學(xué)可以試試看。
除此之外,還有set的設(shè)置。
如上圖,如果選擇了Parameter Set,就不單單是前面的一個變量了。你可以加上各種各樣的變量組合。比如我在2us的時候,設(shè)置了vamp,設(shè)置了溫度變量temp為-25,還準備加上仿真精度errpreset。后面的嘗試,就交給各位讀者朋友了!
前面我講到了我的test bench里面那個紅色的叉叉?,F(xiàn)在我們換一個信號源:
我還是用shift加上delete,刪掉了vsin,但是重新采用了vdc。dynamic parameter的設(shè)置還是跟前文一樣,新的電路仿真結(jié)果如圖:
其實這個結(jié)果比vsin還要清晰一點。同樣也是在2u,4u,6u,的時候,輸入信號發(fā)生了變化,因此輸出也隨之發(fā)生了變化。
好了,這點transient仿真的小技巧就講到這里了。有興趣的讀者們可以試試看啦!
編輯:jq
-
仿真
+關(guān)注
關(guān)注
50文章
4023瀏覽量
133338
原文標題:Cadence 仿真小技巧——transient仿真的Dynamic Parameter設(shè)置
文章出處:【微信號:analogIC_gossip,微信公眾號:通向模擬集成電路設(shè)計師之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論