Verilog HDL 硬件描述语言 PDF 文档
本章介绍 Verilog HDL 语言的发展历史和它的主要能力。
Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。
Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外, Verilog HDL 语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
Verilog HDL 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用 Verilog 仿真器进行验证。语言从 C 编程语言中继承了多种操作符和结构。 Verilog HDL 提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL 语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。
第 1 章 简介
1.1 什么是 Verilog HDL ?
1.2 历史
1.3 主要能力
第 2 章 HDL 指南
2.1 模块
2.2 时延
2.3 数据流描述方式
2.4 行为描述方式
2.5 结构化描述形式
2.6 混合设计描述方式
2.7 设计模拟
第 3 章 Verilog 语言要素
3.1 标识符
3.2 注释
3.3 格式
3.4 系统任务和函数
3.5 编译指令
3.5.1 `define 和`undef
3.5.2 `ifdef 、`else 和`endif
3.5.3 `default_nettype
3.5.4 `include
3.5.5 `resetall
3.5.6 `timescale
3.5.7 `unconnected_drive 和`nounconn䊲箒䯒о뻾赿愛훋㴦
3.5.8 `celldefine 和`endcelldefine
3.6 值集合
3.6.1 整型数
3.6.2 实数
3.6.3 字符串
3.7 数据类型
3.7.1 线网类型
3.7.2 未说明的线网
3.7.3 向量和标量线网
3.7.4 寄存器类型
3.8 参数
第 4 章 表达式
4.1 操作数
4.1.1 常数
4.1.2 参数
4.1.3 线网
4.1.4 寄存器
4.1.5 位选择
4.1.6 部分选择
4.1.7 存储器单元
4.1.8 函数调用
4.2 操作符
4.2.1 算术操作符
4.2.2 关系操作符
4.2.3 相等关系操作符
4.2.4 逻辑操作符
4.2.5 按位操作符
4.2.6 归约操作符
4.2.7 移位操作符
4.2.8 条件操作符
4.2.9 连接和复制操作
4.3 表达式种类
第 5 章 门电平模型化
5.1 内置基本门
5.2 多输入门
5.3 多输出门
5.4 三态门
5.5 上拉、下拉电阻
5.6 MOS 开关
5.7 双向开关
5.8 门时延
5.9 实例数组
5.10 隐式线网
5.11 简单示例
5.12 2-4 解码器举例
5.13 主从触发器举例
5.14 奇偶电路
第 6 章 用户定义的原语
6.1 UDP 的定义
6.2 组合电路 UDP
6.3 时序电路 UDP
6.3.1 初始化状态寄存器
6.3.2 电平触发的时序电路 UDP
6.3.3 边沿触发的时序电路 UDP
6.3.4 边沿触发和电平触发的混合行为
6.4 另一实例
6.5 表项汇总
第 7 章 数据流模型化
7.1 连续赋值语句
7.2 举例
7.3 线网说明赋值
7.4 时延
7.5 线网时延
7.6 举例
7.6.1 主从触发器
7.6.2 数值比较器
第 8 章 行为建模
8.1 过程结构
8.1.1 initial 语句
8.1.2 always 语句
8.1.3 两类语句在模块中的使用
8.2 时序控制
8.2.1 时延控制
8.2.2 事件控制
8.3 语句块
8.3.1 顺序语句块
8.3.2 并行语句块
8.4 过程性赋值
8.4.1 语句内部时延
8.4.2 阻塞性过程赋值
8.4.3 非阻塞性过程赋值
8.4.4 连续赋值与过程赋值的比较
8.5 if 语句
8.6 case 语句
8.7 循环语句
8.7.1 forever 循环语句
8.7.2 repeat 循环语句
8.7.3 while 循环语句
8.7.4 for 循环语句
8.8 过程性连续赋值
8.8.1 赋值—重新赋值
8.8.2 force 与 release
8.9 握手协议实例
第 9 章 结构建模
9.1 模块
9.2 端口
9.3 模块实例语句
9.3.1 悬空端口
9.3.2 不同的端口长度
9.3.3 模块参数值
9.4 外部端口
9.5 举例
第 10 章 其他论题
10.1 任务
10.1.1 任务定义
10.1.2 任务调用
10.2 函数
10.2.1 函数说明部分
10.2.2 函数调用
10.3 系统任务和系统函数
10.3.1 显示任务
10.3.2 文件输入/输出任务
10.3.3 时间标度任务
10.3.4 模拟控制任务
10.3.5 定时校验任务
10.3.6 模拟时间函数
10.3.7 变换函数
10.3.8 概率分布函数
10.4 禁止语句
10.5 命名事件
10.6 结构描述方式和行为描述方式的混合使用
10.7 层次路径名
10.8 共享任务和函数
10.9 值变转储文件
10.9.1 举例
10.9.2 VCD 文件格式
10.10 指定程序块
10.11 强度
10.11.1 驱动强度
10.11.2 电荷强度
10.12 竞争状态
第 11 章 验证
11.1 编写测试验证程序
11.2 波形产生
11.2.1 值序列
11.2.2 重复模式
11.3 测试验证程序实例
11.3.1 解码器
11.3.2 触发器
11.4 从文本文件中读取向量
11.5 向文本文件中写入向量
11.6 其他实例
11.6.1 时钟分频器
11.6.2 阶乘设计
11.6.3 时序检测器
第 12 章 建模实例
12.1 简单元件建模
12.2 建模的不同方式
12.3 时延建模
12.4 条件操作建模
12.5 同步时序逻辑建模
12.6 通用移位寄存器
12.7 状态机建模
12.8 交互状态机
12.9 Moore 有限状态机建模
12.10 Mealy 型有限状态机建模
12.11 简化的 21 点程序
附录语法参考
参考文献
下载地址:https://www.wenjiangs.com/wp-content/uploads/2025/02/HY7z4uJ3834xPvHi.rar
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论