《电子系统EDA新技术丛书 Xilinx Vivado数字设计权威指南 从数字逻辑、Verilog HDL、嵌入式系统到图像处理》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:何宾编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:9787121364952
  • 页数:599 页
图书介绍:本书以Xilinx公司Vivado 2018集成开发环境作为复杂数字系统设计的平台,以基础的数字逻辑和数字电路知识为起点,以Xilinx 7系列可编程逻辑器件和Verilog HDL为载体,详细介绍了数字系统中基本逻辑单元RTL描述方法。在此基础上,实现了复杂数字系统设计、数模混合系统设计和基于Cortex-M1处理器软核的片上嵌入式系统设计。全书共分10章,主要内容包括数字逻辑基础、数字逻辑电路、可编程逻辑器件原理、Vivado集成开发环境设计流程、Verilog HDL语言规范、基本数字逻辑单元Verilog HDL描述、复杂数字系统设计和实现、数模混合系统设计、片上嵌入式系统的构建和实现以及图像采集和处理系统的构建和实现。

第1章 数字逻辑基础 1

1.1 数字逻辑的发展史 1

1.2 SPICE仿真工具基础 4

1.2.1 SPICE的分析功能 4

1.2.2 SPICE的分析流程 7

1.3 开关系统 7

1.3.1 0和1的概念 8

1.3.2 开关系统的优势 9

1.3.3 晶体管作为开关 11

1.3.4 半导体物理器件 12

1.3.5 半导体逻辑电路 14

1.3.6 逻辑电路符号 18

1.4 半导体数字集成电路 20

1.4.1 集成电路发展 20

1.4.2 集成电路构成 21

1.4.3 集成电路版图 22

1.5 基本逻辑门及特性 23

1.5.1 基本逻辑门 23

1.5.2 基本逻辑门集成电路 29

1.5.3 逻辑门电路的传输特性 31

1.5.4 不同逻辑门的连接 39

1.6 逻辑代数理论 41

1.6.1 逻辑代数中的运算关系 41

1.6.2 逻辑函数表达式 43

1.7 逻辑表达式的化简 45

1.7.1 使用运算律化简逻辑表达式 47

1.7.2 使用卡诺图化简逻辑表达式 50

1.7.3 不完全指定逻辑功能的化简 56

1.7.4 输入变量的卡诺图表示 58

1.8 毛刺产生及消除 62

1.9 数字码制表示和转换 65

1.9.1 数字码制表示 65

1.9.2 数字码制转换 67

第2章 数字逻辑电路 70

2.1 组合逻辑电路 70

2.1.1 编码器 71

2.1.2 译码器 72

2.1.3 码转换器 76

2.1.4 多路选择器 79

2.1.5 数字比较器 80

2.1.6 加法器 83

2.1.7 减法器 86

2.1.8 加法器/减法器 91

2.1.9 乘法器 93

2.2 时序逻辑电路 94

2.2.1 时序逻辑电路类型 95

2.2.2 时序逻辑电路特点 95

2.2.3 基本SR锁存器 97

2.2.4 同步SR锁存器 98

2.2.5 D锁存器 99

2.2.6 D触发器 100

2.2.7 其他触发器 103

2.2.8 普通寄存器 105

2.2.9 移位寄存器 106

2.3 存储器 107

2.3.1 存储器的分类 107

2.3.2 存储器工作原理 108

2.3.3 易失性存储器 109

2.3.4 非易失性存储器 110

2.4 有限状态机 111

2.4.1 有限状态机的原理 111

2.4.2 状态图表示及实现 112

2.4.3 三位计数器的设计与实现 114

第3章 可编程逻辑器件原理 119

3.1 可编程逻辑器件发展历史 119

3.2 可编程逻辑器件工艺 120

3.3 可编程逻辑器件结构 124

3.3.1 PROM结构 124

3.3.2 PAL结构 124

3.3.3 PLA结构 125

3.4 复杂可编程逻辑器件结构 125

3.4.1 功能块 126

3.4.2 宏单元 127

3.4.3 快速连接开关阵列 128

3.4.4 输入/输出块 128

3.5 现场可编程门阵列结构 129

3.5.1 查找表结构原理 130

