1、No. 1Feb 2009内容内容No. 2Feb 2009什么是什么是FPGA?FPGA?FPGA(Field Programmable Gate Array)即现场可编程门阵列,它是在PAL(Programmable Array Logic) 、GAL(Globle Programmable Logic)、EPLD(Electrically Programmable Logic Device )等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的使用非常灵活,同一片
2、FPGA通过不同的编程数据可以产生不同的电路功能。 No. 3Feb 2009FPGAFPGA的结构特点的结构特点FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程互连。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。 No. 4Feb 2009什么是什么是CPLDCPLD?CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cel
3、l)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于 CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点 No. 5Feb 2009FPGAFPGA与与CPLDCPLD的各自特点的各自特点 更适合完成各种算法和组合逻辑, 更适合于完成时序逻辑。换句话说,更适合于触发器丰富的结构,而更适合于触发器有限而乘积项丰富的结构。的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而的分段式布线结构决定了其延迟的不可预测性。在编
4、程上比具有更大的灵活性。通过修改具有固定内连电路的逻辑功能来编程,主要通过改变内部连线的布线来编程; 可在逻辑门下编程,而是在逻辑块下编程。的集成度比高,具有更复杂的布线结构和逻辑实现。比使用起来更方便。的编程采用2或技术,无需外部存储器芯片,使用简单。而的编程信息需存放在外部存储器上,使用方法复杂。No. 6Feb 2009什么是什么是CPLDCPLD? 的速度比快,并且具有较大的时间可预测性。这是由于是门级编程,并且之间采用分布式互联,而是逻辑块级编程,并且其逻辑块之间的互联是集总式的。在编程方式上,主要是基于2或存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。又可分为在
5、编程器上编程和在系统编程两类。大部分是基于编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。保密性好,保密性差。一般情况下,的功耗要比大,且集成度越高越明显 No. 7Feb 2009内容内容什么是什么是FPGA?实验室现有的实验室现有的FPGA型号型号Altera FPGA 的使用和相关软件介绍的使用和相关软件介绍FPGA开发板操作演示开发板操作演示No. 8Feb 2009现有的现有的FPGAFPGA型号型号我们实验室的我们实验室的FPGA主要有:主要有:STRATIX II 系列系列(
6、90-nm) (EP2S90、EP2S130)、)、STRATIXIII系列(系列(EP3S150)(65-nm )No. 9Feb 2009现有的现有的FPGAFPGA开发板开发板STRATIX II STRATIX IIINo. 10Feb 2009ALTERA ALTERA 公司及其产品介绍公司及其产品介绍Altera于1983年创立 ,是可编程芯片逻辑解决方案倡导者 ,自这项技术发明以来,Altera一直站在可编程逻辑创新发展的前沿。目前,Altera的全球市场份额已排在第二位,仅次于XilinxAltera产品系列 Altera目前的FPGA产品有Stratix系列(IV)、Arri
7、a系列(II)、Cyclone 系列(III)No. 11Feb 2009内容内容什么是什么是FPGA?实验室现有的实验室现有的FPGA型号型号FPGA 的一般步骤和相关软件介绍的一般步骤和相关软件介绍FPGA开发板操作演示开发板操作演示No. 12Feb 2009FPGAFPGA的设计步骤的设计步骤FPGA开发流程和IC的开发流程相似,主要分为以下几个部分: 1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来; 2)功能验证,也就是前仿真,利用Modelsim、VCS等仿真工具对设计进行仿真,检验设计的功能是否正确;常用的仿真工具有Model Tech
8、公司的ModelSim,Synopsys公司的VCS,Cadence公司的NC-Verilog和NC-VHDL,Aldec公司的 Active HDL VHDL/Verilog HDL等。仿真过程能及时发现设计中的错误,加快了设计进度,提高了设计的可靠性。 3)综合,综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出vqm/edf/edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。常用的专业综合优化工具有Synplicity公司的Synplify/Synplify Pro、Amplify等综合工具,Synopsy
9、s公司的FPGA Compiler II综合工具(Synopsys公司将停止发展FPGA Express软件,而转到FPGA Compiler II平台),Exemplar Logic公司出品的LeonardoSpectrum等综合工具。另外FPGA/CPLD厂商的集成开发环境也带有一些综合工具,如Xilinx ISE中的XST等。No. 13Feb 2009FPGAFPGA的设计步骤的设计步骤 4)布局布线,综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单
10、元的实际连接与映射。这种实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有生产者最了解器件内部的结构,如在ISE的集成环境中完成实现与布局布线的工具是Flow Engine。 5)时序验证,其目的是保证设计满足时序要求,即setup/hold time符合要求,以便数据能被正确的采样。时序验证的主要方法包括STA(Static TimingAnalysis)和后仿真。在后仿真中将布局布线的时延反标到设计中去,使仿真既包含门延时,又包含线延时信息。这种后仿真是最准确的仿真,能较好地反映芯片的实际工作情况。仿真工具与综合前仿真工具相同。 6)生成并下载BIT或PROM文件(sof/p
11、of/jic),进行板级调试。在以上几个主要开发步骤当中,属于验证的有功能仿真和时序验证两个步骤,由于前仿真和后仿真涉及验证环境的建立,需要耗费大量的时间,而在STA中对时序报告进行分析也是一个非常复杂的事情,因此验证在整个设计流程中占用了大量的时间,在复杂的FPGA/IC设计中,验证所占的时间估计在6070之间。相比较而言, FPGA设计流程的其他环节由于需要人为干预的东西比较少,例如综合、布局布线等流程,基本所有的工作都由工具完成,设置好工具的参数之后,结果很快就可以出来,因此所花的时间精力要比验证少的多。No. 14Feb 2009相关软件相关软件主要用到的软件有两个:Synplify和
12、QuartusSnplify 用来做综合Quartus 用来做布局布线、时序验证、生成烧录文件No. 15Feb 2009Synplify Synplify 几个版本的区别几个版本的区别1) Synplify & Synplify Pro : 基本的 synthesis tools2) Synplify Premier : 增加 physical synthesis ( Just like physical compiler instead of Design compiler) 选项, 可以在 logic synthesis 过程中预做 floorplan optimiztion, 得出更好
13、的结果.3) Synplify Premier with DP : DP (Design planning) 增加可以手动做 design floorplanning 及 physical Analyst, (guide the physical synthesis flow) No. 16Feb 2009Synplify pro Synplify pro 界面界面No. 17Feb 2009Synplify Pro FeaturesSynplify Pro FeaturesNo. 18Feb 2009Synplify Premier Synplify Premier 界面界面No. 19Fe
14、b 2009Synplify Premier FeaturesSynplify Premier FeaturesNo. 20Feb 2009Quartus II Quartus II 的界面的界面No. 21Feb 2009Quartus II FeaturesQuartus II Features主要功能主要功能 1)可利用原理图、结构框图、可利用原理图、结构框图、VerilogHDL、AHDL和和VHDL完成电路完成电路描述,并将其保存为设计实体文件;描述,并将其保存为设计实体文件; 2) 功能强大的逻辑综合工具;功能强大的逻辑综合工具; 3)完备的电路功能仿真与时序逻辑仿真工具;完备的电
15、路功能仿真与时序逻辑仿真工具; 4)定时定时/时序分析与关键路径延时分析;时序分析与关键路径延时分析; 5)可使用可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;逻辑分析工具进行嵌入式的逻辑分析; 6)支持软件源文件的添加和创建,并将它们链接起来生成编程文件;支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 7)使用组合编译方式可一次完成整体设计流程;使用组合编译方式可一次完成整体设计流程; 8)自动定位编译错误;自动定位编译错误; 9)高效的期间编程与验证工具;高效的期间编程与验证工具; 10)可读入标准的可读入标准的EDIF网表文件、网表文件、VHDL网表文件和网表文件和Verilog网表文件;网表文件; 13)能生成第三方能生成第三方EDA软件使用的软件使用的VHDL网表文件和网表文件和Verilog网表文件。网表文件。 No. 22Feb 2009内容内容什么是什么是FPGA?实验室现有的实验室现有的FPGA型号型号Altera FPGA 的使用和相关软件介绍的使用和相关软件介绍FPGA开发板操作演示开发板操作演示No. 23Feb 2009FPGAFPGA开发板操作演示开发板操作演示 以下进行以下进行FPGA开发的具体操作演示开发的具体操作演示