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