出版时间:2010-1 出版社:人民邮电出版社 作者:杨晓慧,杨旭 编著 页数:335
前言
随着FPGA/CPLD的空前发展和广泛应用,人们愈来愈迫切地希望能够快速掌握基于FPGA/CPLD的应用电路设计方法和技巧。虽然市场上这方面的书籍不少,但读者在学习的过程中大多会遇到这样的问题:1.或者是应用电路实例过于基础,深度上不能满足有一定基础的读者;或者是应用电路实例过于复杂,设计思路和方法表达得不是很具体,难度跨越较大,让很多读者,尤其是初学者学习起来感到吃力。2.应用电路中的各个子电路(底层文件)和整体应用电路(顶层文件)大部分都由硬件描述语言实现,读者很难了解各个子电路接口的连接关系以及整体电路的设计思想。本书作者认为:底层文件和顶层文件都采用硬件描述语言实现的设计方法不适合初学者,因为这种设计方法缺乏层次感,设计思路较难理解。3.第2个原因还会导致程序太大,增加了程序调试难度,一旦程序出现错误,读者想自行调试解决会很困难。鉴于以上几点,我们总结了多年的教学和科研经验,编写了本书,希望读者不但能够学会基于FPGA/CPLD的硬件描述语言VHDL的编程方法和技巧,还能通过本书,更快地提高自己解决实际问题的能力。本书的实例由简单到复杂,由浅入深,循序渐进,最后一章给是基于FPGA的多种综合电路设计的实例,旨在帮助读者熟悉并掌握一个完整的电路系统的设计方法和技巧。本书的应用电路设计实例均采用VHDL硬件描述语言进行系统的各部分功能模块电路的设计,最后采用原理图描述方式把系统的各部分模块连接起来,实现FPGA的顶层电路的层次化设计方法。所有程序全部在软件平台Quartus下编译运行通过,同时书中还给出了时序仿真波形。
内容概要
本书共分为6章,分别介绍了EDA技术、可编程逻辑器件的基本知识及使用方法;VHDL语言设计方法;EDA的开发工具QuartusII的使用方法和技巧;基于VHDL的简单电路、应用电路及综合电路的设计,通过18个典型数字电路系统的设计实例(实例安排由简单到复杂),详细地介绍了基于EDA技术“自顶向下”的层次化设计的方法和技巧。 本书可作为EDA技术及相关技术课程设计的参考书,也可供从事数字逻辑电路和系统设计的电子设计人员参考。
书籍目录
第1章 EDA技术与可编程逻辑器件 1.1 EDA技术概述 1.1.1 VHDL硬件描述语言 1.1.2 EDA工具开发流程 1.1.3 EDA的发展趋势 1.2 可编程逻辑器件概述 1.2.1 基于乘积项的CPLD结构与工作原理 1.2.2 基于查找表(Look-Up-Table)的FPGA结构与工作原理 1.2.3 其他类型的FPGA、CPLD及工程选择 1.3 FPGA/CPLD测试技术 1.4 CPLD和FPGA的编程与配置 1.4.1 利用ByteBlasterII并口下载电缆进行配置 1.4.2 利用ByteBlasterMV并口下载电缆进行配置 1.4.3 利用MasterBlaster串行/USB通信电缆进行配置 1.4.4 利用BitBlaster串行下载电缆进行配置 1.4.5 利用FPGA的专用芯片进行配置 1.4.6 使用单片机配置FPGA 1.4.7 使用CPLD配置FPGA 第2章 硬件描述语言VHDL 2.1 VHDL的特点 2.2 VHDL语言程序结构 2.2.1 VHDL库 2.2.2 VHDL程序包 2.2.3 实体 2.2.4 结构体 2.2.5 配置 2.3 VHDL语言中的数据对象与数据类型 2.3.1 数据对象 2.3.2 数据类型 2.4 基本词法单元与操作符 2.4.1 VHDL语言中的词法单元包括注释、数字、字符、字符串和位串 2.4.2 VHDL语言中的操作符 2.5 VHDL基本语句 2.5.1 并行语句 2.5.2 顺序语句 2.6 VHDL语言与硬件电路的对应 2.6.1 组合逻辑电路的VHDL描述 2.6.2 时序逻辑电路的VHDL描述 2.7 有限状态机 2.7.1 一般状态机的设计 2.7.2 Moore型有限状态机的设计 2.7.3 Mealy型有限状态机的设计 2.7.4 状态编码及剩余状态处理 第3章 QuartusⅡ功能及应用 3.1 QuartusⅡ的设计流程 3.1.1 设计输入 3.1.2 综合 3.1.3 布局布线 3.1.4 时序分析 3.1.5 仿真 3.1.6 编程和配置 3.1.7 调试 3.1.8 系统级设计 3.2 原理图设计方法 3.2.1 建立QuartusⅡ工程文件 3.2.2 源文件原理图的输入 3.2.3 时序仿真 3.3 VHDL文本输入设计及引脚设置、下载和硬件测试 3.3.1 VHDL文本输入设计方法 3.3.2 引脚设置、下载和硬件测试 3.3.3 对配置器件的编程下载 3.4 顶层电路的设计 3.5 LPM参数化宏功能模块与IP的应用 3.5.1 宏模块应用实例 3.5.2 在系统存储器数据读写编辑器的应用 3.5.3 其他存储器模块的定制与应用 3.5.4 LPM嵌入式锁相环的调用 3.5.5 IP核的使用 3.6 Signal TapII嵌入式逻辑分析仪的使用 3.6.1 Signal TapII使用实例 3.6.2 SignalTapII的触发信号的编辑 3.7 多种LPM模块应用实例 第4章 基于VHDL的简单电路的设计 4.1 DAC0832接口电路 4.1.1 DAC0832 接口电路及功能 4.1.2 DAC0832接口电路的程序设计 4.2 LCD显示器的控制电路 4.2.1 MDLS系列液晶显示模块 4.2.2 显示模块驱动电路的程序设计 4.3 LED显示器的控制电路 4.3.1 LED静态显示控制电路 4.3.2 LED动态显示控制电路 4.4 分频器的设计 4.4.1 整数分频器 4.4.2 非整数分频器 4.4.3 可控分频器的设计 4.5 并行脉冲控制电路 4.6 二进制振幅键控(ASK)调制器与解调器 4.6.1 二进制振幅键控(ASK)调制器与解调器原理 4.6.2 ASK调制电路的VHDL程序 4.6.3 ASK解调电路的VHDL程序第5章 基于VHDL的应用电路的设计 第6章 基于FPGA的综合电路的设计
章节摘录
插图:空操作语句NULL不完成任何操作,它唯一的功能就是使程序执行下一个语句。NuLL常用于CASE语句中,利用NULL来表示所余的不用条件下的操作行为,以满足CASE语句对条件值全部列举的要求。5.子程序调用语句在进程中允许对子程序进行调用。对子程序的调用语句是顺序语句的一部分。子程序包括过程和函数,可以在VHDL的结构体或程序包中的任何位置对子程序进行调用。从硬件角度讲,一个子程序的调用类似于一个元件模块的例化。也就是说,VHDL综合器为子程序(函数和过程)的每一次调用都生成一个电路逻辑块,所不同的是,元件的例化将产生一个新的设计层次,而子程序调用只对应于当前层次的~部分。如前所述,子程序的结构像程序包一样,也有子程序的说明部分(子程序首)和实际定义部分(子程序体)。将子程序分成子程序首和子程序体的好处是,在一个大的系统开放过程中,子程序的界面,即子程序首是在公共程序包中定义的。这样一来,一部分开发者可以开发子程序体,另一部分开发者可以使用对应的公共子程序,即可以对程序包中的子程序作修改,并不会影响对程序包说明部分的使用(当然不是指同时)。这是因为,对子程序体的修改,并不会改变子程序首的各种界面参数和出入口方式的定义,也不会改变调用子程序的源程序的结构。
编辑推荐
《FPGA系统设计与实例》:“自顶向下”的层次化设计的方法和技巧、18个典型数字电路系统的设计实例、完整的代码、时序仿真波形。基础知识:结构与工作原理、测试技术、配置方式VHDL硬件描述语言QuartusⅡ的设计流程、原理图设计方法、VHDL文本输入设计、引脚设置、下载和硬件测试、LPM参数化宏功能模块与IP的应用、Signal Tapll嵌入式逻辑分析仪、多种LPM模块应用实例简单电路设计:DAC0832接口电路、LCD显示器的控制电路、LED显示器的控制电路、分频器的设计、并行脉冲控制电路、二进制振幅键控(ASK)调制器与解调器应用电路设计:交通控制灯、数字秒表、智力抢答器、电子密码锁、PPM(脉冲位置调制)基带系统、PS/2键盘通信控制电路综合电路设计:PWM直流电机控制电路、等精度数字频率计、LC压控振荡器、低频数字相位测量仪、出租车计价器、多功能波形发生器
图书封面
评论、评分、阅读与下载