《Verilog HDL高级数字设计 第2版》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)西勒提著;李广军等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121221934
  • 页数:650 页
图书介绍:本书依据数字集成电路系统工程开发的要求与特点,以ASIC/FPGA系统芯片工程开发流程及工程设计为主线写成,内容包括EDA技术,集成电路芯片的前后端设计、验证、实现与测试,集成电路的工程开发经验与设计案例分析等。书中以大量设计实例叙述了集成电路系统工程开发应遵循的原则、基本方法、实用技术、经验技巧等,极具工程设计特色与技术风格。

第1章 数字设计方法概论 1

1.1 设计方法简介 1

1.1.1 设计规格 3

1.1.2 设计划分 3

1.1.3 设计输入 3

1.1.4 仿真与功能验证 4

1.1.5 设计整合与验证 5

1.1.6 预综合完成 5

1.1.7 门级综合与工艺映射 5

1.1.8 后综合设计确认 5

1.1.9 后综合时序验证 6

1.1.10 测试生成与故障模拟 6

1.1.11 布局与布线 6

1.1.12 物理和电气设计规则检查 6

1.1.13 提取寄生参量 7

1.1.14 设计完成 7

1.2 IC工艺选择 7

1.3 后续内容概览 8

参考文献 8

第2章 组合逻辑设计回顾 10

2.1 组合逻辑与布尔代数 10

2.1.1 ASIC库单元 10

2.1.2 布尔代数 12

2.1.3 狄摩根定律 13

2.2 布尔代数化简定理 14

2.3 组合逻辑的表示 15

2.3.1 积之和表示法 16

2.3.2 和之积表示法 17

2.4 布尔表达式的化简 18

2.4.1 异或表达式的化简 23

2.4.2 卡诺图(积之和形式) 23

2.4.3 卡诺图(和之积形式) 25

2.4.4 卡诺图与任意项 25

2.4.5 扩展的卡诺图 26

2.5 毛刺与冒险 27

2.5.1 静态冒险的消除(积之和形式) 28

2.5.2 消除两级电路静态冒险的小结 30

2.5.3 多级电路中的静态冒险 30

2.5.4 消除多级电路静态冒险的小结 32

2.5.5 动态冒险 32

2.6 逻辑设计模块 34

2.6.1 与非-或非结构 34

2.6.2 多路复用器 37

2.6.3 多路解复用器 38

2.6.4 编码器 38

2.6.5 优先编码器 39

2.6.6 译码器 40

2.6.7 优先译码器 41

参考文献 41

习题 41

第3章 时序逻辑设计基础 43

3.1 存储元件 43

3.1.1 锁存器 43

3.1.2 透明锁存器 44

3.2 触发器 45

3.2.1 D触发器 45

3.2.2 主从触发器 46

3.2.3 J-K触发器 48

3.2.4 T触发器 48

3.3 总线与三态器件 49

3.4 时序机设计 50

3.5 状态转移图 52

3.6 设计举例:BCD码到余3码的转换器 53

3.7 数据传输的串行线码转换器 57

3.7.1 设计举例:用Mealy型FSM实现串行线性码转换 58

3.7.2 设计举例:用Moore型FSM实现串行线码转换 60

3.8 状态化简与等价状态 61

参考文献 63

习题 64

第4章 Verilog逻辑设计介绍 65

4.1 组合逻辑的结构化模型 65

4.1.1 Verilog原语和设计封装 66

4.1.2 Verilog结构化模型 67

4.1.3 模块端口 68

4.1.4 语言规则 68

4.1.5 自顶向下的设计和模块嵌套 69

4.1.6 设计层次和源代码结构 71

4.1.7 Verilog矢量 71

4.1.8 结构化连接 72

4.2 逻辑系统设计验证及测试方法 75

4.2.1 Verilog中的四值逻辑和信号解析 75

4.2.2 测试方法 75

4.2.3 测试平台的信号发生器 77

4.2.4 事件驱动仿真 78

4.2.5 测试模板 79

4.2.6 定长数 79

4.3 传播延时 80

4.3.1 惯性延时 81

4.3.2 传输延时 82

4.4 组合与时序逻辑的Verilog真值表模型 82

参考文献 87

习题 87

第5章 用组合与时序逻辑的行为级模型进行逻辑设计 89

5.1 行为建模 89

5.2 行为级建模的数据类型的简要介绍 90

5.3 基于布尔方程的组合逻辑行为级模型 90

5.4 传播延时与连续赋值 92

5.5 Verilog中的锁存器和电平敏感电路 93

5.6 触发器和锁存器的周期性行为模型 94

5.7 周期性行为和边沿检测 95

5.8 行为建模方式的比较 96

5.8.1 连续赋值模型 96

5.8.2 数据流/寄存器传输级模型 97

5.8.3 基于算法的模型 99

5.8.4 端口名称:风格问题 100

5.8.5 行为级模型仿真 100

5.9 多路复用器、编码器和译码器的行为模型 101

