微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 求大神指教关于Verilog-A的几个小问题

求大神指教关于Verilog-A的几个小问题

时间:10-02 整理:3721RD 点击:
LZ最近临时需要用的Verilog-A,现在自己初学了一下,遇到了一些小问题,比较零散,希望有熟悉的大神可以指教一下~1.genvar语句是用来做什么的?是不是定义循环变量i,j这些的时候用到?
2.Verilog-A中的赋值是否只有=和<+,其中的“=”赋值是阻塞还是非阻塞?
3.如果定义了一个多位的electrical integer signal [3:0]这样,在赋值操作时,是否只能逐位赋值,
而不能像Verilog中直接给 signal[3:0]=4'b0101?
4.如果我想通过时钟上升下降沿触发,如何编写触发条件?
5.cross语句中@cross(V(a)-1,-1)逗号后面那个“-1”的意思是什么?
求大神解惑~!跪谢!

顶一下

顶一下

顶一下

1、认为<+相当于<=5、-1的意思应该是从>0变为<0,有正到负,记忆有限,仅供参考

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: 向下穿过零轴

这编辑器,怎么改改格式就重复了。

太感谢了!至于那个electrical integer是我自己搞错了,的确没有这个定义法!

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

网站地图

Top