模拟中使用数字调整电路是非常非常频繁的,用途比较多的是改变电流,电阻。在模块级别仿真生成控制的寄存器控制信号也是件麻烦的事。
传统工程师有这样的几个办法:
1, 用多个vbit(好像经常有bug,数半天0110,1个小时跑完后发现弄错了)。
2, 也有写个脚本生成vpwl/vpwlf。(仿真慢,vbit还能当成事件驱动来优化仿真速度,vpwl/vpwlf真是没救了)
3, 也可以使用ahdl library里面的adc的,应该更慢吧。
4, 当然也可以写vams激励,但是需要切换仿真器,一些频域的仿真就受限制,再说要是会ams,一般工程师就不做模拟了。
当然最好的方法是直接有一个pcell,其实如果熟悉virtuoso的那个括号括号的编程环境,就可以很容易的做一个这样的模拟寄存器位产生模块。
通过使用位操作可以快速的实现模拟环境中二进制寄存器控制位产生,如果有数字设计背景,对位操作应该非常熟悉。
括号语言中关于几个位操作符的定义如下
在CIW里面实践一下:
看完CIW里一顿猛如虎的操作,大家应该知道怎么实现了,具体的方式是将控制量移位后和1做位与 操作,就可以得到相应的二进制代码。
比如3,对应0011, (3>>3)&1=0 , (3>>2)&1=0 , (3>>1)&1=1 ,(3>>0)&1=1。
只要把这个写到Analog/Vdc模块里,做成一个通用的设计库单元就行了。考虑到浮点数的原因, round一下就解决了。同时为了方便参数传递,把数字电压和控制数使用了pPar()传递进来。
考虑到不同工艺的数字电压可能有些变化,多加了一个dvdd的参数。最后的效果是这样的,隐隐约约的可以看到电阻上对应的数字电压了吧。
-
寄存器
+关注
关注
30文章
5187浏览量
118473 -
仿真
+关注
关注
50文章
3906浏览量
132631 -
数字控制
+关注
关注
2文章
174浏览量
25665 -
脚本
+关注
关注
1文章
378浏览量
14710
发布评论请先 登录
相关推荐
如何定制数字控制回路的模拟组件
![如何定制<b class='flag-5'>数字控制</b>回路的<b class='flag-5'>模拟</b>组件](https://file.elecfans.com/web2/M00/88/CB/pYYBAGO0LEqAK7tlAABCCdDw9kk930.jpg)
数字控制真的会取代模拟控制,而成为PFC中的主流控制方式吗?
如何正确模拟仿真中的VLSI电路?
智能电源:模拟和数字控制回路实现对比
基于Linux的实时数字控制系统设计
基于Linux的实时数字控制系统设计
数字控制全桥软开关电源的Saber仿真分析
![<b class='flag-5'>数字控制</b>全桥软开关电源的Saber<b class='flag-5'>仿真</b>分析](https://file1.elecfans.com//web2/M00/A6/20/wKgZomUMO9yAZ1hZAAAPRr-Aff0748.jpg)
模拟控制式和数字控制式VGA(二):数字控制式VGA
![<b class='flag-5'>模拟</b><b class='flag-5'>控制</b>式和<b class='flag-5'>数字控制</b>式VGA(二):<b class='flag-5'>数字控制</b>式VGA](https://file1.elecfans.com//web2/M00/A6/3F/wKgZomUMPHyASXMnAAASFDTvIUk666.jpg)
使用仿真设计的电力电子数字控制器
如何使用电力电子仿真数字控制器
![如何使用电力电子<b class='flag-5'>仿真数字控制</b>器](https://file.elecfans.com/web2/M00/3F/23/poYBAGJmT0iATXXnAAFD6-2Dzes161.png)
如何量身定制数字控制回路的模拟元器件
![如何量身定制<b class='flag-5'>数字控制</b>回路的<b class='flag-5'>模拟</b>元器件](https://file.elecfans.com/web2/M00/88/CB/pYYBAGO0LEqAK7tlAABCCdDw9kk930.jpg)
评论