《FPGA设计与应用.ppt》由会员分享,可在线阅读,更多相关《FPGA设计与应用.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA技术发展EDA技术应用对象EDA技术应用对象专用集成电路设计流程专用集成电路ASIC设计方法一般设计的流程Altera Altera 产品概述产品概述 Altera是最大的可编程逻辑器件供应商之一,总部位于美国硅谷圣侯赛。主要产品有:属于EPLD的 MAX3000/5000/7000/9000和 Classic系列;属于FPGA的FLEX6K/8K/10K、APEX20K、ACEX1K、APEX、Mercury、Excalibur、Stratix系列。PLD器件器件:CPLD:MAX3000/5000/7000/9000和Classic系列 FPGA:FLEX6K/8K/10K、APEX
2、20K、ACEX1K、APEX、Mercury、Excalibur、Stratix开发软件开发软件:MAX+PLUS:支持公司多款PLD器件,同时支持多种HDL语言,包括VHDL、Verilog HDL、AHDL。Quartus:主要支持公司几款高端产品,APEX、APEX20K、Mercury、Excalibur、Stratix,同时也支持多种HDL语言。硬件描述语言硬件描述语言硬件描述语言硬件描述语言:AHDL,只有自己公司的开发软件支持该语言,没有被IEEE认证。1.1 FPGA1.2 FPGA的基本原理的基本原理n可编程输入/输出单元n基本可编程逻辑单元n嵌入式块RAMn丰富的布线资源
3、n底层嵌入功能单元n内嵌专用硬核LAB(逻辑阵列块)LAB有8个LE以及它们的进位链、级联链、LAB控制信号与LAB局部互连组成。LE(逻辑单元)LE使FLEX10K结构中的最小单元,每个LE含有一个4输入查找表(LUT)、一个带有同步使能的可编程触发器、一个进位链和一个级联链。LE有4种工作模式:正常模式:简单逻辑功能、编译码应用;运算模式:+、-、*法器件、3输入函数;加/减计数模式;清除计数模式Fast Track(快速通道)Fast Track提供LE与器件I/O引脚之间的互联。Fast Track是遍布整个器件厂、宽的一系列水平和垂直的连续式布线通道。IOE(I/O单元)I/O 单元
4、由一个双向缓冲器和一个寄存器组成,提供6个专用的输入引脚。EPC EPC 配置器件配置器件 Altera的FPGA器件正常工作时,它的配置数据存储在SRAM中。由于SRAM的易失性,每次加电时,配置数据都必须重新构造。Altera的FPGA器件分两类配置方式:主动配置方式和被动配置方式。主动配置方式由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程;而被动配置方式则由外部计算机或控制其控制配置过程。在实验室中,常用计算机或控制器进行调试,因此可以使用被动配置方式。而实际系统中,一般采用被动配置方式。1.3 FPGA的设计方法的设计方法 FPGA的的常常用用设设计计方方法法包包括括“
5、自自顶顶向向下下”和和“自自下下而而上上”,目目前前大大规规模模FPGA设设计计一一般般选选择择“自自顶顶向向下下”的的设设计计方方法。法。所所谓谓“自自顶顶向向下下”设设计计方方法法,简简单单地地说说,就就是是采采用用可可完完全全独独立立于于芯芯片片厂厂商商及及其其产产品品结结构构的的描描述述语语言言,在在功功能能级级对对设设计计产产品品进进行行定定义义,并并结结合合功功能能仿仿真真技技术术,以以确确保保设设计计的的正正确确性性,在在功功能能定定义义完完成成后后,利利用用逻逻辑辑综综合合技技术术,把把功功能能描描述述转转换换成成某某一一具具体体结结构构芯芯片片的的网网表表文文件件,输输出出给
6、给厂厂商商的的布布局局布布线线器器进进行行布布局局布布线线。布布局局布布线线结结果果还还可可反反标标回回同同一一仿仿真真器器,进进行行包包括括功功能能和和时时序序的的后后验验证证,以以保保证证布布局局布布线线所所带带来来的的门门延延时时和线延时不会影响设计的性能。和线延时不会影响设计的性能。1.4 FPGA的设计流程的设计流程第一步:按照第一步:按照“自顶向下自顶向下”的设计方法进行系统划分。的设计方法进行系统划分。第二步:输入第二步:输入VHDL/Verilog HDL代码代码 第三步:将以上的设计输第三步:将以上的设计输入编译成标准的入编译成标准的VHDL/Verilog HDL文件,文件
7、,然后将文件调入然后将文件调入HDL仿真仿真软件进行功能仿真软件进行功能仿真 第四步:利用综合器对源第四步:利用综合器对源代码进行综合优化处理,代码进行综合优化处理,生成门级描述的网表文件生成门级描述的网表文件 第五步:如果整个设计超第五步:如果整个设计超出器件的宏单元或出器件的宏单元或I/O单单元资源,可以将设计划分元资源,可以将设计划分到多片同系列的器件中。到多片同系列的器件中。第六步:将试配器产生的第六步:将试配器产生的器件编程文件通过编程器器件编程文件通过编程器或下载电缆载入到目标芯或下载电缆载入到目标芯片片FPGA中中 设计输入设计输入1.5 FPGA常用开发工具常用开发工具 根据设
8、计流程与功能划分,上述EDA工具主要分为:设计输入工具、综合工具、仿真工具、实现与优化工具、后端辅助工具、验证与调试工具和系统级设计环境。QuartusII中集成的EDA开发工具可以分为两类:nAltera自己提供的软件工具n其它EDA厂商提供的软件工具,统称为第三方工具Quartus II 设计流程1.设计输入工具设计输入工具 常用的设计输入方法有HDL语言输入、原理图输入、IP Core输入和其它方法。2.综合工具综合工具 主 流 的 综 合 工 具 有 Synplicity公 司 的 Synplify、Synopsys公司的FPGA cComplilerII等3.仿真工具 业界最流行的仿
9、真工具是Modelsim。另外,Aldec公司的ActiveHDL也有相当广泛的用户群4.实现与优化工具实现与优化工具 实现与优化工具包含的面比较广。如果能较好的掌握这些工具,将大幅度提高设计者的水平,使设计工作更加 游 刃 有 余。QuartusII集 成 的 实 现 工 具 主 要 有Assignment Editor、Logiclock、Powerfitter、Timing Analyzer、Floorplan Editor、Chip Editor等。5.后端辅助工具后端辅助工具 QuartusII内嵌的后端辅助工具主要有Assembler、Programmer和PowerGauge6.
10、验证调试工具验证调试工具 QuartusII内 嵌 的 调 试 工 具 有 SignalTapII和SignalProbe。1.6 简单电路的简单电路的HDL设计设计1 1 基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算 2 2 基本时序器件基本时序器件基本时序器件基本时序器件寄存器寄存器寄存器寄存器 3 3 基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 1 1 基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算基本组合逻辑运算 与运算与运算 或运算或运算 异或运算异或运算 与非运算与非运算 2 2选选1 1多路选择器多路选择器 两位比较器两位比较器 2 2
11、 基本时序器件基本时序器件基本时序器件基本时序器件寄存器寄存器寄存器寄存器 D D触发器触发器 T T触发器触发器 J-KJ-K触发器触发器 时序器件时序器件移位寄存器移位寄存器 3.3.基本简单数学运算基本简单数学运算基本简单数学运算基本简单数学运算 4 4位加法器位加法器 逐位进位加法器逐位进位加法器 超前进位加法器超前进位加法器进位选择加法器进位选择加法器 输入数据同比特位进行运算时,都要等待前一比特的进位信号状态完成(建议:用在位数不超过16位的加法器)。对于多位逐位进位加法器来说,也可采用流水方式改善性能。输入数据同比特位进行运算时,不需要等待前一比特的进位信号。实现速度比较快,但资
12、源占用也比较大。建议使用在16位加法器上比较合适。对于位数较多的也可采用流水方式。由三个加法器组成,一个计算低字节;两个计算高字节。计算高字节的加法器一个令进位为1,另一个令进位为0。三部分同时计算,最后,低字节的进位选择是哪一个高字节器的输出。对于位数较多的加法器,性能的提高比较明显,但资源相对占用较多。4 4位计数器位计数器 逐位进位计数器逐位进位计数器 格雷码逐位计数器格雷码逐位计数器 流水式超前进位计数器流水式超前进位计数器 逐位进位计数器的特点是:每一位都要等前一位的进位输出有效后才开始变化,每一位模块之间用进位信号连接起来(推荐使用长度不超过16位)。应用逐位进位计数器的原理,并在
13、其基础上加以改进,因为采用格雷码进行计数,每个状态变化时,只有1位信号发生改变,减少了毛刺现象的发生。应用超前进位计数器的基本原理加以改进,使用流水技术,减少了进位信号的传输延时,大大提高了系统效率。4 4位乘法器位乘法器 组合逻辑实现的乘法器组合逻辑实现的乘法器 移位相加乘法器移位相加乘法器 查找表乘法器查找表乘法器 移位相加乘法器实现简单,它的基本设计思想就是采用一种称之为迭代的方式,根据乘数的每一位是否为1进行计算,若为1则将被乘数移位相加,这种实现方式使得在乘法计算中,每算出一乘积项就加到乘积中,此时的积称作部分积。通过对部分积的逐步移位完成乘积项与乘数的位对齐相加,直至得出结果。这种
14、方法硬件资源耗用较少,但一个4位乘法需要4个周期才能得到结果,速度比较慢,也可采用这种思想,用全逻辑实现,但延时较大。因此,在高速的应用系统中,一般不采用该方法。查找表乘法器的基本设计思路就是将乘积直接存放在存储器中,将操作数(乘数和被乘数)作为地址访问存储器,得到的输出数据就是乘法运算的结果。加法器树乘法器加法器树乘法器 加法器树结合了移位相加乘法器和查找表乘法器的优点。事实上,从下面的示意图可看出,它采用了并行处理的架构,所以其速度快,由于主要采用与门逻辑实现逻辑功能,所以其资源耗费也较少。总结与结论总结与结论总结与结论总结与结论 综综上上所所述述,我我们们可可以以看看到到在在新新世世纪纪
15、,以以FPGAFPGA为为代代表表的的数数字字系系统统现现场场集集成技术正朝着以下几个方向发展。成技术正朝着以下几个方向发展。1 1、随着便携式设备需求的增长,对现场可编程器件的低压、低功耗的、随着便携式设备需求的增长,对现场可编程器件的低压、低功耗的要求日益迫切。要求日益迫切。2 2、芯片向大规模系统芯片挺进,力求在大规模应用中取代、芯片向大规模系统芯片挺进,力求在大规模应用中取代ASICASIC。3 3、为增强市场竞争力,各大厂商都在积极推广其知识产权(、为增强市场竞争力,各大厂商都在积极推广其知识产权(IPIP)核心)核心库。库。4 4、动态可重构技术的发展,将带来系统设计方法的转变。、
16、动态可重构技术的发展,将带来系统设计方法的转变。vmodule cnt10(clk,rst,en,cq,cout);vinput clk,rst,en;voutput3:0 cq;voutput cout;vreg3:0cq;vreg cout;valways(posedge clk or posedge rst)v beginv if(rst)cq=0;v else if(en)v beginv if(cq9)cq=cq+1;v else cq=0;v endv endvalways(posedge clk or posedge rst)vbeginv if(rst)cout=0;v els
17、e if(cq=9)cout=1;v else cout=0;vendvendmodulev异步清零和同步时钟加法计数器vmodule led7s(in,out);vinput3:0 in;voutput6:0 out;vreg6:0 out;valways(in)vbeginv case(in)v 4b0000:out=7b0111111;v 4b0001:out=7b0000110;v 4b0010:out=7b1011011;v 4b0011:out=7b1001111;v 4b0100:out=7b1100110;v 4b0101:out=7b1101101;v 4b0110:out=
18、7b1111101;v 4b0111:out=7b0000111;v 4b1000:out=7b1111111;v 4b1001:out=7b1101111;v 4b1010:out=7b1110111;v 4b1011:out=7b1111100;v 4b1100:out=7b0111001;v 4b1101:out=7b1011110;v 4b1110:out=7b1111001;v 4b1111:out=7b1110001;vdefault out=7bx;v endcasevendvendmodulev7段数码显示译码器设计vmodule led8s(SG,BT,clk);vinput
19、 clk;voutput6:0SG;voutput7:0BT;vreg7:0BT;vreg2:0cnt8;vreg6:0SG;valways(posedge clk)vcnt8=cnt8+1;valways(cnt8)vcase(cnt8)v 3b000:BT=8b00000001;v 3b001:BT=8b00000010;v 3b010:BT=8b00000100;v 3b011:BT=8b00001000;v 3b100:BT=8b00010000;v 3b101:BT=8b00100000;v 3b110:BT=8b01000000;v 3b111:BT=8b10000000;v de
20、fault:BT=8bx;vendcasevalways(BT)v case(BT)v v 8b00000001:SG=7b0000110;v 8b00000010:SG=7b1001111;v 8b00000100:SG=7b1101101;v 8b00001000:SG=7b0000111;v 8b00010000:SG=7b1101111;v 8b00100000:SG=7b1111100;v 8b01000000:SG=7b1011110;v 8b10000000:SG=7b1110001;v endcase v vendmodulev8位数码扫描显示电路设计vmodule dvf(fout,D,clk);vinput7:0 D;vinput clk;voutput fout;vreg7:0 cnt;vreg fout;valways(posedge clk)v begin v if(cnt=8b11111111)v beginv fout=fout;v cnt=D;v endv elsev cnt=cnt+1;v endvendmodule数控分频器的设计