电子系统EDA新技术丛书 Xilinx Vivado数字设计权威指南 从数字逻辑、Verilog HDL、嵌入式系统到图像处理
作者:何宾编著
出版时间:2019年版
内容简介
本书以Xilinx公司的Vivado 2018集成开发环境作为复杂数字系统设计的平台,以基础的数字逻辑和数字电路知识为起点,以Xilinx 7系列可编程逻辑器件和Verilog HDL为载体,详细介绍了数字系统中基本逻辑单元RTL描述方法。在此基础上,实现了复杂数字系统设计、数模混合系统设计和基于Cortex-M1处理器软核的片上嵌入式系统设计。全书共10章,内容主要包括数字逻辑基础、数字逻辑电路、可编程逻辑器件原理、Vivado集成开发环境设计流程、Verilog HDL语言规范、基本数字逻辑单元Verilog HDL描述、复杂数字系统设计和实现、数模混合系统设计、片上嵌入式系统的构建和实现,以及图像采集、处理系统的构建和实现。本书适合于需要系统掌握Verilog HDL和Vivado集成开发环境基本设计流程的初学者,同时也适用于需要掌握ARM嵌入式系统软件和硬件设计方法的嵌入式开发工程师。
目录
第1章 数字逻辑基础
1.1 数字逻辑的发展史
1.2 SPICE仿真工具基础
1.2.1 SPICE的分析功能
1.2.2 SPICE的分析流程
1.3开关系统
1.3.1 0和1的概念
1.3.2 开关系统的优势
1.3.3 晶体管作为开关
1.3.4 半导体物理器件
1.3.5 半导体逻辑电路
1.3.6 逻辑电路符号
1.4 半导体数字集成电路
1.4.1 集成电路发展
1.4.2 集成电路构成
1.4.3 集成电路版图
1.5 基本逻辑门及特性
1.5.1 基本逻辑门
1.5.2 基本逻辑门集成电路
1.5.3 逻辑门电路的传输特性
1.5.4 不同逻辑门的连接
1.6 逻辑代数理论
1.6.1 逻辑代数中运算关系
1.6.2 逻辑函数表达式
1.7 逻辑表达式的化简
1.7.1 使用运算律化简逻辑表达式
1.7.2 使用卡诺图化简逻辑表达式
1.7.3 不完全指定逻辑功能的化简
1.7.4 输入变量的卡诺图表示
1.8 毛刺产生及消除
1.9 数字码制表示和转换
1.9.1 数字码制表示
1.9.2 数字码制转换
第2章 数字逻辑电路
2.1 组合逻辑电路
2.1.1 编码器
2.1.2 译码器
2.1.3 码转换器
2.1.4 多路选择器
2.1.5 数字比较器
2.1.6 加法器
2.1.7 减法器
2.1.8 加法器/减法器
2.1.9 乘法器
2.2 时序逻辑电路
2.2.1 时序逻辑电路类型
2.2.2 时序逻辑电路特点
2.2.3 基本SR锁存器
2.2.4 同步SR锁存器
2.2.5 D锁存器
2.2.6 D触发器
2.2.7 其他触发器
2.2.8 普通寄存器
2.2.9 移位寄存器
2.3 存储器
2.3.1存储器的分类
2.3.2存储器工作原理
2.3.3易失性存储器
2.3.4非易失性存储器
2.4有限状态机
2.4.1有限状态机的原理
2.4.2状态图表示及实现
2.4.3三位计数器的设计与实现
第3章可编程逻辑器件原理
3.1可编程逻辑器件发展历史
3.2可编程逻辑器件工艺
3.3可编程逻辑器件结构
3.3.1PROM结构
3.3.2PAL结构
3.3.3PLA结构
3.4复杂可编程逻辑器件结构
3.4.1功能块
3.4.2宏单元
3.4.3快速连接开关阵列
3.4.4输入/输出块
3.5现场可编程门阵列结构
3.5.1查找表结构原理
3.5.2可配置的逻辑块
3.5.3时钟管理资源
3.5.4块存储器资源
3.5.5互联资源
3.5.6DSP切片
3.5.7输入/输出块
3.5.8XADC模块
3.6Xilinx 7系列FPGA产品
第4章Vivado集成开发环境设计流程
4.1Vivado集成开发环境
4.2创建新的设计工程
4.3创建并添加一个新的设计文件
4.4详细描述
4.4.1详细描述的原理
4.4.2详细描述的实现过程
4.5设计行为级仿真
4.6设计综合和分析
4.6.1综合过程的关键问题
4.6.2执行设计综合
4.6.3查看综合报告
4.7约束文件对话框
4.7.1约束文件
4.7.2I/O规划器的功能
4.7.3实现约束
4.8设计实现和分析
4.8.1设计实现原理
4.8.2设计实现及分析
4.9设计时序仿真
4.10生成并下载比特流文件
4.10.1FPGA配置原理
4.10.2生成比特流文件
4.10.3下载比特流文件
4.11生成并烧写PROM文件
第5章Verilog HDL规范
5.1Verilog HDL发展
5.2Verilog HDL程序结构
5.2.1模块声明
5.2.2模块端口定义
5.2.3逻辑功能定义
5.3Verilog HDL描述方式
5.3.1行为级描述
5.3.2数据流描述
5.3.3结构级描述
5.3.4开关级描述
5.4Verilog HDL要素
5.4.1注释
5.4.2间隔符
5.4.3标识符
5.4.4关键字
5.4.5系统任务和函数
5.4.6编译器指令
5.4.7运算符
5.4.8数字
5.4.9字符串
5.4.10属性
5.5Verilog HDL数据类型
5.5.1值的集合
5.5.2网络和变量
5.5.3向量
5.5.4强度
5.5.5隐含声明
5.5.6网络类型
5.5.7寄存器类型
5.5.8整型、实数型、时间型和实时时间
5.5.9数组
5.5.10参数
5.5.11Verilog HDL名字空间
5.6Verilog HDL表达式
5.6.1操作符
5.6.2操作数
5.6.3延迟表达式
5.6.4表达式的位宽
5.6.5有符号表达式
5.6.6分配和截断
5.7Verilog HDL分配
5.7.1连续分配
5.7.2过程分配
5.8Verilog HDL门级和开关级描述
5.8.1门和开关声明
5.8.2逻辑门
5.8.3输出门
5.8.4三态门
5.8.5MOS开关
5.8.6双向传输开关
5.8.7CMOS开关
5.8.8pull门
5.9Verilog HDL用户自定义原语
5.9.1UDP定义
5.9.2组合电路UDP
5.9.3电平触发的时序UDP
5.9.4边沿触发的时序UDP
5.9.5边沿和电平触发的混合行为
5.10Verilog HDL行为描述语句
5.10.1过程语句
5.10.2过程连续分配
5.10.3条件语句
5.10.4case语句
5.10.5循环语句
5.10.6过程时序控制
5.10.7语句块
5.10.8结构化的过程
5.11Verilog HDL任务和函数
5.11.1任务和函数的区别
5.11.2定义和使能任务
5.11.3禁止命名的块和任务
5.11.4声明和调用函数
5.12Verilog HDL层次化结构
5.12.1模块和模块例化
5.12.2覆盖模块参数值
5.12.3端口
5.12.4生成结构
5.12.5层次化的名字
5.12.6向上名字引用
5.12.7范围规则
5.13Verilog HDL设计配置
5.13.1配置格式
5.13.2库
5.13.3配置例子
5.14Verilog HDL指定块
5.14.1模块路径声明
5.14.2为路径分配延迟
5.14.3混合模块路径延迟和分布式延迟
5.14.4驱动布线逻辑
5.14.5脉冲过滤行为的控制
5.15Verilog HDL时序检查
5.15.1使用一个稳定窗口检查时序
5.15.2时钟和控制信号的时序检查
5.15.3边沿控制标识符
5.15.4提示符:用户定义对时序冲突的响应
5.15.5使能带有条件的时序检查
5.15.6时序检查中的矢量信号
5.15.7负时序检查
5.16Verilog HDL SDF逆向注解
5.16.1SDF注解器
5.16.2映射SDF结构到Verilog
5.16.3多个注解
5.16.4多个SDF文件
5.16.5脉冲限制注解
5.16.6SDF到Verilog延迟值映射
5.17Verilog HDL系统任务和函数
5.17.1显示任务
5.17.2文件I/O任务和函数
5.17.3时间标度任务
5.17.4仿真控制任务
5.17.5随机分析任务
5.17.6仿真时间函数
5.17.7转换函数
5.17.8概率分布函数
5.17.9命令行输入
5.17.10数学函数
5.18Verilog HDL的VCD文件
5.18.1Vivado创建四态VCD文件
5.18.2Verilog源创建四态VCD文件
5.18.3四态VCD文件格式
5.19Verilog HDL编译器指令
5.19.1`celldefine和`endcelldefine
5.19.2`default_nettype
5.19.3`define和`undef
5.19.4`ifdef、 `else、 `elsif、 `endif、 `ifndef
5.19.5`include
5.19.6`resetall
5.19.7`line
5.19.8`timescale
5.19.9`unconnected_drive和`nounconnected_drive
5.19.10`pragma
5.19.11`begin_keywords和`end_keyword
5.20Verilog HDL(IEEE 1364―2005)关键字列表
第6章基本数字逻辑单元Verilog HDL描述
6.1组合逻辑电路Verilog HDL描述
6.1.1逻辑门Verilog HDL描述
6.1.2编码器Verilog HDL描述
6.1.3译码器Verilog HDL描述
6.1.4多路选择器Verilog HDL描述
6.1.5数字比较器Verilog HDL描述
6.1.6总线缓冲器Verilog HDL描述
6.2数据运算操作Verilog HDL描述
6.2.1加法操作Verilog HDL描述
6.2.2减法操作Verilog HDL描述
6.2.3乘法操作Verilog HDL描述
6.2.4除法操作Verilog HDL描述
6.2.5算术逻辑单元Verilog HDL描述
6.3时序逻辑电路Verilog HDL描述
6.3.1触发器和锁存器Verilog HDL描述
6.3.2计数器Verilog HDL描述
6.3.3移位寄存器Verilog HDL描述
6.3.4脉冲宽度调制Verilog HDL描述
6.4存储器Verilog HDL描述
6.4.1ROM的Verilog HDL描述
6.4.2RAM的Verilog HDL描述
6.5有限自动状态机Verilog HDL描述
6.5.1FSM设计原理
6.5.2FSM的应用――序列检测器的实现
6.5.3FSM的应用――交通灯的实现
6.6算法状态机Verilog HDL描述
6.6.1算法状态机原理
6.6.2ASM到Verilog HDL的转换
第7章复杂数字系统设计和实现
7.1设计所用外设的原理
7.1.1LED驱动原理
7.1.2开关驱动原理
7.1.37段数码管驱动原理
7.1.4VGA显示器原理
7.1.5通用异步接收发送器原理
7.2系统中各个模块的功能
7.3创建新的设计工程
7.4Verilog HDL数字系统设计流程
7.4.1创建divclk1.v文件
7.4.2创建divclk2.v文件
7.4.3创建divclk3.v文件
7.4.4创建divclk4.v文件
7.4.5创建pwm_led.v文件
7.4.6创建counter4b.v文件
7.4.7创建seg7display.v文件
7.4.8创建uart.v文件
7.4.9创建显示处理文件
7.4.10创建top.v文件
7.5添加XDC约束
7.6设计下载和验证
第8章数模混合系统设计
8.1信号采集和处理的实现
8.1.1XADC模块原理
8.1.2XADC原语
8.1.31602字符LCD模块原理
8.1.4信号采集、处理和显示的实现
8.2信号发生器的实现
8.2.1DAC工作原理
8.2.2函数信号产生原理
8.2.3设计实现
第9章片上嵌入式系统的构建和实现
9.1ARM AMBA规范
9.2Cortex-M1内部结构和功能
9.2.1处理器内核及寄存器组
9.2.2Cortex-M1存储空间及映射
9.2.3系统控制寄存器
9.2.4内核存储器接口
9.2.5嵌套向量中断控制器
9.2.6总线主设备
9.2.7AHB-PPB
9.2.8调试
9.3Cortex-M1系统时钟和复位
9.4Cortex-M1嵌入式系统硬件设计
9.4.1建立新的嵌入式设计工程
9.4.2定制7段数码管IP核
9.4.3定制按键消抖IP核
9.4.4设置IP核路径
9.4.5连接IP构建嵌入式系统硬件
9.4.6对块设计进行预处理
9.5Cortex-M1指令系统
9.5.1Thumb指令集
9.5.2汇编语言格式
9.5.3寄存器访问指令――MOVE
9.5.4寄存器访问指令――LOAD
9.5.5存储器访问指令――STORE
9.5.6多个数据访问指令
9.5.7堆栈访问指令
9.5.8算术运算指令
9.5.9逻辑操作指令
9.5.10移位操作指令
9.5.11逆序操作指令
9.5.12扩展操作指令
9.5.13程序流控制指令
9.5.14存储器屏障指令
9.5.15异常相关指令
9.5.16休眠相关的指令
9.5.17其他指令
9.6Cortex-M1嵌入式系统软件设计
9.6.1建立嵌入式软件工程
9.6.2设置选项
9.6.3添加汇编文件
9.6.4添加头文件
9.6.5添加主文件
9.6.6生成HEX文件
9.7处理并验证设计
第10章图像采集、处理系统的构建和实现
10.1图像传感器的原理和驱动
10.1.1传感器结构和功能
10.1.2传感器引脚功能定义
10.1.3SCCB接口驱动时序
10.1.4SCCB接口驱动的实现
10.2Sobel算子基本原理和实现方法
10.3RGB444数据捕获原理及实现
10.4系统整体结构和子模块设计
10.4.1Vivado中的系统整体结构
10.4.2时钟发生器的配置
10.4.3片内RAM模块的配置
10.4.4VGA驱动模块
10.4.5行缓存模块