参考:Verilog数字VLSI设计教程
硬件描述语言Verilog
Verilog HDL数字设计与综合
Verilog HDL 数字集成电路高级程序设计
2.1 数据流描述
数据流建模:通过连续赋值语句和运算符的建模方式
显式连续赋值语句
<线网类型> <线网位宽> <线网信号>;
assign #<延迟><线网信号>=赋值表达式;
隐式连续赋值语句
<线网类型> <驱动强度><位宽> #<延迟><线网信号>=赋值表达式;
注意:
(1)赋值语句只能是线网类型(wire)
(2)连续赋值语句总是处于激活状态,用于组合逻辑之中
(3)连续赋值语句不能出现在过程块中,因为连续赋值语句是独立于过程语句的一种设计方式
(4)多个连续赋值语句之间是并行关系
(5)连续赋值语句的延时具有硬件电路中惯性延时特性,任何小于其延时的信号变化脉冲会被过滤掉,不会出现在输出端上
2.2 运算符

当遇到优先级时,可用()进行标注。
1.算术运算符:+、-、*、/、%
在赋值语句下,算数操作符结果的长度由操作符左端的目标长度决定
一般情况下,常用+、-、*,若要用/、%时,需要调用专用的IP
在加法操作中,最大位宽为max{m,n}+1
在乘法操作中,最大位宽为m+n-1
2.关系运算符:>、<、> =、< =、= =、!=、= = =、!= = =
| == | 0 | 1 | x | z |
|---|---|---|---|---|
| 0 | 1 | x | x | x |
| 1 | x | 1 | x | x |
| x | x | x | x | x |
| z | x | x | x | x |
| === | 0 | 1 | x | z |
|---|---|---|---|---|
| 0 | 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| x | 0 | 0 | 1 | 0 |
| z | 0 | 0 | 0 | 1 |
注:
关系运算符的结果是1bit信号
3.逻辑运算符:&&、||、!
例:
寄存器变量a、b的初值分别为4’b1110和4’b0000,则!a=1’b0,!b=1’b1,a&&b=1’b0,a||b=1’b1
逻辑运算的结果是一个1bit信号
4.按位运算符:~ 、&、|、^ 、^~
按位运算的结果是一个多bit信号
5.归约操作符:&、|、^ 、~ & 、~ |、~^
归约操作符的操作数只有1个
归约运算的结果是一个1bit信号
Verilog HDL 数据流与行为级描述精讲

本文详细介绍了Verilog HDL的数据流建模方式,包括连续赋值语句、运算符的使用及特性,以及行为级描述的各种语句,如过程语句、条件分支语句和循环语句,帮助读者深入理解Verilog HDL的设计方法。
最低0.47元/天 解锁文章
1459

被折叠的 条评论
为什么被折叠?



