FPGA设计与应用.ppt
《FPGA设计与应用.ppt》由会员分享,可在线阅读,更多相关《FPGA设计与应用.ppt(73页珍藏版)》请在三一办公上搜索。
1、第1章 FPGA概述,1.1 FPGA的发展历程,1.3 FPGA的设计方法,1.2 FPGA的基本原理,1.4 FPGA的设计流程,1.5 总结与结论,1.1 FPGA的发展历程,早期,FPGA,1.2 FPGA的基本原理,基于查找表的FPGA的基本结构及逻辑实现原理,FPGA的配置应用,基于乘积项的FPGA的基本结构及逻辑实现原理,1.2 FPGA的基本原理,基于查找表的FPGA的基本结构及逻辑实现原理,查找表(Look Up Table,LUT)本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的161的RAM。当用户通过原理图或HDL语言
2、描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。,1.2 FPGA的基本原理,基于乘积项的FPGA的基本结构及逻辑实现原理,这种FPGA的结构可分为三块:宏单元(Macrocell)、可编程连线(PIA)和I/O控制块。宏单元是器件的基本结构,由它来实现基本的逻辑功能;可编程连线负责信号传递,连接所有的宏单元;I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。,INPUT/GCLK1,INPUT/GCLRn,I
3、NPUT/OE1,INPUT/OE2是全局时钟、清零和输出使能信号,这几个信号有专用连线与器件中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。,1.3 FPGA的设计方法,FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模FPGA设计一般选择“自顶向下”的设计方法。,所谓“自顶向下”设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布线结果还可反标回同一仿真器,进
4、行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。,1.4 FPGA的设计流程,第一步:按照“自顶向下”的设计方法进行系统划分。,第二步:输入VHDL/Verilog HDL代码,第三步:将以上的设计输入编译成标准的VHDL/Verilog HDL文件,然后将文件调入HDL仿真软件进行功能仿真,第四步:利用综合器对源代码进行综合优化处理,生成门级描述的网表文件,第五步:如果整个设计超出器件的宏单元或I/O单元资源,可以将设计划分到多片同系列的器件中。,第六步:将试配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA中,FPGA是近几年集成电路中发展最
5、快的产品。本章主要对FPGA的发展历程、结构原理和设计方法与流程做了介绍。随着可编程逻辑器件的高速发展,可编程逻辑器件将进一步扩大其领地。据IC Insights的数据显示,可编程逻辑器件市场从1999年的29亿美元增长到2004的56亿美元,几乎翻了一番。可编程逻辑器件将继续向着更高密度和更大容量方向迈进。,1.5 总结与结论,第2章 硬件描述语言入门,2.1 VHDL入门,2.3 总结与结论,2.2 Verilog HDL入门,2.1 VHDL入门,2.1 VHDL入门,VHDL的模块组织,在应用VHDL描述数字系统结构时,我们使用实体(entity)-结构体(architecture)结
6、构。实体描述了数字系统的输入输出接口,同时还定义了一些全局常量以及与其他电路(程序模块或逻辑图模块)之间必要连接的拓扑结构。但在实体中,我们并不对电路的逻辑做任何描述,可将其看成是一个所谓的逻辑“黑盒子”。很明显,VHDL遵循EDA解决方案中自顶向下的设计原则,并能够保持良好的接口兼容性。,2.1 VHDL入门,基本的数据类型及常量、变量、信号,数据类型 VHDL标准数据类型包括整数(INTEGER)、实数(REAL)、位(BIT)、位矢量(BIT_VECTOR)、标准逻辑(STD_LOGIC)、标准逻辑矢量(STD_LOGIC_VECTOR)、布尔量(BOOLEAN)、字符(CHARACTE
7、R)、字符串(STRING)及时间(TIME)类型。为了给设计者提供自由度和灵活性,VHDL语言允许用户自定义数据类型,命令为:TYPE 数据类型名,数据类型名 IS 数据类型定义,常量 常量在设计中不会发生变化,可以增加程序的可读性,书写格式为:CONSTANT 常量名,常量名:数据类型:=表达式;例如:CONSTANT WAIT:TIME:=20ns;CONSTANT LEN:INTEGER:=16;,变量 变量作用是对数据进行暂时存储,书写格式为:VARIABLE 变量名,变量名:数据类型:=表达式;例如:VARIABLE rd_en:STD_LOGIC:=1;VARIABLE cnt:
8、INTEGER;在变量说明中,可以直接赋给变量初始值,也可以不赋初始值,如果没赋初始值,它默认为变量数据类型的最小值。,信号 在电路中,连线将元器件连接起来组成系统,在VHDL语言中,信号就起着连线的作用,书写格式为:SIGNAL 信号名,信号名:数据类型:=表达式;例如:SIGNAL wr_en:STD_LOGIC:=0;SIGNAL num1,num2:STD_LOGIC_VECTOR(7downto 0);,2.1 VHDL入门,运算符及表达式,VHDL基本语句,典型电路的设计,VHDL语言的运算符有四类:逻辑运算符、算术运算符、并置运算符和关系运算符,传统的设计方式,设计者在他的CAD
9、工作站上以基本的电路组件来组织并构成一个完整的逻辑功能,这些最基本的电路组件如AND逻辑门、OR逻辑门或缓存器在CAD工作站的屏幕中以线条和图案来表示,每个组件都必须清楚定义输出入信号和功能。在VHDL的语言中,这种所谓的SYMBOL不复存在,VHDL以实体的描述来表示一个传统线路中的SYMBOL。,本节中主要通过例子程序使读者初步理解VHDL的语法构成,书中介绍的是一个加法器完整的VHDL语句描述,包括注释、库文件说明、实体、结构体、进程语句、条件语句、例化语句等。2个4位输入信号a和b,进位输入cin,输出4位结果sum,输出向下一极进位信号cout,整个程序都由组合逻辑实现。,2.2 V
10、erilog HDL入门,2.3 总结与结论,这一章我们主要学习了一些HDL语言的基本语法与我们以往学习的C语言等、PASCAL等都有相似之处,要注意的是在学习中要有意识地把HDL语言的语句与硬件结构模块联系起来,通过理解物理意义,牢牢掌握。,第3章 简单电路的HDL设计,3.1 基本组合逻辑运算,3.4 总结与结论,3.2 基本时序器件寄存器,3.3 基本简单数学运算,3.1 基本组合逻辑运算,与运算,或运算,异或运算,与非运算,2选1多路选择器,两位比较器,3.2 基本时序器件寄存器,D触发器,T触发器,J-K触发器,时序器件移位寄存器,3.3 基本简单数学运算,4位加法器,输入数据同比特
11、位进行运算时,都要等待前一比特的进位信号状态完成(建议:用在位数不超过16位的加法器)。对于多位逐位进位加法器来说,也可采用流水方式改善性能。,输入数据同比特位进行运算时,不需要等待前一比特的进位信号。实现速度比较快,但资源占用也比较大。建议使用在16位加法器上比较合适。对于位数较多的也可采用流水方式。,由三个加法器组成,一个计算低字节;两个计算高字节。计算高字节的加法器一个令进位为1,另一个令进位为0。三部分同时计算,最后,低字节的进位选择是哪一个高字节器的输出。对于位数较多的加法器,性能的提高比较明显,但资源相对占用较多。,3.3 基本简单数学运算,4位计数器,流水式超前进位计数器,逐位进
12、位计数器的特点是:每一位都要等前一位的进位输出有效后才开始变化,每一位模块之间用进位信号连接起来(推荐使用长度不超过16位)。,应用逐位进位计数器的原理,并在其基础上加以改进,因为采用格雷码进行计数,每个状态变化时,只有1位信号发生改变,减少了毛刺现象的发生。,应用超前进位计数器的基本原理加以改进,使用流水技术,减少了进位信号的传输延时,大大提高了系统效率。,3.3 基本简单数学运算,4位乘法器,移位相加乘法器实现简单,它的基本设计思想就是采用一种称之为迭代的方式,根据乘数的每一位是否为1进行计算,若为1则将被乘数移位相加,这种实现方式使得在乘法计算中,每算出一乘积项就加到乘积中,此时的积称作
13、部分积。通过对部分积的逐步移位完成乘积项与乘数的位对齐相加,直至得出结果。这种方法硬件资源耗用较少,但一个4位乘法需要4个周期才能得到结果,速度比较慢,也可采用这种思想,用全逻辑实现,但延时较大。因此,在高速的应用系统中,一般不采用该方法。,查找表乘法器的基本设计思路就是将乘积直接存放在存储器中,将操作数(乘数和被乘数)作为地址访问存储器,得到的输出数据就是乘法运算的结果。,加法器树结合了移位相加乘法器和查找表乘法器的优点。事实上,从下面的示意图可看出,它采用了并行处理的架构,所以其速度快,由于主要采用与门逻辑实现逻辑功能,所以其资源耗费也较少。,3.4 总结与结论,数字系统往往由数据通路和控
14、制通路组成,本章主要从RTL级对组成数字系统的基本模块进行讲解,可以说掌握了这部分内容,就可以完成一些简单的数字系统的设计了。,第4章 FPGA的同步设计,4.1 同步的定义,4.4 中央允许产生器,4.2 同步部件,4.3 状态产生,4.7 异步接口,4.5 同步清除,4.6 时钟歪斜的清除,4.8 总结与结论,4.1 同步的定义,对于静态同步设计,我们称一个系统是同步的,假若:1.每个边缘敏感部件的时钟输入是一次时钟输入的某个函数;并且仍是象一次时钟那样的时钟信号。2.所有存储元件(包括计数器)都是边缘敏感的,在系统中没有电平敏感存储元件。,4.2 同步部件,基本的同步部件,同步清除D型触
15、发器,构成同步基本部件基础的是边缘敏感D型触发器。其基本性质为,在时钟CLK输入的上升边之后,D输入端的逻辑值出现在Q输出端,而其补值出现在Q非输出端。这一过程就是取样过程。,我们希望FPGA有一个性能,即全局复位,这是一个测试要求。在FPGA的同步设计中应避免使用异步清除D型触发器(它破坏了同步系统的两个条件),应代之以同步清除。这样就产生了第一个新的基本部件:带同步清除的D型触发器,4.2 同步部件,T型触发器,E型触发器,最有用的存储单元之一是一种锁存器,它能够保持一个数据直到通知它锁存另一数据时为止,称为E型触发器。它有一个从其输出端到其输入端的反馈环路,使其能保持数据长达若干个时钟周
16、期。,4.2 同步部件,R型触发器,同步RS触发器,请求(R型)触发器是唯一具有一个异步电平敏感输入的,后者用于应答信号。同步清除用于全局复位,如在测试中用,它有两种结构。,同步RS触发器有两个清除端,一个本地清除R和一个全局清除GC。当复位端R和置位端S都为高电平时,没有不确定状态。在同步RS触发器复位优先于置位。,4.3 状态产生,状态的无条件执行,在所有标准部件中最重要的是同步二进制计数器(SBC),SBC有许多用途,其中一种即状态产生.,通常用单状态译码器完成状态的无条件执行,此译码器连接在主计数器上。下图所示为实现这一原理的连续平均电路。它顺序取16项数据,并输出其和。每16项数据之
17、和锁存于输出寄存器,并将累加器清除。,4.3 状态产生,状态的有条件执行,在所有标准部件中最重要的是同步二进制计数器(SBC),SBC有许多用途,其中一种即状态产生.,在根据无条件执行状态序列原则设计的电路中,转移仅限于用以实现非二进制的无条件转移类型是。其它各种电路要求用有条件转移或有条件执行一状态序列。,4.4 中央允许产生器,用不良设计方法设计的中央时钟产生器,可以用等效的同步式电路取代。后者即中央允许产生器。这一设计中采用了本章介绍的所有设计方法。图4-27中示出的简单允许产生器能够推广到和任何有条件或无条件状态的执行相结合。,4.5 同步清除,虽然本章中作为单元电路介绍的同步清除在功
18、能上,在某些情况下,等效于异步清除,但是当一电路有全局复位功能时优先选用同步清除的理由如下:1、某些电路具有自己的同步清除功能。可以将其用于全局清除,以节省资源。2、混合使用全局异步清除和局部同步清除会使电路功能混乱,导致产生异常情况。3、在许多情况下,采用同步清除的电路比异步的占用较少空间。4、使RAM和寄存器列一类电路元件,初始化时,要求在连续几个时钟周期中清除,这意味着同步清除。,4.6 时钟歪斜的清除,同步设计的最重要求之一是将时钟歪斜减小到可以接受的程度。假设时钟缓冲符合第三章中的规则,则还有另外两种设计方法可以采用。第一种情况是从一D型触发器的Q输出端直接馈给另一触发器的 D输入端
19、时,延迟不足以满足第二个D型触发器对保持时间的要求。解决方法是使用一个低驱动强度的源D型触发器,并且不加缓冲。高的相对扇出有助于改进保持时间。第二种设计方法是在各个受时钟控制的部件之后分别接入缓冲器,并在两个缓冲输出端之间接一平衡网络。若两支路由于某种原因不平衡,则有一小电流通过网络,从而消除时钟歪斜。,4.7 异步接口,互相同步的系统,互相异步的系统,握手发送数据的安全性,同步系统的异步输入,亚稳定性,微处理器存储器映射中的FPGA,4.7 异步接口,互相同步的系统,我们要讨论的第一种接口是普通的互相同步的两个同步系统的接口。为了满足这一类的条件,两系统必须有一公共外部时钟。用允许标志如图所
20、示,通知在两系统之间传送数据。允许信号在时钟上升沿后经过时钟至Q端的传播时间变为有效,并保持有效至下一个时钟上升沿之后时钟至Q端的时间。故它包含一有效时钟边缘。,4.7 异步接口,互相异步的系统,更为常见的一类异步接口是互相异步的两个内部同步的系统之间的接口。这时,重要的是,按照同步设计原理,处理请求的信号交换(握手)功能需要采用R型触发器,其应用示于图中。,4.7 异步接口,同步系统的异步输入,本节讨论一同步系统处理独立的异步输入的方法。若FPGA只要求对单个异步到达的事件起响应,则存储立即式请求触发器,如图所示的电路,比同步R型触发器更简单。它由一D型触发器构成,其D输入端接到逻辑“1”上
21、,异步输入连接到其时钟端。D型触发器用于此目的比异步RS触发器更适合,因为自边缘敏感D型触发器来的请求,在收到之后几乎立刻就被接收系统用上节所述方法消除。另一方面,电平敏感异步RS触发器则要求输入端上的激励(它可能是逻辑电平的阶跃变化)去掉才行。,4.7 异步接口,握手发送数据的安全性,一般说来,围绕握手过程的保护措施愈多,数据完整性愈大,但是系统性能愈低。当通过一异步接口发送数据时,数据错误概率可以小到忽略不计,但是要以系统带宽作为代价。,4.7 异步接口,微处理器存储器映射中的FPGA,使FPGA和一微处理器通信的简单方法是把它放在微处理器的存储器映射中。微处理器,利用片选和写允许(WE)
22、控制线,记入数据或查询数据位置,就好像FPGA是RAM。WE的上升沿使数据存储在FPGA输入端的电平敏感锁存器中,同时使一异步式请求触发器置位。,4.7 异步接口,亚稳定性,用于对输入数据流取样的边缘敏感触发器,只要在有效时钟边缘的两边的临界建立和保护时间中保持稳定则将正确地锁存数据。若在此期间输入数据改变,则输出将不能预测,产生所谓亚稳定现象。触发器在回到一逻辑状态之前可能进入高电平和低电平之间的几种亚稳定序列之一,如图所示。,4.8 总结与结论,当数字系统的复杂度进一步提高,数据流的速度要求进一步提升时,IC设计者就要很谨慎的考虑数字系统的时序问题,在对数字系统的定时关系进行准确的分析的基
23、础上掌握好同步技术是高水平的IC设计者所必需的,也值得每个FPGA设计者研读。,第5章 常见的FPGA设计实例,5.1 移位寄存器设计实例,5.4 存储器设计实例,5.2 计数器设计实例,5.3 状态机设计实例,5.5 门禁系统设计实例,5.6 总结与结论,5.1 移位寄存器设计实例,m序列的产生和性质,对具体某一信号的连续存储,m序列是最常用的一种伪随机序列,它是最长线性反馈移位寄存器序列的简称,是由带线性反馈的移位寄存器产生的序列,并且具有最长周期。,在实际设计中,如密码门、ATM提款机一类需要手动输入信息的地方,需要将某一具体信号进行连续存储,常会使用到这种移位寄存器。,5.2 计数器设
24、计实例,几种实际应用的计数器电路。(1)跟踪并计算某一信号出现的次数(2)作控制信号的条件,有时某些控制信号是根据计数器的某种状态的出现而发生改变,计数器负责跟踪另外一个信号,例如移位寄存器在先动作一拍的前提下才进行下一步的操作,或在动作几拍,或在另一个信号出现几次的情况下改变以前的动作状态等情况。计数器在这种情况下起到了过渡性作用。,5.3 状态机设计实例,状态机可以认为是组合逻辑和寄存器逻辑的特殊组合,它一般包括两个部分:组合逻辑部分和寄存器部分。寄存器用于存储状态,组合电路用于状态译码和产生输出信号。状态机的下一个状态及输出,不仅与输入信号有关,而且还与寄存器当前所处的状态有关。状态机有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 设计 应用
链接地址:https://www.31ppt.com/p-5431425.html