|
悬赏50资产已解决
救命啊  
最近在弄SAR ADC 然后突然发现我之前用verilogA搞的反相器在实际电路中出现了很多问题
我的代码如下:
// VerilogA for inverter00, inverter_0, veriloga
`include "constants.vams"
`include "disciplines.vams"
module inverter_0(IN,OUT);
input IN;
output OUT;
electrical IN,OUT;
parameter real vtrans=1.65,
tdelay=1p from[0:inf),
trise=1p from[0:inf),
tfall=1p from[0:inf);
real OUT_val;
analog begin
@(cross(V(IN)-vtrans,1))
OUT_val=0;
@(cross(V(IN)-vtrans,-1))
OUT_val=3.3;
V(OUT)<+transition(OUT_val,tdelay,trise,tfall);
end
endmodule
然后单独接0~3.3V的方波作为输入的时候是可以很好地输出的 可以很好地实现反相功能
但是当连续接两个反相器的时候 输出就出错了 反两次理应输出原输入信号 但是它直接一直等于0去了
就大概这么接的,连着接两个反相器:
然后波形跑出来长这个样子:
还有个问题就是,当输入不是很标准的矩形波的时候,输出也不正确,没有很好地实现反相功能:
上面这个图里Q5是我电路里的某个信号,Q5n是这个信号接了我这个反相器后的输出信号
想请问大家我这个是什么原因导致输出是这些鬼样子的啊
各位大佬或许有反相器的verilogA的代码可以提供么
感激不尽!
救救:'(
|
最佳答案
查看完整内容
这个跟激励信号源是先高后低,还是先低后高没关系的,电路应该工作,除了对第一个沿变化的判断是由代码的写法决定的之外,没什么异常的地方。见附图。
|