【VerilogA】4位DAC的编写与测试

本文介绍了如何在Virtuoso中修改默认文本编辑器为gedit,并详细指导了创建VerilogA类型的cell,包括代码示例和参数设置。后续还涉及了cell配置说明和验证过程,展示了如何在原理图中进行测试并解决可能的问题。
摘要由CSDN通过智能技术生成

修改默认文本编辑器

virtuoso默认的编辑器用不惯,改成gedit

editor="gedit"

创建cell

在这里插入图片描述
Type选择VerilogA,随后OK
在这里插入图片描述
随后会弹出已填写默认模板的文本窗口。
将代码修改如下。VerilogA的语法和Verilog大差不差,但还是多少有点不同。细节可参考OVI_VerilogA或者verilogams。在这里笔者不讲VerilogA的语法细节。

// VerilogA for INVlib, DAC_4bits_nc_va, veriloga

`include "constants.vams"
`include "disciplines.vams"

module DAC_4bits_nc_va(D3,D2,D1,D0,out);
	input D3,D2,D1,D0;
	output out;

	parameter real vdd=1.8;
	parameter real tdelay=0;
	parameter real trise=0;
	parameter real tfall=0;
	parameter real vref=1.8;

	voltage D3,D2,D1,D0,out;
	
	real code,out_temp;

	analog begin
		code=0;
		code=code+((V(D0)>vdd/2) ? pow(2,0):0);
		code=code+((V(D1)>vdd/2) ? pow(2,1):0);
		code=code+((V(D2)>vdd/2) ? pow(2,2):0);
		code=code+((V(D3)>vdd/2) ? pow(2,3):0);

		out_temp=code/16*vref;

		V(out)<+ transition(out_temp,tdelay,trise,tfall);
	end
endmodule

修改完后记得保存。
在这里插入图片描述
如果出现错误,会出现以下报错(这份代码应该是不会出现问题的,作为参考,我使用的是IC615)
在这里插入图片描述
保存完后会弹出一个窗口问你要不要建立symbol,一路无脑OK就完事了,记得save&check。

cell配置说明

对器件按q,在CDF Parameter of view中选择veriloga,可以看到以下参数可供修改。
vdd就是高电平,默认低电平是0了,如果输入大于vdd/2则为高电平,小于则为低电平。
vref为参考电压。
其他的参数详情请参阅transition函数。
在这里插入图片描述

验证

创建测试用的原理图
在这里插入图片描述
D0到D3为方波信号输入。out端接了给电容负载。vdd为1V。
ADE的设置如下。这里笔者把D0-D3转化为数字的总线形式表达。
在这里插入图片描述
仿真出来的结果如下。
在这里插入图片描述
IN<3:0>为输入的二进制对应的十进制表达。从0到15依次递加
net7就是out。
可见满足理想DAC的一般特性。
可能眼睛尖的看客会注意到DAC跳变有尖峰。这是因为方波输入我没有调的很准确,出现了不应该出现的数字输入。且仿真步长较大,导致看起来像尖峰。
在这里插入图片描述

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值