《EDA技术实用教程 Verilog HDL版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:潘松,黄继业,潘明编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2013
  • ISBN:9787030387820
  • 页数:387 页
图书介绍:本书根据课堂教学和实验操作的要求,以提高实际工程设计能力为目的,深入浅出地对EDA技术、VHDL硬件描述语言、FPGA开发应用及相关知识做了系统和完整的介绍,使读者通过本书的学习并完成推荐的实验,能初步了解和掌握EDA的基本内容及实用技术。全书包括EDA的基本知识、常用EDA工具的使用方法和目标器件的结构原理、以向导形式和实例为主的方法介绍的多种不同的设计输入方法、对VHDL的设计优化以及基于EDA技术的典型设计项目。各章都安排了习题和针对性较强的实验与设计。书中列举的大部分VHDL设计实例和实验示例实现的EDA工具平台是QuartusII,硬件平台是CycloneIII系列FPGA,并在EDA实验系统上通过了硬件测试。

第1章 EDA技术概述 1

1.1 EDA技术及其发展 1

1.2 EDA技术实现目标 3

1.3 硬件描述语言Verilog HDL 4

1.4 其他常用HDL 5

1.5 HDL综合 6

1.6 自顶向下的设计技术 8

1.7 EDA技术的优势 11

1.8 EDA设计流程 12

1.8.1 设计输入(原理图/HDL文本编辑) 13

1.8.2 综合 14

1.8.3 适配 15

1.8.4 时序仿真与功能仿真 15

1.8.5 编程下载 15

1.8.6 硬件测试 16

1.9 ASIC及其设计流程 16

1.9.1 ASIC设计简介 16

1.9.2 ASIC设计一般流程简述 18

1.10 常用EDA工具 19

1.10.1 设计输入编辑器 19

1.10.2 HDL综合器 20

1.10.3 仿真器 21

1.10.4 适配器 22

1.10.5 下载器 22

1.11 Quartus Ⅱ概述 23

1.12 IP核 24

1.13 EDA技术发展趋势管窥 26

习题 27

第2章 FPGA与CPLD的结构原理 28

2.1 PLD概述 28

2.1.1 PLD的发展历程 28

2.1.2 PLD分类 29

2.2 简单PLD结构原理 30

2.2.1 逻辑元件符号表示 30

2.2.2 PROM结构原理 31

2.2.3 PLA结构原理 33

2.2.4 PAL结构原理 34

2.2.5 GAL结构原理 35

2.3 CPLD的结构原理 37

2.4 FPGA的结构原理 40

2.4.1 查找表逻辑结构 40

2.4.2 Cyclone Ⅲ系列器件的结构原理 41

2.5 硬件测试 45

2.5.1 内部逻辑测试 46

2.5.2 JTAG边界扫描 46

2.6 PLD产品概述 48

2.6.1 Altera公司的PLD器件 48

2.6.2 Lattice公司的PLD器件 50

2.6.3 Xilinx公司的PLD器件 51

2.6.4 Actel公司的PLD器件 52

2.6.5 Altera的FPGA配置方式 52

2.7 CPLD/FPGA的编程与配置 52

2.7.1 CPLD在系统编程 53

2.7.2 FPGA配置方式 53

2.7.3 FPGA专用配置器件 54

2.7.4 使用单片机配置FPGA 55

2.7.5 使用CPLD配置FPGA 57

习题 57

第3章 组合电路的Verilog设计 58

3.1 半加器电路的Verilog描述 59

3.2 多路选择器的Verilog描述 63

3.2.1 4选1多路选择器及case语句表述方式 63

3.2.2 4选1多路选择器及assign语句表述方式 69

3.2.3 4选1多路选择器及条件赋值语句表述方式 71

3.2.4 4选1多路选择器及条件语句表述方式 72

3.3 Verilog加法器设计 74

3.3.1 全加器设计及例化语句应用 74

3.3.2 半加器的UDP结构建模描述方式 77

3.3.3 利用UDP元件设计多路选择器 78

3.3.4 8位加法器设计及算术操作符应用 79

3.3.5 算术运算操作符 80

3.3.6 BCD码加法器设计 81

3.4 组合逻辑乘法器设计 82

3.4.1 参数定义关键词parameter和localparam 82

3.4.2 整数型寄存器类型定义 83

