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

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

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

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

評(píng)論