搭建你的数字积木——数字电路与逻辑设计(Verilog HDL&Vivado版) / 高等学校电子信息类专业系列教材
¥49.00定价
作者: 汤勇明、张圣清等
出版时间:2017年5月
出版社:清华大学出版社
- 清华大学出版社
- 9787302466628
- 1-1
- 133646
- 16开
- 2017年5月
- 工学
- 电子科学与技术
- TN79
- 电工电子
- 高职高专
内容简介
本书系统论述了数字电路与逻辑设计的理论、方法与实践技术。全书基于Verilog HDL与Vivado开发环境,共18章,详尽介绍了如下内容: 逻辑设计与Vivado基础、布尔代数与Verilog HDL基础、组合逻辑电路设计基础、时序逻辑电路设计基础、有限状态机设计基础、逻辑设计工程技术基础、Vivado数字积木流程、串行通信接口控制器、RAM接口控制器、字符点阵显示模块接口控制器、VGA接口控制器、数字图像采集、数字逻辑系统设计案例、单周期CPU设计案例、数字信号处理设计案例(FIR)、数字图像处理设计案例、大学生FPGA设计案例以及Xilinx资源导读。为便于教师和广大读者学习与动手实践,本书配套提供了教学课件、教学视频及程序代码等教学资源。本书适合作为普通高等院校电子信息类、电气信息类、自动化类专业的本科生教材,也可作为相关专业研究生参考教材,并适合作为电子与电气工程技术领域的科研工程技术人员的参考用书。
目录
目录
第一部分逻辑设计基础
第1章逻辑设计概述及Vivado基础
1.1逻辑设计概况
1.2Verilog HDL语言基础
1.2.1硬件描述语言概述
1.2.2Verilog HDL语言要素和设计流程
1.3PLD器件基础
1.3.1可编程逻辑器件技术发展历程
1.3.2FPGA和CPLD简介
1.3.3Xilinx FPGA介绍
1.3.4FPGA选型应该考虑的问题
1.4Vivado开发环境及设计流程
1.4.1Vivado功能介绍
1.4.2Vivado用户界面介绍和菜单操作
1.4.3Vivado开发流程
第2章布尔代数和Verilog HDL基础
2.1布尔代数
2.1.1三种基本逻辑门
2.1.2四种常用逻辑门
2.2布尔定律
2.2.1单变量布尔定律
2.2.2双变量和三变量的布尔定律
2.3布尔代数化简
2.3.1公式法化简
2.3.2卡诺图化简
2.4Verilog HDL语言基础
2.4.1Verilog HDL模块及端口
2.4.2Verilog HDL数据类型声明
2.4.3Verilog HDL运算操作
第3章组合逻辑电路设计基础
3.1组合电路中的always块
3.1.1基本语法格式
3.1.2过程赋值
3.1.3变量的数据类型
3.1.4简单实例
3.2条件语句
3.2.1ifelse语句
3.2.2case语句
3.3循环语句
3.3.1for语句
3.3.2repeat语句
3.3.3while语句
3.3.4forever语句
3.4always块的一般编码原则
3.4.1组合电路代码中常见的错误
3.4.2组合电路中always块的使用原则
3.5常数和参数
3.5.1常数
3.5.2参数
3.6设计实例
3.6.1多路选择器
3.6.2比较器
3.6.3译码器和编码器
3.6.4十六进制数七段LED显示译码器
3.6.5二进制—BCD码转换器
3.7练习题
第4章时序电路设计基础
4.1触发器和锁存器
4.1.1基本D触发器
4.1.2含异步复位的D触发器
4.1.3含异步复位和同步使能的D触发器
4.1.4基本锁存器
4.1.5含清0控制的锁存器
4.2寄存器
4.2.11位寄存器
4.2.2N位寄存器
4.2.3寄存器组
4.3移位寄存器
4.3.1具有同步预置功能的8位移位寄存器
4.3.28位通用移位寄存器
4.4计数器
4.4.1简单的二进制计数器
4.4.2通用二进制计数器
4.4.3模m计数器
4.5设计实例
4.5.1数码管扫描显示电路
4.5.2秒表
4.6练习题
第5章有限状态机设计基础
5.1引言
5.1.1有限状态机的特点
5.1.2Mealy状态机和Moore状态机
5.1.3有限状态机的表示方法
5.2有限状态机代码实现
5.3设计实例
5.3.1序列检测器设计
5.3.2ADC采样控制电路设计
5.3.3按键消抖电路设计
5.4课程练习
第6章逻辑设计工程技术基础
6.1数字电路稳定性
6.2组合逻辑与毛刺
6.2.1组合逻辑设计中的毛刺现象
6.2.2组合逻辑设计中毛刺的处理
6.3异步设计与毛刺
6.3.1异步时序电路中的毛刺现象
6.3.2异步时序电路中毛刺的处理
6.4Verilog HDL设计中的编程风格
6.4.1强调代码编写风格的必要性
6.4.2强调编写规范的宗旨
6.4.3变量及信号命名规范
6.4.4编码格式规范
6.5Xilinx开发环境中的其他逻辑设计辅助工具
第二部分常用逻辑设计模块
第7章Vivado数字积木流程
7.1IP基础
7.2打包属于自己的IP
7.3IP设计示例——二进制转格雷码
7.4练习题
第8章串行通信接口控制器
8.1UART串口通信协议及控制器设计
8.1.1UART协议介绍
8.1.2UART协议实例
8.2PS/2协议及实例设计
8.2.1PS/2协议介绍
8.2.2PS/2设计实例
8.3SPI同步串行总线协议及控制器设计
8.3.1SPI协议介绍
8.3.2SPI控制器模块实例
8.4I2C两线式串行总线协议及控制器设计
8.4.1I2C协议介绍
8.4.2I2C模块设计实例
8.5练习题
第9章RAM接口控制器
9.1内部存储器
9.1.1FIFO
9.1.2单端口RAM设计
9.1.3双端口RAM设计
9.2外部存储器
9.2.1DRAM介绍
9.2.2DDR SDRAM原理
9.2.3DDR SDRAM控制器原理
9.3练习题
第10章字符点阵显示模块接口控制器
10.1字符型液晶控制器设计
10.1.1LCD原理
10.1.2字符型LCD1602模块
10.1.3字符型液晶模块显示实例
10.2点阵OLED控制器设计
10.2.1OLED原理
10.2.2OLED驱动原理
10.2.3OLED显示实例
10.3练习题
第11章VGA接口控制器
11.1CRT显示器原理
11.2VGA控制器设计
11.2.1VGA视频接口的概念
11.2.2VGA的接口信号
11.2.3行同步和场同步
11.3VGA接口设计实例
11.3.1VGA显示条纹和棋盘格图像
11.3.2VGA图像显示实例(文字/图片显示或者数码相框)
11.3.3VGA IP的使用
11.4练习题
第12章数字图像采集
12.1数字图像采集概述
12.2系统设计原理
12.2.1系统架构
12.2.2OV7725芯片介绍
12.2.3OV7725 SCCB协议
12.2.4OV7725配置寄存器
12.2.5OV7725图像采集
12.2.6Block RAM存储单元
12.2.7VGA显示的实现
12.3模块搭建与综合实现
12.4系统调试及板级验证
12.4.1引脚分配
12.4.2模块连接
12.5练习题
第三部分逻辑系统设计案例
第13章数字逻辑系统设计案例: 数字钟
13.1数字钟设计案例
13.1.1实验原理
13.1.2实验设计流程
13.2基于集成逻辑分析仪的调试
13.3约束设计
13.3.1物理约束
13.3.2时序约束
13.4练习题
第14章单周期处理器设计实例
14.1单周期处理器体系架构简介
14.1.1单周期处理器指令集简介
14.1.2单周期处理器系统结构
14.2设计流程
14.2.1实验原理
14.2.2设计与验证
第15章数字信号处理实例: FIR滤波器
15.1FIR滤波器简介
15.2基于HLS的FIR滤波器实现流程
15.3工程测试
15.4生成IP
15.5练习题
第16章数字图像处理设计案例
16.1项目概述
16.2硬件介绍
16.3模块介绍
16.3.1RGB转HSV模块
16.3.2Color Detect色彩检测及坐标计算
16.4舵机控制模块
16.5实例实现过程
16.6板级验证
16.7练习题
第17章大学生FPGA设计案例
17.1逻辑控制
17.2图像处理
17.2.1VGA控制颜色
17.2.2视力表
17.2.3手部运动检测系统
17.3仪表仪器
17.3.1数字示波器
17.3.2逻辑分析仪
17.3.3波形发生器
17.4其他
第18章Xilinx资源导读
18.1获取本书参考例程
18.1.1Github介绍及使用
18.1.2OpenHW介绍
18.1.3Xilinx各类比赛
18.2Xilinx网站
18.2.1FPGA应用与解决方案
18.2.2文档资料查找
18.2.3Vivado工具和License的下载以及更新
18.2.4问题的查找
18.2.5Xilinx社区
18.3视频教程
18.4Vivado学习参考文档
参考文献
第一部分逻辑设计基础
第1章逻辑设计概述及Vivado基础
1.1逻辑设计概况
1.2Verilog HDL语言基础
1.2.1硬件描述语言概述
1.2.2Verilog HDL语言要素和设计流程
1.3PLD器件基础
1.3.1可编程逻辑器件技术发展历程
1.3.2FPGA和CPLD简介
1.3.3Xilinx FPGA介绍
1.3.4FPGA选型应该考虑的问题
1.4Vivado开发环境及设计流程
1.4.1Vivado功能介绍
1.4.2Vivado用户界面介绍和菜单操作
1.4.3Vivado开发流程
第2章布尔代数和Verilog HDL基础
2.1布尔代数
2.1.1三种基本逻辑门
2.1.2四种常用逻辑门
2.2布尔定律
2.2.1单变量布尔定律
2.2.2双变量和三变量的布尔定律
2.3布尔代数化简
2.3.1公式法化简
2.3.2卡诺图化简
2.4Verilog HDL语言基础
2.4.1Verilog HDL模块及端口
2.4.2Verilog HDL数据类型声明
2.4.3Verilog HDL运算操作
第3章组合逻辑电路设计基础
3.1组合电路中的always块
3.1.1基本语法格式
3.1.2过程赋值
3.1.3变量的数据类型
3.1.4简单实例
3.2条件语句
3.2.1ifelse语句
3.2.2case语句
3.3循环语句
3.3.1for语句
3.3.2repeat语句
3.3.3while语句
3.3.4forever语句
3.4always块的一般编码原则
3.4.1组合电路代码中常见的错误
3.4.2组合电路中always块的使用原则
3.5常数和参数
3.5.1常数
3.5.2参数
3.6设计实例
3.6.1多路选择器
3.6.2比较器
3.6.3译码器和编码器
3.6.4十六进制数七段LED显示译码器
3.6.5二进制—BCD码转换器
3.7练习题
第4章时序电路设计基础
4.1触发器和锁存器
4.1.1基本D触发器
4.1.2含异步复位的D触发器
4.1.3含异步复位和同步使能的D触发器
4.1.4基本锁存器
4.1.5含清0控制的锁存器
4.2寄存器
4.2.11位寄存器
4.2.2N位寄存器
4.2.3寄存器组
4.3移位寄存器
4.3.1具有同步预置功能的8位移位寄存器
4.3.28位通用移位寄存器
4.4计数器
4.4.1简单的二进制计数器
4.4.2通用二进制计数器
4.4.3模m计数器
4.5设计实例
4.5.1数码管扫描显示电路
4.5.2秒表
4.6练习题
第5章有限状态机设计基础
5.1引言
5.1.1有限状态机的特点
5.1.2Mealy状态机和Moore状态机
5.1.3有限状态机的表示方法
5.2有限状态机代码实现
5.3设计实例
5.3.1序列检测器设计
5.3.2ADC采样控制电路设计
5.3.3按键消抖电路设计
5.4课程练习
第6章逻辑设计工程技术基础
6.1数字电路稳定性
6.2组合逻辑与毛刺
6.2.1组合逻辑设计中的毛刺现象
6.2.2组合逻辑设计中毛刺的处理
6.3异步设计与毛刺
6.3.1异步时序电路中的毛刺现象
6.3.2异步时序电路中毛刺的处理
6.4Verilog HDL设计中的编程风格
6.4.1强调代码编写风格的必要性
6.4.2强调编写规范的宗旨
6.4.3变量及信号命名规范
6.4.4编码格式规范
6.5Xilinx开发环境中的其他逻辑设计辅助工具
第二部分常用逻辑设计模块
第7章Vivado数字积木流程
7.1IP基础
7.2打包属于自己的IP
7.3IP设计示例——二进制转格雷码
7.4练习题
第8章串行通信接口控制器
8.1UART串口通信协议及控制器设计
8.1.1UART协议介绍
8.1.2UART协议实例
8.2PS/2协议及实例设计
8.2.1PS/2协议介绍
8.2.2PS/2设计实例
8.3SPI同步串行总线协议及控制器设计
8.3.1SPI协议介绍
8.3.2SPI控制器模块实例
8.4I2C两线式串行总线协议及控制器设计
8.4.1I2C协议介绍
8.4.2I2C模块设计实例
8.5练习题
第9章RAM接口控制器
9.1内部存储器
9.1.1FIFO
9.1.2单端口RAM设计
9.1.3双端口RAM设计
9.2外部存储器
9.2.1DRAM介绍
9.2.2DDR SDRAM原理
9.2.3DDR SDRAM控制器原理
9.3练习题
第10章字符点阵显示模块接口控制器
10.1字符型液晶控制器设计
10.1.1LCD原理
10.1.2字符型LCD1602模块
10.1.3字符型液晶模块显示实例
10.2点阵OLED控制器设计
10.2.1OLED原理
10.2.2OLED驱动原理
10.2.3OLED显示实例
10.3练习题
第11章VGA接口控制器
11.1CRT显示器原理
11.2VGA控制器设计
11.2.1VGA视频接口的概念
11.2.2VGA的接口信号
11.2.3行同步和场同步
11.3VGA接口设计实例
11.3.1VGA显示条纹和棋盘格图像
11.3.2VGA图像显示实例(文字/图片显示或者数码相框)
11.3.3VGA IP的使用
11.4练习题
第12章数字图像采集
12.1数字图像采集概述
12.2系统设计原理
12.2.1系统架构
12.2.2OV7725芯片介绍
12.2.3OV7725 SCCB协议
12.2.4OV7725配置寄存器
12.2.5OV7725图像采集
12.2.6Block RAM存储单元
12.2.7VGA显示的实现
12.3模块搭建与综合实现
12.4系统调试及板级验证
12.4.1引脚分配
12.4.2模块连接
12.5练习题
第三部分逻辑系统设计案例
第13章数字逻辑系统设计案例: 数字钟
13.1数字钟设计案例
13.1.1实验原理
13.1.2实验设计流程
13.2基于集成逻辑分析仪的调试
13.3约束设计
13.3.1物理约束
13.3.2时序约束
13.4练习题
第14章单周期处理器设计实例
14.1单周期处理器体系架构简介
14.1.1单周期处理器指令集简介
14.1.2单周期处理器系统结构
14.2设计流程
14.2.1实验原理
14.2.2设计与验证
第15章数字信号处理实例: FIR滤波器
15.1FIR滤波器简介
15.2基于HLS的FIR滤波器实现流程
15.3工程测试
15.4生成IP
15.5练习题
第16章数字图像处理设计案例
16.1项目概述
16.2硬件介绍
16.3模块介绍
16.3.1RGB转HSV模块
16.3.2Color Detect色彩检测及坐标计算
16.4舵机控制模块
16.5实例实现过程
16.6板级验证
16.7练习题
第17章大学生FPGA设计案例
17.1逻辑控制
17.2图像处理
17.2.1VGA控制颜色
17.2.2视力表
17.2.3手部运动检测系统
17.3仪表仪器
17.3.1数字示波器
17.3.2逻辑分析仪
17.3.3波形发生器
17.4其他
第18章Xilinx资源导读
18.1获取本书参考例程
18.1.1Github介绍及使用
18.1.2OpenHW介绍
18.1.3Xilinx各类比赛
18.2Xilinx网站
18.2.1FPGA应用与解决方案
18.2.2文档资料查找
18.2.3Vivado工具和License的下载以及更新
18.2.4问题的查找
18.2.5Xilinx社区
18.3视频教程
18.4Vivado学习参考文档
参考文献