3.4.3 for语句用法 83

3.4.4 移位操作符及其用法 84

3.4.5 两则乘法器设计示例 85

3.4.6 repeat语句用法 85

3.4.7 while语句用法 86

3.4.8 parameter的参数传递功能 87

3.5 RTL概念 88

习题 89

第4章 时序仿真与硬件实现 91

4.1 Verilog程序输入与仿真测试 91

4.1.1 编辑和输入设计文件 91

4.1.2 创建工程 92

4.1.3 全程编译前约束项目设置 93

4.1.4 全程综合与编译 94

4.1.5 时序仿真 96

4.1.6 RTL图观察器应用 98

4.2 引脚锁定与硬件测试 98

4.2.1 引脚锁定 98

4.2.2 编译文件下载 99

4.2.3 AS直接编程模式 101

4.2.4 JTAG间接编程模式 101

4.2.5 USB-Blaster驱动程序安装方法 102

4.3 电路原理图设计流程 102

4.4 利用属性表述实现引脚锁定 106

4.5 keep属性应用 107

4.6 SignalProbe使用方法 108

4.7 宏模块逻辑功能查询 109

习题 110

实验与设计 111

4-1 多路选择器设计实验 111

4-2 8位加法器设计实验 111

4-3 8位硬件乘法器设计实验 112

4-4 十六进制7段数码显示译码器设计 112

第5章 时序电路的Verilog设计 114

5.1 基本时序元件的Verilog表述 114

5.1.1 基本D触发器及其Verilog表述 114

5.1.2 用UDP表述D触发器 115

5.1.3 含异步复位和时钟使能的D触发器及其Verilog表述 116

5.1.4 含同步复位控制的D触发器及其Verilog表述 117

5.1.5 基本锁存器及其Verilog表述 118

5.1.6 含清0控制的锁存器及其Verilog表述 119

5.1.7 异步时序电路的Verilog表述特点 120

5.1.8 时钟过程表述的特点和规律 121

5.2 二进制计数器及其Verilog表述 122

5.2.1 简单加法计数器及其Verilog表述 122

5.2.2 实用加法计数器设计 124

5.3 移位寄存器的Verilog表述与设计 125

5.3.1 含同步预置功能的移位寄存器设计 125

5.3.2 使用移位操作符设计移位寄存器 126

5.4 可预置型计数器设计 127

5.4.1 同步加载计数器 127

5.4.2 异步加载计数器 128

5.4.3 异步清0加载计数器 129

5.4.4 同步清0加载计数器 130

5.5 时序电路硬件设计与仿真示例 131

5.5.1 编辑电路、创建工程和仿真测试 131

5.5.2 FPGA硬件测试 132

习题 132

实验与设计 134

5-1 应用宏模块设计数字频率计 134

5-2 计数器设计实验 138

5-3 数码扫描显示电路设计 139

5-4 模可控计数器设计 139

5-5 串行静态显示控制电路设计 140

5-6 高速硬件除法器设计 140

5-7 不同类型的移位寄存器设计 141

第6章 Quartus Ⅱ应用深入 142

6.1 SignalTap Ⅱ的使用方法 142

6.2 编辑SignalTap Ⅱ的触发信号 146

6.3 Fitter Settings项设置 147

6.4 功能块Chip Planner应用 147

6.4.1 ChipPlanner应用流程说明 148

6.4.2 Chip Planner说明 149

6.5 Synplify的应用及接口方法 150

6.5.1 Synplify使用流程 150

6.5.2 Synplify Pro与Quartus Ⅱ接口 153

习题 154

实验与设计 155

6-1 VGA彩条信号显示控制电路设计 155

6-2 移位相加型8位硬件乘法器设计 158

6-3 半整数与奇数分频器设计 159

6-4 基于Verilog代码的频率计设计 161

第7章 LPM宏模块的应用 163

7.1 计数器LPM宏模块调用 163

7.1.1 计数器LPM模块文本代码的调用 163

7.1.2 LPM计数器代码与参数传递语句 165

7.1.3 创建工程与仿真测试 166

7.2 利用属性控制乘法器的构建 167

7.3 LPM RAM宏模块的设置与使用 168

7.3.1 初始化文件及其生成 168

7.3.2 以原理图方式对LPM RAM进行设置和调用 170

