《数字系统设计与Verilog HDL》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王金明编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2005
  • ISBN:7121014947
  • 页数:375 页
图书介绍:本书按照“器件—软件—设计语言”的顺序介绍数字系统设计的方法、CPLD/FPGA器件、典型的EDA设计软件和Verilog HDL硬件描述语言。本书对CPLD/FPGA器件的结构与功能特点做了综述,以具体的实例,详细介绍用Quartus II、MAX+plus II软件进行原理图设计和文本设计开发的过程。Verilog HDL数字设计是本书的重点,同时对仿真和模拟也做了深入阐述,讨论了设计方法和设计优化的问题。以大量经过验证的数字设计实例为依据,全面系统地阐述了Verilog HDL硬件设计开发的方法与技术。

第1章 EDA技术与数字系统设计 1

内容提要 1

1.1 引言 1

1.2 EDA技术及其发展 2

1.3 数字系统的设计技术 3

1.3.1 Top-down设计 4

1.3.2 Bottom-up设计 5

1.3.3 IP复用技术与SoC 5

1.4 数字系统的实现方式 6

1.5 数字系统的设计输入方式 7

1.6 数字系统设计的流程 9

1.6.1 设计输入 9

1.6.2 综合 10

1.6.3 适配 11

1.6.4 仿真 12

1.6.5 编程 12

1.7 常用的EDA设计工具 12

1.7.1 集成的CPLD/FPGA开发工具 12

1.7.2 设计输入工具 13

1.7.3 逻辑综合器 13

1.7.4 仿真器 14

1.7.5 版图设计软件及其他常用EDA 工具 15

习题 16

第2章 CPLD/FPGA的结构与配置 17

内容提要 17

2.1 概述 17

2.2 PLD的分类 18

2.2.1 PLD的集成度分类 18

2.2.2 按编程特点分类 19

2.2.3 按结构特点分类 20

2.3 PLD的基本结构 20

2.3.1 PLD器件的基本结构 20

2.3.2 PLD电路的表示方法 21

2.3.3 简单PLD的结构 22

2.4 CPLD的结构与特点 24

2.4.1 Lattice的CPLD结构特点 25

2.4.2 Altera的CPLD结构特点 28

2.5 FPGA的结构与特点 33

2.5.1 Xilinx的FPGA结构特点 33

2.5.2 Altera的FPGA结构特点 36

2.6 在系统编程与边界扫描测试技术 43

2.6.1 在系统编程技术(ISP) 44

2.6.2 边界扫描测试(BST)技术 45

2.7 CPLD/FPGA器件产品概述 47

2.7.1 Lattice的CPLD/FPGA器件 47

2.7.2 Xilinx的CPLD/FPGA器件 49

2.7.3 Altera的CPLD/FPGA器件 53

2.8 CPLD/FPGA器件的配置 58

2.8.1 ByteBlaster及其使用 58

2.8.2 CPLD器件的配置 59

2.8.3 FPGA器件的配置 60

2.9 PLD器件的发展趋势 65

习题 65

第3章 原理图设计输入方式 66

内容提要 66

3.1 原理图设计的流程 66

3.2 Quartus Ⅱ原理图设计 69

3.2.1 半加器原理图输入 69

3.2.2 半加器编译 73

3.2.3 半加器仿真 75

3.2.4 全加器设计与仿真 78

3.3 MAX+plus Ⅱ原理图设计 79

3.3.1 原理图设计输入 80

3.3.2 编译与手动调整 84

3.3.3 仿真与时间特性分析 88

3.3.4 编程下载 91

3.4 基于LPM宏单元库的设计 94

3.4.1 LPM宏单元库 94

3.4.2 LPM设计举例 96

习题 97

第4章 基于硬件描述语言的设计 100

内容提要 100

4.1 基于HDL文本输入的设计流程 100

4.2 Quartus Ⅱ文本设计举例 101

4.2.1 创建工程文件 101

4.2.2 编译 103

4.2.3 仿真 105

4.3 MAX+plus Ⅱ文本设计举例 106

4.4 Synplify pro文本设计举例 109

