CPLD/FPGA应用设计太原理工大学信息工程学院张文爱课程介绍本课程为电子信息类专业课。共讲授20学时,实验4学时,1.5学分。考试形式为闭卷考试。本课程有课程设计,1.5学分。实验、课设安排内容班级时间实验室实验一信息1001、信息10023周二3-4节北区3楼3层电子技术基础实验一测控1001、测控10023周二1-2节实验二信息1001、信息10029周五1-2节实验二测控1001、测控10029周四1-2节课程设计信息1001、信息100216周一1-8节课程设计测控1001、测控100216周二1-8节课程设计信息1001、信息100216周四1-8节课程设计测控1001、测控100216周五1-8节可编程逻辑器件EDA开发软件使用VHDL硬件描述语言教学内容教材和参考书教材:《EDA技术与FPGA应用设计》参考资料:《EDA技术及应用》谭会生西安电子科技大学出版社《EDA技术与VHDL》潘松科学出版社第1章可编程逻辑器件概述ASICPLD概述PLD开发本章内容:第1章可编程逻辑器件概述ASIC(ApplicationSpecificIntegratedCircuit):专用集成电路。PLD(programmablelogicdevice):可编程逻辑器件是一种由用户根据自己要求来构造逻辑功能的数字集成电路。PLD现已成为实现ASIC的一种非常重要、而又十分方便有效的手段。1.1.1数字逻辑电路设计方法1.1数字逻辑电路设计与ASIC软件逻辑设计(软件组装的LSI和VLSI,如微处理器、单片机等,系统功能由软件设计实现,是一种软件的设计方法);专用集成电路设计(ASIC),是根据用户需要设计的集成电路,用户需要通过软件设计描述,用软件设计硬件)。硬件逻辑设计(由中小规模集成器件设计数字电路,即硬件设计硬件,设计方法在数字逻辑设计课程中讲述);1.1.2ASIC及其设计方法ASIC是指专门为某一应用领域或为专门用户需要而设计制造的LSI或VLSI电路,它可以将某些专用电路或电子系统设计在一个芯片上,构成单片集成系统。按照功能的不同可分为:微波ASIC、模拟ASIC、数字ASIC。1.1.2ASIC及其设计方法ASIC设计方法可分为:全定制和半定制两类。全定制:全定制是一种基于晶体管级的设计方法,它主要针对要求得到最高速度、最低功耗和最省面积的芯片设计,其设计周期较长,设计成本较高,适用于对性能要求很高(如高速芯片)或批量很大的芯片(如存储器、通用芯片)的设计生产。1.1.2ASIC及其设计方法半定制:一种约束性设计方法。约束的目的是简化设计、缩短设计周期和提高芯片的产品率。主要有门阵列、标准单元和可编程器件(PLD)3种。门阵列:是一种预先制造好的硅阵列(称母片),内部包括几种基本逻辑门、触发器等,芯片中留有一定的连线区。用户根据所需要的功能设计电路,确定连线方式,然后再交生产厂家布线。1.1.2ASIC及其设计方法标准单元:是以预先配置好、经过测试的标准单元库为基础的。设计时选择库中的标准单元构成电路,然后调用这些标准单元的版图,并利用自动布局布线软件(CAD工具)完成电路到版图一一对应的最终设计。和门阵列相比,标准单元设计灵活、功能强,但设计和制造周期较长,开发费用也比较高。1.1.2ASIC及其设计方法可编程逻辑器件PLD:是一种通用型器件,用户利用EDA工具对器件编程以实现所需要的逻辑功能。PLD是用户可配置的器件,其规模大,功能强,价格便宜,相配套的EDA软件完善,设计人员在实验室即可设计和制造出芯片,而且可反复编程,修改错误,设计周期短,可靠性高。1.1.2ASIC及其设计方法EDA技术ASIC设计FPGA/CPLD可编程ASIC设计门阵列(MPGA);标准单元(CBIC);全定制;(FCIC);ASIC设计SOPC/SOC混合ASIC设计1.2.1PLD发展1.2PLD概述70年代80年代90年代PROM和PLA器件PAL器件GAL器件FPGA器件EPLD器件CPLD器件内嵌复杂功能模块的SoPC1.2.2PLD分类按集成密度分类可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGA1.2.2PLD分类按编程工艺分类(1)一次性编程的熔丝(Fuse)或反熔丝(Anti-fuse)器件;(2)紫外线擦除、电编程器件;(3)EEPROM编程器件,即电擦除、电可编程元件。ISP器件采用此方法,编程次数可达10000次;(4)SRAM编程器件,特点是断电后信息丢失,多数FPGA基于此技术。1.2.2PLD分类按结构特点分类(1)阵列型PLD:基本结构为与或阵列;(2)FPGA:基本结构为门阵列。PLD基本结构:1.3PLD逻辑表示法输入电路与门阵列或门阵列输出电路输入信号输出信号反馈输入信号(1)与阵列固定,或阵列可编程,如EPROM;(2)与阵列和或阵列都可以编程,如PLA;(3)与阵列可以编程,或阵列固定,如PAL。1.3PLD逻辑表示法【例1-1】试分别用PLD的3种阵列结构来表示逻辑函数:01010012012012012112022IIIIOIIIIIIIIIIIIOIIIIOmmmOOO)7,4,3,0()7,5,3,2()7,6,3,1(012010100212112022IIIIOIIIIOIIIIO1.3PLD逻辑表示法【例1-1】试分别用PLD的3种阵列结构来表示逻辑函数:≥1&&&&&&&&≥1≥1××××××××××××(a)≥1&&&&&&≥1≥1××××××(b)××××××××××××mmmOOO)7,4,3,0()7,5,3,2()7,6,3,1(012010100212112022IIIIOIIIIOIIIIO≥1&&&&&&≥1≥1(c)××××××××××××1.4PLD的设计与开发1.4.1PLD设计流程1.4.2PLD开发工具ISPDesginExpertSystem系统ISPDesignExpertSystem是Lattice公司针对其CPLD和FPGA产品开发的EDA软件,支持原理图输入方式和ABELHDL、VHDL、VerilogHDL等硬件描述语言输入方式。可以进行功能仿真和时序仿真,是目前流行的EDA软件中最容易掌握的设计工具之一,它界面友好,操作方便,功能强大,并与第三方EDA工具兼容良好。1.4.2PLD开发工具ISE系统ISE软件是Xilinx公司推出的完整的可编程逻辑设计软件系列。它支持Xilinx公司所有的CPLD和FPGA可编程逻辑器件,支持多语言开发,具有很好的综合及仿真功能,是业界最强大的EDA设计工具之一。1.4.2PLD开发工具QuartusIIQuartusII系统是由Altera公司提供的开发软件。该软件提供了一种与结构无关的设计环境,支持Altera的各种PLD系列芯片的设计。支持原理图和各种HDL设计输入选项。1.4.2PLD开发工具ModelSim仿真软件ModelSim是MentorGraphics公司开发的一款非常优秀的仿真软件,具有友好的仿真界面,不仅支持VHDL、Verilog及VHDL和Verilog混合硬件描述语言仿真,还支持系统级描述语言SystemC和SystemVerilog。该仿真软件仿真速度快、精度高。ModelSim可集成到ISE及QuartusII等PLD开发软件中,从而可在PLD开发软件中直接调用ModelSim进行波形仿真。1.4.2PLD开发工具Synplify综合软件Synplify、SynplifyPro和SynplifyPremier是Synplicity公司开发的PLD综合工具,支持大多数半导体厂商的CPLD和FPGA产品,有着综合速度快、综合效率高等优点,最近几年在综合软件市场中排名保持第一。1.4.3IP核IP可分为软核、固核和硬核。软核是用VHDL、VerilogHDL等硬件描述语言描述的功能模块,是与具体实现的工艺无关的IP核。固核是以网表文件的形式提交用户使用的IP核,是完成了综合后的可重用IP模块。硬核是一些已经经过布局、并对尺寸和功耗进行优化的、不能由使用者修改的IP核。硬核以设计的最终阶段产品——掩膜提供。小结PLD/ASICCPLD/FPGAEDAHDL:VHDL、VerilogHDLLATTICE、ALTERA、XILINIXISPDesginExpertSystem、QuartusII、ISE