-
内容大纲
本书主要包括三部分内容:基本数字电路、I/O模块和PicoBlaze微控制器。第一部分介绍了基础的HDL结构和对应硬件,并且示范如何用这些结构来搭建基本的数字电路;第二部分是应用第一部分的技术为原型板设计一系列外围模块,介绍了外设的开发、实现和验证,可以将这些模块组成一个更大的复杂系统;第三部分介绍了基于FPGA的软核微控制器,即PicoBlaze,展示了如何通过处理器和定制电路进行集成。
本书不仅介绍了HDL的语法,还重点介绍了对可编程逻辑器件的设计方法,提供了一系列使用VHDL对可编程逻辑器件进行设计的实例,书中的实例均可运行于Xilinx公司Spartan-3开发板中,使读者能够边动手实践边学习,达到快速入门并掌握要领的目的。
本书可作为可编程逻辑器件的学习指导书,通过书中的案例,初学者最终可以完全掌握可编程逻辑器件的设计方法。同时,也可作为工程实践的指导用书,对提高可编程逻辑器件开发人员的设计水平有借鉴价值。 -
作者介绍
-
目录
译者序
原书前言
致谢
第一部分 基本数字电路
第1章 门级组合电路
1.1 简介
1.2 一般描述
1.2.1 基本词汇规则
1.2.2 库和包
1.2.3 实体声明
1.2.4 数据类型与操作符
1.2.5 结构体
1.2.6 2位比较器代码
1.3 结构描述
1.4 testbench
1.5 参考书目
1.6 参考实验
1.6.1 门级大于电路代码
1.6.2 门级二进制译码器代码
第2章 FPGA及EDA软件概述
2.1 简介
2.2 FPGA
2.2.1 通用FPGA器件概述
2.2.2 Xilinx Spartan-3器件概述
2.3 Digilent S3开发板概述
2.4 开发流程
2.5 Xilinx ISE Project Navigator概述
2.6 ISE Project Navigator简明教程
2.6.1 创建工程和HDL代码
2.6.2 创建testbench及执行RTL仿真
2.6.3 添加约束文件综合和实现代码
2.6.4 生成并下载配置文件至FPGA芯片
2.7 ModelSim HDL仿真器简明教程
2.8 参考书目
2.9 参考实验
2.9.1 门级大于电路
2.9.2 门级二进制译码器
第3章 寄存器传输级组合逻辑电路
3.1 简介
3.2 寄存器传输级元件
3.2.1 关系运算符
3.2.2 算术运算符
3.2.3 其他相关综合的VHDL结构
3.2.4 总结
3.3 并发赋值语句的分布电路
3.3.1 条件信号赋值语句
3.3.2 选择信号赋值语句
3.4 行为建模
3.4.1 进程
3.4.2 时序信号赋值语句
3.5 if语句和case语句的布线电路
3.5.1 if语句
3.5.2 case语句
3.5.3 并发语句的比较
3.5.4 意外生成的存储器
3.6 常量和属性
3.6.1 常量
3.6.2 属性
3.7 设计实例
3.7.1 十六进制七段LED译码器
3.7.2 “符号-幅值”加法器
3.7.3 桶式移位器
3.7.4 简化的浮点加法器
3.8 参考书目
3.9 参考实验
3.9.1 多功能桶式移位器
3.9.2 双优先级编码器
3.9.3 BCD码增量器
3.9.4 浮点数大于比较电路
3.9.5 浮点数和有符号整型转换电路
3.9.6 增强型浮点数加法器
第4章 常规时序电路
4.1 简介
4.1.1 D触发器和寄存器
4.1.2 同步系统
4.1.3 代码开发
4.2 触发器和寄存器的HDL代码
4.2.1 D触发器
4.2.2 寄存器
4.2.3 寄存器文件
4.2.4 Xilinx Spartan-3器件的存储元件
4.3 简单的设计举例
4.3.1 移位寄存器
4.3.2 二进制计数器及其转换形式
4.4 时序电路的testbench
4.5 案例学习
4.5.1 LED时分复用电路
4.5.2 秒表
4.5.3 FIFO缓冲器
4.6 参考书目
4.7 参考实验
4.7.1 可编程的方波生成器
4.7.2 PWM和LED调节器
4.7.3 旋转的方形图案电路
4.7.4 心跳电路
4.7.5 可轮换的LED标语电路
4.7.6 增强的秒表
4.7.7 栈(Stack)
第5章 有限状态机
5.1 简介
5.1.1 Mealy输出和Moore输出
5.1.2 有限状态机表示方法
5.2 有限状态机编码设计
5.3 设计举例
5.3.1 上升沿检测器
5.3.2 去抖电路
5.3.3 测试电路
5.4 参考书目
5.5 参考实验
5.5.1 双沿检测器
5.5.2 另一种去抖电路
5.5.3 停车场占用计数器
第6章 FSMD
6.1 简介
6.1.1 单个RT操作
6.1.2 ASMD图
6.1.3 带寄存器的判决盒
6.2 FSMD的代码开发
6.2.1 基于RT理论的去抖电路
6.2.2 带有数据路径元件的编码
6.2.3 带有隐含数据路径元件的编码
6.2.4 对比
6.2.5 测试电路
6.3 设计实例
6.3.1 斐波那契电路
6.3.2 除法电路
6.3.3 二进制数向BCD码转换电路
6.3.4 周期计数器
6.3.5 精确的低频计数器
6.4 参考书目
6.5 参考实验
6.5.1 另一种去抖电路
6.5.2 BCD码向二进制数转换电路
6.5.3 带有BCD I/O的斐波那契电路:设计方法
6.5.4 带有BCD I/O的斐波那契电路:设计方法
6.5.5 尺度自适应的低频计数器
6.5.6 反应定时器
6.5.7 巴贝奇差分机模拟电路
第二部分 I/O模块
第7章 UART
7.1 简介
7.2 UART接收子系统
7.2.1 过采样步骤
7.2.2 波特率发生器
7.2.3 UART接收器
7.2.4 接口电路
7.3 UART发送子系统
7.4 UART总系统简述
7.4.1 完备的UART核
7.4.2 UART验证配置
7.5 定制一个UART
7.6 参考书目
7.7 参考实验
7.7.1 全功能UART
7.7.2 带波特率自动检测功能的UART
7.7.3 带有波特率及校验位自动检测电路的UART
7.7.4 UART控制的秒表
7.7.5 UART控制的LED标语
第8章 PS2键盘
8.1 简介
8.2 PS2接收子系统
8.2.1 PS2端口的物理接口
8.2.2 设备到主机的通信协议
8.2.3 设计与代码
8.3 PS2键盘扫描码
8.3.1 扫描码概述
8.3.2 扫描码监测电路
8.4 PS2键盘接口电路
8.4.1 基本设计与HDL代码
8.4.2 验证电路
8.5 参考书目
8.6 参考实验
8.6.1 键盘接口转化Ⅰ
8.6.2 键盘接口转化Ⅱ
8.6.3 带看门狗定时器的PS2接收子系统
8.6.4 键盘控制的秒表
8.6.5 键盘控制的移动LED标语
第9章 PS2鼠标
9.1 简介
9.2 PS2鼠标协议
9.2.1 基本操作
9.2.2 基本的初始化程序
9.3 PS2传输子系统
9.3.1 主机到PS2设备的通信协议
9.3.2 设计和代码
9.4 双向的PS2接口
9.4.1 基本设计和代码
9.4.2 验证电路
9.5 PS2鼠标接口
9.5.1 基本设计
9.5.2 测试电路
9.6 参考书目
9.7 参考实验
9.7.1 键盘控制电路
9.7.2 增强的鼠标接口
9.7.3 鼠标控制七段LED显示器
第10章 外部SRAM
10.1 简介
10.2 IS61LV25616AL SRAM的说明
10.2.1 框图和I/O信号
10.2.2 时序参数
10.3 基础存储控制器
10.3.1 框图
10.3.2 时序需求
10.3.3 寄存器文件与SRAM
10.4 安全设计
10.4.1 ASMD图
10.4.2 时序分析
10.4.3 HDL编码(执行)
10.4.4 基础测试电路
10.4.5 全面的SRAM测试电路
10.5 更主流的设计
10.5.1 时序问题
10.5.2 可选设计Ⅰ
10.5.3 可选设计Ⅱ
10.5.4 可选设计Ⅲ
10.5.5 Xilinx公司的高级FPGA特点
10.6 参考书目
10.7 参考实验
10.7.15 12K×16位配置的存储器
10.7.21 M×8位配置的存储器
10.7.38 M×1位配置的存储器
10.7.4 扩展存储器实验电路
10.7.5 可选设计Ⅰ的测试电路和存储控制器
10.7.6 可选设计Ⅱ的测试电路和存储控制器
10.7.7 可选设计Ⅲ的测试电路和存储控制器
10.7.8 DCM的存储控制器
10.7.9 高性能存储控制器
第11章 Xilinx Spartan-3专用存储器
11.1 简介
11.2 Spartan-3器件的内部存储器
11.2.1 概述
11.2.2 对比
11.3 添加存储器模块的方法
11.3.1 通过HDL元件实例化产生存储器模块
11.3.2 通过核生成器产生存储器模块
11.3.3 通过HDL模型产生存储器模块
11.4 存储器HDL模板
11.4.1 单端口RAM
11.4.2 双端口RAM
11.4.3 ROM
11.5 参考书目
11.6 参考实验
11.6.1 基于块RAM的FIFO
11.6.2 基于块RAM的堆栈
11.6.3 基于ROM的原码加法器
11.6.4 基于ROM的sin(x)函数
11.6.5 基于ROM的sin(x)与cos(x)函数
第12章 VGA控制器Ⅰ:图形
12.1 简介
12.1.1 CRT的基本工作方式
12.1.2 S3板上的VGA端口
12.1.3 视频控制器
12.2 VGA同步
12.2.1 水平同步
12.2.2 垂直同步
12.2.3 VGA同步信号的时序计算
12.2.4 HDL实现
12.2.5 测试电路
12.3 像素生成电路概述
12.4 对象图方案图形生成
12.4.1 矩形对象
12.4.2 非矩形对象
12.4.3 动态对象
12.5 位图方案图形生成
12.5.1 双口RAM实现
12.5.2 单端口RAM实现
12.6 参考书目
12.7 参考实验
12.7.1 VGA测试图案生成器
12.7.2 SVGA模式同步电路
12.7.3 显示屏幕调节电路
12.7.4 盒中球电路
12.7.5 盒中双球电路
12.7.6 双人乒乓球游戏
12.7.7 突出重围游戏
12.7.8 全屏点轨迹
12.7.9 鼠标指针电路
12.7.10 小屏鼠标涂鸦电路
12.7.11 全屏鼠标涂鸦电路
第13章 VGA控制器Ⅱ:示例
13.1 简介
13.2 举例
13.2.1 点阵的特性
13.2.2 字型ROM
13.2.3 基本文本生成电路
13.2.4 字型显示电路
13.2.5 字型缩放比例
13.3 全屏文本显示
13.4 完整的乒乓球游戏设计
13.4.1 文本子系统
13.4.2 修正图像子系统
13.4.3 辅助计数器
13.4.4 顶层系统
13.5 参考书目
13.6 参考实验
13.6.1 旋转旗帜
13.6.2 指针的下划线
13.6.3 双模式文本显示
13.6.4 键盘文本输入
13.6.5 UART终端
13.6.6 方波显示
13.6.7 简单的四路逻辑分析器
13.6.8 完整的双人乒乓球游戏
13.6.9 完整的通关游戏
第三部分 PicoBlaze微控制器
第14章 PicoBlaze概述
14.1 简介
14.2 定制硬件和软件
14.2.1 从专用FSMD到通用微控制器
14.2.2 微控制器的应用
14.3 PicoBlaze概述
14.3.1 基本组成
14.3.2 顶层HDL模块
14.4 开发流程
14.5 指令集
14.5.1 编程模式
14.5.2 指令格式
14.5.3 逻辑指令
14.5.4 算术指令
14.5.5 比较和检验指令
14.5.6 移位和循环指令
14.5.7 数据传输指令
14.5.8 程序控制指令
14.5.9 中断指令
14.6 伪指令声明指令
14.6.1 KCPSM3汇编伪指令
14.6.2 pBlaze IDE汇编伪指令
14.7 参考书目
第15章 PicoBlaze汇编语言开发
15.1 简介
15.2 有效的代码段
15.2.1 KCPSM3协议
15.2.2 位操作
15.2.3 多字节操作
15.2.4 控制结构
15.3 子程序开发
15.4 编程的发展
15.4.1 示例
15.4.2 程序文件
15.5 汇编代码处理
15.5.1 KCSPM3编译
15.5.2 pBlaze IDE仿真
15.5.3 JTAG重载
15.5.4 pBlaze IDE编译
15.6 PicoBlaze综合
15.7 参考书目
15.8 参考实验
15.8.1 符号乘法
15.8.2 多字节乘法运算
15.8.3 循环移位功能
15.8.4 高低位互置功能
15.8.5 二进制数至BCD码转换
15.8.6 BCD码至二进制数转换
15.8.7 心跳电路
15.8.8 顺序循环LED电路
15.8.9 离散LED调光器
第16章 PicoBlaze I/O接口
16.1 简介
16.2 输出端口
16.2.1 output指令及时序
16.2.2 输出接口
16.3 输入端口
16.3.1 input指令和时序
16.3.2 输入接口
16.4 包含开关输入和七段LED显示接口的平方计算程序
16.4.1 输出接口
16.4.2 输入接口
16.4.3 汇编代码开发
16.4.4 VHDL代码开发
16.5 结合组合乘法器和UART控制器的乘法程序
16.5.1 乘法器接口
16.5.2 UART接口
16.5.3 汇编代码开发
16.5.4 VHDL代码开发
16.6 参考书目
16.7 参考实验
16.7.1 低频计数器Ⅰ
16.7.2 低频计数器Ⅱ
16.7.3 自适应低频计数器
16.7.4 用软件计时器的基础反应计时器
16.7.5 用硬件计时器的基础反应计时器
16.7.6 增强型反应计时器
16.7.7 小屏幕鼠标跟踪电路
16.7.8 全屏幕鼠标跟踪电路
16.7.9 增强型跑马灯字幕
16.7.10 乒乓球游戏
16.7.11 文本编辑器
第17章 PicoBlaze中断接口
17.1 简介
17.2 PicoBlaze里的中断操作
17.2.1 软件处理
17.2.2 时序图
17.3 外部接口
17.3.1 中断请求信号
17.3.2 多重中断请求
17.4 软件开发考虑
17.4.1 中断作为一种替代的调度方案
17.4.2 中断服务程序的开发
17.5 设计用例
17.5.1 中断接口
17.5.2 中断服务程序的开发
17.5.3 汇编代码的发展
17.5.4 VHDL代码发展
17.6 参考书目
17.7 参考实验
17.7.1 替代的计时器中断服务程序
17.7.2 可编程的计时器
17.7.3 设置按钮中断服务程序
17.7.4 两个请求中断服务程序
17.7.5 四请求中断控制器
附录A VHDL示例模板
A.1 通用VHDL结构
A.1.1 整体代码结构
A.1.2 元件实例化
A.2 组合电路
A.2.1 算术运算
A.2.2 固定量移位操作
A.2.3 使用并发语句的模板
A.2.4 if和case语句模板
A.2.5 使用进程的组合电路
A.3 存储元件
A.3.1 寄存器模板
A.3.2 寄存器文件
A.4 常规时序电路
A.5 有限状态机
A.6 FSMD
A.7 S3开发板约束文件(S3.UCF)
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
