资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,ISE,环境中,FPGA,开发与实现,1,FPGA,(,Field,Programmable Gate Array,),:,即现场可编程门阵列,它是在,PAL,、,GAL,、,CPLD,等可编程器件的基础上进一步发展的产物。它是作为,专用集成电路,(,ASIC,)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。,以硬件描述语言(,Verilog,或,VHDL,)所完成的电路设计,可以经过简单的综合和布局快速地烧至,FPGA,上进行测试,是现代,IC,设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门,电路,(比如,AND,、,OR,、,XOR,、,NOT,)或者更复杂一些的组合功能比如解码器或数学方程式。,工作原理:,FPGA,采用了逻辑单元阵列,LCA,(,Logic Cell Array,)这样一个概念,内部包括可配置逻辑模块,CLB,(,Configurable Logic Block,)、输出输入模块,IOB,(,Input Output Block,)和内部连线(,Interconnect,)三个部分。现场可编程门阵列(,FPGA,)是可编程器件。与传统逻辑电路和门阵列(如,PAL,,,GAL,及,CPLD,器件)相比,,FPGA,具有不同的结构,,FPGA,利用小型查找表(,161RAM,)来实现组合逻辑,每个查找表连接到一个,D,触发器的输入端,触发器再来驱动其他逻辑电路或驱动,I/O,,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到,I/O,模块。,FPGA,的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与,I/O,间的联接方式,并最终决定了,FPGA,所能实现的功能,,FPGA,允许无限次的编程,.,2,FPGA:,芯片主 要由,7,部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式,RAM,、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。,可编程输入,/,输出单元,简称,I/O,单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入,/,输出信号的驱动与匹配要求。,FPGA,内的,I/O,按组分类,每组都能够独立地支持不同的,I/O,标准。通过软件的灵活配置,可适配不同的电气标准与,I/O,物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。,配置逻辑块(,CLB,),:,是,FPGA,内的基本逻辑单元。,CLB,的实际数量和特性会依器件的不同而不同,但是每个,CLB,都包含一个可配置开关矩阵,此矩阵由,4,或,6,个输入、一些 选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或,RAM,。在,Xilinx,公司的,FPGA,器件中,,CLB,由多个(一般为,4,个或,2,个)相同的,Slice,和附加逻辑构成。每个,CLB,模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式,RAM,和分布式,ROM,。,数字时钟管理模块(,DCM,),:,业内大多数,FPGA,均提供数字时钟管理(,Xilinx,的全部,FPGA,均具有这种特性)。,Xilinx,推出最先进的,FPGA,提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。,3,嵌入式块,RAM,(,BRAM,),:,大多数,FPGA,都具有内嵌的块,RAM,,这大大拓展了,FPGA,的应用范围和灵活性。块,RAM,可被配置为单端口,RAM,、双端口,RAM,、内容地址存储器(,CAM,)以及,FIFO,等常用存储结构。,布线资源,:,连通,FPGA,内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。,内嵌功能模块,:,主要指,DLL,(,Delay Locked Loop,)、,PLL,(,Phase Locked Loop,)、,DSP,和,CPU,等软处理核(,SoftCore,)。现在越来越丰富的内嵌功能单元,使得单片,FPGA,成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向,SOC,平台过渡。,内嵌专用硬核,:,是相对底层嵌入的软核而言的,指,FPGA,处理能力强大的硬核(,Hard Core,),等效于,ASIC,电路。为了提高,FPGA,性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高,FPGA,的乘法速度,主流的,FPGA,中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的,FPGA,内部都集成了串并收发器(,SERDES,),可以达到数十,Gbps,的收发速度。,4,特点:,1,)采用,FPGA,设计,ASIC,电路,(,专用集成电路,),,用户不需要投片生产,就能得到合用的芯片。,2,),FPGA,可做其它全定制或半定制,ASIC,电路的中试样片。,3,),FPGA,内部有丰富的触发器和,I/O,引脚。,4,),FPGA,是,ASIC,电路中设计周期最短、开发费用最低、风险最小的器件之一。,5)FPGA,采用高速,CMOS,工艺,功耗低,可以与,CMOS,、,TTL,电平兼容。,5,ISE,的简要介绍,ISE,软件是,Xilinx,公司推出的,FPGA/CPLD,集成开发环境,不仅包含了逻辑设计所需的一切,还具有大量简便易用的内置式工具和向导,使得,I/O,分配、功耗分析、时序驱动设计收敛、,HDL,仿真等关键步骤变得容易而直观。因此要掌握,Xilinx FPGA,开发,就必须掌握,ISE,,这里我们简单介绍下,ISE,基本操作和开发流程,6,ISE,功能简介,Xilinx,是全球领先的可编程逻辑完整解决方案的供应商,其开发工具,ISE,也在不断地升级。,ISE,具有界面友好、操作简单的特点,再加上,Xilinx,的,FPGA,芯片占有很大的市场,使其成为非常通用的,FPGA,工具软件。,ISE,作为高效的,EDA,设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的,Xilinx,平台。,ISE,的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了,FPGA,开发的全过程,从功能上讲,其工作流程无需借助任何第三方,EDA,软件。,7,ISE,功能简介,设计输入:,ISE,提供的设计输入工具包括用于,HDL,代码输入和查看报告的,ISE,文本编辑器(,The ISE Text Editor,),用于原理图编辑的工具,ECS,(,The Engineering Capture System,),用于生成,IP Core,的,Core Generator,,用于状态机设计的,StateCAD,以及用于约束文件编辑的,Constraint Editor,。,综合:,ISE,的综合工具不但包含了,Xilinx,自身提供的综合工具,XST,,同时还可以内嵌,Mentor Graphics,公司的,LeonardoSpectrum,和,Synplicity,公司的,Synplify,,实现无缝链接。,8,ISE,功能简介,仿真:,ISE,本身自带了一个具有图形化波形编辑功能的仿真工具,HDL Bencher,,同时又提供了使用,Model Tech,公司的,Modelsim,进行仿真的接口。,实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。,下载:下载功能包括了,BitGen,,用于将布局布线后的设计文件转换为位流文件,还包括了,ImPACT,,功能是进行设备配置和通信,控制将程序烧写到,FPGA,芯片中去。,9,ISE,软件,基本硬件要求:,CPU,奔腾,3,以上,内存大于,256MB,,硬盘大于,10GB,的安装环境。本实验指导使用的集成环境是,ISE13.1,。,10,使用,ISE13.1,完成一个,8255IP core,的设计,其内容包括:,工程的建立;,8255IP core,的设计;,设计综合和查看综合结果;,设计下载到,FPGA,芯片,实验连线说明。,11,12,ISE用户界面,13,ISE软件的用户界面,标题栏:主要显示当前工程的名称和当前打开的文件名称。,菜单栏:主要包括文件(,File,)、编辑(,Edit,)、视图(,View,)、工程(,Project,)、源文件(,Source,)、操作(,Process,)、窗口(,Window,)和帮助(,Help,)等,8,个下拉菜单。,工具栏:主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在,ISE,中的操作。在工程管理中,此工具栏的运用极为频繁。,工程管理区:提供了工程以及其相关文件的显示和管理功能,主要包括源文件视图(,Source View,),快照视图(,Snapshot View,)和库视图(,Library View,)。,源文件编辑区:源文件编辑区提供了源代码的编辑功能。,过程管理区:本窗口显示的内容取决于工程管理区中所选定的文件。相关操作和,FPGA,设计流程紧密相关,包括设计输入、综合、仿真、实现和生成配置文件等。,信息显示区:显示,ISE,中的处理信息,如操作步骤信息、警告信息和错误信息等。,状态栏:显示相关命令和操作的信息,14,开发环境的启动,15,新建工程,16,新建工程,输入工程名,top_8255,及其要保存的位置,17,新建工程,选择器件参数,18,工作区可看到新建的工程,top_8255,19,添加源文件,20,也可以选择,new source,手动输入,verilog,文件。,21,22,综合,综合,就是将,HDL,语言、原理图等设计输入翻译成由与、或、非门和,RAM,、触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成,EDF,文件。综合工具可以使用第三方,EDA,工具(如,Synplify/SynplifyPro,),,Xilinx,在,ISE,中提供了自带的综合工具,XST(Xilinx Synthesis Technology),,,XST,内嵌在,ISE 3,以后的版本中,并且在不断完善。此外,由于,XST,是,Xilinx,公司自己的综合工具,对于部分,Xilinx,芯片独有的结构具有更好的融合性。,完成了输入、仿真以及管脚分配后就可以进行综合和实现了。在过程管理区双击,Synthesize-XST,,就可以完成综合。,23,24,双击,check syntax,检查,verilog,文件有无语法错误,若没有,会出现绿色的勾,有警告会出现叹号,有错误会出现红色的叉。,双击,synthesize,开始综合,25,添加约束文件,FPGA,设计中的约束文件有,3,类:用户设计文件(,.UCF,文件)、网表约束文件(,.NCF,文件)以及物理约束文件(,.PCF,文件),可以完成时序约束、管脚约束以及区域约束。,3,类约束文件的关系为:用户在设计输入阶段编写,UCF,文件,然后,UCF,文件和设计综合后生成,NCF,文件,最后再经过实现后生成,PCF,文件。本节主要介绍,UCF,文件的使用方法。,约束文件的后缀是,.ucf,,所以一般也被称为,UCF,文件。创建约束文件有两种方法,一种是通过新建方式,另一种则是利用过程管理器来完成。,第一种方法:新建一个源文件,在代码类型中选取“,Implementation Constrains File”,,在“,FileName”,中输入文件名。单击“,Next”,按键进入模块选择对话框,选择需要约束的模块,然后单击“,Next”,进入下一页,再单击“,Finish”,按键完成约束文件的创建。,第二种方法:在工程管理区中,将“,Source for”,设置为“,Synthesis/Implementation”,。“,Constrains Editor”,是一个专用的约束文件编辑器,双击过程管理区中“,User Constrains”,下的“,Create Timing Constrains”,就可以打开“,Constrains Editor”,。,26,添加约束文件,在,UCF,文件中描述管脚分配的语法为:,NET“,端口名称”,LOC=,引脚编号,;,需要注意的是,,UCF,文件是大小敏感的,端口名称必须和源代码中的名字一致,且端口名字不能和关键字一样。但是关键字,NET,是不区分大小写的。,在工程管理区中,将“,Source for”,设置为“,Synthesis/Implementation”,,然后双击过程管理区中“,User Constrains”,下的“,Edit Constraints(Text)”,就可以打开约束文件编辑器,就会新建当前工程的约束文件。,约束文件编辑窗口,27,添加用户约束,28,约束,XC3S200,部分引脚分配如图,实验钉子标号,引脚号,DIR,空(没定义),H19,P107,H18,P102,CLK2,P183,CLK3,P181,CLK4,P180,CLK5,P77,CLK6,P76,33M(,时钟,),P184,30M(,时钟,),P80,50M(,时钟,),P79,29,实现,所谓实现(,Implement,)是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。实现主要分为,3,个步骤:翻译(,Translate,)逻辑网表,映射(,Map,)到器件单元与布局布线(,Place&Route,)。,翻译,的主要作用是将综合输出的逻辑网表翻译为,Xilinx,特定器件的底层结构和硬件原语。,映射,的主要作用是将设计映射到具体型号的器件上(,LUT,、,FF,、,Carry,等)。,布局布线,步骤调用,Xilinx,布局布线器,根据用户约束和物理约束,对设计模块进行实际的布局,并根据设计连接,对布局后的模块进行布线,产生,FPGA/CPLD,配置文件。,30,实现,在翻译过程中,设计文件和约束文件将被合并生成,NGD,(原始类型数据库)输出文件和,BLD,文件,其中,NGD,文件包含了当前设计的全部逻辑描述,,BLD,文件是转换的运行和结果报告。,在映射过程中,由转换流程生成的,NGD,文件将被映射为目标器件的特定物理逻辑单元,并保存在,NCD,(展开的物理设计数据库)文件中。映射的输入文件包括,NGD,、,NMC,、,NCD,和,MFP,(映射布局规划器)文件,输出文件包括,NCD,、,PCF,(物理约束文件)、,NGM,和,MRP,(映射报告)文件。,布局和布线(,Place&Route,):通过读取当前设计的,NCD,文件,布局布线将映射后生成的物理逻辑单元在目标系统中放置和连线,并提取相应的时间参数。布局布线的输入文件包括,NCD,和,PCF,模板文件,输出文件包括,NCD,、,DLY,(延时文件)、,PAD,和,PAR,文件。,31,实现,32,基于ISE的芯片编程,生成二进制编程文件并下载到芯片中,也就是所谓的硬件编程和下载,是,FPGA,设计的最后一步。生成编程文件在,ISE,中的操作非常简单,在过程管理区中双击,Generate Programming File,选项即可完成。生成的编程文件放在,ISE,工程目录下,是一个扩展名为,.bit,的位流文件。,双击过程管理区的,Generate Programming File,选项下面的,Configure Device,(,iMPACT,)项,然后在弹出的,Configure Device,对话框中选取合适的下载方式,,ISE,会自动连接,FPGA,设备。成功检测到设备后会出现,iMPACT,的主界面。,33,双击,generate programing file,生,成配置文件。,34,下载设计到FPGA芯片,准备工作,:,将,xilinx,的,USB-JTAG,电缆分别和计算机,USB,接口及,FPGA,扩展板上的,JTAG10,针插口连接,;,计算机自动安装,JTAG,驱动程序,;,把扩展模块左下角红色钉子,+5V,接实验箱的,+5V,电源,黑色钉子,GND,接实验箱的,GND,给实验箱上电,扩展板电源灯亮,实验箱电源亮,.,35,基于ISE的芯片编程,iMPACT,主界面,36,基于ISE的芯片编程,在主界面的中间区域内单击鼠标右键,并选择菜单的“,Initialize Chain”,选项,如果,FPGA,配置电路,JTAG,测试正确,则会将,JTAG,链上扫描到的所有芯片在,iMPACT,主界面上列出来,iMPACT,主界面扫描正确后的窗口界面两个芯片连接在,JTAG,链路上,Xcf01s-Xilinx,的串行,Flash,芯片,xc3s200-Xilinx,的,FPGA,芯片,点击“,Yes”,按钮,37,基于ISE的芯片编程,连续点击,cancel,退出前,1,个设备的配置,在第,2,个选中综合实现之后的,bit,文件,选择位流文件,38,基于ISE的芯片编程,选中下载文件后,单击“打开”按键,在,iMPACT,的主界面会出现一个芯片模型以及位流文件的标志,在此标志上单击鼠标右键,在弹出的对话框中选择,Program,选项,就可以对,FPGA,设备进行编程,对,FPGA,设备进行编程示意图,39,基于ISE的芯片编程,FPGA,配置成功指示界面,40,参考电子资料:,Verilog,经典教程,FPGA,操作说明,基于,FPGA,的的设计,新一代,USB2.0,微机接口实验指导书,41,
展开阅读全文