FPGA设计与应用教学.ppt
《FPGA设计与应用教学.ppt》由会员分享,可在线阅读,更多相关《FPGA设计与应用教学.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、FPGA设计与应用设计与应用第第1 1章章 FPGA FPGA概述概述 1.1 1.1 FPGAFPGA的发展历程的发展历程的发展历程的发展历程 1.3 FPGA1.3 FPGA的设计方法的设计方法的设计方法的设计方法 1.2 FPGA1.2 FPGA的基本原理的基本原理的基本原理的基本原理 1.4 FPGA1.4 FPGA的设计流程的设计流程的设计流程的设计流程 1.5 1.5 1.5 1.5 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用1.1 1.1 FPGAFPGA的发展历程的发展历程的发展历程的发展历程 可编程逻辑器件可编程逻辑器件可编程逻辑器件可编程逻辑器件
2、(PLD)(PLD)(PLD)(PLD)可可可可编编编编程程程程逻辑阵逻辑阵逻辑阵逻辑阵列列列列(PLA)(PLA)(PLA)(PLA)可可可可编编编编程程程程阵阵阵阵列列列列逻辑逻辑逻辑逻辑(PAL)(PAL)(PAL)(PAL)Xilinx Xilinx Xilinx Xilinx的的的的FPGAFPGAFPGAFPGAAlteraAlteraAlteraAltera的的的的CPLDCPLDCPLDCPLD早期FPGAFPGA设计与应用设计与应用1.2 FPGA1.2 FPGA的基本原理的基本原理的基本原理的基本原理 基于查找表的基于查找表的FPGA的基本结构及逻辑实现原理的基本结构及逻辑
3、实现原理 FPGA的配置应用的配置应用 基于乘积项的基于乘积项的FPGA的基本结构及逻辑实现原理的基本结构及逻辑实现原理 FPGA设计与应用设计与应用1.2 FPGA1.2 FPGA的基本原理的基本原理的基本原理的基本原理 基于查找表的基于查找表的FPGA的基本结构及逻辑实现原理的基本结构及逻辑实现原理 查找表(查找表(Look Up TableLook Up Table,LUTLUT)本质上就是一个)本质上就是一个RAMRAM。目前。目前FPGAFPGA中多中多使用使用4 4输入的输入的LUTLUT,所以每一个,所以每一个LUTLUT可以看成一个有可以看成一个有4 4位地址线的位地址线的16
4、1161的的RAMRAM。当用户通过原理图或。当用户通过原理图或HDLHDL语言描述了一个逻辑电路以后,语言描述了一个逻辑电路以后,FPGAFPGA开发开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAMRAM。这。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。地址对应的内容,然后输出即可。FPGA设计与应用设计与应用1.2 FPGA1.2 FPGA的基本原理的基本原理的基本原理的基本原理 基于乘积项的基于乘积项的F
5、PGA的基本结构及逻辑实现原理的基本结构及逻辑实现原理 这种这种FPGA的结构可分为三块:宏单元的结构可分为三块:宏单元(Macrocell)、可编程连线()、可编程连线(PIA)和)和I/O控制块。控制块。宏单元是器件的基本结构,由它来实现基本的逻辑宏单元是器件的基本结构,由它来实现基本的逻辑功能;可编程连线负责信号传递,连接所有的宏单功能;可编程连线负责信号传递,连接所有的宏单元;元;I/O控制块负责输入输出的电气特性控制,比如控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。可以设定集电极开路输出,摆率控制,三态输出等。INPUT/GCLK1,INPUT
6、/GCLRn,INPUT/OE1,INPUT/OE2是全是全局时钟、清零和输出使能信号,局时钟、清零和输出使能信号,这几个信号有专用连线与器件中这几个信号有专用连线与器件中每个宏单元相连,信号到每个宏每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。单元的延时相同并且延时最短。FPGA设计与应用设计与应用1.3 FPGA1.3 FPGA的设计方法的设计方法的设计方法的设计方法 FPGA的常用设计方法包括的常用设计方法包括“自顶向下自顶向下”和和“自下而上自下而上”,目前大规模目前大规模FPGA设计一般选择设计一般选择“自顶向下自顶向下”的设计方法。的设计方法。所谓所谓“自顶向下自顶向下”
7、设计方法设计方法,简单地说简单地说,就是采用可完全独立于芯片厂商及就是采用可完全独立于芯片厂商及其产品结构的描述语言其产品结构的描述语言,在功能级对设计产品进行定义在功能级对设计产品进行定义,并结合功能仿真技术并结合功能仿真技术,以以确保设计的正确性确保设计的正确性,在功能定义完成后在功能定义完成后,利用逻辑综合技术利用逻辑综合技术,把功能描述转换成某把功能描述转换成某一具体结构芯片的网表文件一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布输出给厂商的布局布线器进行布局布线。布局布线结果还可反标回同一仿真器线结果还可反标回同一仿真器,进行包括功能和时序的后验证进行包括功能和
8、时序的后验证,以保证布局布线以保证布局布线所带来的门延时和线延时不会影响设计的性能。所带来的门延时和线延时不会影响设计的性能。FPGA设计与应用设计与应用1.4 FPGA1.4 FPGA的设计流程的设计流程的设计流程的设计流程 第一步:按照第一步:按照“自顶向下自顶向下”的设计方法进行系统划分。的设计方法进行系统划分。第二步:输入第二步:输入VHDL/Verilog HDL代码代码 第三步:将以上的设计输第三步:将以上的设计输入编译成标准的入编译成标准的VHDL/Verilog HDL文件,文件,然后将文件调入然后将文件调入HDL仿真仿真软件进行功能仿真软件进行功能仿真 第四步:利用综合器对源
9、代码进行综合优化处理,生成门级描述的网表文件 第五步:如果整个设计超出器件的宏单元或I/O单元资源,可以将设计划分到多片同系列的器件中。第六步:将试配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA中 FPGA设计与应用设计与应用 FPGAFPGA是近几年集成是近几年集成电电路中路中发发展最快的展最快的产产品。本章主要品。本章主要对对FPGAFPGA的的发发展展历历程、程、结结构原理和构原理和设计设计方法与流程做了介方法与流程做了介绍绍。随着可。随着可编编程程逻辑逻辑器件的高速器件的高速发发展,可展,可编编程程逻辑逻辑器件将器件将进进一步一步扩扩大其大其领领地。据地。据IC In
10、sightsIC Insights的数据的数据显显示,可示,可编编程程逻逻辑辑器件市器件市场场从从19991999年的年的2929亿亿美元增美元增长长到到20042004的的5656亿亿美元,几乎翻了一番。可美元,几乎翻了一番。可编编程程逻辑逻辑器件将器件将继续继续向着更高密度和更大容量方向向着更高密度和更大容量方向迈进迈进。1.5 1.5 1.5 1.5 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用第第2 2章章 硬件描述语言入门硬件描述语言入门 2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 2 2.3 .3 总结与结论总结与结论总结与结论总结与
11、结论 2 2.2 .2 Verilog HDLVerilog HDLVerilog HDLVerilog HDL入门入门入门入门 FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 VHDL的模块组织的模块组织 基本的数据类型及常量、变量、信号基本的数据类型及常量、变量、信号 运算符及表达式运算符及表达式 VHDL基本语句基本语句 典型电路的设计典型电路的设计 FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 VHDL的模块组织的模块组织 在在应应用用VHDLVHDL描述数字系描述数字系统结统结构构时时,我,
12、我们们使用使用实实体(体(entityentity)-结结构体构体(architecture)(architecture)结结构。构。实实体描述了数字系体描述了数字系统统的的输输入入输输出接口,同出接口,同时还时还定定义义了一些全局常量了一些全局常量以及与其他以及与其他电电路(程序模路(程序模块块或或逻辑图逻辑图模模块块)之)之间间必要必要连连接的拓扑接的拓扑结结构。构。但在但在实实体中,我体中,我们们并不并不对电对电路的路的逻辑逻辑做任何描述,可将其看成是一个所做任何描述,可将其看成是一个所谓谓的的逻辑逻辑“黑盒子黑盒子”。很明。很明显显,VHDLVHDL遵循遵循EDAEDA解决方案中自解决
13、方案中自顶顶向下的向下的设计设计原原则则,并能,并能够够保持良好的接口兼容性。保持良好的接口兼容性。FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 基本的数据类型及常量、变量、信号基本的数据类型及常量、变量、信号 数据类型 VHDL标准数据类型包括整数(INTEGER)、实数(REAL)、位(BIT)、位矢量(BIT_VECTOR)、标准逻辑(STD_LOGIC)、标准逻辑矢量(STD_LOGIC_VECTOR)、布尔量(BOOLEAN)、字符(CHARACTER)、字符串(STRING)及时间(TIME)类型。为了给设计者提供自由度和灵活性,VH
14、DL语言允许用户自定义数据类型,命令为:TYPE 数据类型名,数据类型名 IS 数据类型定义 常量 常量在设计中不会发生变化,可以增加程序的可读性,书写格式为:CONSTANT 常量名,常量名:数据类型:=表达式;例如:CONSTANT WAIT:TIME:=20ns;CONSTANT LEN:INTEGER:=16;变量 变量作用是对数据进行暂时存储,书写格式为:VARIABLE 变量名,变量名:数据类型:=表达式;例如:VARIABLE rd_en:STD_LOGIC:=1;VARIABLE cnt:INTEGER;在变量说明中,可以直接赋给变量初始值,也可以不赋初始值,如果没赋初始值,它
15、默认为变量数据类型的最小值。信号 在电路中,连线将元器件连接起来组成系统,在VHDL语言中,信号就起着连线的作用,书写格式为:SIGNAL 信号名,信号名:数据类型:=表达式;例如:SIGNAL wr_en:STD_LOGIC:=0;SIGNAL num1,num2:STD_LOGIC_VECTOR(7downto 0);FPGA设计与应用设计与应用2.1 2.1 VHDLVHDLVHDLVHDL入门入门入门入门 运算符及表达式运算符及表达式 VHDL基本语句基本语句 典型电路的设计典型电路的设计 VHDL语言的运算符有四类:逻辑运算符、算术运算符、并置运算符和关系运算符 传统的设计方式,设计
16、者在他的CAD工作站上以基本的电路组件来组织并构成一个完整的逻辑功能,这些最基本的电路组件如AND逻辑门、OR逻辑门或缓存器在CAD工作站的屏幕中以线条和图案来表示,每个组件都必须清楚定义输出入信号和功能。在VHDL的语言中,这种所谓的SYMBOL不复存在,VHDL以实体的描述来表示一个传统线路中的SYMBOL。本节中主要通过例子程序使读者初步理解VHDL的语法构成,书中介绍的是一个加法器完整的VHDL语句描述,包括注释、库文件说明、实体、结构体、进程语句、条件语句、例化语句等。2个4位输入信号a和b,进位输入cin,输出4位结果sum,输出向下一极进位信号cout,整个程序都由组合逻辑实现。
17、FPGA设计与应用设计与应用Verilog HDL的模块组织的模块组织 基本的数据类型及常量、变量、信号基本的数据类型及常量、变量、信号 运算符及表达式运算符及表达式 Verilog HDL基本语句基本语句 典型电路的设计典型电路的设计 2 2.2 .2 Verilog HDLVerilog HDLVerilog HDLVerilog HDL入门入门入门入门 FPGA设计与应用设计与应用2 2.3 .3 总结与结论总结与结论总结与结论总结与结论 这一章我们主要学习了一些这一章我们主要学习了一些HDLHDL语言的基本语法与我们以往学习的语言的基本语法与我们以往学习的C C语言语言等、等、PASC
18、ALPASCAL等都有相似之处,要注意的是在学习中要有意识地把等都有相似之处,要注意的是在学习中要有意识地把HDLHDL语言的语言的语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握。语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握。FPGA设计与应用设计与应用第第3 3章章 简单电简单电路的路的HDLHDL设计设计 3.1 3.1 基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算 3 3.4 4 总结与结论总结与结论总结与结论总结与结论 3 3.2 .2 基本时序器件基本时序器件基本时序器件基本时序器件寄存器寄存器寄存器寄存器 3 3.3 3 基本简单数学运算基本简
19、单数学运算基本简单数学运算基本简单数学运算 FPGA设计与应用设计与应用3 3.1 1 基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算 与运算与运算 或运算或运算 异或运算异或运算 与非运算与非运算 2 2选选1 1多路选择器多路选择器 两位比较器两位比较器 FPGA设计与应用设计与应用3 3.2 2 基本时序器件基本时序器件基本时序器件基本时序器件寄存器寄存器寄存器寄存器 D D触发器触发器 T T触发器触发器 J-KJ-K触发器触发器 时序器件时序器件移位寄存器移位寄存器 FPGA设计与应用设计与应用3 3.3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单
20、数学运算 4 4位加法器位加法器 逐位进位加法器逐位进位加法器 超前进位加法器超前进位加法器进位选择加法器进位选择加法器 输入数据同比特位进行运算时,都要等待前一比特的进位信号状态完成(建议:用在位数不超过16位的加法器)。对于多位逐位进位加法器来说,也可采用流水方式改善性能。输入数据同比特位进行运算时,不需要等待前一比特的进位信号。实现速度比较快,但资源占用也比较大。建议使用在16位加法器上比较合适。对于位数较多的也可采用流水方式。由三个加法器组成,一个计算低字节;两个计算高字节。计算高字节的加法器一个令进位为1,另一个令进位为0。三部分同时计算,最后,低字节的进位选择是哪一个高字节器的输出
21、。对于位数较多的加法器,性能的提高比较明显,但资源相对占用较多。FPGA设计与应用设计与应用3 3.3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 4 4位计数器位计数器 逐位逐位进进位位计计数器数器 格雷格雷码码逐位逐位计计数器数器 流水式超前进位计数器流水式超前进位计数器 逐位进位计数器的特点是:每一位都要等前一位的进位输出有效后才开始变化,每一位模块之间用进位信号连接起来(推荐使用长度不超过16位)。应用逐位进位计数器的原理,并在其基础上加以改进,因为采用格雷码进行计数,每个状态变化时,只有1位信号发生改变,减少了毛刺现象的发生。应用超前进位计数器的基本原理加以
22、改进,使用流水技术,减少了进位信号的传输延时,大大提高了系统效率。FPGA设计与应用设计与应用3 3.3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 4 4位乘法器位乘法器 组组合合逻辑实现逻辑实现的乘法器的乘法器 移位相加乘法器移位相加乘法器 查查找表乘法器找表乘法器 移位相加乘法器实现简单,它的基本设计思想就是采用一种称之为迭代的方式,根据乘数的每一位是否为1进行计算,若为1则将被乘数移位相加,这种实现方式使得在乘法计算中,每算出一乘积项就加到乘积中,此时的积称作部分积。通过对部分积的逐步移位完成乘积项与乘数的位对齐相加,直至得出结果。这种方法硬件资源耗用较少,但
23、一个4位乘法需要4个周期才能得到结果,速度比较慢,也可采用这种思想,用全逻辑实现,但延时较大。因此,在高速的应用系统中,一般不采用该方法。查找表乘法器的基本设计思路就是将乘积直接存放在存储器中,将操作数(乘数和被乘数)作为地址访问存储器,得到的输出数据就是乘法运算的结果。加法器加法器树树乘法器乘法器 加法器树结合了移位相加乘法器和查找表乘法器的优点。事实上,从下面的示意图可看出,它采用了并行处理的架构,所以其速度快,由于主要采用与门逻辑实现逻辑功能,所以其资源耗费也较少。FPGA设计与应用设计与应用3 3.4 4 总结与结论总结与结论总结与结论总结与结论 数字系统往往由数据通路和控制通路组成,
24、本章主要数字系统往往由数据通路和控制通路组成,本章主要从从RTLRTL级对组成数字系统的基本模块进行讲解,可以说掌级对组成数字系统的基本模块进行讲解,可以说掌握了这部分内容,就可以完成一些简单的数字系统的设握了这部分内容,就可以完成一些简单的数字系统的设计了。计了。FPGA设计与应用设计与应用第第4 4章章 FPGAFPGA的同步的同步设计设计4.1 4.1 4.1 4.1 同步的定义同步的定义同步的定义同步的定义 4.4 4.4 4.4 4.4 中央允许产生器中央允许产生器中央允许产生器中央允许产生器 4.2 4.2 4.2 4.2 同步部件同步部件同步部件同步部件 4.3 4.3 4.3
25、4.3 状态产生状态产生状态产生状态产生 4.7 4.7 4.7 4.7 异步接口异步接口异步接口异步接口 4.5 4.5 4.5 4.5 同步清除同步清除同步清除同步清除 4.6 4.6 4.6 4.6 时钟歪斜的清除时钟歪斜的清除时钟歪斜的清除时钟歪斜的清除 4.8 4.8 4.8 4.8 总结与结论总结与结论总结与结论总结与结论 FPGA设计与应用设计与应用4 4.1 1 同步的定义同步的定义同步的定义同步的定义 对于静态同步设计,对于静态同步设计,我们称一个系统是同步的,假若:我们称一个系统是同步的,假若:1.1.每每个个边边缘缘敏敏感感部部件件的的时时钟钟输输入入是是一一次次时时钟钟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 设计 应用 教学
限制150内