描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787560566405
本书适合作为计算机专业硬件开发课程的教材,也适合FPGA开发的爱好者和相关技术人员。
作者可以提供书中硬件设计资料和全部源代码。
作者电话:13709181375,E-Mail:,qq:630972994
qq群:290863896,微信号:liyuhua686994。
序 前言 第1章 FPGA概述 1.1 什么是FPGA 1.2 FPGA与32位处理器的比较 1.3 FPGA和ASIC的关系 1.4 FPGA的发展 1.5 代码语言VHDL和开发工具ISE 1.6 FPGA的应用 第2章 XC3S500E和XCF04S的基本结构 2.1 XC3S500E的主要特点 2.2 内部结构总论 2.3 配置操作 2.4 芯片封装标记 2.5 输入输出块(IOB) 2.5.1 IOB内部结构 2.5.2 输入延时功能 2.5.3 存储单元功能 2.5.4 倍速数据传输 2.5.5 支持多种信号标准 2.5.6 片内差分端电阻(On_Chip Differential Termination) 2.5.7 上拉电阻和下拉电阻 2.5.8 边沿切换速率(Slew Rate)控制和驱动强度(Drive Strength)控制 2.5.9 IOB的区(Bank)划分和规则 2.5.1 0IOB的供电 2.5.1 1上电和配置过程时I/O引脚行为 2.5.1 2JTAG边界扫描功能 2.6 可配置逻辑块(CLB)和切片(Slice)资源 2.6.1 CLB总论 2.6.2 切片总论 2.7 块RAM(Block RAM) 2.8 专用乘法器(Dedicated Multiplier’s) 2.9 数字时钟管理器(DCM,Digital Clock Manager) 2.9.1 总论 2.9.2 延锁环(Delay-Locked Loop,DLL) 2.9.3 数字频率合成器(Digital FreqLmncy Synthesizer,DFS) 2.9.4 相移器(Phase Shifter,PS) 2.9.5 状态逻辑(Status Logic) 2.10 时钟基本结构 2.11 芯片内功能单元互连(Interconnect) 2.12 配置(Coufiguration) 2.12.1 配置过程 2.12.2 配置数据大小 2.12.3 配置时钟信号CCLK的设计要点 2.12.4 HSWAP,M[2:0]和Vs[2:0]引脚线路设计要点 2.12.5 主机串口模式(Master Serial Mode) 2.12.6 其它的主机配置模式 2.12.7 从机串口模式(Slave Seral Mode) 2.12.8 JTAG模式 2.12.9 配置过程总结 2.13 Spartan-3E系列FPGA芯片引脚说明 2.13.1 引脚类型 2.13.2 三种封装的引脚 2.14 Platform Flash PROM 2.14.1 Flash PRoM的特点和对FPGA的支持 2.14.2 Flash PROM内部结构 2.14.3 PROM参与FPGA配置 2.14.4 PROM的在系统烧写(In-system Programming) 2.14.5 PROM的指标参数和引脚 第3章 核板和外围模块硬件设计 3.1 小系统和外围器件 3.2 基于FPGA的电子产品分类 3.3 硬件系统的需求分析和项目方案 3.4 线路板集成设计工具Protel DXP简介 3.5 核板原理图设计 3.6 核板PCB设计 3.7 模块Bankl_Mdl(液晶和8xLED模块)设计 3.7.1 接口模块Bankl_Mdl设计 3.7.2 8xLED模块设计 3.7.3 RS232通信模块设计 3.8 模块Bank0_Mdl(单数码管模块)设计 3.9 模块Bank1_Md2(4连数码管模块)设计 3.10 并口JTAG下载器设计 3.11 模块Bank2_Mdl(输入模块)设计 第4章 开发环境ISE和VHDL语言 4.1 开发环境ISE 4.2 ISE安装过程 4.2.1 注册 4.2.2 ISE软件下载 4.2.3 ISE安装 4.3 ISE操作全过程 4.3.1 ISE界面介绍 4.3.2 新项目(New Project)建立 4.3.3 产生源代码 4.3.4 源代码综合(Synthesize) 4.3.5 波形仿真(Simulate) 4.3.6 产生用户约束文件 4.3.7 执行设计(Implement Design) 4.3.8 产生烧写文件(Generate Programming File) 4.3.9 产生PROM文件 4.3.10 烧写 4.3.11 运行 4.4 ISE各功能模块 4.4.1 ISE全过程总结 4.4.2 参考已有的源代码和约束文件建立新项目 4.4.3 源代码综合(Synthesize—XST) 4.4.4 执行设计(Implement[)esign) 4.4.5 产生烧写文件(Genei’ate Programming File) 4.4.6 配置目标器件((20nfigure Target Device) 4.5 VHDL语言 4.5.1 VHDL源代码结构形式 4.5.2 VHDL基本定义 4.5.3 VHDL语句 4.5.4 元件模块(Component) 第5章 项目软件开发和源代码解释 5.1 简单逻辑门电路 5.1.1 双输入与非门电路test00_NAND 5.1.2 解码器电路testl38_deCoder_1 5.2 简单时序电路 5.2.1 LED闪烁电路testO_LED 5.2.2 LED跑马灯电路test8LED_HorseRun 5.2.3 带锁存解码器电路testl38_deCoder_2 5.2.4 同步解码器电路testl38_decoder_3 5.2.5 串入并出同步移位寄存器电路testl64_SIPO 5.2.6 单数码管电路testLEDNumber_1 5.2.7 按键控制的单数码管电路testLEDNumber_2 5.3 I/O口电路 5.3.1 4连数码管计数器NumLEDx4_1 5.3.2 4连数码管精密计时器NumLEDx4_2 5.3.3 4连数码管倒计时器NumLEDx4_3 5.3.4 4连数码管定时器NumLEDx4_4 5.4 通信电路 5.4.1 字符液晶显示LCDl602_disp 5.4.2 UART通信发送UART_transmitter 5.4.3 UART通信接收发送UART_tranceiver 5.4.4 蓝牙通信BlueTooth_1 5.4.5 基于PWM的LED亮度控制PWM_2xLED 5.4.6 双舵机控制PWM_2xMiniServer 5.4.7 步进电机控制Step_Motorl 5.4.8 带设置的步进电机控制Step_Motor2 5.5 DCM开发 5.5.1 数字时钟管理器实例DCM_Test 5.6 其它项目 5.6.1 直流电机控制 5.6.2 继电器控制 5.6.3 单片机和FPGA双机系统 参考文献
序
我们生活在一个快速连接的世界中。目前,全球有60亿台移动计算设备相互连接,并且每天都新增100万台移动设备;预计到2020年,全球移动计算设备总数将达到300亿台。随着物联网(IoT)以及万联网(IOE)的发展,海量大数据的存储、传输、处理、挖掘,对技术提出了极大的挑战。从处理响应速度来看,计算的处理响应速度,从文字时代的秒级,多媒体时代的百毫秒级,视频时代的十毫秒级,会迅速推进到5G时代的1毫秒级。对海量数据在1毫秒内完成处理,将是未来数十年摆在电子信息设计工程师面前的巨大问题。
随着摩尔定律走向深纳米时代,在20nm以下的工艺节点,每个节点的性价比提高幅度比上一代将会逐步减少,而前期NRE费用(即一次性工程费用)投入巨大,服务客户数量稀少,使得专用集成电路ASIC以及专用标准集成电路ASSP在商业模式上走入绝境,赢利的公司数目锐减,直至后消亡。尚能存活的将是可编程器件。
面对海量的计算任务,多核并行曾是解决方案之一,但受制于算法可并行部分的局限,更多的核并不能带来更高的效率,加速效能也逐渐走到了尽头。而受单颗芯片发热量密度限制,即便芯片上集成的晶体管越来越多,但可同时运行的晶体管数目趋于恒定,其它晶体管沦为暗硅(DarkSilicon)。设计者的目光不得不转向冯诺依曼结构之外的计算构架,比如领域定制化计算(DomainSpecificComputing),它可在保持灵活性的同时,发挥每一个晶体管的计算能力,当然,这也离不开可编程技术的长足发展。
在系统级别,大数据、软件定义一切、虚拟化一切的趋势,使得系统构架工程师不得不寻求更灵活、更智慧、更快速、更绿色的解决方案。而这些解决方案的核心,往往与软件、硬件、I/O均可编程的芯片,赛灵思公司的AllProgrammable芯片相关。
在教育领域,除了需要培养能够应对未来数十年挑战的电子信息工程师之外,本身也充满了变革和机遇。随着大规模网上课程MOOC的兴起,通过网络,在统一平台下,以翻转课堂的方式,打破业界与教育界的壁垒,完成软硬件、实验与课程、年级与院系的全面贯通。这正是很多电子信息类教育工作者的毕生追求。
赛灵思大学计划将不遗余力地帮助教育工作者应对这些变革,将AllProgrammable全可编程技术,全面引入新型知识传播体系中去,培养能够处理下一代电子系统设计挑战的未来卓越工程师和创新者,为将中国制造变成中国智造的梦想,提供充足的智力和人才保障。
西安交通大学城市学院的《FPGA软件硬件设计及项目开发》一书,通俗易懂,从FPGA实现简单74LS00逻辑入手,利用开源PCB开发板,以小项目的形式,循序渐进掌握FPGA的编程方法,是一本适合初学者快速入门的好书。特此作序,以示支持。
谢凯年
赛灵思大学计划中国区经理
前言
FPGA是一片芯片,中文名为“现场可编程门阵列”,它是近十几年里发展出来的新型数字电子电路芯片。本书的目的就是教会读者如何从硬件设计到软件开发两个方向上使用这片芯片。
本书瞄准的是赛林思(Xilinx)公司的Spartan-3E系列的FPGA,型号为XC3S500E。用到的开发环境为赛林思公司的ISE,软件语言为VHDL。这片FPGA内含有50万个逻辑门,以及其它资源。FPGA到底有什么特色?它被称为“半定制”器件。就是说,芯片内部集成的这些硬件资源,50万逻辑门都没有连接好,提供给用户按照自己的意愿来连接,构建用户自己的独特的电路。这样构建的电路是稳定的,可工业使用的。当然,电路还可以拆除,可以改建,可以刷新重建。这实际上园了一些工程师的梦,他们曾经梦想自己设计IC(集成电路芯片)。设想一下这样的场景,在你面前码放着50万个微小的逻辑门电路单元,让你自由支配,这是一个什么样的诱惑。有网友把FPGA比作橡皮泥,让你自己来拿捏,塑造你自己渴望的塑像。作者却愿意把FPGA比作变形金刚,可以演变成无数的变种。一个数据比较可以说明FPGA的的优越性。如果已经开发出来了一个硬件电路的应用,现在要升级。如果是传统的电路板,这样的升级就要重新设计电路板,制作电路板,元件的焊接等等,一定会花去一个月以上的时间,老板子只能变为电子垃圾。如果是用FPGA的电路板,那么这样的硬件升级可能几个小时就能搞定,而且线路板不用从系统上拔下来。这样的优势是当前FPGA技术应用快速发展的主要原因。
学习FPGA难不难?和学习单片机,学习32位嵌入式系统相比,可以这么说,学习FPGA入门比较烦,入门后会感觉比较容易。而学习单片机和嵌入式系统正好相反。这有点像儿童学小提琴和学钢琴,同样是乐器中,一个是乐器皇后,一个乐器之王。学钢琴入门容易,坐姿很舒服,手臂动作很自然,弹下去的音很好听,因为音是准的。大约学一个小时,就能弹出很美好的小小星星亮晶晶,让家长鼓掌叫好。学小提琴则完全不一样,脖子要能夹住琴,左手向前方拐,成45度,琴轴要和地面平行,琴面要轴向旋转45度,右手的5指捏弓要虚空而稳定,右小臂要和弓成90度,右手腕要自然垂下。要命是,拉弓要定在琴弦的一个点上,拉弓的运动必须是顺着弓的直线(要知道,人的胳膊的运动从来都是弧线),还要和琴弦保持90度,使琴弦产生纯的横向振动。只要拉弓动作不是90度,或者弓压在琴弦上的力度不够或太大,琴弦就产生纵向振动,产生的是极难听的噪音。此外,还要把左手指放在琴弦的正确的位置上,这个位置没有标记,否则音不准。初学提琴者,无不在很长的时间里,不断地拉出杀鸡般的声音。这是入门的难易问题,但入门后就反过来了。钢琴发展下去,十个手指在弹奏,每一瞬间要看乐谱的几个音来分配十个指头的动作。小提琴发展下去,每一瞬间只关心一个音,和一个手指的动作。只要比较一下小提琴谱子和钢琴谱子就知道谁的信息量大了,可以斗胆的说,小提琴谱子的信息量不及钢琴谱子的信息量的1/4。怎么来评判钢琴和小提琴的学习的难易度,就是说钢琴入门容易,继续发展很难,小提琴入门难,继续发展容易。学习FPGA大约像学习小提琴,学习单片机和嵌入式系统就像学钢琴。例如,让一个发光二极管(LED)闪烁,大约就像小小星星亮晶晶乐曲,是单片机,嵌入式系统,和FPGA的个实验。在单片机上和嵌入式系统上,几句C语言,编译,下载,很快就完成了,初学者的成就感油然而生。在FPGA上,编写代码后,要有一系列电脑操作才能实现在电路板上的LED闪烁起来。有点像学小提琴,准备动作太多,包括各种术语,开发环境的层次,和多项操作。FPGA看上去好像入门门槛比较高,其实不然,而是前期的预备知识有点繁琐。比较多的术语,比较多的操作步骤,较多的辅助工具。这些前期的预备知识分散了新手的学习精力。但是一旦进入FPGA,以后的发展会容易,因为FPGA虽然基本电路单元数量庞大,但毕竟资源种类并不多。希望读者中的新手会有勇气坚持学下去。
本书的第1章很简单地介绍了一些FPGA的知识,横向地作了些比较,在发展历史里特别地剖析了ROM和FPGA的关系。
本书第2章详细地介绍了Spartan-3E系列的FPGA芯片的结构,这些资料来源于Xilinx公司的官方资料。这部分内容对初学者会有点困难,会感觉枯燥。对有些读者建议可以简单了解,缺乏这些知识并不影响后面几章的学习。等到掌握了FPGA的源代码编写技术以后,再返回来学习这一章,就会恍然大悟。如果掌握了这一章的内容,编写源代码时会技高人一筹。
本书第3章详细地介绍了如何用DXP2004(Protel2004)来设计本书中用到的FPGA开发板。公布全部原理图和PCB图,以及生成的过程。如果完全按照书本的内容走,一定能设计和制作出来的。作者的这个设计共修改了3次,才感觉到可能是无错的PCB了。这样的硬件设计细节介绍是其它FPGA有关的书籍中没有的内容。市场上能看到很好的FPGA开发板,FPGA的硬件设计在国内已有相当的水平,为什么没有人来写具体的硬件设计呢?估计是知识产权的问题,当内容接近实际产品时,通常工程师和老板们会不愿意完整公开内容的。所以技术书籍,或教材中几乎看不到PCB图,但这里作者愿意读者共享自己的设计。
本书第4章介绍开发环境ISE和软件语言VHDL。软件语言从来都是教学环节上的软肋。没有深度和逻辑,像字典一样的罗列,教师教课无法有激情,学生学得模模糊糊。软件语言应该在使用中学,这是大部分人的能接收的。就好像手机的使用说明书,很少有人认真地一点一点地仔细读一遍,然后再开机使用。差不多所有的人都是在使用中学习的的,所以也建议按照手机的学习方法,先做第5章的项目,通过使用,拷贝,修改等方法掌握VHDL软件语言。开发环境ISE的学习也是同样的,在第5章的学习过程中掌握ISE。特别提出第4章的4.3节,其中介绍了从创建一个新项目开始,直到完成烧写并运行项目的全部操作过程。这一节的内容类似于手把手的教学,虽然死板一点,但相信会帮助新手轻松入门。
本书第5章包含有22个项目的真实源代码,和他们的解释。根据过去的教学经验,不说“前面学过了,后面就不讲了”这句课堂的套话。而是尽可能做到每个项目的源代码中都反复给予解释,希望直到读者都烦了,这才到达了作者的目的。因为这样,新手才会将这些代码深深地刻在脑中了。
通常的FPGA的书籍介绍的内容会很丰富,很完美,涉及的面会很多。但本书作为入门级的教材,希望的是保持读者的热情,想让读者会了再说。为了不使读者分散精力,本书采用直通车的方式介绍内容。从硬件到终的项目完成,一条路,一口气地完成。FPGA发展到现在,出现了很多辅助工具,很多仿真工具,也就是说,在从开始设计到项目完成的一条路上有很多分叉,通过这些分叉也许可以更优化地抵达目标。但是本书略去了这些发展的分叉,使读者的精力聚焦在一根主线上。让本书成为初学者的第1本引进门型的教材,这是作者的初衷。
第5章的项目开发的前3个题目,是仿照74LS00,仿照74LS138,仿照74LS164芯片的功能,这是作者的一个引进读者入门的经验。这3个题目的设计是基于这样的想法,学习过数字电路的读者对于这3个经典的芯片是很熟悉的,所以项目的需求就会很清晰。74LS00是与非门,74LS138是3-8选一的解码器,74LS164是串入并出的移位寄存器。这相当于把过去的简单的熟记的知识拿来作为新知识的垫脚石,使它们作为新老知识过度的桥梁。用传统逻辑芯片作为FPGA的个实践项目,是作者的创新,因为差不多所有的FPGA教材是以计数器作为FPGA的个实践项目。这是思维方式的不同。后者考虑的是如何在个实践项目中立刻体现FPGA的特点,而作者的意图是个实践项目如何能帮助读者很快地完美实现FPGA的全过程。在实现74LS00的与非门的项目中,读者不用再考虑功能需求是什么,因为他太明白了,而是把注意力集中到了如何实现的过程中了。
本书第5章的项目部分是作者马慧敏老师参与开发的,本书的很多内容是作者两人在西安交通大学城市学院计算机系里教学实践中获得的。在此感谢西安交大城市学院的系领导和院领导,以及陆丽娜教授对FPGA教学的支持和帮助。感谢上过FPGA课的同学们的支持和鼓励,他们中有些人在工作岗位上,FPGA水平已经盖过了作者,学生超过了自己正是作者感欣慰的事件。张喆同学在FPGA开发方面的意见,曾给过作者一些启发,这里对他也表深深谢意。写作过程中得到家人的鼓励和热情的支持,藉此对我的妻子,和孩子们表示深情的谢意。还要感谢西安交通大学出版社的叶涛老师,对本书的道义上的支持和实质上的帮助。叶老师的文字功底,慎密的逻辑思维,专业级的审阅能力对本书的修改极为重要。没有叶老师的支持作者是没有信心完成这本书的。其中还有一部分内容直接取自李舫先生的著作,对此作者表示深深的谢意,祝他在远方他国幸福。
作者这里还要特别感谢谢凯年博士先生。他作为赛灵思公司的大学计划中国区经理,于2011年6月帮助和支持在西安交通大学城市学院成立了FPGA联合实验室。正是在这个大学计划和实验室的支持下,作者开设了FPGA的课程。根据这些年的课程教学经验,才成就了本书的基本素材。本书的提出和写成得到了谢凯年博士的支持和指导,并且在百忙中欣然为本书撰写序言。在这篇高水平的序言中,谢博士介绍了可编程芯片的发展趋势,预言了可编程芯片对后计算机时代的贡献,为我们展示了大数据IT的解决方案,并大力支持采用MOOC方式将可编程芯片推向业界。这篇序言值得与可编程芯片相关的工程师和有兴趣的学习者一读。
本书中技术上一定有种种谬误,纰漏,不优化之处,观点上一定有狭隘,偏见之处。望读者君子给予指出,指正,批判。对此,作者抱着诚意向你们致敬,并表衷心谢意。书中的电路板是作者制作过和测试过的,还剩余一些,可提供给读者。书中第5章的全部源代码电子版,可提供给读者。
购买了本书的读者可以和作者联系,作者提供书中硬件设计资料和全部源代码。作者电话:13709181375,E-Mail:,qq:630972994,qq群:290863896,微信号:liyuhua686994。
李裕华
2014.08
![插图](https://static.easterneast.com/file/easternspree/img/5ede428c5f98492e2ca64545_454272.jpg)
![插图](https://static.easterneast.com/file/easternspree/img/5ede42c55f98492e2ca64546_456210.jpg)
![插图](https://static.easterneast.com/file/easternspree/img/5ede42cc5f98492e2ca64547_457211.jpg)
![插图](https://static.easterneast.com/file/easternspree/img/5ede42d15f98492e2ca64548_457212.jpg)
![插图](https://static.easterneast.com/file/easternspree/img/5ede42da5f98492e2ca64549_458213.jpg)
![插图](https://static.easterneast.com/file/easternspree/img/5ede42e15f98492e2ca6454a_459214.jpg)
评论
还没有评论。