3.5.2 可配置的逻辑块 132

3.5.3 时钟管理资源 135

3.5.4 块存储器资源 139

3.5.5 互联资源 141

3.5.6 DSP切片 143

3.5.7 输入/输出块 143

3.5.8 XADC模块 145

3.6 Xilinx 7系列FPGA产品 147

第4章 Vivado集成开发环境设计流程 151

4.1 Vivado集成开发环境 151

4.2 创建新的设计工程 153

4.3 创建并添加一个新的设计文件 156

4.4 详细描述 159

4.4.1 详细描述的原理 159

4.4.2 详细描述的实现过程 160

4.5 设计行为级仿真 161

4.6 设计综合和分析 163

4.6.1 综合过程的关键问题 163

4.6.2 执行设计综合 164

4.6.3 查看综合报告 166

4.7 约束文件对话框 166

4.7.1 约束文件 167

4.7.2 I/O规划器的功能 168

4.7.3 实现约束 169

4.8 设计实现和分析 173

4.8.1 设计实现原理 173

4.8.2 设计实现及分析 173

4.9 设计时序仿真 175

4.10 生成并下载比特流文件 176

4.10.1 FPGA配置原理 176

4.10.2 生成比特流文件 178

4.10.3 下载比特流文件 178

4.11 生成并烧写PROM文件 180

第5章 Verilog HDL规范 184

5.1 Verilog HDL发展 184

5.2 Verilog HDL程序结构 185

5.2.1 模块声明 186

5.2.2 模块端口定义 186

5.2.3 逻辑功能定义 187

5.3 Verilog HDL描述方式 189

5.3.1 行为级描述 189

5.3.2 数据流描述 190

5.3.3 结构级描述 192

5.3.4 开关级描述 194

5.4 Verilog HDL要素 195

5.4.1 注释 195

5.4.2 间隔符 196

5.4.3 标识符 196

5.4.4 关键字 197

5.4.5 系统任务和函数 197

5.4.6 编译器指令 197

5.4.7 运算符 197

5.4.8 数字 197

5.4.9 字符串 200

5.4.10 属性 202

5.5 Verilog HDL数据类型 205

5.5.1 值的集合 205

5.5.2 网络和变量 205

5.5.3 向量 206

5.5.4 强度 206

5.5.5 隐含声明 207

5.5.6 网络类型 207

5.5.7 寄存器类型 213

5.5.8 整型、实数型、时间型和实时时间 214

5.5.9 数组 215

5.5.10 参数 216

5.5.11 Verilog HDL名字空间 218

5.6 Verilog HDL表达式 219

5.6.1 操作符 219

5.6.2 操作数 229

5.6.3 延迟表达式 231

5.6.4 表达式的位宽 231

5.6.5 有符号表达式 233

5.6.6 分配和截断 234

5.7 Verilog HDL分配 234

5.7.1 连续分配 235

5.7.2 过程分配 237

5.8 Verilog HDL门级和开关级描述 238

5.8.1 门和开关声明 238

5.8.2 逻辑门 242

5.8.3 输出门 243

5.8.4 三态门 244

5.8.5 MOS开关 246

5.8.6 双向传输开关 248

5.8.7 CMOS开关 248

5.8.8 pull门 249

5.9 Verilog HDL用户自定义原语 249

5.9.1 UDP定义 249

5.9.2 组合电路UDP 251

5.9.3 电平触发的时序UDP 252

5.9.4 边沿触发的时序UDP 253

5.9.5 边沿和电平触发的混合行为 254

5.10 Verilog HDL行为描述语句 255

5.10.1 过程语句 255

5.10.2 过程连续分配 261

5.10.3 条件语句 263

5.10.4 case语句 265

5.10.5 循环语句 268

5.10.6 过程时序控制 270

5.10.7 语句块 274

5.10.8 结构化的过程 276

5.11 Verilog HDL任务和函数 277

5.11.1 任务和函数的区别 277

5.11.2 定义和使能任务 278

5.11.3 禁止命名的块和任务 281

5.11.4 声明和调用函数 282

5.12 Verilog HDL层次化结构 285

5.12.1 模块和模块例化 285

