Verilog硬件设计语言思维导图
暑假期间总结的,内容都比较基础,可用作基础复习!文章最下方有思维导图PDF版本下载链接!
再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。
01逻辑值
逻辑 0
- 表示低电平,也就是对应我们电路的GND
逻辑 1
- 表示高电平,也就是对应我们电路的VCC
逻辑 X
- 表示未知,有可能是高电平,也有可能是低电平
逻辑 Z
- 表示高阻态,外部没有激励信号是一个悬空状态
02数字进制格式
二进制
- 4’b0101表示4位二进制数字0101
八进制
- 缩写为o,以0开头,由0~7组成的数。如,0126,050000
十进制
- 4’d2表示4位十进制数字2(二进制0010)
十六进制
- 4’ha表示4位十六进制数字a(二进制1010),十六进制的计数方式为0, 1, 2…9, a, b, c, d, e, f, 最大计数为f( f:十进制表示为15)
03数据类型
寄存器类型
-
寄存器类型表示一个抽象的数据存储单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值过程中被保存下来。
- reg
- integer
- real
线网类型
-
线网表示Verilog结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值
或门的输出。如果没有驱动元件连接到线网,线网的缺省值为z(高阻态)。- wire
- tri
参数类型
-
参数其实就是一个常量,常被用于定义状态机的状态、数据位宽和延迟大小等,由于它可以在编译时修改参数的值,因此它又常被用于一些参数可调的模块中,使用户在实例化模块时,可以根据需要配置参数。
- parameter
04运算符
算术运算符
-
-
a + b
- a 加上 b
-
-
-
a - b
- a 减去 b
-
-
-
a * b
- a 乘以 b
-
-
/
-
a / b
- a 除以 b
-
-
%
-
a % b
- a 模除 b
-
关系运算符
-
-
a > b
- a 大于 b
-
-
<
-
a < b
- a 小于 b
-
-
=
-
a >= b
- a 大于等于 b
-
-
<=
-
a <= b
- a 小于等于 b
-
-
==
-
a == b
- a 等于 b
-
-
!=
-
a != b
- a 不等于 b
-
逻辑运算符
-
!
-
!a
- a的非, 如果a为0, 那么a的非是1。
-
-
&&
-
a && b
- a 与上 b,如果a和b都为1,
a&&b结果才为1, 表示真。
- a 与上 b,如果a和b都为1,
-
-
||
-
a || b
- a 或上 b,如果a或者b有一个
为1, a||b结果为1, 表示真。
- a 或上 b,如果a或者b有一个
-
条件运算符
-
? :
-
a ? b : c
- 如果 a 为真, 就选择 b,否则选择 c
-
位运算符
-
~
-
~a
- 将 a 的每个位进行取反
-
-
&
-
a & b
- 将 a 的每个位与 b 相同的位进行相与
-
-
|
-
a | b
- 将 a 的每个位与 b 相同的位进行相或
-
-
^
-
a ^ b
- 将 a 的每个位与 b 相同的位进行异或
-
移位运算符
-
<<
-
a << b
- 将 a 左移 b 位
-
-
-
a >> b
- 将 a 右移 b 位
-
拼接运算符
-
{}
-
{a,b}
- 将 a 和 b 拼接起来, 作为一个新信号
-
05关键字
module
- 模块开始定义
input
- 输入端口定义
output
- 输出端口定义
inout
- 双向端口定义
parameter
- 信号的参数定义
wire
- wire信号定义
reg
- reg信号定义
always
- 产生reg信号语句的关键字
assign
- 产生wire信号语句的关键字
begin
- 语句的起始标志
end
- 语句的结束标志
posedge/negedge
- 时序电路的标志
case
- Case语句起始标记
default
- Case语句的默认分支标志
endcase
- Case语句结束标记
if
- if/else语句标记
else
- if/else语句标记
for
- for语句标记
endmodule
- 模块结束定义
06赋值
阻塞赋值
-
b = a
- 在一个always块中,后面的语句会受到前语句的影响
非阻塞赋值
-
b <= a
- 非阻塞赋值是由时钟节拍决定
07条件语句
if_else语句
- if(表达式)
语句 - if(表达式)
语句1
else
语句2 - if(表达式)
语句1
else
语句2
else
语句3
…
case语句
-
case(表达式)
条件1:语句1;
条件2:语句2;
…
endcase -
casez(表达式)
条件1:语句1;
条件2:语句2;
…
endcase- casez语句用来处理不考虑高阻值z的比较过程
-
casex(表达式)
条件1:语句1;
条件2:语句2;
…
endcase- casex语句则将高阻值z和不定值视为不关心的情况
08循环语句
forever语句
- forever语句
- forever begin
多条语句
end
(必须写在initial)
reprat语句
- reprat(表达式)语句
- reprat(表达式) begin
多条语句
end
while语句
- while(表达式)语句
(为真执行,为假不执行) - while(表达式) begin
多条语句
end
for语句
- for(表达式1,表达式2,表达式3)
语句
09结构说明语句
initial语句
- initial begin
多条语句
end
always语句
- always<时序控制><语句>
task说明语句
function说明语句
百度网盘链接:
链接:https://pan.baidu.com/s/1PsCMBRHhdaeddmAyxepjGQ
提取码:uipu
(需要请自取)