Verilog基础语法、
数据类型
wire型数据
-
属于线网
net
型数据。 -
数据驱动无存储
-
输入到输出,建模组合逻辑
-
use assign
|
|
- 位宽可以不从0开始
reg型数据
-
是寄存器数据类型
-
有存储功能
-
标量/向量
-
can not use assign
-
建模存储器、组合逻辑
|
|
数字字面量
进制 | 代号 |
---|---|
二进制 | b/B |
八进制 | o/O |
十进制 | d/D |
十六进制 | h/H |
use <位宽>'<进制><值>
- 值之间可以加_
- 进制和值之间不可以加_
- 默认十进制、32位
- 实数支持科学计数法如
1_0001e4==100010000
special
- x: 不定一位
- z: 高阻
integer
- 一般32位,默认有符号
real
- 默认为0
parameter
- 用于在编译时确认值得常量
time
|
|
语法
有些模糊 正在尝试
注释
|
|
标识符
字母、下划线开头得字母、数字、$、_的区分大小写组合
关键字
所有关键字均为小写
数组、存储器
support reg
wire
integer
time
real
|
|
赋值操作
- 支持连续取赋值位
|
|
|
|
|
|
表达式
算数操作符
+、-、*、/、**、%
- 若有一位是x,结果全是x
关系操作符
>、<、>=、<=
- 结果为1或0
等价操作符
==和!=若带z、x则返回x
===和!==可以比较相同z、x
逻辑操作符
&&、||、!
- 与c语言相似
按位操作符
- 比c语言多同或~^
归约与(&),归约与非(~&),归约或(|),归约或非(~|),归约异或(^),归约同或(~^)。
移位操作符
三个为算数,两个为逻辑
拼接操作符
|
|
条件操作符
(a==b)?c:d;
- 与c语言相同
定义模块
|
|
两块
always
|
|
example
|
|