阳小明1/37第三章第三章FPGAFPGA设计流程及其工具设计流程及其工具阳小明2/37第三章FPGA设计流程及其工具本章首先介绍FPGA/CPLD开发和设计的流程,然后分别介绍与这些设计流程中各环节密切相关的EDA工具软件,昀后就QuartusII软件的使用做详细讲解。阳小明3/37原理图/HDL文本编辑综合FPGA/CPLD适配FPGA/CPLD编程下载FPGA/CPLD器件和电路系统时序与功能门级仿真1、功能仿真2、时序仿真逻辑综合器1、isp方式下载2、JTAG方式下载3、针对SRAM结构的配置4、OTP器件编程结构综合器3.1FPGA/CPLD设计流程应用FPGA/CPLD的EDA开发流程:有错误需要修改阳小明4/371、功能仿真2、时序仿真逻辑综合器结构综合器原理图/HDL文本编辑分析、综合FPGA/CPLD器件和电路系统FPGA/CPLD适配FPGA/CPLD编程下载1、isp方式下载3、针对SRAM结构的配置2、JTAG方式下载4、OTP器件编程设计要求不满足FPGA/CPLD的设计流程仿真器下载电缆硬件电路调试设计输入阳小明5/373.1.1设计输入(原理图/HDL文本编辑)1.图形输入图形输入原理图输入状态图输入波形图输入阳小明6/373.HDL文本输入3.1.1设计输入(原理图/HDL文本编辑)使用某种硬件描述语言(HDL),如VHDL或VerilogHDL,对电路进行描述。适合大规模的电路设计,有很好的可移植性,可读性强易于交流。阳小明7/373.1.2综合整个综合过程就是将设计者在EDA平台上编辑输入的HDL文本、图形描述,依据给定的器件结构进行编译、优化、转换和综合,最终获得门级电路网表文件。因此综合器工作前,必须给定最后实现的硬件结构参数。阳小明8/373.1.3适配适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。适配完成后可以利用适配所产生的仿真文件作精确的时序仿真。阳小明9/373.1.4时序仿真与功能仿真时序仿真功能仿真就是接近真实器件运行特性的仿真仿真文件中己包含了经过逻辑门和布线产生的延迟。是直接对HDL、原理图描述或其他描述形式的逻辑功能进行测试模拟。仿真程不涉及任何具体器件的硬件特性。阳小明10/373.1.5编程下载通常,将对CPLD的下载称为编程(Program),对FPGA中的SRAM进行直接下载的方式称为配置(Configure)。阳小明11/373.1.6硬件测试最后是将含有载入了设计的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。阳小明12/37总结:文本图形设计输入综合...IOEIOE...IOCIOE...IOEIOE...IOCIOE...IOEIOE逻辑块...IOEIOE...IOEIOEI/OE可编程连线网表文件适配阳小明13/373.2常用EDA工具EDA工具大致可以分为如下5个模块:设计输入编辑器仿真器HDL综合器适配器(或布局布线器)下载器阳小明14/373.2常用EDA工具3.2.1设计输入编辑器3.2.2HDL综合器性能良好的FPGA/CPLD设计的HDL综合器有如下三种:Synopsys公司的FPGACompiler、FPGAExpress综合器。Synplicity公司的SynplifyPro综合器。Mentor子公司ExemplarLogic的LeonardoSpectrum综合器。阳小明15/373.2常用EDA工具3.2.3仿真器按处理的硬件描述语言类型分,HDL仿真器可分为:(1)VHDL仿真器。(2)Verilog仿真器。(3)MixedHDL仿真器(混合HDL仿真器,同时处理Verilog与VHDL)。HDL仿真器:Mentor公司ModelSim阳小明16/373.2常用EDA工具3.2.4适配器(布局布线器)3.2.5下载器(编程器)FPGA厂商提供如:Altera公司的MAX+PLUSII、QuartusII集成于MAX+PLUSII、QUARTUSII中阳小明17/373.3QuartusII安装及概述图形或HDL编辑器QuartusII设计流程编程器设计输入综合或编辑适配器下载仿真设计有错阳小明18/37执行安装时不要装附加软件,因为这些软件并没有在安装包里。安装后启动QuartusII阳小明19/37点击QuartusII菜单:Tools→Licensesetup点击QuartusII菜单:Tools→LicensesetupLicense文件路径HOSTID阳小明20/37用Quartus_II_6.0_B178_dll破解器.exe破解C:\altera\quartus60\win\下的sys_cpt.dll文件。指定sys_cpt.dll文件的路径点击阳小明21/37用记事本打开license.dat文件,并将里的HOSTID=XXXXXXX用自己电脑的HOSTID替换,即可正常使用QuartusII。阳小明22/37QuartusII的启动界面:3.3.2QuartusII概述工作区菜单栏工具栏工程图视窗任务进度窗消息窗阳小明23/37QuartusII的原理图编辑器1放置元件2连线3定义信号阳小明24/37QuartusII的HDL文本编辑器阳小明25/37QuartusII的HDL波形辑器1调入信号(inandout)2画输入信号波形3观察输出信号波形阳小明26/373.5IP核IP(IntellectualProperty)就是知识权核或知识产权模块的意思,在EDA技术和开发中具有十分重要的地位。IPIP软IP硬IPAltera公司的软核阳小明27/37你要QuartusII做什么?1)建一个工程所有设计文件应在这个工程目录中2)设计什么电路QuartusII的使用:用原理图或文本3)转换门级电映射到芯片击鼠标4)仿真电路画波形图,观察仿真后的结果阳小明28/37一、用原理图输入法设计电路启动后的界面双击快捷图标阳小明29/371、建一个新工单击菜单File\NewProjectWizard路径工程名单击阳小明30/372、建一个图形编辑文件单击选择点击阳小明31/37原理图编辑器绘图工具栏绘图区滚动条阳小明32/373、调用逻辑符号,画出电路原理图.以默认名存盘双击空白区输入逻辑元件名阳小明33/37②、连接信号线③、双击改信号名①、分别调出input,output,74161,nand2元件阳小明34/374、编译单击并开始编译阳小明35/375、仿真(新建仿真文件)双击信号窗空白单击NodeFinder阳小明36/37调入信号到波形文件中选中后,加到右边阳小明37/37画出输入信号单击阳小明38/37仿真后的波形阳小明39/37二、用硬件语言输入设计电路设计一个两位加法器c[2:0]=a[1:0]+b[1:0]加法器a[1:0]b[1:0]c[2:0]module输入输出设计步骤除了采用文本编辑器外,与原理图设计电路完全一致。阳小明40/37modulecount10(a,b,c);input[2:0]a;input[2:0]b;output[3:0]c;wire[3:0]c;assignc=a+b;endmodule也可写为:c[2:0]=a[1:0]+b[1:0];用VerilogHDL语言写的电路程序阳小明41/37仿真结果