5.10 线性反馈移位寄存器的数据流模型 106

5.11 用循环算法的数字机模型 107

5.11.1 IP(知识产权)的复用和参数化模型 110

5.11.2 时钟发生器 111

5.12 多循环操作状态机 112

5.13 设计文件中的函数和任务:是精明还是愚蠢? 113

5.13.1 任务 113

5.13.2 函数 114

5.14 行为建模的算法状态机图 116

5.15 ASMD图 117

5.16 计数器、移位寄存器和寄存器组的行为级模型 120

5.16.1 计数器 120

5.16.2 移位寄存器 124

5.16.3 寄存器组和寄存器(存储器)阵列 127

5.17 用于异步信号的去抖动开关、亚稳定性和同步装置 129

5.18 设计实例:键盘扫描器和编码器 133

参考文献 138

习题 139

第6章 组合逻辑与时序逻辑的综合 144

6.1 综合简介 144

6.1.1 逻辑综合 145

6.1.2 RTL综合 150

6.1.3 高级综合 150

6.2 组合逻辑的综合 151

6.2.1 优先级结构的综合 153

6.2.2 利用逻辑无关紧要条件 154

6.2.3 ASIC单元与资源共享 157

6.3 带锁存器的时序逻辑综合 158

6.3.1 锁存器的无意综合 159

6.3.2 锁存器的有意综合 162

6.4 三态器件和总线接口的综合 164

6.5 带有触发器的时序逻辑综合 165

6.6 显式状态机的综合 168

6.6.1 BCD码/余3码转换器的综合 168

6.6.2 设计举例:Mealy型NRZ码/Manchester线性码转换器的综合 171

6.6.3 设计举例:Moore型NRZ码/Manchester线性码转换器的综合 172

6.6.4 设计举例:序列检测器的综合 174

6.7 寄存器逻辑 181

6.8 状态编码 185

6.9 隐式状态机、寄存器和计数器的综合 187

6.9.1 隐式状态机 187

6.9.2 计数器综合 187

6.9.3 寄存器综合 189

6.10 复位 192

6.11 门控时钟与时钟使能的综合 194

6.12 预测综合结果 195

6.12.1 数据类型综合 195

6.12.2 运算符分组 195

6.12.3 表达式替代 196

6.13 循环的综合 198

6.13.1 不带内嵌定时控制的静态循环 198

6.13.2 带内嵌定时控制的静态循环 200

6.13.3 不带内嵌定时控制的非静态循环 202

6.13.4 带内嵌定时控制的非静态循环 203

6.13.5 用状态机替代不可综合的循环 205

6.14 要避免的设计陷阱 209

6.15 分割与合并:设计划分 209

参考文献 210

习题 211

第7章 数据通路控制器的设计与综合 216

7.1 时序状态机的划分 216

7.2 设计实例:二进制计数器 217

7.3 RISC存储程序机的设计与综合 221

7.3.1 RISC SPM:处理器 221

7.3.2 RISC SPM:ALU 222

7.3.3 RISC SPM:控制器 222

7.3.4 RISC SPM:指令集 223

7.3.5 RISC SPM:控制器设计 224

7.3.6 RISCSPM:程序执行 234

7.4 设计实例:UART 236

7.4.1 UART的操作 236

7.4.2 UART发送器 237

7.4.3 UART接收器 246

参考文献 255

习题 255

第8章 可编程逻辑及存储器件 267

8.1 可编程逻辑器件 268

8.2 存储器件 268

8.2.1 只读存储器 268

8.2.2 可编程ROM(PROM) 270

8.2.3 可擦除ROM 271

8.2.4 基于ROM的组合逻辑实现 272

8.2.5 用于ROM的Verilog系统任务 272

8.2.6 ROM的比较 274

8.2.7 基于ROM的状态机 274

8.2.8 闪存 276

8.2.9 静态随机存储器(SRAM) 276

8.2.1 0铁电非易失性存储器 291

8.3 可编程逻辑阵列(PLA) 291

8.3.1 PLA最小化 293

8.3.2 PLA建模 295

8.4 可编程阵列逻辑(PAL) 297

8.5 PLD的可编程性 298

8.6 复杂可编程逻辑器件 298

8.7 现场可编程门阵列 298

8.7.1 FPGA在ASIC市场中的角色 299

8.7.2 FPGA技术 300

8.7.3 Xilinx公司Virtex系列FPGA 301

8.8 片上系统(SoC)的嵌入式可编程IP核 302

8.9 基于Verilog的FPGA设计流程 302

8.1 0 FPGA综合 303

参考文献 305

相关网站 305

习题及基于FPGA的设计训练 305

第9章 数字处理器的算法和架构 330

9.1 算法、循环嵌套程序和数据流图 330

9.2 设计实例:半色调像素图像转换器 332

9.2.1 半色调像素图像转换器的原型设计 334

9.2.2 基于NLP的半色调像素图像转换器结构 337

9.2.3 半色调像素图像转换器的最小并行处理器结构 342