4.4.1 用Synplify Pro综合的过程 110

4.4.2 Synplify Pro与MAX+plus Ⅱ的接口 114

4.4.3 Synplify Pro与Quartus Ⅱ的接口 116

4.5 Synplify文本设计举例 116

4.6 ModelSim仿真举例 119

4.6.1 ModelSim功能仿真 120

4.6.2 ModelSim时序仿真 125

4.7 ispLEVER文本设计举例 126

习题 129

第5章 Verilog HDL数字设计初步 130

内容提要 130

5.1 Verilog HDL语言的历史及与C语言的比较 130

5.2 Verilog HDL设计举例 132

5.2.1 4位全加器和4位计数器 132

5.2.2 综合与仿真 133

5.3 Verilog HDL模块的基本结构 137

5.4 Verilog HDL语言要素 140

5.4.1 空白符和注释 140

5.4.2 标志符、运算符和关键字 141

5.5 常量 141

5.6 数据类型和变量 144

5.6.1 连线型 145

5.6.2 寄存器型 146

5.6.3 parameter 147

5.7 寄存器和存储器 147

5.8 运算符 148

5.8.1 运算符 149

5.8.2 运算符的优先级 152

习题 153

第6章 Verilog HDL行为语句 154

内容提要 154

6.1 概述 154

6.2 过程语句 155

6.2.1 always过程语句 155

6.2.2 initial语句 159

6.3 块语句 160

6.3.1 串行块begin-end 160

6.3.2 并行块fork-join 161

6.4 赋值语句 162

6.4.1 持续赋值与过程赋值 162

6.4.2 阻塞赋值与非阻塞赋值 163

6.5 条件语句 164

6.5.1 if-else语句 164

6.5.2 case语句 165

6.5.3 条件语句使用要点 168

6.6 循环语句 169

6.6.1 for语句 169

6.6.2 repeat语句 170

6.6.3 while和forever语句 171

6.7 编译向导 173

6.7.1 宏替换'define 173

6.7.2 文件包含'include 174

6.7.3 条件编译'ifdef、'else、'endif 175

6.8 任务和函数 175

6.8.1 任务(task) 175

6.8.2 函数(function) 178

6.8.3 任务和函数的区别 181

6.9 顺序执行与并发执行 182

6.10 Verilog-2001语法结构简介 184

习题 187

第7章 Verilog HDL数字设计的层次与风格 188

内容提要 188

7.1 Verilog HDL数字设计的层次 188

7.2 结构描述 189

7.2.1 Verilog HDL内置门元件 189

7.2.2 门级结构描述 191

7.3 行为描述 192

7.4 数据流描述 193

7.5 不同描述风格的设计 195

7.5.1 半加器 195

7.5.2 1位全加器 196

7.5.3 4位全加器 198

习题 199

第8章 仿真 200

内容提要 200

8.1 概述 200

8.2 系统任务与系统函数 201

8.3 用户自定义元件(UDP) 205

8.3.1 组合电路UDP元件 206

8.3.2 时序逻辑UDP元件 208

8.4 延时模型的表示 210

8.4.1 时间标尺定义timescale 210

8.4.2 延时的表示与延时说明块 211

8.5 数字电路的仿真 212

8.5.1 测试平台(TestBench) 212

8.5.2 测试程序的编写 213

8.5.3 组合电路的仿真 215

8.5.4 时序电路的仿真 219

习题 220

第9章 Verilog HDL数字电路设计实践 221

内容提要 221

9.1 基本组合电路的设计 221

9.1.1 门电路 221

9.1.2 编译码器 223

9.1.3 数据选择器 226

9.1.4 用组合电路实现的ROM 227

9.2 基本时序电路的设计 228

9.2.1 D触发器与JK触发器 228

9.2.2 锁存器与寄存器 229

9.2.3 计数器 232

9.2.4 ROM/RAM模块 233

9.2.5 串并转换器 234

9.3 简易微处理器的设计 234

9.4 乘累加器(MAC)的设计 236

9.5 数字跑表 238

9.6 4位数字频率计 240

9.7 交通灯控制器 243

9.8 乐曲演奏电路 246

