描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302469414丛书名: EDA工程技术丛书
本书可作为高等院校电类专业学生学习VHDL及FPGA的实践指导书,也可供有关工程技术人员参考使用。
目录
第1章FPGA电子系统的设计方法
1.1电子系统设计
1.1.1总体方案确定
1.1.2子系统设计
1.2印制电路板设计
1.2.1准备工作
1.2.2元器件布局与布线
1.2.3印制焊盘的尺寸及形状
1.2.4印制导线的尺寸及形状
1.2.5印制导线的抗干扰和屏蔽
1.2.6印制电路板的对外连接
1.2.7表面贴装技术对印制板的要求
1.3电子系统的安装与调试
1.3.1电子系统的安装
1.3.2元器件的引脚识别
1.3.3电子系统的调试
1.4电子系统抗干扰措施
1.4.1正确选择器件
1.4.2正确分布元器件
1.4.3交流输入电源增加电源滤波器
1.4.4施加屏蔽措施
1.4.5使用合理的接地方式
1.4.6电路加入滤波电容和补偿电容
第2章FPGA设计软件——QuartusⅡ及其使用方法
2.1编程存储及编译
2.2指定器件引脚及编译
2.3下载
2.4存储及编译图形描述(电路图)
2.5掉电可存储下载方法
第3章FPGA的硬件描述语言VHDL
3.1VHDL程序的特点
3.2VHDL程序的基本结构
3.2.1库说明
3.2.2实体说明
3.2.3结构体说明
3.3VHDL的数据
3.3.1基本标志符
3.3.2数据对象
3.3.3数据类型
3.4VHDL的表达式
3.4.1逻辑运算符
3.4.2算术运算符
3.4.3关系运算符
3.4.4并置运算符
3.4.5操作符的运算优先级
第4章VHDL的顺序描述语句
4.1信号赋值语句和变量赋值语句
4.2if语句
4.3case语句
4.4for loop循环语句
4.5null语句
第5章VHDL的并行描述语句
5.1进程语句
5.2并发信号赋值语句
5.3条件信号赋值语句
5.4选择信号赋值语句
5.5元件例化语句
5.6生成语句
第6章VHDL的时钟信号描述方法
6.1时钟信号的VHDL描述方法
6.1.1时钟边沿的描述
6.1.2时序电路中进程敏感信号是时钟信号
6.2时序电路中复位信号的VHDL描述方法
6.2.1同步复位
6.2.2异步复位
第7章VHDL的有限状态机的设计
7.1有限状态机的基本概念
7.2一个Moore型有限状态机的设计方法
第8章FPGA数字电路设计实例
8.1门电路FPGA设计
8.1.1与非门电路
8.1.2二输入或非门电路
8.1.3二输入异或门电路
8.1.4反向器门电路
8.1.5三态门电路
8.1.6单向总线缓冲器
8.1.7双向总线缓冲器
8.2组合逻辑电路FPGA设计
8.2.1监视交通信号灯工作状态的逻辑电路
8.2.28线—3线编码器
8.2.38线—3线优先编码器
8.2.4二—十进制编码器
8.2.5译码器(3线—8线)
8.2.6二—十进制译码器
8.2.7BCD七段显示译码器
8.2.8代码转换电路
8.2.9四选一数据选择器
8.2.10八选一数据选择器
8.2.114位全加器
8.2.128位加法器
8.2.13多位数值比较器
8.3触发器FPGA设计
8.3.1RS触发器
8.3.2主从JK触发器
8.3.3D触发器
8.4时序逻辑电路FPGA设计
8.4.1寄存器
8.4.2双向移位寄存器
8.4.3串行输入并行输出移位寄存器
8.4.4循环移位寄存器
8.4.54位同步二进制计数器
8.4.6单时钟同步十六进制加/减计数器
8.4.7双时钟同步十六进制加/减计数器
8.4.8同步十进制加法计数器
8.4.9单时钟同步十进制可逆计数器
8.4.10异步二进制加法计数器
8.4.11同步一百进制计数器
8.4.12同步二十九进制计数器
8.4.13顺序脉冲发生器
8.4.14序列信号发生器
8.4.15用状态机方法设计十三进制计数器
8.4.16串行数据检测器
8.4.17能自启动的七进制计数器
8.4.18能自启动的三位环形计数器
8.4.19用状态机方法设计十进制减法计数器
第9章FPGA外围电路——集成运算放大器
9.1集成运算放大器典型电路
9.1.1反相比例运算电路
9.1.2同相比例运算电路
9.1.3反相求和运算电路
9.1.4同相求和运算电路
9.1.5加减运算电路
9.1.6积分运算电路
9.1.7微分运算电路
9.1.8压控电压源二阶低通滤波器
9.1.9压控电压源二阶高通滤波器
9.1.10RC桥式正弦振荡电路
9.1.11方波发生电路
9.1.12方波和三角波发生电路
9.1.13过零比较器
9.1.14一般单限比较器
9.1.15滞回比较器
9.1.16窗口比较器
9.1.17精密整流电路
9.2单电源供电的集成运算放大器的应用
9.2.1单电源集成运放的放大电路
9.2.2单电源集成运放的正弦波发生器
9.2.3单电源集成运放的方波三角波发生器
9.2.4单电源集成运放的低通滤波器
9.2.5单电源集成运放的高通滤波器
9.2.6单电源集成运放的比较器
9.2.7单电源比较器
9.2.8单电源比较器组成的窗口比较器
9.2.9高效率音频功率放大器
9.2.10单电源集成运放综合设计
9.3集成运算放大器的综合应用
9.3.1小信号功率放大器
9.3.2具有放大、滤波及继电器控制的模拟信号检测与控制系统
9.3.3具有放大、F/V转换及继电器控制的模拟信号频率检测与控制系统
9.3.4间歇正弦波控制路
9.3.5语音信号放大器
9.3.6程控放大器0~40dB
9.3.7宽带放大器
9.3.8正弦交流电压有效值控制的压控振荡电路
9.3.9电压转换恒定电流电路
9.3.10实用温控器
9.3.11用热释电传感器的报警电路
9.3.12基于PWM的LED调光电路
9.3.13具有放大、滤波器、计数功能的电子电路
第10章FPGA数字电路系统设计实例
10.1数字信号的发送和接收电路
10.2序列计数器
10.3设计一个自动售邮票的控制电路
10.4数字锁
10.5设计一个汽车尾灯的控制电路
10.6交通灯控制器
10.7双十字路口交通灯控制器
10.816×16的点阵显示设计
10.9乒乓球游戏机
10.10三层电梯控制器
10.11汽车停车场停车位显示系统
10.12智力竞赛抢答计时器的设计
10.13出租车计费器
10.14定时器
10.15秒表
10.16数字钟
10.17数字频率计
10.18电子琴电路设计
10.19《友谊地久天长》乐曲演奏电路设计
10.20寄存序列型信号发生器
10.21正负脉宽数控调制信号发生器设计
10.22智能函数发生器设计
10.23周期可调的多波形发生器
10.24模拟信号检测
10.25数据采集及监控系统
第11章FPGA电子系统设计项目
11.1项目1FPGA控制的数码显示电路
11.1.1设计要求
11.1.2设计分析
11.1.3显示原理
11.1.4驱动8位数码管显示电路框图
11.1.5模块及模块功能
11.2项目2键盘控制电路
11.2.1设计要求
11.2.2设计分析
11.2.3设计思想与源程序
11.3项目3用8×8行共阴、列共阳双色点阵发光器件显示汉字
11.3.1设计要求
11.3.2设计分析
11.3.3器件及硬件电路
11.3.4设计软件的思路及源程序
11.4项目4FPGA控制的数模D/A转换电路
11.4.1设计要求
11.4.2设计分析
11.4.3DAC0832转换器
11.4.4数模D/A转换电路
11.4.5FPGA控制的数模D/A转换电路
11.5项目5FPGA控制的模数A/D转换0809的应用
11.5.1设计要求
11.5.2设计分析
11.5.3ADC0809转换器及其转换电路
11.5.4FPGA控制的模数A/D转换电路
11.5.5用数码管显示模数A/D转换器的输入电压
11.5.6ADC0809转换模拟输入负电压电路
11.6项目6数控式可逆步进调压直流稳压电源
11.6.1设计要求
11.6.2原理及硬件电路
11.6.3软件设计思想及源程序
11.7项目7数控式直流电流源
11.7.1设计指标及框图
11.7.2硬件电路图
11.7.3软件设计思想及源程序
11.8项目8低频数字式相位测量仪
11.8.1低频数字式相位测量仪设计指标及框图
11.8.2移相网络
11.8.3相位测量
11.9项目9多路数据采集系统
11.9.1设计内容
11.9.2现场模拟信号产生器
11.9.38路数据采集器
11.9.4主控器
11.10项目10测量放大器
11.10.1测量放大器系统
11.10.2桥式电路
11.10.3信号变换放大器
11.10.4直流电压放大器
11.10.5程控的直流电压放大器
11.11项目11功率放大器
11.11.1设计任务
11.11.2功率放大器
11.11.3前置放大器
11.11.4系统测试
11.11.5自制稳压电源
11.11.6集成功率放大器
11.12项目12开关型稳压电源
11.12.1脉冲宽度调制电路MIC2194
11.12.2MC34060控制的串联型开关稳压电源
11.13项目13程控滤波器
11.13.1设计要求
11.13.2设计框图
11.13.3程控放大器
11.13.4程控低通滤波器
11.13.5程控高通滤波器
11.13.6程控滤波器的FPGA控制核心
11.14项目14信号发生器
11.14.1设计要求
11.14.2信号发生器的功能及其内部接线
11.14.3信号发生器的FPGA内部结构
11.14.4调用QuartusⅡ中的除法器件方法
11.15项目15交流电压参数的测量
11.15.1设计要求
11.15.2给定的器件
11.15.3硬件电路
11.15.4软件电路
11.16项目16宽带放大器
11.16.1设计要求
11.16.2硬件电路
11.16.3软件电路
11.17项目17高效率音频功率放大器
11.17.1设计要求
11.17.2D类放大器的工作原理
11.17.3硬件电路
11.17.4软件电路
11.18项目18数字化语音存储与回放系统
11.18.1设计要求
11.18.2硬件电路
11.18.3软件电路
11.19项目19数字式工频有效值多用表
11.19.1硬件电路
11.19.2软件电路
11.20项目20简易电阻、电容和电感测量仪
11.20.1设计要求
11.20.2硬件电路
11.20.3软件电路
11.21项目21数字幅频均衡功率放大器
11.21.1设计要求
11.21.2设计框图
11.21.3三级放大电路
11.21.4带阻网络
11.21.5低通滤波电路
11.21.6A/D转换
11.21.7D/A转换和功率放大器
11.21.8FPGA程序
11.22项目22红外光通信装置
11.22.1设计要求
11.22.2红外光语音通信装置
11.22.3红外光温度数字信号通信装置
11.22.4红外光通信装置总结
11.23项目23数字频率计
11.23.1设计要求
11.23.2系统设计方案和电路
11.23.3信号频率测量
11.23.4时间间隔测量系统模块
11.23.5占空比测量系统模块
11.24项目24基于FPGA与nRF24L01的无线数据传输与应用
11.24.1nRF24L01无线收发器
11.24.2nRF24L01无线收发器工作模式
11.24.3nRF24L01配置
11.24.4用FPGA对nRF24L01进行配置
参考文献
近年来,FPGA的生产和销售规模以惊人的速度增长。大力发展集成电路设计与制造,是我国制定的重要发展目标,也是经济全球化新形势下的科技挑战。发展集成电路行业,离不开对电子信息类专业人才的培养,尤其是对电子信息类专业人才的创新能力培养。如何提高学生的实践创新能力?首先,要使学生对实践感兴趣。在综合性设计实验中,学生能做出来就会有兴趣。其次,增加练习数量,练习多了水平就会提高。后,根据生产和生活的实际需要制作创新作品。兴趣→提高→创新,不断循环往复,学生的实践创新能力就会不断提高。本书通过大量的小型电子系统设计提高学生对实践的兴趣,通过由单元电路实践到电子系统实践的过渡,降低学习的难度,从而起到抛砖引玉的效果。本书通过大量的FPGA设计实例,切实提高学生开发FPGA电子系统的能力。本书特色如下:(1) 易懂、易学、易上手。(2) 覆盖了模拟电子技术基础、数字电子技术基础、FPGA基本知识以及大量电子系统设计项目案例。(3) 既给出了硬件设计电路,又提供了程序代码设计(使用VHDL语言和QuartusⅡ软件),便于举一反三。(4) 书中给出的每个综合电子小系统均已经过设计实现,全部是北方工业大学学生参加全国大学生电子设计竞赛的赛前训练题目,也是电子电路类课程设计的参考题目。本书主要由北方工业大学电子信息工程学院王振红编著。另外,张文轩编写了“项目24基于FPGA与nRF24L01的无线数据传输与应用”。张常年、张东彦、宋鹏、曲洪权、王恩成、田青、曹淑琴、黄明、范锦宏、周燕平、冯祎、康晓麓、赵徐森、李云栋、吴晓林、韩宇龙、胜智勇、殷大海等对本书的出版给予了极大的关心和支持。在此,对他们表示衷心的感谢。本书配套提供第10章和第11章的电路及源程序,可到清华大学出版社网站(www.tup.com.cn)的本书页面下载。由于编著者自身水平有限,如果书中存在错误和不妥之处,敬请读者批评指正。读者的反馈信息可通过电子邮件发送至: [email protected]。
王振红
2017年4月
于北方工业大学
图3.1硬件芯片FPGA
为适应实际数字电路的工作方式,VHDL以并行和顺序的多种语句方式来描述在同一时刻中所有可能发生的事件。因此VHDL程序执行方式与其他语言不同,它不是按顺序一条一条执行每一条语句,而是有并行执行的语句同时也有按顺序执行的语句; 要求数字电路设计人员摆脱一维的思维模式,以多维并发的思路完成VHDL的程序设计。VHDL程序的特点如图3.2所示,VHDL程序由一组并行语句构成,并行语句里有顺序语句。
图3.2VHDL程序的特点
为完成VHDL的程序设计,实现数字电路的功能,要求工程设计人员要懂得每一种VHDL语句格式、内容和各种VHDL语句执行的顺序,以及VHDL语句中的各种变量、数据类型和表达式。一个成功的VHDL程序设计,不能只完成数字电路功能,还要求程序设计得简捷,以便器件工作速度快、占用资源少。3.2VHDL程序的基本结构先看一个关于D触发器设计的完整程序。【程序3.1】
library ieee;
use ieee.std_logic_1164.all;–库说明
entity dff1 is
port(clk,d:in std_logic;
q:out std_logic);
end dff1;–实体说明
architecture rtl of dff1 is
begin
process(clk)
begin
if(clk’event and clk=’1′)then
q=d;
end if;
end process;
end rtl; –结构体说明
从程序3.1的描述层次上可以看出,一个完整的VHDL程序通常包括库说明、实体说明、结构体说明3个部分,下面具体介绍这3个部分的语法。3.2.1库说明在程序3.1中,库说明语句为
library ieee;
use ieee.std_logic_1164.all;
用到了ieee库以及ieee库中的std_logic_1164程序包的全部资源。库说明语句一般语法如下:
library 库名;
use 库名.程序包名.项目名;
库是用VHDL编写的源程序及其通过编译的数据的集合,库由各种程序包组成,程序包提供了各种数据类型以及各种类型转换函数及运算等,以供给设计者使用。VHDL提供了IEEE库和其他的库。IEEE库是按IEEE组织制定的工业标准进行编写的标准资源库,库的内容很丰富,是常用的资源库,其中常用的程序包有: (1) std_logic_1164程序包: 常用数据类型(其中有std_logic及std_logic_vector数据类型)和各种数据类型转换函数及其算术、逻辑运算。(2) std_logic_arith程序包: 它在std_logic_1164程序包的基础上定义了无符号数unsigned、有符号数signed数据类型并为其定义了相应的算术运算、比较,无符号数unsigned、有符号数signed及整数integer之间转换函数。(3) std_logic_unsigned 和std_logic_signed程序包: 这些程序包定义了可用于integer数据类型和 std_logic及std_logic_vector数据类型混合运算的运算符,并定义了由无符号数unsigned、有符号数signed与std_logic_vector数据类型之间的转换函数,std_logic_vector数据类型与integer数据类型之间的转换函数。其中,std_logic_signed中定义的运算符是有符号数运算符。用于一般的FPGA/CPLD的开发,IEEE库中的4个程序包(std_logic_1164、std_logic_arith、std_logic_signed和std_logic_unsigned)已足够使用。库说明语句作用范围是从一个实体说明开始到它所属的结构体为止。
评论
还没有评论。