《Verilog HDL数字系统设计原理与实践》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:王建民编著
  • 出 版 社:机械工业出版社
  • 出版年份:2017
  • ISBN:7111595823
  • 页数:350 页
图书介绍:本书从应用角度出发,详细介绍了利用硬件描述语言进行数字电路设计的基本原理、基本概念和设计方法,包括Verilog HDL语法基础、组合逻辑电路、规则时序逻辑电路、有限状态机及数据通道设计,静态时序分析及跨时钟域数据传输的基本概念、设计方法及应用。全书通过大量、完整、规范的设计实例演示各类数字电路的设计过程和描述方法。每章配有习题,以指导读者深入地进行学习。本书既可以作为电子科学与技术、集成电路设计相关专业本科、研究生数字集成电路前端设计教材,也可作为电子信息、电气工程和自动化相关专业FPGA应用设计课程教材使用。

第1章 数字系统设计概述 1

1.1 引言 1

1.2 模拟电路和数字电路 1

1.2.1 模拟信号和数字信号 1

1.2.2 模数转换 2

1.2.3 模拟电路和数字电路 3

1.3 数字电路设计 3

1.3.1 数字电路与系统 3

1.3.2 数字电路设计流程 5

1.4 硬件描述语言 6

1.5 习题和思考题 7

第2章 数字电路基础 8

2.1 变量和函数 8

2.2 基本逻辑关系 8

2.2.1 逻辑与 8

2.2.2 逻辑或 9

2.2.3 逻辑反 9

2.3 逻辑门和数字电路 10

2.3.1 晶体管 10

2.3.2 逻辑门 11

2.3.3 逻辑电路的表示 11

2.4 布尔代数和卡诺图 12

2.4.1 布尔代数 13

2.4.2 最小项的定义及其性质 14

2.4.3 卡诺图法化简逻辑函数 15

2.5 CMOS逻辑门电路 17

2.5.1 NMOS逻辑门 17

2.5.2 CMOS逻辑门 19

2.6 设计实现 20

2.6.1 标准芯片 21

2.6.2 可编程逻辑器件 22

2.6.3 全定制芯片、标准单元和门阵列 27

2.7 习题和思考题 29

第3章 Verilog HDL硬件描述语言 30

3.1 基本概念 30

3.1.1 模块 30

3.1.2 空白和注释 33

3.1.3 关键字 34

3.1.4 标识符 34

3.2 数据类型 35

3.2.1 四值逻辑系统 35

3.2.2 线网和变量 35

3.2.3 有符号和无符号数 36

3.3 层次化设计 37

3.3.1 设计方法学 37

3.3.2 模块实例 38

3.3.3 端口连接规则 39

3.4 门级描述 39

3.4.1 多输入门 39

3.4.2 多输出门 40

3.4.3 三态门 40

3.4.4 门阵列实例 41

3.5 任务和函数 42

3.5.1 任务 42

3.5.2 函数 43

3.5.3 任务和函数的区别 44

3.5.4 设计实例:格雷码计数器 44

3.6 可重用设计 48

3.6.1 宏定义 48

3.6.2 条件编译 49

3.6.3 参数 50

3.7 习题和思考题 52

第4章 组合逻辑电路设计 54

4.1 组合逻辑电路 54

4.2 连续赋值语句 54

4.3 组合逻辑always块 54

4.4 Verilog HDL操作符 56

4.4.1 表达式 56

4.4.2 操作数 56

4.4.3 操作符 57

4.4.4 操作符优先级 60

4.5 if语句 60

4.5.1 基本语法 60

4.5.2 设计实例 61

4.6 case语句 64

4.6.1 基本语法 64

4.6.2 设计实例 65

4.7 决策树 67

4.7.1 full case和parallel case 67

4.7.2 优先结构路由网络 68

4.7.3 并列结构路由网络 70

4.8 组合逻辑电路设计实例 72

4.8.1 有符号加法器 72

4.8.2 移位器 73

4.8.3 三态逻辑 75

4.8.4 浮点数加法器 76

4.8.5 组合逻辑乘法器 79

4.9 设计优化 81

4.9.1 操作符共享 81

4.9.2 布局相关的电路 83

4.9.3 功能共享 88

4.10 组合逻辑电路的设计要点 91

4.10.1 组合逻辑电路设计的常见错误 91

4.10.2 组合逻辑电路设计规则 94

4.11 组合逻辑电路Testhench 95

4.11.1 仿真逻辑的构成 95

4.11.2 组合逻辑电路Testbench实例 95

4.12 习题和思考题 97

第5章 规则时序逻辑电路设计 99

5.1 时序逻辑电路 99

5.1.1 时序逻辑电路结构及工作过程 99

5.1.2 时序逻辑电路的描述 100

5.2 基本存储元件 100

5.2.1 D锁存器 100

5.2.2 D触发器 101

5.2.3 寄存器和寄存器文件 104

5.3 规则时序逻辑电路设计实例 105

5.3.1 计数器 105

5.3.2 移位寄存器 108

5.3.3 线性反馈移位寄存器 109

5.3.4 同步FIFO 112

5.4 循环语句 117

5.4.1 for循环语句 117

5.4.2 while语句 120

5.5 生成语句 121

5.5.1 循环生成语句 121

5.5.2 条件生成语句 123

5.5.3 case生成语句 123

5.6 时序逻辑电路Testbench 124

5.7 设计陷阱 127

5.7.1 阻塞赋值和非阻塞赋值 127

5.7.2 组合逻辑环 128

5.7.3 异步信号的误用 128

5.7.4 门控时钟的误用 130

5.7.5 导出时钟的使用 131

5.8 习题和思考题 132

第6章 有限状态机设计原理 134

6.1 有限状态机 134