9.8.1 音调、音长的控制 247

9.8.2 源代码 248

9.9 自动售饮料机的设计 251

9.10 实用多功能数字钟 253

9.11 计费器设计 257

习题 260

第10章 设计方法与设计优化 261

内容提要 261

10.1 设计的可综合性 261

10.1.1 可综合的设计 261

10.1.2 可综合的Verilog HDL结构 262

10.2 流水线设计技术 264

10.3 资源共享 267

10.4 有限状态机(FSM)设计 271

10.4.1 基于状态机的设计 271

10.4.2 频率计控制器设计举例 273

10.4.3 基于状态机的设计要点 275

10.5 多层次结构电路的设计 277

10.5.1 图形与文本混合设计 277

10.5.2 文本设计 278

10.6 进程 280

10.6.1 进程 280

10.6.2 进程间的通信 281

10.7 阻塞赋值与非阻塞赋值 282

10.7.1 阻塞赋值与非阻塞赋值的区别 282

10.7.2 使用阻塞和非阻塞赋值应遵循的原则 283

10.8 片内存储器的使用 287

10.8.1 FPGA器件的片内存储器 287

10.8.2 设计举例 288

10.9 FPGA设计中毛刺的消除 290

习题 293

第11章 数字系统设计开发实例 294

内容提要 294

11.1 加法器设计 294

11.1.1 级连加法器 294

11.1.2 并行加法器 295

11.1.3 超前进位加法器 296

11.1.4 流水线加法器 299

11.2 乘法器设计 299

11.2.1 并行乘法器 299

11.2.2 移位相加乘法器 300

11.2.3 查找表乘法器 301

11.2.4 加法树乘法器 302

11.3 可调信号发生器的FPGA实现 304

11.3.1 顶层设计 304

11.3.2 波形数据ROM定制 308

11.3.3 编译与仿真 311

11.3.4 引脚锁定及编程下载 314

11.3.5 使用嵌入式逻辑分析仪进行实时测试 315

11.4 设计FIR数字滤波器 319

11.4.1 FIR滤波器的结构 319

11.4.2 抽头系数的编码 320

11.4.3 源代码及仿真 320

11.5 数字相关器 323

11.6 信道编译码器的实现 325

11.6.1 线性分组码编译码器 326

11.6.2 循环码编译码器 328

11.7 CRC校验码 332

习题 334

第12章 实验与设计 335

内容提要 335

实验1 MAX+plus Ⅱ原理图方式设计二分频器 335

一、实验目的 335

二、实验步骤 335

实验2 MAX+plus Ⅱ原理图方式设计半加器 341

一、实验目的 341

二、实验内容 341

三、实验步骤 341

实验3 Quartus Ⅱ原理图方式设计4×4二进制乘法器 343

一、实验目的 343

二、实验内容 343

三、实验思考题 347

实验4 MAX+plus Ⅱ文本方式设计分频器 347

一、实验目的 347

二、实验步骤 347

三、实验思考题 349

实验5 原理图和文本混合设计方式 350

一、实验目的 350

二、实验内容 350

实验6 Synplify文本设计 353

一、实验目的 353

二、实验内容 353

三、实验步骤 354

四、实验思考题 356

实验7 Verilog HDL时序逻辑电路的设计 356

一、实验目的 356

二、实验内容 357

三、实验步骤 357

四、实验思考题 358

实验8 阻塞赋值与非阻塞赋值的区别 359

一、实验目的 359

二、实验内容 359

三、实验步骤 360

四、实验注意事项 360

五、实验思考题 360

实验9 流水线设计技术及性能分析 361

一、实验目的 361

二、实验内容 361

三、实验步骤 363

实验10 使用有限状态机进行设计 364

一、实验目的 364

二、实验内容 364

三、实验步骤 366

四、实验注意事项 366

五、实验思考题 366

附录A 相关术语与缩略语 368

附录B Verilog HDL(IEEE Std 1 364-1 995)关键字 372

附录C Synplify Pro/Synplify可综合的Verilog结构 373

附录D MAX+plus Ⅱ支持的Verilog HDL结构 374

参考文献 375