模擬中使用數(shù)字調(diào)整電路是非常非常頻繁的,用途比較多的是改變電流,電阻。在模塊級別仿真生成控制的寄存器控制信號也是件麻煩的事。
傳統(tǒng)工程師有這樣的幾個辦法:
1, 用多個vbit(好像經(jīng)常有bug,數(shù)半天0110,1個小時跑完后發(fā)現(xiàn)弄錯了)。
2, 也有寫個腳本生成vpwl/vpwlf。(仿真慢,vbit還能當成事件驅(qū)動來優(yōu)化仿真速度,vpwl/vpwlf真是沒救了)
3, 也可以使用ahdl library里面的adc的,應該更慢吧。
4, 當然也可以寫vams激勵,但是需要切換仿真器,一些頻域的仿真就受限制,再說要是會ams,一般工程師就不做模擬了。
當然最好的方法是直接有一個pcell,其實如果熟悉virtuoso的那個括號括號的編程環(huán)境,就可以很容易的做一個這樣的模擬寄存器位產(chǎn)生模塊。
通過使用位操作可以快速的實現(xiàn)模擬環(huán)境中二進制寄存器控制位產(chǎn)生,如果有數(shù)字設計背景,對位操作應該非常熟悉。
括號語言中關(guān)于幾個位操作符的定義如下
在CIW里面實踐一下:
看完CIW里一頓猛如虎的操作,大家應該知道怎么實現(xiàn)了,具體的方式是將控制量移位后和1做位與 操作,就可以得到相應的二進制代碼。
比如3,對應0011, (3>>3)&1=0 , (3>>2)&1=0 , (3>>1)&1=1 ,(3>>0)&1=1。
只要把這個寫到Analog/Vdc模塊里,做成一個通用的設計庫單元就行了??紤]到浮點數(shù)的原因, round一下就解決了。同時為了方便參數(shù)傳遞,把數(shù)字電壓和控制數(shù)使用了pPar()傳遞進來。
考慮到不同工藝的數(shù)字電壓可能有些變化,多加了一個dvdd的參數(shù)。最后的效果是這樣的,隱隱約約的可以看到電阻上對應的數(shù)字電壓了吧。
-
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124577 -
仿真
+關(guān)注
關(guān)注
52文章
4289瀏覽量
135897 -
數(shù)字控制
+關(guān)注
關(guān)注
2文章
194瀏覽量
26244 -
腳本
+關(guān)注
關(guān)注
1文章
398瀏覽量
28477
發(fā)布評論請先 登錄
如何定制數(shù)字控制回路的模擬組件

數(shù)字控制真的會取代模擬控制,而成為PFC中的主流控制方式嗎?
新型數(shù)字控制方法在有源濾波器中的應用
智能電源:模擬和數(shù)字控制回路實現(xiàn)對比
基于Linux的實時數(shù)字控制系統(tǒng)設計
基于Linux的實時數(shù)字控制系統(tǒng)設計
功率因數(shù)校正(PFC)的數(shù)字控制方法
模擬控制式和數(shù)字控制式VGA(二):數(shù)字控制式VGA

使用仿真設計的電力電子數(shù)字控制器
如何使用電力電子仿真數(shù)字控制器

模擬控制式和數(shù)字控制式VGA應用指南

如何量身定制數(shù)字控制回路的模擬元器件

評論