|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 星_five 于 2023-7-5 16:51 编辑
`include "constants.vams"
`include "disciplines.vams"
module dac_12bit_ideal(D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0,out);
parameter vdd=1.8,td=0,tr=0.1n,vref=1.8;
input D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0;
output out;
voltage D11,D10,D9,D8,D7,D6,D5,D4,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);
code=code+((V(D4)>vdd/2) ? pow(2,4):0);
code=code+((V(D5)>vdd/2) ? pow(2,5):0);
code=code+((V(D6)>vdd/2) ? pow(2,6):0);
code=code+((V(D7)>vdd/2) ? pow(2,7):0);
code=code+((V(D8)>vdd/2) ? pow(2,8):0);
code=code+((V(D9)>vdd/2) ? pow(2,9):0);
code=code+((V(D10)>vdd/2) ? pow(2,10):0);
code=code+((V(D11)>vdd/2) ? pow(2,11):0);
out_temp=code/4096*vref;
V(out)<+ transition(out_temp,td,tr);
end
endmodule
理想12位DAC的verilogA代码(analog的首字母应该小写)
|
|