📘 SystemVerilog 数据类型 & 运算符
🎯 精讲 · 30章
01
SystemVerilog前世今生
从Verilog到SystemVerilog的演进,为什么需要SV,标准概览
02
数据类型总览
SV数据类型家族图谱,四值逻辑与二值逻辑,有符号与无符号
03
逻辑类型logic
logic诞生背景,与reg/wire关系,何时用logic/wire
04
位宽与向量
向量声明,范围选择,部分选择,拼接{},重复运算符
05
整型数据类型
byte, shortint, int, longint, integer, time 位宽与场景
06
有符号与无符号
signed/unsigned,扩展规则,符号扩展坑
07
枚举类型enum
枚举定义、访问、状态机应用,避免枚举陷阱
08
结构体struct
定义与使用,压缩/非压缩,内存布局
09
联合体union
联合体概念,压缩联合体,数据格式转换妙用
10
数组基础
定宽数组声明,多维数组,初始化,赋值与复制
11
动态数组
声明与使用,new[],增删改查,与定宽数组对比
12
队列
队列声明,push/pop方法,与动态数组选择
13
关联数组
概念,声明遍历,查找表应用
14
字符串类型
string声明操作,常用方法,与字符数组转换
15
常量与参数
localparam, parameter, const区别,`define宏
16
类型转换
$cast静态转换,动态转换,流操作符,位流转换
17
算术运算符
+ - * / %,模运算注意,除法器问题
18
逻辑运算符
&& || !,逻辑与按位区别,短路特性
19
按位运算符
& | ~ ^ ~^,寄存器操作应用
20
移位运算符
<< >> <<< >>>,逻辑/算术移位,乘除法实现
21
关系运算符
== != < > <= >=,===与==区别,通配符匹配
22
赋值运算符
阻塞= 非阻塞<=,连续assign,时序理解
23
条件运算符?:
嵌套,数据选择器应用
24
运算符优先级
SV优先级表,陷阱,用括号避免歧义
25
自定义类型
typedef,复杂类型别名,最佳实践
26
接口interface
接口概念,modport,验证环境应用
27
数据类型选择指南
场景选择,综合与仿真差异
28
常见陷阱与避坑
X态传播,符号扩展,位宽不匹配,枚举越界
29
实战案例1:FIFO
用SV数据类型实现FIFO,数据类型角度优化
30
实战案例2:寄存器模型
寄存器模型实现,展示各种数据类型综合运用