《Verilog HDL程序设计与实践》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:云创工作室编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115193254
  • 页数:398 页
图书介绍:本书按照开门见山、自顶向下的方式来组织内容,在介绍相关知识点之前,先告诉读者其出现的背景、本质特征以及语法,让读者不仅掌握基本语法,并能够获得深层次理解。全书内容分为13章,第1章为EDA设计与Verilog HDL语言概述;第2章为Verilog HDL基础与开发平台操作指南;第3章为Verilog HDL程序结构;第4章为Verilog HDL语言基本要素;第5章为面向综合的描述语句;第6章为面向验证和仿真的描述语句;第7章为系统任务和编译预处理语句;第8章为Verilog HDL难点解析;第9章为高级逻辑设计思想与代码风格;第10章为可综合状态机开发实例;第11章为常用逻辑的Verilog HDL实现;第12章为Xilinx硬核模块的Verilog HDL调用;第13章为RS232串口总线接口模块的设计;各章均附有一定的思考题,供读者练习和自我检查。本书语言简洁,层次清晰,以Verilog HDL语言的各方面开发为主线,遵照硬件应用系统开发的基本步骤和思路进行详细讲解,并穿插ISE开发工具的操作技巧与注意事项,具备很强的可读性、指导性和实用性。

第1章 EDA设计与Verilog HDL语言概述 1

1.1 EDA设计概述 1

1.1.1 EDA技术简介 1

1.1.2 EDA与传统电子系统设计方法 2

1.1.3 可编程逻辑器件对EDA技术的要求 4

1.2 Verilog HDL语言简介 5

1.2.1 硬件描述语言说明 5

1.2.2 Verilog HDL语言的历史 6

1.2.3 Verilog HDL语言的能力 6

1.2.4 Verilog HDL和VHDL语言的比较 7

1.2.5 Verilog HDL和C语言的比较 8

1.3 Veriilog HDL语言的描述层次说明 8

1.3.1 Verilog HDL语言描述能力综述 8

1.3.2 系统级和算法级建模 9

1.3.3 RTL级建模 9

1.3.4 门级和开关级建模 9

1.4 基于Verilog HDL语言的CPLD/FPGA开发流程 10

1.5 Verilog HDL语言的可综合与仿真特性 12

1.5.1 Verilog HDL语句的可综合性说明 12

1.5.2 Verilog HDL语句的仿真特性说明 13

1.6 本章小结 14

1.7 思考题 14

第2章 Verilog HDL基础与开发平台操作指南 15

2.1 Verilog HDL程序开发的必备知识 15

2.1.1 数字的表示形式 15

2.1.2 常用术语解释 17

2.1.3 Verilog HDL程序的优劣判断指标 18

2.2 Verilog HDL程序设计模式 19

2.2.1 自顶向下的设计模式 19

2.2.2 层次、模块化模式 20

2.2.3 IP核的重用 20

2.3 Xilinx Spartan 3E系列FPGA简介 21

2.3.1 Spartan 3E系列FPGA简介 21

2.3.2 Spartan 3E系列FPGA结构说明 22

2.4 ISE快速入门 25

2.4.1 ISE操作基础 25

2.4.2 新建工程 29

2.4.3 Verilog HDL代码的输入与功能仿真 30

2.4.4 Xilinx IP核的使用 34

2.4.5 用户约束输入 39

2.4.6 综合与实现 42

2.4.7 器件配置 44

2.5 ModelSim快速入门 50

2.5.1 ModelSim仿真软件的安装 51

2.5.2 在ModelSim中指定Xilinx的仿真库 53

2.5.3 ModelSim的基本操作 53

2.6 本章小结 55

2.7 思考题 56

第3章 Verilog HDL程序结构 57

3.1 程序模块说明 57

3.1.1 Verilog HDL模块的概念 57

3.1.2 模块的基本结构 57

3.1.3 端口说明 59

3.2 Verilog HDL的层次化设计 59

3.2.1 Verilog HDL层次化设计的表现形式 59

3.2.2 模块例化 59

3.2.3 参数映射 63

3.2.4 在ISE中通过图形化方式实现层次化设计 66

3.3 Verilog HDL语言的描述形式 68

3.3.1 结构描述形式 68

3.3.2 行为描述形式 75

3.3.3 混合设计模式 79

3.4 本章小结 79

3.5 思考题 79

第4章 Verilog HDL语言基本要素 81

4.1 标志符与注释 81

4.1.1 标志符 81

4.1.2 注释 82

4.2 数字与逻辑数值 82

4.2.1 逻辑数值 82

4.2.2 常量 82

4.2.3 参数 83

4.3 数据类型 83

4.3.1 数据类型综述 83

4.3.2 线网类型 84

4.3.3 寄存器类型 88

