欢迎来到天天文库
浏览记录
ID:36060353
大小:1.17 MB
页数:73页
时间:2019-05-01
《fpga设计与应用教学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章FPGA概述1.1FPGA的发展历程1.3FPGA的设计方法1.2FPGA的基本原理1.4FPGA的设计流程1.5总结与结论1.1FPGA的发展历程可编程逻辑器件(PLD)可编程逻辑阵列(PLA)可编程阵列逻辑(PAL)Xilinx的FPGAAltera的CPLD早期FPGA1.2FPGA的基本原理◆基于查找表的FPGA的基本结构及逻辑实现原理◆FPGA的配置应用◆基于乘积项的FPGA的基本结构及逻辑实现原理1.2FPGA的基本原理◆基于查找表的FPGA的基本结构及逻辑实现原理查找表(LookUpTable,LUT)本质上就是一个R
2、AM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16╳1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。1.2FPGA的基本原理◆基于乘积项的FPGA的基本结构及逻辑实现原理这种FPGA的结构可分为三块:宏单元(Macrocell)、可编程连线(PIA)和I/O控制块。宏单元是器件的基本结构,由它来实现基本的逻辑功能;可编
3、程连线负责信号传递,连接所有的宏单元;I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局时钟、清零和输出使能信号,这几个信号有专用连线与器件中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。1.3FPGA的设计方法FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模FPGA设计一般选择“自顶向下”的设计方法。所谓“自顶向下”设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述
4、语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布线结果还可反标回同一仿真器,进行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。1.4FPGA的设计流程第一步:按照“自顶向下”的设计方法进行系统划分。第二步:输入VHDL/VerilogHDL代码第三步:将以上的设计输入编译成标准的VHDL/VerilogHDL文件,然后将文件调入HDL仿真软件进行功能仿真第四步
5、:利用综合器对源代码进行综合优化处理,生成门级描述的网表文件第五步:如果整个设计超出器件的宏单元或I/O单元资源,可以将设计划分到多片同系列的器件中。第六步:将试配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA中FPGA是近几年集成电路中发展最快的产品。本章主要对FPGA的发展历程、结构原理和设计方法与流程做了介绍。随着可编程逻辑器件的高速发展,可编程逻辑器件将进一步扩大其领地。据ICInsights的数据显示,可编程逻辑器件市场从1999年的29亿美元增长到2004的56亿美元,几乎翻了一番。可编程逻辑器件将继续向着更高
6、密度和更大容量方向迈进。1.5总结与结论第2章硬件描述语言入门2.1VHDL入门2.3总结与结论2.2VerilogHDL入门2.1VHDL入门◆VHDL的模块组织◆基本的数据类型及常量、变量、信号◆运算符及表达式◆VHDL基本语句◆典型电路的设计2.1VHDL入门◆VHDL的模块组织在应用VHDL描述数字系统结构时,我们使用实体(entity)-结构体(architecture)结构。实体描述了数字系统的输入输出接口,同时还定义了一些全局常量以及与其他电路(程序模块或逻辑图模块)之间必要连接的拓扑结构。但在实体中,我们并不对电路的逻辑做
7、任何描述,可将其看成是一个所谓的逻辑“黑盒子”。很明显,VHDL遵循EDA解决方案中自顶向下的设计原则,并能够保持良好的接口兼容性。2.1VHDL入门◆基本的数据类型及常量、变量、信号数据类型VHDL标准数据类型包括整数(INTEGER)、实数(REAL)、位(BIT)、位矢量(BIT_VECTOR)、标准逻辑(STD_LOGIC)、标准逻辑矢量(STD_LOGIC_VECTOR)、布尔量(BOOLEAN)、字符(CHARACTER)、字符串(STRING)及时间(TIME)类型。为了给设计者提供自由度和灵活性,VHDL语言允许用户自定义
8、数据类型,命令为:TYPE数据类型名[,数据类型名…]IS数据类型定义常量常量在设计中不会发生变化,可以增加程序的可读性,书写格式为:CONSTANT常量名[,常量名…]:数据类型[:=表达式
此文档下载收益归作者所有