微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > VerilogA 能否描述异步复位的D触发器?

VerilogA 能否描述异步复位的D触发器?

时间:10-02 整理:3721RD 点击:
常用的无复位DFF的verilogA描述相信大家都可以从AHDL lib中看到。但是我想能否像verilog描述一样,给它加入异步复位。但是由于不熟悉语法,遇到了一些问题:
(parameter定义此处省略)
analog begin
@(cross(V(rstb)-vtrans, -1) or cross(V(clk)-vtrans, +1) )
x=(V(vin)>vtrans);
if (V(rstb)<logic_hgih)
V(vout) <+ logic_low;
else
V(vout) <+ transition (logic_high*x, tdel, trise, tfall);
end
但是报错说transition不能用于“conditional executive”语句中,也就是不能写在if else中?
后来就去掉了transition,改成“ V(vout) <+ V(vin);”,于是又开始报“else<<--?”语法错误。
那么应该怎么写才可以呢?
欢迎大家讨论指教~
谢谢!

好东西一个啊,谢谢分享

Is the simulation done with Cadence or Hspice?

module d_ff(vin_d, vclk, vout_q, vout_qbar, reset, set);
input vclk, vin_d, reset, set;
output vout_q, vout_qbar;
electrical vout_q, vout_qbar, vclk, vin_d, reset, set;
parameter real vlogic_high = 5;
parameter real vlogic_low = 0;
parameter real vtrans_clk = 2.5;
parameter real vtrans = 2.5;
parameter real tdel = 3u from [0:inf);
parameter real trise = 1u from (0:inf);
parameter real tfall = 1u from (0:inf);
integer x;
analog begin
@ (cross(V(vclk) - vtrans_clk, +1 ) or cross(V(reset) - vtrans_clk, +1 ) or cross(V(set) - vtrans_clk, +1 ) )
if ( V(reset) > vtrans_clk )
x = 0;
else if ( V(set) > vtrans_clk )
x = 1;
else
x = ( V(vin_d) > vtrans );
V(vout_q) <+ transition( vlogic_high*x + vlogic_low*!x,
tdel, trise, tfall );
V(vout_qbar) <+ transition( vlogic_high*!x + vlogic_low*x,
tdel, trise, tfall );

end
endmodule

谢谢!请问你是不是做AMS仿真比较多啊?
我是做analog的,如果我现在有一个模拟电路,里面一些开关需要用复杂的数字电路控制,我希望用hdl描述这部分数字电路,然后综合,最后在版图阶段将数字模拟连接。那么我模拟部分的pre layout simulation应该怎么做呢?是否应该用verilogA对数字部分建模,然后仿真?
非常感谢!

混仿了。verilog(digital)+analog
都是标准流程的。
我也是做模拟的,只是恰好碰到了。

请问DFF的verilogA描述 是怎么样的/我在网上查了半天也没有查到。

----------------------
混仿了。verilog(digital)+analog
都是标准流程的。----------
混仿,数字描述是不是用的是VERILOGA描述呢?
谢谢!

大神啊

没有钱的来这个灌点水

VERILOGA用的地方还是很多的

没有钱的来这个灌点水

没有钱的来这个灌点水

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top