Verilog语法总结(三)

数据类型

按抽象数据类型分:

l  Integer

l  Real

l  Event

l  Parameter:参数型数据是被命名的常量,在仿真钱对其赋值,在整个仿真过程中保持其值不变,数据的具体类型由所赋值决定。用来定义变量位宽及延迟时间等。

 

Ø  算术运算符

+ - * / %

Ø  符号运算符

+ -

Ø  关系运算符

==逻辑相等  =逻辑不相等 ===实例相等!==实例不相等

区别:操作数中含有一位XZ,逻辑算子置位为X,实例算子可以比较XZ的操作数

Ø  逻辑运算符

&&逻辑与   ||逻辑或    !逻辑非

Ø  位运算符

~ & | ^异或 ^~同或 ~&与非  ~|或非

Ø  移位运算符

<<左移   >>右移

0填补移出的空位

Ø  条件运算符

(:?)第一个操作数是TRUE,算子返回第二个操作数,否则返回第三个操作数(可以用来做一个选择器)

Ø  并接运算符

{}

 

²  选择结构

Ifcase语句

If语句与C相同

Case语句与C不同 Verilog中不需要break语句

²  重复结构

1.         for循环语句Verilog中没有增1++ 1—运算符需用i=i+1代替

2.         while循环同C

repeat(重复循环结构)

等待5个时钟周期然后停止仿真的repeat循环

1.         Repeat5

……

$stop

2.         forever循环

用来监控一些条件,当条件发生时显示一条信息

参数语句

3.         参数语句应用在寄存器和延迟的宽度,在程序中任何可以使用字母之处都可以使用参数parameter <赋值列表>

Verilog允许用户在编译时对参数重新赋值而改变其值方法:

1)         使用defparam语句

2)         在同一模块实例中使用“#”符号

 

连续赋值语句

连续赋值语句用来驱动线型变量  关键词assign用来区分连续赋值语句和过程赋值语句

 

阻塞和无阻塞过程赋值

阻塞赋值:

lhs_expression=expression;

lhs_expression=#delay  expression;

lhs_expression=@event  expression;

lhs为变量名、变量的一个特定位

1中、仿真器对右端表达式进行计算后立即将结果赋给左端

2中、仿真器计算右端表达式后等待delay时间,后将值赋到左端

3中、仿真器等到event事件发生后才把右端的值赋给左端

3种赋值都要等到赋值操作后才能执行下一条语句

无阻塞赋值:

lhs_expression<=expression;

lhs_expression<=#delay  expression;

lhs_expression<=@event  expression;

阻塞赋值与无阻塞赋值的区别:

无阻塞赋值右端计算好后并不立即给左端,在要赋值的同时控制下一条语句的继续执行(不用考虑顺序)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值