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