在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2095|回复: 2

[求助] 想问一下关于理想ADC中的verlogA语言问题

[复制链接]
发表于 2020-6-7 18:54:16 | 显示全部楼层 |阅读模式
200资产
  最近在做DAC,仿真需要用到理想ADC,我在论坛里找了个verlogA的教程,模仿里面的例子写了一个理想ADC,但是我写的代码生成的ADC不能设定采样频率,想问一下怎么改代码才可以自己设定理想ADC的采样频率。
  以下是我的代码
// verilogA for 000, BITS16, veriloga

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


` define BITS 16
module adc(in, out) ;
input in ;
output [0: ` BITS - 1] out ;
electrical in;
electrical [0: ` BITS - 1] out ;
parameter fullscale = 1.2, tdelay = 0 ,trantime = 0;
real samp, half ;
Analog begin
half = fullscale/2.0 ;
samp = V(in) ;
V(out[15]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[14]) <+ transition(samp > half, tdelay,trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[13]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[12]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[11]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[10]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[9]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[8]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[7]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[6]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[5]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[4]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[3]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[2]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[1]) <+ transition(samp > half, tdelay, trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
V(out[0]) <+ transition(samp > half, tdelay,trantime);
if (samp > half) samp = samp - half ;
samp = 2.0 * samp ;
end
endmodule

发表于 2020-6-12 16:14:02 | 显示全部楼层
input 沒有宣告 clock進來宣告完之後可以調用 cross function 來得到你想要的結果
发表于 2024-3-26 10:52:58 | 显示全部楼层
问,楼主成功了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 15:53 , Processed in 0.018626 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表