4.4 运算符和表达式 91

4.4.1 赋值运算符 91

4.4.2 算术运算符 93

4.4.3 逻辑运算符 96

4.4.4 关系运算符 97

4.4.5 条件运算符 99

4.4.6 位运算符 100

4.4.7 拼接运算符 101

4.4.8 移位运算符 102

4.4.9 一元约简运算符 103

4.5 本章小结 104

4.6 思考题 104

第5章 面向综合的行为描述语句 105

5.1 触发事件控制 105

5.1.1 信号电平事件语句 105

5.1.2 信号跳变沿事件语句 106

5.2 条件语句 107

5.2.1 if语句 107

5.2.2 case语句 108

5.2.3 条件语句的深入理解 112

5.3 循环语句 114

5.3.1 repeat语句 114

5.3.2 while语句 116

5.3.3 for语句 117

5.3.4 循环语句的深入理解 119

5.4 任务和函数 124

5.4.1 任务(task)语句 124

5.4.2 函数(function)语句 126

5.4.3 任务和函数的深入理解 128

5.5 本章小结 129

5.6 思考题 129

第6章 面向验证和仿真的行为描述语句 131

6.1 验证与仿真概述 131

6.1.1 代码验证与仿真概述 131

6.1.2 测试平台说明 132

6.1.3 验证测试方法论 134

6.1.4 Testbench结构说明 138

6.2 仿真程序执行原理 139

6.2.1 Verilog HDL语义简介 139

6.2.2 Verilog HDL仿真原理 139

6.3 延时控制语句 141

6.3.1 延时控制的语法说明 141

6.3.2 延时控制应用实例 142

6.4 常用的行为仿真描述语句 144

6.4.1 循环语句 145

6.4.2 force和release语句 146

6.4.3 wait语句 147

6.4.4 事件控制语句 148

6.4.5 task和function语句 149

6.4.6 串行激励与并行激励语句 150

6.5 用户自定义元件 151

6.5.1 UDP的定义与调用 151

6.5.2 UDP应用实例 152

6.6 仿真激励的产生 154

6.6.1 变量初始化 154

6.6.2 时钟信号的产生 158

6.6.3 复位信号的产生 159

6.6.4 数据信号的产生 160

6.6.5 典型测试平台实例 162

6.6.6 关于仿真效率的说明 162

6.7 Xilinx仿真工具ISE Simulator 163

6.7.1 基于波形测试法的仿真 163

6.7.2 基于Verilog HDL测试平台的仿真 165

6.8 Xilinx系统验证工具ChipScope Pro 170

6.8.1 ChipScope Pro工具简介 170

6.8.2 ChipScope Pro开发实例 171

6.9 本章小结 178

6.10 思考题 178

第7章 系统任务和编译预处理语句 179

7.1 系统任务语句 179

7.1.1 输出显示任务 179

7.1.2 文件输入输出任务 185

7.1.3 时间标度任务 190

7.1.4 仿真控制任务 191

7.1.5 仿真时间函数 192

7.1.6 数字类型变换函数 194

7.1.7 概率分布函数 194

7.2 编译预处理语句 196

7.2.1 宏定义′define语句 196

7.2.2 条件编译命令′if语句 198

7.2.3 文件包含′include语句 199

7.2.4 时间尺度′timescale语句 201

7.2.5 其他语句 203

7.3 本章小结 203

7.4 思考题 204

第8章 Verilog HDL可综合设计的难点解析 205

8.1 组合逻辑和时序逻辑 205

8.1.1 组合逻辑设计 205

8.1.2 时序逻辑设计 208

8.1.3 组合逻辑电路中的竞争与冒险 212

8.1.4 时序逻辑的时钟选择策略 216

8.2 同步时序电路和异步时序电路 219

8.2.1 同步时序电路设计 219

8.2.2 异步时序电路设计 223

8.2.3 异步电路和同步电路的比较 226

8.3 阻塞赋值与非阻塞赋值 227

8.3.1 阻塞赋值与非阻塞过程的深入理解 227

8.3.2 组合逻辑中的阻塞与非阻塞 228

8.3.3 时序逻辑中的阻塞与非阻塞 229

8.3.4 编码建议 232

8.4 双向端口 233

8.4.1 双向端口简介 233

8.4.2 双向端口应用实例 234

8.5 锁存器 237

8.5.1 锁存器本质说明 237

8.5.2 锁存器的产生原因和处理策略 237

8.5.3 锁存器的应用规则 239

8.6 消除不确定输入的电路设计 242

8.6.1 初始值不确定态的消除 242

8.6.2 逻辑运算不确定态的消除 242

8.7 面向硬件的设计思维 243

8.7.1 基本的硬件设计模式 243

8.7.2 程序执行顺序 244

