CMOS集成电路设计汇报CONTENTSFPGA和CPLD的区别IC设计从前端到后端的流程及EDA工具FPGA设计和ASIC设计的相同点和不同点12311FPGA和CPLD的区别21结构比较STRUCTURECOMPARISON3基于乘积项的CPLD结构CPLD(复杂可编程器件)结构可分为4块:①宏单元实现基本的逻辑功能。②可编程连线负责信号传递,连接所有的宏单元。③I/O控制块负责输入输出的电气特性控制。④全局控制线用于全局时钟、清零和输出使能控制,其中使能线有专用连线与每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。基于乘积项的CPLD内部结构宏单元内部结构:左侧输入是一个与阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。中间的乘积项选择矩阵是一个“或”阵列。任意一个组合逻辑都可以用“与或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能。右侧是一个可编程D触发器。如果不需要触发器,也可以把此触发器旁路,信号直接输给PIA或输出到I/O脚。宏单元结构CPLD又是N个宏单元的阵列集合,且其逻辑块互连具有集总式特点。1结构比较STRUCTURECOMPARISON4基于查找表的FPGA结构CPLD结构可分为4块:①逻辑阵列块②输入输出块③可编程行/列连线查找表:一个逻辑阵列快包括8个逻辑单元(LE),每个LE包括一个查找表。查找表简称为LUT(LookUpTable),LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入查找表中,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。基于查找表的的FPGA内部结构FPGA的逻辑阵列块的也是阵列排列,但是逻辑阵列块之间是采用分布式互连方式,其基本单元LE的寻址进行的是一种逻辑门运算。适合结构CPLDCPLD的一个宏单元可以分解十几个甚至20~30个组合逻辑输入。因此一般认为CPLD是“逻辑丰富”型的,更适合完成各种算法和组合逻辑。或者说是触发器有限而乘积项丰富的结构,。FPGA目前FPGA的LUT多是4输入的,但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,集成度更高。因此FPGA是“时序丰富”型的,更适合于完成时序逻辑。例如设计一个复杂的时序逻辑,就使用FPGA。2功能比较FEATURECOMPARISON5运行速度CPLD一般,CPLD优于FPGA。是因为CPLD是逻辑块级编程,且其逻辑块互连是集总式的,CPLD是通过修改具有固定内连电路的逻辑功能来编程;。同时,由于CPLD有专用连线与每个宏单元相连,信号到每个宏单元的延时相同,CPLD具有时间可预测性,FPGAFPGA是门级编程,且逻辑阵列块之间是采用分布式互连,主要通过改变内部连线的布线来编程。因此运行速度较慢。2功能比较FEATURECOMPARISON6编程方式CPLDCPLD主要是基于FLASH存储器编程,编程次数达1万次,其优点是在系统断电后,编程信息不丢失,且无需外部存储器芯片,使用简单。。CPLD又可分为在编程器上编程和在系统编程(ISP)两种。ISP器件的优点是不需要编程器,可先将器件装焊于印制板,再经过编程电缆进行编程,其编程、调试和维护都很方便。FPGAFPGA大部分是基于SRAM编程,其优点是可进行任意次数的编程,并可在工作中快速编程,实现板级和系统级的动态配置,因此可称为可重配置硬件。其缺点是编程信息需存放在外部存储器上,每次上电时,需从器件的外部存储器或计算机中将编程数据写入SRAM中,使用方法复杂,且编程数据信息在系统断电时丢失。2功能比较FEATURECOMPARISON72IC设计从前端到后端的流程及EDA工具8CONTENTS确定项目需求:制定芯片的具体指标系统级设计:用系统建模语言对各个模块进行描述后端设计:版图设计、物理验证、后仿真12394前端设计:RTL设计、RTL仿真、硬件原型验证、电路综合IC设计流程ICDESIGNFLOW10MarketingrequestArchitecturespecificationArchitectureengineer对整个架构进行说明并对每个功能模块进行细分说明Arch/algorithmemulationAlgorithmengineer用C/C++/SystemC/MATLAB语言验证结构的可行性Designspecification对设计进行详细说明DesignengineerRTLcodingsimulation使用VHDL/Verilog/systemVerilog进行编码实现RTLdesignengineer/designengineerIC设计流程ICDESIGNFLOW11IPLevelRTLcodingSOC是由很多IP组成的,每个IP有相应的工程师设计IPLevelRTLsimulation仿真验证工具:Synopsys:VCSMentor:ModelsimCandence:Verilog-XLCandence:NC-Verilog使用C/C++/systemC/systemVerilog/UVM进行功能验证IPLevelverificationIPLevelVerificationEngineerUnit/chipLevelRTLsimulationIntegrateengineerUnit/chipLevelRTLVerificationFullchipVerificationEngineerIC设计流程ICDESIGNFLOW12LogicsynthesisASICdesignengineergateLevelverification仿真验证工具:Synopsys:DesigncompilerCandence:RC逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表(netlist)StaticTimingAnalysis(STA)仿真验证工具:Synopsys:PrimeTime(PT)STAtiming满足,得到最终的netlist静态时序分析,主要是在时序上对电路进行验证,检查电路是否存在建立时间(setuptime)和保持时间(holdtime)的违例(violation)形式验证仿真验证工具:Synopsys:Formality从功能上对综合后的网表进行验证。常用的是等价性检查的方法,以功能验证后的HDL设计为参考,对比综合后的网表功能是否在功能上存在等价性。这样做是为了保证在逻辑综合的过程中没有改变之前HDL描述的电路功能。DFT(designfortest)IC设计流程ICDESIGNFLOW13版图生成,自动布局布线(PR)PhysicaldesignengineerPR工具:Synopsys:ICCompiler(ICC)时钟树插入FormatverificationDRC(designrulecheck)/LVS版图一致性检查仿真验证工具:Synopsys:HerculesMentor:calibreCandence:Diva/draculapost_layoutSTA生成最终GDSⅡTap-out流片版图后的时序验证3ASIC设计和FPGA设计的相同点和不同点14研发周期FPGA和ASIC设计15FPGA芯片设计流程的主要工作是电路设计和前后仿真验证,而综合和布局布线等工作主要依靠计算机完成且占用时间很少,设计完成后可直接进行数据下载及硬件调试工作;ASIC芯片设计流程则先进行电路设计和功能仿真,然后进行布局布线,产生延时文件进行相应的后仿真和时序分析操作。百万门级电路FPGA和ASIC设计流程图研发投入FPGA和ASIC设计16采用ASIC进行电路设计实现,需要熟悉ASIC设计流程,掌握ASIC设计工具和具有设计经验,并与生产厂家进行充分沟通。此外,软硬件和设计工具以及生产费等需要很高的投入费用。采用FPGA进行电路设计实现,仅需要投入低成本的设计费用,不需要具有相关的ASIC设计基础,没有必要的生产环节,可以节省时间和提高设计速度。ASIC和FPGA两者的成本/产量比示意图市场定位FPGA和ASIC设计17针对不同产品的市场需求,采用FPGA技术灵活应用于小批量、功能灵活多样、产品更新快、周期短的电子产品或系统设计中,可以明显提高产品的设计速度,降低成本,能够不断推出新产品,不断提高产品的功能和质量;采用ASIC技术适当应用于大批量、产品比较成熟、市场前景广阔、生命周期长的电子产品或系统设计中,可以明显提高系统的设计集成度,大大降低系统的成本、体积和重量,提高系统的可靠性和市场竞争力。谢谢18