7.3.3 测试LPM_RAM 172

7.3.4 存储器的Verilog代码描述 173

7.3.5 存储器设计的结构控制 176

7.4 LPM ROM的定制和使用示例 177

7.4.1 LPM_ROM的调用 177

7.4.2 简易正弦信号发生器设计 178

7.4.3 正弦信号发生器硬件实现和测试 179

7.5 在系统存储器数据读写编辑器应用 180

7.6 LPM嵌入式锁相环调用 181

7.7 In-System Sources and Probes Editor使用方法 184

7.8 数控振荡器核使用方法 186

7.9 FIR核使用方法 188

7.10 DDS实现原理与应用 190

7.10.1 DDS原理 190

7.10.2 DDS信号发生器设计示例 192

习题 193

实验与设计 194

7-1 查表式硬件运算器设计 194

7-2 正弦信号发生器设计 194

7-3 简易逻辑分析仪设计 195

7-4 DDS正弦信号发生器设计 196

7-5 移相信号发生器设计 197

7-6 16位×16位高速硬件乘法器设计 197

第8章 Verilog设计深入 199

8.1 过程中的两类赋值语句 199

8.1.1 未指定延时的阻塞式赋值语句 199

8.1.2 指定了延时的阻塞式赋值 200

8.1.3 未指定延时的非阻塞式赋值 201

8.1.4 指定了延时的非阻塞式赋值 202

8.1.5 深入认识阻塞与非阻塞式赋值的特点 204

8.1.6 不同的赋初值方式导致不同综合结果的示例 205

8.2 过程语句归纳 207

8.2.1 过程语句应用总结 207

8.2.2 深入认识不完整条件语句与时序电路的关系 209

8.3 if语句归纳 210

8.3.1 if语句的一般表述形式 211

8.3.2 关注if语句中的条件指示 213

8.4 三态与双向端口设计 214

8.4.1 三态控制电路设计 214

8.4.2 双向端口设计 215

8.4.3 三态总线控制电路设计 216

习题 218

实验与设计 219

8-1 硬件消抖动电路设计 219

8-2 4×4阵列键盘键信号检测电路设计 220

8-3 直流电机综合测控系统设计 222

8-4 VGA简单图像显示控制模块设计 223

8-5 乐曲硬件演奏电路设计 225

第9章 Verilog系统设计优化 229

9.1 资源优化 229

9.1.1 资源共享 229

9.1.2 逻辑优化 231

9.1.3 串行化 231

9.2 速度优化 232

9.2.1 流水线设计 232

9.2.2 寄存器配平 234

9.2.3 关键路径法 235

9.2.4 乒乓操作法 236

9.2.5 加法树法 236

习题 237

实验与设计 238

9-1 采用流水线技术设计高速数字相关器 238

9-2 线性反馈移位寄存器设计 238

9-3 基于UART串口控制的模型电子琴设计 239

9-4 PS2键盘控制模型电子琴电路设计 241

9-5 AM幅度调制信号发生器设计 244

第10章 Verilog状态机设计技术 246

10.1 Verilog状态机的一般形式 246

10.1.1 状态机的特点与优势 247

10.1.2 状态机的一般结构 248

10.1.3 初始控制与表述 252

10.2 Moore型状态机及其设计 253

10.2.1 多过程结构状态机 253

10.2.2 序列检测器及其状态机设计 257

10.3 Mealy型状态机设计 258

10.4 状态机图形编辑设计 262

10.5 不同编码类型状态机 263

10.5.1 直接输出型编码 263

10.5.2 用宏定义语句定义状态编码 265

10.5.3 宏定义命令语句 266

10.5.4 顺序编码 267

10.5.5 一位热码编码 267

10.5.6 状态编码设置 268

10.6 异步有限状态机设计 269

10.7 安全状态机设计 272

10.7.1 状态导引法 273

10.7.2 状态编码监测法 274

10.7.3 借助EDA工具自动生成安全状态机 274

10.8 硬件数字技术排除毛刺 275

10.8.1 延时方式去毛刺 275

10.8.2 逻辑方式去毛刺 276

习题 278

实验与设计 278

10-1 序列检测器设计 278

10-2 ADC采样控制电路设计 278

10-3 数据采集模块设计 280

10-4 五功能智能逻辑笔设计 282

第11章 16位实用CPU创新设计 285