5.12.2 覆盖模块参数值 285

5.12.3 端口 290

5.12.4 生成结构 295

5.12.5 层次化的名字 304

5.12.6 向上名字引用 305

5.12.7 范围规则 306

5.13 Verilog HDL设计配置 307

5.13.1 配置格式 308

5.13.2 库 309

5.13.3 配置例子 310

5.14 Verilog HDL指定块 311

5.14.1 模块路径声明 312

5.14.2 为路径分配延迟 317

5.14.3 混合模块路径延迟和分布式延迟 320

5.14.4 驱动布线逻辑 320

5.14.5 脉冲过滤行为的控制 321

5.15 Verilog HDL时序检查 326

5.15.1 使用一个稳定窗口检查时序 327

5.15.2 时钟和控制信号的时序检查 331

5.15.3 边沿控制标识符 338

5.15.4 提示符:用户定义对时序冲突的响应 338

5.15.5 使能带有条件的时序检查 342

5.15.6 时序检查中的矢量信号 343

5.15.7 负时序检查 344

5.16 Verilog HDL SDF逆向注解 344

5.16.1 SD F注解器 345

5.16.2 映射SDF结构到Verilog 345

5.16.3 多个注解 350

5.16.4 多个SDF文件 351

5.16.5 脉冲限制注解 351

5.16.6 SDF到Verilog延迟值映射 351

5.17 Verilog HDL系统任务和函数 352

5.17.1 显示任务 352

5.17.2 文件I/O任务和函数 358

5.17.3 时间标度任务 367

5.17.4 仿真控制任务 370

5.17.5 随机分析任务 370

5.17.6 仿真时间函数 372

5.17.7 转换函数 373

5.17.8 概率分布函数 374

5.17.9 命令行输入 375

5.17.10 数学函数 378

5.18 Verilog HDL的VCD文件 379

5.18.1 Vivado创建四态VCD文件 379

5.18.2 Verilog源创建四态VCD文件 381

5.18.3 四态VCD文件格式 384

5.19 Verilog HDL编译器指令 388

5.19.1 `celldefine和`endcelldefine 388

5.19.2 `default_nettype 388

5.19.3 `define和`undef 388

5.19.4 `ifdef、`else、`elsif、`endif、`ifndef 390

5.19.5 `include 392

5.19.6 `resetall 393

5.19.7 `line 393

5.19.8 `timescale 393

5.19.9 `unconnected_drive和`nounconnected_drive 394

