|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
仿真有很多数字控制位,需要用理想adc控制方便仿真有个adc veriloga模型, 是需要clock的
module adc (out, in, clk);
parameter integer bits = 8 from [1:24];
// resolution (bits)
parameter real vmin = 0.0;
// minimum input voltage (V)
parameter real vmax = 1.0 from (vmin:inf);
// maximum input voltage (V)
parameter real td = 0 from [0:inf);
// delay from clock edge to output (s)
parameter real tt = 0 from [0:inf);
// transition time of output (s)
parameter real vdd = 5;
// voltage level of logic 1 (V)
parameter real vss = 0;
// voltage level of logic 0 (V)
parameter real thresh = (vdd+vss)/2;
// logic threshold level (V)
parameter integer dir = +1 from [-1:1] exclude 0;
// 1 for trigger on rising edge
// -1 for falling
localparam integer levels = 1<<bits;
input in, clk;
output [bits-1:0] out;
voltage in, clk;
voltage [bits-1:0] out;
integer result;
genvar i;
analog begin
@(cross(V(clk)-thresh, dir) or initial_step) begin
result = levels*((V(in) - vmin))/(vmax - vmin);
if (result > levels-1)
result = levels-1;
else if (result < 0)
result = 0;
else
end
for (i=0; i<bits; i=i+1)
V(out) <+ transition(result & (1<<i) ? vdd : vss, td, tt);
end
endmodule
触发条件是 clk上升沿,这样电路里需要给adc一个clock,影响仿真速度。
还有问题就是,在dc仿真的时候因为也没有clock,输出不正确
对veriloga语法了解少,有没有dc下就工作的模型,或者不需要clock,输出根据输入电压实时变化 |
|