|
发表于 2015-3-28 17:40:46
|
显示全部楼层
回复 1# wtj803
1.genvar语句是用来做什么的?是不是定义循环变量i,j这些的时候用到? 是的,定义的循环变量用于generate语句。
2.Verilog-A中的赋值是否只有=和<+,其中的“=”赋值是阻塞还是非阻塞?
Verilog-A 里没有 阻塞和非阻塞 的说法,没有assign和always语句,只有analog begin/end模块,在analog begin/end模块里,“=”是赋值给变量,跟普通的编程里的过程赋值是一样的,按顺序执行;"<+"是赋值给电路节点(电压)或者回路(电流),多条语句对相同的节点或者回路赋值,是会相加的。如下:节点A跟地之间会有3V的电压
V(A) <+ 1.0;
V(A) <+ 2.0;
3.如果定义了一个多位的 electrical integer signal [3:0]这样,在赋值操作时,是否只能逐位赋值,
而不能像Verilog中直接给 signal[3:0]=4'b0101?
有这样的定义electrical integer ? 两个都是关键字,没这样尝试过。。。
electrical signal [3:0] ;这样写都不一定支持, integer signal [3:0];应该可以,是一个数组,需要分开赋值。
4.如果我想通过时钟上升下降沿触发,如何编写触发条件?
electrical CLK;
@cross( (V(CLK)-V(VDD,GND)/2), +1) begin ... end //上升沿
@cross( (V(CLK)-V(VDD,GND)/2), -1) begin ... end //下降沿
5.cross语句中 @cross(V(a)-1,-1) 逗号后面那个“-1”的意思是什么?
+1: 向上穿过零轴
-1: 向下穿过零轴 |
|