9.2.4 半色调像素图像转换器:设计权衡 353

9.2.5 带反馈数据流图的结构 353

9.3 数字滤波器和信号处理器 358

9.3.1 FIR滤波器 360

9.3.2 数字滤波器设计过程 362

9.3.3 IIR滤波器 364

9.4 构建信号处理器的基本运算单元模型 367

9.4.1 积分器(累加器) 367

9.4.2 微分器 369

9.4.3 抽样和插值滤波器 369

9.5 流水线结构 373

9.5.1 设计实例:流水线型加法器 375

9.5.2 设计实例:流水线型FIR滤波器 380

9.6 环形缓冲器 380

9.7 异步FIFO——跨越时钟域的同步问题 383

9.7.1 简化异步FIFO 384

9.7.2 异步FIFO的时钟同步 391

参考文献 406

习题 406

第10章 算术处理器架构 412

10.1 数的表示方法 412

10.1.1 负整数的原码表示 412

10.1.2 负整数的反码表示方法 413

10.1.3 正数和负数的补码表示方法 414

10.1.4 小数的表示 415

10.2 加减法功能单元 415

10.2.1 行波进位加法器 415

10.2.2 超前进位加法器 415

10.2.3 上溢出和下溢出 419

10.3 乘法运算功能单元 419

10.3.1 组合(并行)二进制乘法器 419

10.3.2 时序二进制乘法器 422

10.3.3 时序乘法器设计:层次化分解 423

10.3.4 基于STG的控制器设计 424

10.3.5 基于STG的高效二进制时序乘法器 428

10.3.6 基于ASMD的时序二进制乘法器 433

10.3.7 基于ASMD的高效二进制时序乘法器 437

10.3.8 基于ASMD数据通路和控制器设计的总结 441

10.3.9 精简寄存器时序乘法器 441

10.3.1 0隐式状态机二进制乘法器 445

10.3.1 1 Booth算法时序乘法器 454

10.3.1 2比特对编码 464

10.4 有符号二进制数乘法 470

10.4.1 有符号数的乘积:被乘数为负,乘数为正 470

10.4.2 有符号数的乘积:被乘数为正,乘数为负 470

10.4.3 有符号数的乘积:被乘数、乘数均为负 472

10.5 小数乘法 472

10.5.1 有符号小数:被乘数、乘数均为正 473

10.5.2 有符号小数:被乘数为负,乘数为正 473

10.5.3 有符号小数:被乘数为正,乘数为负 474

10.5.4 有符号小数:被乘数、乘数均为负 474

10.6 除法功能单元 474

10.6.1 无符号二进制数的除法 475

10.6.2 无符号二进制数的高效除法 480

10.6.3 精简寄存器时序除法器 487

10.6.4 有符号二进制数(补码)的除法 491

10.6.5 带符号的计算 491

参考文献 493

习题 494

第11章 后综合设计任务 498

11.1 后综合设计验证 498

11.2 后综合时序验证 500

11.2.1 静态时序分析 502

11.2.2 时序规范 503

11.2.3 影响时序的因素 505

11.3 ASIC中时序违约的消除 508

11.4 虚假路径 509

11.5 用于时序验证的系统任务 511

11.5.1 时序检查:建立时间条件 511

11.5.2 时序检查:保持时间约束 512

11.5.3 时序检查:建立时间和保持时间约束 512

11.5.4 时钟检查:脉冲宽度约束 513

11.5.5 时序检查:信号偏移约束 513

11.5.6 时序检查:时钟周期 513

11.5.7 时序检查:恢复时间 514

11.6 故障模拟及制造测试 514

11.6.1 电路缺陷和故障 515

11.6.2 故障检测与测试 517

11.6.3 D标记法 518

11.6.4 组合电路的自动测试模板生成 520

11.6.5 故障覆盖和缺陷级别 522

11.6.6 时序电路的测试生成 522

11.7 故障模拟 524

11.7.1 故障解析 525

11.7.2 串行故障模拟 525

11.7.3 并行故障模拟 526

11.7.4 并发性故障模拟 526

11.7.5 概率性故障模拟 526

11.8 JTAG端口和可测性设计 526

11.8.1 边界扫描和JTAG端口 527

11.8.2 JTGA操作模式 528

11.8.3 JTAG寄存器 528

11.8.4 JTAG指令 530

11.8.5 TAP结构 531

11.8.6 TAP控制器状态机 532

11.8.7 设计实例:JTAG测试 535

11.8.8 设计实例:内建自测试 553

参考文献 564

习题 565

附录A Verilog原语 569

附录B Verilog关键词 574

附录C Verilog数据类型 575

附录D Verilog运算符 580

附录E Verilog语言形式化语法(Ⅰ) 587

附录F Verilog语言形式化语法(Ⅱ) 588

附录G Verilog语言的附加特性 608

附录H 触发器和锁存器类型 615

附录I Verilog 2001,2005 616

附录J 编程语言接口 631

附录K 相关网站 632

中英文术语对照表 633