您好,欢迎访问三七文档
SOC设计基础2011.8.19SOC内容FPGA与CPLDFPGA设计流程通用ASIC设计流程IC设计常用工具介绍ASIC中心SOC设计流程什么是FPGA?FPGA(FieldProgrammableGateArray)即现场可编程门阵列,它是在PAL(ProgrammableArrayLogic)、GAL(GlobleProgrammableLogic)、EPLD(ElectricallyProgrammableLogicDevice)等可编程器件的基础上进一步发展的产物它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的使用非常灵活,同一片FPGA通过不同的编程可以产生不同的电路功能。专用集成电路(ASIC)分为两类:全定制集成电路——按规定的功能、性能要求,对电路的结构布局、布线均进行专门设计,生产出芯片。半定制集成电路——由厂家提供一定规格的功能块,如门阵列、标准单元、可编程逻辑器件等,按用户要求利用专门设计的软件进行必要的互连,从而设计出所需要的集成电路。FPGA的结构特点FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程互连。可编程逻辑功能块:实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块:完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连:包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。典型的FPGA结构什么是CPLD?CPLD主要是由可编程逻辑宏单元(LMCLogicMacroCell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。FPGA与CPLD的比较①CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。②在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程。③CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂,需要先把代码烧写进专门的配置芯片(比如我们测试用的DE3板,就有专门的配置芯片EPCS64/128)。FPGA与CPLD的比较(续)④CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,CLB之间采用分布式互联;CPLD是逻辑块级编程。⑤在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。内容FPGA与CPLDFPGA设计流程通用ASIC设计流程IC设计常用工具介绍ASIC中心SOC设计流程FPGA设计流程一般的FPGA设计流程设计输入行为仿真综合优化功能仿真布局布线时序仿真下载配置⑴设计输入1)设计输入,利用HDL文本输入工具、原理图输入工具、IP输入工具等把所要设计的电路描述出来。工具:Altera的QuartusII、Xilinx(赛灵思)的ISE①图形输入:原理图输入、状态图输入、波形图输入原理图方式应用比较广泛,原理图输入对原理图进行功能验证后再进行编译即可转换为网表文件。但此方法一般仅适用于小电路。对于稍大的电路,其可读性、可移植性差。波形图主要应用于仿真功能测试时产生某种测试信号或激励。状态图常用于建模中。②HDL文本输入:主流输入方式,是最有效的方式,包括VerilogHDL和VHDL。其可读性、可移植性好、便于存档。③IP核输入:直接调用一些成熟的IP核进行配置和使用2)行为仿真,即前仿真(也称为综合前仿真),是RTL行为级仿真。利用Modelsim、VCS等仿真工具对设计进行验证,检验设计的功能是否正确。常用的仿真工具有MentorGraphic的ModelSim,Synopsys的VCS,Cadence的NC-Verilog/NC-VHDL等。该阶段仿真验证的代码是不可综合的,与具体电路无关。可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。所谓的可综合的Verilog语法,是指硬件能够实现的一些语法,也称为RTL(寄存器传输级)语法。可综合的语法是Verilog可用语法中很小的一个子集。⑵行为仿真⑶综合3)综合,也称为综合优化,是将前面输入的原理图、HDL语言描述转化为最基本的与或非门的连接关系(门级网表netlist)的过程,并根据要求(约束条件)优化所生成的门级逻辑连接,输出vqm/edf/edn等文件,导给FPGA/CPLD厂家的软件进行实现和布局布线。常用的综合工具有Synplicity公司的Synplify/SynplifyPro、Synopsys的DesignCompiler(DC),Cadence的PKS等。是从抽象到具体实现的关键步骤。将较高层次的电路描述转化为较低层次的电路描述,具体而言,就是将设计代码转化为底层的与或非门、触发器等基本逻辑单元互联而成的网表。为达到性能要求,往往对综合加以约束。综合出来的电路在面积、时序等目标参数上要达到标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元的面积、时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。因此综合的结果不是唯一的综合效果的终极评定标准:面积、速度。当二者冲突时,速度优先⑷功能仿真4)功能仿真(即综合后仿真),综合后的门级功能仿真。是对综合优化后的,可以实实在在成为硬件的门级网表进行的验证,但不包含任何布局布线的延时信息。之所以叫门级仿真是因为综合工具给出的仿真网表已经与生产厂家器件的底层元件模型对应起来了,所以为了进行综合后仿真必须在仿真过程中加入厂家的器件库,对仿真器进行一些必要的配置,不然仿真器并不认识其中的底层元件,无法进行仿真。使用的工具和前仿真是一样的,还是ModelSim、VCS等常用的验证方法是等价性检查(EquivalenceCheck)方法,即以前仿真后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。⑸布局布线5)布局布线,综合的结果只是通用的门级网表,只是一些门电路的逻辑关系,与芯片实际的配置情况还有差距。此时应该使用FPGA/CPLD厂商提供的实现(一般分三步:翻译、映射、布局布线)工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有生产者最了解器件内部的结构,如在XilinxISE集成环境中完成实现与布局布线的工具是FlowEngine。⑹时序仿真6)时序仿真,是在功能仿真的基础上包含了电路的时序延时信息,是最接近真实器件运行特性的仿真,仿真精度高。其目的是保证设计满足时序要求,以便数据能被正确的采样。在后仿真中将布局布线的延时反标到设计中去,使仿真既包含门延时,又包含布线延时信息。这种后仿真是最准确的仿真,能较好反映芯片的实际工作情况。工具:ModelSim、VCS或QuartusII、XilinxISE集成的仿真工具输入文件:门级网表、testbench、标准延时文件(.sdf,Altera中.sdo)时序验证的主要方法是静态时序分析(STA,StaticTimingAnalysis)STA—主要是在时序上对电路进行验证,检查电路是否存在建立时间(setuptime)、保持时间(holdtime)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。⑺下载配置7)编程下载与配置,功能、时序均满足设计要求后,使用开发工具全编译后下载到器件中进行板级调试。Altera:在QuartusII中进行全编译后,配置好目标器件的各项参数,生成一个或多个Programmer对象文件(.pof)或SRAM对象文件(.sof),作为布局布线后的包含器件、逻辑单元和引脚分配的编程文件,下载到开发板进行调试。FPGA设计特点FPGA设计的最大特点就是迭代性很强,并不是一个简单的顺序流程。在开发过程中,设计者在仿真验证中一旦发现问题,往往需要回到前面的步骤重新审查、修改,然后重新综合、布局布线、仿真验证,直到最终的设计符合要求。FPGA开发流程FPGA设计特点(续)对于任何一个工程,开发团队一般不会严格执行所有三次仿真,通常而言,行为仿真和时序仿真就已经足够。设计的验证过程行为仿真下载配置板级调试布局布线时序仿真综合优化功能仿真(可省略)设计输入内容FPGA与CPLDFPGA设计流程通用ASIC设计流程IC设计常用工具介绍ASIC中心SOC设计流程通用ASIC设计流程ASIC分为:数字ASIC、模拟ASIC、数模混合ASICASIC设计方法ASIC设计方法全定制法半定制法门阵列法标准单元法可编程逻辑器件法通用ASIC设计流程(续)ASIC设计与FPGA设计区别需求分析、功能定义、确认工艺库内容FPGA与CPLDFPGA设计流程通用ASIC设计流程IC设计常用工具介绍ASIC中心SOC设计流程集成开发套件QuartusII是Altera公司的综合性PLD开发套件,支持原理图、VHDL、VerilogHDL及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Xilinx(赛灵思)是全球领先的可编程逻辑完整解决方案的供应商。Xilinx研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的IP核硬件设计工具。ISE是其集成开发套件,是首屈一指的PLD设计环境,ISE将先进的技术与灵活性、易使用性的图形界面结合在一起,都让开发人员在最短的时间内,以最少的努力,达到最佳的硬件设计。综合工具DesignCompiler(DC):VHDL/Verilog综合软件,Synopsys公司出品。Synplify:VHDL/Verilog综合软件,口碑相当不错,Synplicity公司出品。Spectrum:VHDL/Verilog综合软件,可以加比较多的约束条件。可控性较强,MentorGraphic公司出品。仿真/验证工具Modelsim:VHDL/Verilog仿真软件,功能强大,应用极广泛,MentorGraphic公司出品。NC-Verilog/NC-VHDL:业界很受欢迎的VHDL/Verilog仿真软件,Cadence公司出品VCS:具有目前行业中最高模拟性能的VHDL/Verilog仿真软件,Synopsys公司出品内容FPGA与CPLDFPGA设计流程通用ASIC设计流程IC设计常用工具介绍ASIC中心SOC设计流程ASIC中心SOC设计流程我们这边的工作,如6020、6110测试ASIC中心的SOC设计流程是传统ASIC全定制电路设计和FPGA设计流程的结
本文标题:SOC设计基础
链接地址:https://www.777doc.com/doc-5562007 .html