5.19.10 `pragma 395

5.19.11 `begin_keywords和`end_keyword 395

5.20 Verilog HDL(IEEE 1364—2005)关键字列表 395

第6章 基本数字逻辑单元Verilog HDL描述 397

6.1 组合逻辑电路Verilog HDL描述 397

6.1.1 逻辑门Verilog HDL描述 397

6.1.2 编码器Verilog HDL描述 398

6.1.3 译码器Verilog HDL描述 398

6.1.4 多路选择器Verilog HDL描述 401

6.1.5 数字比较器Verilog HDL描述 403

6.1.6 总线缓冲器Verilog HDL描述 403

6.2 数据运算操作Verilog HDL描述 405

6.2.1 加法操作Verilog HDL描述 405

6.2.2 减法操作Verilog HDL描述 405

6.2.3 乘法操作Verilog HDL描述 406

6.2.4 除法操作Verilog HDL描述 406

6.2.5 算术逻辑单元Verilog HDL描述 407

6.3 时序逻辑电路Verilog HDL描述 409

6.3.1 触发器和锁存器Verilog HDL描述 409

6.3.2 计数器Verilog HDL描述 411

6.3.3 移位寄存器Verilog HDL描述 414

6.3.4 脉冲宽度调制Verilog HDL描述 419

6.4 存储器Verilog HDL描述 421

6.4.1 ROM的Verilog HDL描述 421

6.4.2 RAM的Verilog HDL描述 422

6.5 有限自动状态机Verilog HDL描述 423

6.5.1 FSM设计原理 423

6.5.2 FSM的应用——序列检测器的实现 428

6.5.3 FSM的应用——交通灯的实现 432

6.6 算法状态机Verilog HDL描述 434

6.6.1 算法状态机原理 435

6.6.2 ASM到Verilog HDL的转换 436

第7章 复杂数字系统设计和实现 439

7.1 设计所用外设的原理 439

7.1.1 LED驱动原理 439

7.1.2 开关驱动原理 440

7.1.3 七段数码管驱动原理 440

7.1.4 VGA显示器原理 442

7.1.5 通用异步接收发送器原理 445

7.2 系统中各个模块的功能 447

7.3 创建新的设计工程 449

7.4 Verilog HDL数字系统设计流程 450

7.4.1 创建divclk1.v文件 450

7.4.2 创建divclk2.v文件 451

7.4.3 创建divclk3.v文件 452

7.4.4 创建divclk4.v文件 453

7.4.5 创建pwm_led.v文件 454

7.4.6 创建counter4b.v文件 456

7.4.7 创建seg7display.v文件 457

7.4.8 创建uart.v文件 460

7.4.9 创建显示处理文件 462

7.4.10 创建top.v文件 468

7.5 添加XDC约束 470

7.6 设计下载和验证 474

第8章 数模混合系统设计 475

8.1 信号采集和处理的实现 475

8.1.1 XADC模块原理 475

8.1.2 XADC原语 476

8.1.3 1602字符LCD模块原理 480

8.1.4 信号采集、处理和显示的实现 485

8.2 信号发生器的实现 496

8.2.1 DAC工作原理 496

8.2.2 函数信号产生原理 499

8.2.3 设计实现 499

第9章 片上嵌入式系统的构建和实现 508

9.1 ARM AM BA规范 508

9.2 Cortex-M 1内部结构和功能 509

9.2.1 处理器内核及寄存器组 511

9.2.2 Cortex-M1存储空间及映射 515

9.2.3 系统控制寄存器 517

9.2.4 内核存储器接口 523

9.2.5 嵌套向量中断控制器 525

9.2.6 总线主设备 533

9.2.7 AHB-PPB 534

9.2.8 调试 534

9.3 Cortex-M1系统时钟和复位 536

9.4 Cortex-M1嵌入式系统硬件设计 537

9.4.1 建立新的嵌入式设计工程 537

9.4.2 定制七段数码管IP核 538

9.4.3 定制按键消抖IP核 543

9.4.4 设置IP核路径 547

9.4.5 连接IP构建嵌入式系统硬件 548

9.4.6 对块设计进行预处理 553

9.5 Cortex-M1指令系统 557

9.5.1 Thumb指令集 557

9.5.2 汇编语言格式 558

9.5.3 寄存器访问指令——MOVE 559

9.5.4 寄存器访问指令——LOAD 559

9.5.5 存储器访问指令——STORE 560

9.5.6 多个数据访问指令 561

9.5.7 堆栈访问指令 561

9.5.8 算术运算指令 561

9.5.9 逻辑操作指令 562

9.5.10 移位操作指令 563

9.5.11 逆序操作指令 564

9.5.12 扩展操作指令 564

9.5.13 程序流控制指令 564

9.5.14 存储器屏障指令 565

9.5.15 异常相关指令 565

9.5.16 休眠相关的指令 565

9.5.17 其他指令 565

9.6 Cortex-M1嵌入式系统软件设计 566

9.6.1 建立嵌入式软件工程 566

9.6.2 设置选项 567

9.6.3 添加汇编文件 567

9.6.4 添加头文件 570

9.6.5 添加主文件 572

9.6.6 生成HEX文件 573

9.7 处理并验证设计 573

第10章 图像采集、处理系统的构建和实现 575

10.1 图像传感器的原理和驱动 575

10.1.1 传感器结构和功能 575

10.1.2 传感器引脚功能定义 577

10.1.3 SCCB接口驱动时序 578

10.1.4 SCCB接口驱动的实现 581

10.2 Sobel算子基本原理和实现方法 584

10.3 RGB444数据捕获原理及实现 588

10.4 系统整体结构和子模块设计 590

10.4.1 Vivado中的系统整体结构 591

10.4.2 时钟发生器的配置 596

10.4.3 片内RAM模块的配置 596

10.4.4 VGA驱动模块 597

10.4.5 行缓存模块 598