11.1 KX9016的结构与特色 285

11.2 KX9016基本硬件系统设计 288

11.2.1 单步节拍发生模块 288

11.2.2 ALU模块 289

11.2.3 比较器模块 289

11.2.4 基本寄存器与寄存器阵列组 290

11.2.5 移位器模块 293

11.2.6 程序与数据存储器模块 293

11.3 KX9016v1指令系统设计 294

11.3.1 指令格式 294

11.3.2 指令操作码 295

11.3.3 软件程序设计实例 296

11.3.4 KX9016v1控制器设计 298

11.3.5 指令设计实例详解 302

11.4 KX9016的时序仿真与硬件测试 303

11.4.1 时序仿真与指令执行波形分析 303

11.4.2 CPU工作情况的硬件测试 305

11.5 KX9016应用程序设计实例和系统优化 308

11.5.1 乘法算法及其硬件实现 308

11.5.2 KX9016v1的硬件系统优化 309

习题 311

实验与设计 311

11-1 16位CPU验证性设计综合实验 311

11-2 新指令设计及程序测试实验 312

11-3 16位CPU的优化设计与创新 313

11-4 CPU创新设计竞赛 314

第12章 MCU与FPGA片上系统开发 315

12.1 FPGA扩展MCU开发技术 315

12.1.1 FPGA扩展方案及其系统设计技术 316

12.1.2 基于单片机IP软核的SOC设计方案 319

12.2 FPGA扩展方案设计实例 322

12.2.1 串进并出/并进串出双向端口扩展模块设计 322

12.2.2 8位四通道数据交换扩展模块设计 323

12.2.3 存储器读写的FPGA扩展模块设计 325

12.2.4 四通道PWM信号发生器接口模块设计 326

12.2.5 李萨如图波形发生器扩展模块设计 327

12.3 基于单片机核的FPGA片上系统设计 328

12.3.1 单片机扩展串进并出/并进串出模块的SOC设计 329

12.3.2 扩展SRAM模块的片上系统设计 333

12.3.3 扩展移相信号发生器模块的片上系统设计 333

实验与设计 334

12-1 单片机串口扩展FPGA片上系统设计 334

12-2 单片机数据交换FPGA扩展电路设计 335

12-3 扩展外部数据存储器的FPGA单片系统设计 335

12-4 四通道PWM信号发生器及其MCU控制系统设计 335

12-5 移相信号发生器和扫频信号发生器的片上系统设计 335

12-6 李萨如图波形发生器的FPGA片上系统设计 336

12-7 脉宽/占空比/等精度频率多功能测试仪设计 336

第13章 Verilog语句语法补充说明 342

13.1 Verilog文字规则 342

13.2 数据类型 344

13.2.1 net网线类型 344

13.2.2 register寄存器类型 345

13.2.3 存储器类型 345

13.3 操作符 345

13.4 常用语句补充 346

13.4.1 initial过程语句使用示例 347

13.4.2 forever循环语句 347

13.4.3 编译指示语句 348

13.4.4 任务和函数语句 350

13.5 用库元件实现结构描述 352

习题 354

实验与设计 354

13-1 SPWM脉宽调制控制系统设计 354

13-2 点阵型与字符型液晶显示器驱动控制电路设计 356

13-3 数字彩色液晶显示控制电路设计 357

13-4 串行ADC/DAC控制电路设计 357

第14章 Verilg Test Bench仿真 358

14.1 Verilog行为仿真流程 359

14.2 Verilog测试基准实例 361

14.3 Verilog Test Bench测试流程 363

14.4 Verilog系统任务和系统函数 366

14.4.1 系统任务和系统函数 366

14.4.2 预编译语句 372

14.5 延时模型 373

14.5.1 #延时和门延时 373

14.5.2 延时说明块 374

14.6 其他仿真语句 374

14.6.1 fork_join块语句 374

14.6.2 wait语句 375

14.6.3 force语句和release语句 376

14.6.4 deassign语句 376

14.7 仿真激励信号的产生 377

14.8 Verilog数字系统仿真 378

习题 379

实验与设计 380

14-1 在ModelSim上对计数器的Test Bench进行仿真 380

14-2 在ModelSim上进行16位累加器设计仿真 380

附录 EDA开发系统及相关软硬件 381

参考文献 387