Verilog-A

最近感觉Verilog-A很方便,许多电路要仿真很久,用VA写一个模型,可以很快就仿真出来,用来验证用很方便。

反相器模型

反相器 Verilog-A代码如下:其余的逻辑门在cadence ahdlLib 库里面

//默认调用的宏定义
`include "constants.vams"
`include "disciplines.vams"

module Inv(IN,OUT);//定义一个叫做Inv的module,两端口IN和OUT

input  IN ;      //IN为输入端
output OUT;    //OUT为输出端

electrical IN,OUT;    //定义IN和OUT为两个电学节点

//模型的参数
parameter real vlogic_high = 1.8 ;
parameter real vlogic_high = 0   ;
parameter real vtrans      = 0.9 ;
parameter real tdelay      = 10p from[0:inf);
parameter real trise       = 10p from[0:inf);
parameter real tfall       = 10p from[0:inf);



real OUT_val;    //定义一个变量OUT_val

analog begin    //跨越事件
        OUT_val = (V(IN) > vtrans)?vlogic_low:vlogic_high;  //初始化
       @(cross(V(IN)-vtrans,+1))    //当v(in)大于vtrans时
        OUT_val = vlogic_low;
       @(cross(V(IN)-vtrans,-1))    //当v(in)小于vtrans时
        OUT_val = vlogic_high;
       V(OUT)<+transition(OUT_val,tdelay,trise,tfall);//将结果输出到Vout
end

endmodule

Verilog-A 语言简单入门教程 – Analog-Lifeicon-default.png?t=N7T8https://www.analog-life.com/2022/04/veriloga-quick-learning/Verilog-A 语言简单入门教程 - 知乎 (zhihu.com)icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/604328904

Verilog 宏定义

        在日常的代码编写过程中,我们常常会遇到需要定义很多参数的时候,我们有时候用parameter 或 localparam 来定义,这里同样可以利用宏定义来实现参数的定义。
        比如说 在tb文件中要实现时钟,我们就可以用到define来实现不同时钟周期代码的复用。

`define clk_period 20

always #(`clk_period/2)clk=~clk;

        需要特别注意的是`define语句后面是
        不加分号的!!不加分号的!!不加分号的!!并且使用的时候 宏定义名字前要加【 `

幂指数在Verilog中的表示

        一般使用操作符 “ ** ” 表示幂,比如 NBIT = 2**10;表示2的10次方。

        verilog里面的算术:
        1.加(+):2个操作数相加
        2.减(-):2个操作数相减或取1个操作数的负数(二进制补码表示)
        3.乘(*):2个操作数相乘
        4.除(/):2个操作数相除
        5.求幂(**)}}:2个操作数求幂,前一个操作数为底数,后一个操作数为指数

再次安利大佬VA入门文章

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生就看看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值