8.7.3 时钟是时序电路的控制者 245

8.8 本章小结 247

8.9 思考题 248

第9章 高级逻辑设计思想与代码风格 249

9.1 通用指导原则 249

9.1.1 面积和速度的互换原则 249

9.1.2 模块划分原则 250

9.2 代码风格 250

9.2.1 代码风格的含义 251

9.2.2 通用的代码设计风格 251

9.2.3 通用的代码书写风格 252

9.2.4 Xilinx专用代码设计风格 255

9.3 常用的设计思想与代码设计风格 258

9.3.1 流水线技术原理和Verilog HDL实现 258

9.3.2 逻辑复用与逻辑复制原理和Verilog HDL实现 264

9.3.3 关键路径提取原理和Verilog HDL实现 268

9.3.4 逻辑合并与拆分原理和Verilog HDL实现 269

9.3.5 多时钟域接口设计技巧 270

9.4 本章小结 282

9.5 思考题 282

第10章 可综合状态机开发实例 283

10.1 状态机基本概念 283

10.1.1 状态机工作原理以及分类 283

10.1.2 状态机描述方式 284

10.1.3 状态机设计思想 286

10.2 可综合状态机设计原则 286

10.2.1 状态机开发流程 286

10.2.2 状态编码原则 287

10.2.3 状态机的容错处理 288

10.2.4 常用的设计准则 288

10.3 状态机的Verilog HDL实现 289

10.3.1 状态机实现综述 289

10.3.2 Moore状态机开发实例 293

10.3.3 Mealy状态机开发实例 295

10.4 Xilinx状态机设计工具StateCAD 298

10.4.1 StateCAD基础介绍 298

10.4.2 编辑状态机 299

10.4.3 状态机优化以及HDL代码生成 301

10.4.4 测试状态机 303

10.5 本章小结 305

10.6 思考题 305

第11章 常用逻辑的Verilog HDL实现 307

11.1 时钟处理电路的Verilog HDL实现 307

11.1.1 整数分频模块 307

11.1.2 非整数分频模块 310

11.1.3 同步整形电路 313

11.2 乘加运算的Verilog HDL实现 315

11.2.1 加法器的Verilog HDL实现 315

11.2.2 乘法器的Verilog HDL实现 318

11.2.3 数据的截位与扩位 324

11.3 数码管接口电路的Verilog HDL实现 325

11.3.1 数码管简介 325

11.3.2 数码管显示电路的Verilog HDL实现 326

11.4 按钮接口电路的Verilog HDL实现 328

11.4.1 按钮扫描电路的Verilog HDL实现 328

11.4.2 按钮防抖电路的Verilog HDL实现 332

11.5 CRC编码器的Verilog HDL实现 334

11.5.1 CRC校验码的原理 334

11.5.2 CRC 16编码器的Verilog HDL实现 335

11.6 片内存储器的Verilog HDL实现 337

11.6.1 RAM的Verilog HDL实现 337

11.6.2 移位寄存器的Verilog HDL实现 341

11.7 SPI接口协议的Verilog HDL实现 343

11.7.1 SPI通信协议 343

11.7.2 SPI协议的Verilog HDL实现 345

11.8 本章小结 349

11.9 思考题 349

第12章 Xilinx硬核模块的Verilog HDL调用 351

12.1 差分I/O对管脚的Verilog HDL调用 351

12.1.1 差分I/O对管脚结构说明 351

12.1.2 调用差分I/O的参考设计 354

12.2 DCM模块的Verilog HDL调用 356

12.2.1 DCM模块的说明 356

12.2.2 调用DCM模块的参考设计 359

12.3 硬核乘法器的Verilog HDL调用 362

12.3.1 硬核乘法器结构说明 362

12.3.2 基于IP核调用硬核乘法器 363

12.4 块RAM的Verilog HDL调用 365

12.4.1 块RAM结构说明 365

12.4.2 基于IP核调用块RAM单元 368

12.5 本章小结 374

12.6 思考题 374

第13章 串口接口的Verilog HDL设计 375

13.1 串口以及串口通信协议简介 375

13.1.1 串口接口 375

13.1.2 RS-232通信协议 375

13.2 串口通信控制器的Verilog HDL实现 377

13.2.1 系统功能说明 377

13.2.2 顶层模块的组成结构和Verilog HDL实现 377

13.2.3 波特率发生器模块的Verilog HDL实现 380

13.2.4 发送模块的Verilog HDL实现 381

13.2.5 接收模块的Verilog HDL实现 386

13.3 RS-232设计板级调试 390

13.3.1 板级调试说明 390

13.3.2 配置超级终端 391

13.3.3 添加ChipScope Pro核 392

13.3.4 系统调试结果 396

13.4 本章小结 398

13.5 思考题 398

参考文献 399