6.1.1 米利状态机和摩尔状态机 134

6.1.2 边沿检测电路 135

6.1.3 米利状态机和摩尔状态机的比较 137

6.2 状态转换图和算法状态机图 138

6.2.1 状态转换图 138

6.2.2 算法状态机图 139

6.3 有限状态机的时序 142

6.4 状态赋值 143

6.4.1 未用状态的处理 144

6.4.2 状态赋值对电路的影响 144

6.4.3 超前输出电路 148

6.5 有限状态机的实现 152

6.5.1 代码风格 152

6.5.2 Verilog HDL状态赋值 152

6.5.3 两段式always块 155

6.5.4 多段式always块 158

6.5.5 一段式always块 161

6.6 设计实例 164

6.6.1 序列检测器 164

6.6.2 键盘扫描电路 166

6.6.3 仲裁电路 170

6.6.4 BCD码余3码转换电路 174

6.7 习题和思考题 177

第7章 有限状态机设计实践 179

7.1 轨道车控制器 179

7.1.1 问题描述 179

7.1.2 轨道车运行方向输出信号 179

7.1.3 开关位置输出信号 180

7.1.4 传感器输入信号 180

7.1.5 设计实现 180

7.2 飞机起落架控制器 184

7.2.1 问题描述 184

7.2.2 设计实现 184

7.3 存储器控制器 188

7.3.1 SRAM读写时序 188

7.3.2 SRAM控制器数据通道 191

7.3.3 SRAM控制器控制通道 191

7.4 通用异步收发器UART 198

7.4.1 接收模块 199

7.4.2 发送模块 205

7.5 习题和思考题 208

第8章 时序分析基础 209

8.1 组合逻辑电路的传播延迟 209

8.1.1 组合逻辑电路传播延迟的定义 209

8.1.2 传播延迟产生的后果 210

8.1.3 传播延迟的计算 210

8.2 时序逻辑电路的传播延迟 211

8.2.1 引脚到引脚延迟路径 211

8.2.2 输入到寄存器数据输入延迟路径 212

8.2.3 时钟到输出延迟路径 213

8.2.4 寄存器到寄存器延迟路径 214

8.2.5 时序逻辑电路的最高工作频率 215

8.2.6 建立时间和保持时间的调整 215

8.3 提高电路的最高工作频率 217

8.4 调整电路的建立时间和保持时间 218

8.5 同步电路的时序分析方法 220

8.5.1 建立时间和最高工作频率 220

8.5.2 保持时间 221

8.5.3 输出相关的时序参数 221

8.5.4 输入相关的时序参数 222

8.6 带有时钟偏斜情况的时序分析 222

8.6.1 时钟偏斜对同步设计的影响 222

8.6.2 时钟偏斜对于建立时间和最高时钟频率的影响 223

8.6.3 时钟偏斜对保持时间约束的影响 224

8.7 习题和思考题 225

第9章 数据通道设计原理 226

9.1 数据通道 226

9.2 寄存器传输级设计 227

9.2.1 算法 227

9.2.2 数据流模型 227

9.2.3 寄存器传输级设计 229

9.3 FSMD设计原理 229

9.3.1 寄存器传输操作 229

9.3.2 数据通道 231

9.3.3 控制通道 231

9.4 FSMD设计 231

9.4.1 ASMD图 232

9.4.2 FSMD设计方法 233

9.4.3 在条件判断框中使用寄存器 238

9.4.4 FSMD的Verilog HDL描述 239

9.4.5 FSMD设计的资源共享 243

9.5 流水线设计 246

9.5.1 吞吐率和Latency 246

9.5.2 流水线设计 247

9.5.3 流水线逻辑电路设计 248

9.6 设计实例:访问RAM 255

9.6.1 问题描述 255

9.6.2 数据通道 255

9.6.3 控制通道设计 259

9.7 习题和思考题 261

第10章 数据通道设计实践 262

10.1 问题描述 262

10.2 定点数的表示 262

10.3 饱和算术运算 263

10.3.1 饱和加法运算 263

10.3.2 饱和乘法运算 264

10.4 设计实例:混合方程 264

10.4.1 混合方程 264

10.4.2 混合方程的直接实现 267

10.5 流水线设计 270

10.6 面积优化方法 273

10.6.1 资源共享数据通道的设计 273

10.6.2 握手信号 277

10.6.3 输入总线数据通道 279

10.7 递归和初始化 284

10.8 寄存器的Schedule 288

10.9 设计优化 294

10.9.1 电路结构与速度 294

10.9.2 电路结构与面积 307

10.10 习题和思考题 312

第11章 跨时钟域数字设计 313

11.1 时钟域 313

11.2 亚稳态 313

11.3 基本同步电路 314

11.3.1 电平同步电路 314

11.3.2 边沿同步电路 316

11.3.3 脉冲同步电路 317

11.4 同步多个控制信号 318

11.4.1 两个控制信号 318

11.4.2 具有相位关系的控制信号 319

11.4.3 编码控制信号 320

11.5 握手协议 322

11.5.1 四步握手协议 322

11.5.2 两步握手协议 326

11.6 跨时钟域数据传输 328

11.6.1 四步握手协议数据传输 328

11.6.2 两步传输协议数据传输 335

11.6.3 单步握手协议数据传输 336

11.7 通过存储器传输数据 337

11.7.1 异步FIFO缓冲器 337

11.7.2 共享存储器实现交换数据 338

11.8 异步FIFO设计 338

11.8.1 异步FIFO设计——方式1 338

11.8.2 异步FIFO设计——方式2 342

11.9 习题和思考题 347

附录 348

附录A Verilog HDL关键字(IEEE Std.13 64-2001) 348

附录B常用逻辑符号对照表 349

参考文献 350