1、第2章 基于原理图的设计2.1 Xilinx ISE Foundation介绍介绍2.2 基于原理图的设计流程基于原理图的设计流程小结小结习题习题实验项目实验项目2.1 Xilinx ISE Foundation介绍介绍ISE Design Suite 10.1是一个较完整的设计开发环境,它整合了Xilinx的嵌入式、DSP 和逻辑设计等工具,集成了FPGA开发需要的所有功能,其开发工具包括:ISE Foundation可编程逻辑设计软件。Platform Studio嵌入式开发工具套件。PlanAhead设计和分析工具。ChipScope Pro软逻辑分析仪调试工具。System Gener
2、ator 数字信号处理系统设计工具。AccelDSP系统综合工具。2.1.1 安装安装ISE Foundation在安装ISE Foundation之前,应完成以下准备工作:(1)登录Xilinx公司官方网站注册10.1产品(网址http:/www.X Foundation安装文件,或向Xilinx申请一张DVD安装光盘。下面以Windows操作系统下的安装为例介绍安装过程。在本例中,ISE Foundation软件安装于D盘的Xilinx目录下。双击安装程序Setup.exe,启动向导程序,出现欢迎页面,然后单击按钮,依次进入以下对话框:(1)在输入注册ID号【Enter Registrat
3、ion ID】对话框中输入注册ID,如图2.1所示。(2)在选择安装软件产品对话框中确认安装ISE设计软件。(3)在接下来的两个对话框中选择接受软件使用许可协议。(4)在设置目标路径【Select Destination Directory】对话框中选择或输入安装路径,在图2.2中安装路径设为“D:Xilinx10.1”。图2.1 注册ID输入对话框 图2.2 选择安装路径界面(5)在安装组件选择对话框中选择需要安装的软件组件,并确认有足够的磁盘安装空间(完全安装大概需要5.6 G的磁盘空间),如图2.3所示。在紧接着出现的两个对话框里确认路径等环境变量设置和其它附件程序。(6)确认安装信息对
4、话框用于确认环境变量的设置和安装组件的信息,如图2.4所示,确认了各项安装信息后,单击按钮,安装程序开始复制文件。(7)安装程序完成文件复制,安装过程结束。如果弹出请求联网查询软件更新对话窗口,可直接将其关闭。建议在条件允许的情况下请用户尽可能地为ISE软件安装最新的补丁包,最大可能地消除使用过程中由于软件漏洞而带来的问题和困惑。完成安装后,Windows系统“开始”菜单下的程序组中和桌面上会生成启动Xilinx ISE软件的快捷方式。2.1.2 ISE Foundation界面界面双击桌面上的快捷方式启动ISE Foundation软件,即可进入工程管理器(Project Navigator
5、)。工程管理器(Project Navigator)为ISE Foundation提供了一个集成界面,如图2.5所示,其主界面由标题栏、菜单栏、工具栏、资源管理窗口、资源操作窗口、多文档编辑窗口、信息显示窗口等组成。ISE软件所有的功能都可以通过它来启动。图2.5 工程管理器(Project Navigator)用户界面(1)右侧居中的多文档编辑窗口为设计者提供了一个设计、编辑、浏览各类项目子文档的工作空间。在该窗口中激活不同的文档窗口后,左侧的资源管理窗口、资源操作窗口中将会随之出现不同的栏目,工具栏也会发生相应的改变,方便用户操作。(2)资源管理【Sources】窗口从不同视图提供了对工程
6、的整体浏览,可显示当前工程中的所有资源文件。该窗口的下方是一系列的视图切换标签,用于切换视图,其中资源【Sources】视图层次化显示了工程中的所有资源组成结构;文件视图【Files】显示了工程中的所有设计源文件,但没显示它们之间的层次关系;快照【Snapshots】视图显示工程中的快照,提供的是一个对工程目录和远程资源的只读记录;库【libraries】视图显示工程的加载库和工程所对应的用户现行工作Work库,Work库中的元件对应源文件都被完整列出;当编辑窗口中打开原理图文档时,资源管理窗口还会出现模块符号【Symbols】视图,利用该视图,用户可方便地调用可用模块符号。(3)资源操作【P
7、rocess】窗口显示了对资源管理窗口中选中的资源文件进行过的相关操作,并根据资源类型、设计流程和器件类型,按对应执行步骤的一般先后顺序从上到下编排这些操作。双击操作栏目,相应操作就被启动,执行的情况可通过栏目前的示意图标获知。(4)信息显示【Transcript】窗口显示Project Navigator的处理信息,如操作步骤信息、错误信息和警告信息等。另外该窗口还提供控制台【Console】信息子窗口和文件查找【Find in Files】子窗口。控制台信息窗口具有交叉链接功能,在调试时用来进行错误定位十分方便。2.1.3 ISE Foundation的集成工具的集成工具ISE Found
8、ation集成了多种设计工具,它们分别用于设计流程的不同阶段。下面按照设计输入工具、综合工具、仿真工具、实现工具和辅助设计工具这五大类对ISE Foundation中的主要集成工具进行分类编排,并给出它们在Project Navigator中的常用启动方法,如表2.1所示。表 2.1 ISE Foundation 的主要集成工具 工具名称 工具功能 Project Navigator 中常用启动方法 工具类别 HDL 编辑器 (HDL Editor)HDL 源码的生成与编辑【Project】【New Source】,选择Verilog 或 VHDL 类文档,或在资源管理窗口中双击 HDL 文档
9、 原理图编辑器 (ECS)原理图的设计与输入【Project】【New Source】,选择“Schematic”文档,或在资源管理窗口中双击 sch 文档 状态机编辑器 (StateCAD)状态机设计【Project】【New Source】,选择“State Diagram”文档,或在资源管理窗口中双击 dia 文档 IP Core 生成器 (IP Core Generator)IP Core 生成工具【Project】【New Source】,选择“IP”文档,或在资源管理窗口中双击 xco文档 设计输入 XST 综合 在资源管理窗口选中工程顶层文件,双击资源操作窗口中的【Synthes
10、ize】栏目 综合 ISE Simulator 仿真 在资源管理窗口选中测试激励文件,在资源操作窗口中双击【Simulator】栏目 测试激励生成器 (HDL Bench)辅助生成测试激励【Project】【New Source】,选择【Test Bench Waveform】文档,或在资源管理窗口中双击 tbw 文档 仿真 约束编辑器 (Constraints Editor)编辑指导实现步骤的用户约束文件【开始】【程序】【Xilinx ISE Design Suite 10.1】【ISE】【Accessories】【Constraints Editor】,或在工程中新建 UCF 文件,在【P
11、rocesses for Source】窗口中双击【Creating Timing Constraints】项来启动 Constraints Editor 实现 引脚与区域约束编辑器 (PACE)编辑与 I/O 引脚和面积约束相关的用户约束文件【开始】【程序】【Xilinx ISE Design Suite 10.1】【ISE】【Accessories】【PACE】FPGA底层编辑器 (FPGA Editor)手工布局布线【Floorplan Area】【IO】【Logic-Post-Synthesis】布局规划器 (Floorplanner)底层物理布线【开始】【程序】【Xilinx ISE
12、 Design Suite 10.1】【ISE】【Accessories】【Floorplanner】,或在经翻译或布局布线后,双击【Place&Router】下的【Vier/Edit Place Design(Floorplanner)】实现 时序分析器 (Timing Analyzer)实现结果的时序分析工具【开始】【程序】【Xilinx ISE Design Suite 10.1】【ISE】【Accessories】【Timing Analyzer】,或在 ISE 中经过综合后直接启动时序分析器 功耗仿真器 (XPower)分析不同工作条件的功耗【开始】【程序】【Xilinx ISE D
13、esign Suite 10.1】【ISE】【Accessories】【XPower】,或在 ISE 中直接启动芯片观察器 辅助 配置器 iMPACT 实现 FPGA/CPLD的配置和通信 完成实现后,双击资源操作窗口中的【Configure Target Device】中的【Manage Configure Project】项,在弹出的配置对话框中选中【JTAG】项 配置文件分割器 (PROM File Formatter)完成配置文件的分割 完成实现后,双击资源操作窗口中的【Configure Target Device】中的【Manage Configure Project】项,在弹出的
14、配置对话框中选中【Prepare a PROM File】项 2.2 基于原理图的设计流程基于原理图的设计流程 ISE Foundation作为一套完整的FPGA设计工具,涵盖了输入、综合、实现、验证和配置五大功能,并按一定的设计流程分步执行,如图2.6所示。具体设计流程包括设计输入、综合、行为和功能仿真、实现、静态时序分析、时序仿真、器件配置等步骤。图2.6 ISE Foundation的设计流程图ISE Foundation具有多种形式的设计输入文档,并支持混合编译,允许在一个工程项目中同时存在Verilog、VHDL和原理图等多种形式的设计源文件。通常将设计输入分为文本和图形两种输入方式
15、,其中文本输入方式以硬件描述语言(HDL)方式为主,图形方式则以原理图输入为其主要形式。一般的设计都采用以HDL为主、原理图为辅的混合设计来发挥两者的各自特色。在本节中,通过采用原理图输入方式引导读者完成一个具有停止控制端的双向约翰逊计数器设计,并以Spartan-3E Starter开发板作为目标板进行试验,以便读者即使不具备HDL语言基础,也能掌握ISE Foundation的设计流程和软件操作,使用FPGA完成简单的数字系统设计。2.2.1 创建工程创建工程在Windows系统的【开始】菜单中选择名为“Project Navigator”图标或双击桌面的“Xilinx ISE 10.1”
16、快捷方式,启动工程管理器。工程管理器打开后,会默认恢复最近使用过的工程界面。如果是第一次启动它,将出现空白的工程界面。在开始设计之前,先应为该设计任务建立一个工程项目,对设计流程有一个大致的规划和安排,以便于管理设计流程中产生的各类文档。下面建立一个工程名为“jc2_sch”的项目,具体操作步骤如下:(1)选择【File】【New Project】,弹出新建工程向导对话框【New Project Wizard】。在工程保存路径【Project Location】栏选择工程存放路径,本例设为“E:DSG_XLNXjc2_sch”在工程名【Project name】栏中输入工程名称“jc2_sch
17、”;顶层模块类型【Top-level source type】栏的下拉菜单中选择【Schematic】项,如图2.7所示。单击按钮,执行下一步操作。图2.7 新建工程向导对话框(2)在工程属性设置【Project Properties】对话框中,设置器件、综合工具和仿真工具等选项。根据目标板上的FPGA芯片型号,器件【Device】选择Spartan3E系列的“XC3S500E”,封装【Package】选择“FG320”,速度等级【Speed】选择“-5”;综合工具【Synthesis Tool】选择ISE Foundation内嵌的综合器“XST”;仿真工具【Simulator】选择ISE内
18、嵌的仿真器“ISE Simulator”,如图2.8所示。单击按钮。图2.8 工程属性设置对话框(3)新建设计源文档。选择【Project】【New Source】,弹出新建源文件向导【New Source Wizard】对话框。新建设计文档包括原理图、状态图、HDL语言、HDL测试文件和IP Core等多种类型的源文件。选择【Schematic】项,创建原理图文件,在【File name】栏中输入文件名“jc2_top”,选择保存路径,选中【Add to project】项,如图2.9所示,为工程添加一个原理图设计文件。单击按钮。图2.9 创建设计源文档对话框(4)在向导的下一个对话框中可以
19、向工程添加已有的设计源文件,本设计没有需要添加的文件,直接单击按钮。(5)进入新建源文件向导的最后一个对话框,单击按钮就建立了一个以原理图为顶层设计文档的完整工程,如图2.10所示。图2.10 新建工程后的用户界面 如果想对工程的属性进行调整,可以通过下面的方法调出工程属性对话框来重新进行设置:(1)在资源管理窗口中选择目标器件或顶层设计文档。(2)在上一步选中的器件或设计文档处单击右键,在弹出的窗口中选择【Properties】弹出工程属性对话框,或在工程管理器的菜单栏上单击【Source】【Properties】命令弹出工程属性对话框进行设置。2.2.2 原理图绘制原理图绘制本节以约翰逊计
20、数器为例介绍ISE软件的原理图绘制方法。约翰逊计数器又称扭环型计数器,它是一种环形计数器。约翰计数器原理框图见图2.11所示,它由一个移位寄存器和一个组合反馈逻辑电路闭环构成,反馈电路的输出馈入移位寄存器的串行输入端,反馈电路的输入端根据移位寄存器计数器类型的不同,可馈入移位寄存器的串行输出端或某些触发器的输出端。图2.11 约翰逊计数器原理框图 扭环型计数器是将移位寄存器最后一级的输出取反后反馈到第一级输入端而构成的,该计数器也因此而得名。约翰逊计数器的正常时序输出的数码符合相邻两个数码之间只有一位码元不同的特点,四位双向约翰逊计数器的输出数码如表2.2所示。表 2.2 四位双向约翰逊计数器
21、的输出数码 态序 数码 正向 反向 0 0000 1 1000 2 1100 3 1110 4 1111 5 0111 6 0011 7 0001 根据设计要求,完成后的电路原理图如图2.12所示。SR4CLED、FJKC、OBUF、IBUF、INV和逻辑门都是从系统原理图模块库中调出的元件模块,其中OBUF、IBUF不具备逻辑功能,其它模块的功能可通过软件帮助快速了解,调用帮助的方法在本节后文中有介绍。整个设计一共有八个端口:一个时钟输入端CLK;三个控制输入端:左移控制端LEFT、右移控制端RIGHT和停止控制端STOP,控制信号都是低电平有效;四个计数输出端:q(0)q(3)。图2.12
22、 用ECS绘制的约翰逊计数器电路原理图 1.ECS软件界面介绍软件界面介绍下面介绍ISE中内嵌的原理图编辑器ECS及其使用。原理图编辑器ECS界面如图2.13所示,该界面主要由菜单栏、工具栏、设置选项卡、符号选项卡、绘图工作区和状态栏等组成。图2.13 原理图编辑器ECS界面 下面介绍与原理图绘制相关的主要操作方法。(1)绘图工具栏。绘图工具栏包含了绘制原理图的基本命令对应的快捷按钮,同菜单栏中的添加菜单包含的命令功能一致,如图2.14所示。图2.14 绘图工具栏快捷按钮 表 2.3 绘图工具栏快捷按钮功能 图标 命 令 功 能 图标 命 令 功 能 Add Wire 添加连线 Add Rec
23、tangle 画矩形 Add Net Name 添加网表名 Add Text 添加文本 Rename Bus 总线重命名 Query 查询 Add Bus Tap 添加总线引脚 Rotate 旋转 Add I/O Marker 添加 I/O 管脚 Mirror 镜像翻转 Add Symbol 添加模块符号 Check Schematic 原理图错误检查 Add Instance Name 添加实例名 Push 降低层次等级 Add Arc 画弧线 Pop 提高层次等级 Add Circle 画圆 Previous View 显示前一视图 Add Line 画直线 Next View 显示后一视
24、图 (2)设置选项卡(Options)。当在绘图工具栏中使用某绘图快捷按钮后,ECS自动在设置选项卡里提示用户设置该命令参数。设置选项卡的参数设置配合绘图工具栏的快捷按钮,就可以完成绘制原理图中的所有基本操作。(3)符号选项卡(Symbols)。符号选项卡是绘图中选取模块符号的工作区域,如图2.15所示。模块符号包含系统库、用户库和项目库中的元件模块,并按照功能分类排列。系统库是系统自带的,包含一系列适合特定设计类型的核心元件模块,用户不可修改;用户库主要包括用户自定义的元件或宏;项目库是当前工程项目所包含的所有元件的一个集成库。使用【Symbol Name Filter】筛选栏可对库中的模块
25、进行筛选。【Orientation】旋转栏中可选择模块放置时的旋转角度。选定模块后,在原理图绘图工作区单击鼠标左键完成模块符号的放置。【Symbol Info】按钮可启动软件帮助功能调出介绍选中模块具体功能的数据手册,利用此功能,读者就可方便地确定电路原理图中各模块的逻辑功能,理解系统的设计思路。图2.15 符号选项卡界面2.使用使用ECS绘制原理图绘制原理图下面介绍采用ECS完成具有停止控制功能的双向约翰逊计数器的原理图的绘制步骤。(1)单击符号选项卡,在【Categories】分类显示目录列表中选择“Shift_Register”目录,在模块符号详细列表【Symbols】中选择“sr4cl
26、ed”移位寄存器,放置一个移位寄存器在绘图工作区中,按“ESC”键或右键单击退出符号粘附状态。同理完成余下模块符号的放置,结果如图2.16所示。读者如不清楚其它模块符号所在的库,可以利用前面介绍的【Symbol Name Filter】筛选栏进行查找。图2.16 添加模块符号(2)单击按钮,进入连线模式,这时窗口左侧的设置选项卡也会有相应的变化。连线模式下鼠标指针在绘图工作区将变为“+”字形状,当指针移动到模块符号的管脚上时,“+”字的四个角将出现四个小方框。左侧的设置选项卡中选择默认的自动连线方式,这样用户在绘制连线时只用考虑起点和终点位置,中间的连线路径由软件自动完成。在起点处单击开始连线
27、,在绘图区任意点处双击或在管脚处单击便可完成起止点间的连线绘制,如图2.17所示。图2.17 绘制连线(3)单击按钮,在左侧的设置选项卡内选择“Name the branch”项,在“Name”栏中输入网表名,如CLK、LEFT、RIGHT、STOP等,如果是对总线命名则按格式“网表名(高位:低位)”输入。移动鼠标“+”字指针到要命名的网线上,单击即完成对该网线的命名。如果是对总线命名,则此时网线将自动变粗,提示该网线为总线,如图2.18所示。图2.18 添加网表名(4)单击按钮,先在左侧的设置选项卡中根据总线与网线之间位置选择总线引脚方向,本例选择“Right”。添加总线引脚时,先单击网线一
28、侧的端点连接网线,另一侧的总线引脚会自动与相邻的总线相连;再按第三步的操作给网线命名。这里命名时要注意两点,一是网线网表名应与总线网表名保持一致,二是网线网表名后要添加序号,并放在小括弧中,如q(0)、q(3)等,如图2.19所示。图2.19 添加总线引脚(5)单击按钮,根据设计要求在左侧的设置选项卡中选择引脚类型或直接选择【Add an automatic marker】项交由ECS软件智能判定,如图2.20所示。图2.20 添加I/O管脚(6)检查和保存设计文档。单击按钮,检查原理图绘制是否有错误。如出错,需进行修改,直至检查通过。3.生成原理图符号生成原理图符号ISE软件对层次化设计提供
29、了很好的支持,绘制好的原理图可以很方便地转换为原理图符号,并被添加到模块符号库中,作为子模块供更高层次的设计调用。下面介绍将绘制好的jc2_top原理图转换成原理图符号的具体操作步骤。(1)在ECS的菜单栏上单击【Tools】【Symbol Wizard】,进入符号向导【Symbol Wizard】,弹出源文件页【Source Page】对话框。在该对话框中,符号管脚命名参考源文件【Pin name source】栏中的【Using schematic】项,并在下拉列表中指定名称为“jc2_top”;在形状【Shape】栏选择【Do not use reference symbol】【Rect
30、angle】,让生成的符号是方块图,如图2.21所示。单击按钮。图2.21 符号向导源文件页对话框(2)在管脚页【Pin Page】对话框中,列出了通过分析jc2_top原理图得到的全部管脚信息,如图2.22所示。这里无须调整,直接单击按钮。(3)在属性页【Option Page】对话框中,提供了生成符号的尺寸属性细节,如图2.23所示。保持缺省值,直接单击按钮。(4)符号预览页【Preview Page】给出了生成的符号预览效果图,如图2.24所示,单击按钮,接受所生成的模块符号。jc2_top原理图对应的原理图符号就生成了,并自动保存在当前工程的存储路径下,如图2.25所示,如果要使用该模
31、块符号,可以像使用系统库中的模块一样调用。图2.22 符号向导管脚页对话框 图2.23 符号向导属性页对话框 图2.24 符号向导的符号预览页 图2.25 生成的模块符号 2.2.3 逻辑综合逻辑综合综合流程是逻辑设计的重要环节,综合结果的好坏直接影响着布局布线的最终效果。好的综合工具能够使设计占用芯片的物理面积最小、效率高、工作稳定、工作速度快,因此,综合工具通常是与逻辑器件的物理结构有着密切的关系。ISE Foundation提供了内嵌的XST(Xilinx Synthesis Technology)综合工具,XST是Xilinx自己设计的综合工具,因此它与Xilinx的逻辑器件能够非常好
32、地融合,加上XST跟随ISE已经历多个版本的不断完善,综合效果和表现令人满意。在使用XST进行综合时,通过在综合属性设置对话框中设置综合属性参数来实现全局综合参数和策略,满足不同的逻辑设计要求。如图2.26所示,在资源管理窗口中选择【Implementation】模式,选中顶层设计文档,右键单击资源操作窗口中的【Synthesize-XST】项,在弹出的窗口中选择【Properties】项,弹出综合属性设置对话框【Synthesis Options】。对话框中包括综合参数设置选项页、HDL源代码参数设置页和Xilinx专用参数设置页。综合参数设置选项页主要用于设置一些与综合的全局目标和整体策略
33、相关的参数;HDL源代码参数设置页主要设置与源代码规则和编译器的自动推论方式相关的属性;Xilinx专用参数设置页用于设置与Xilinx专用结构相关的综合属性。在对各项参数没有全面了解的情况下,一般选用缺省值。图2.26 综合属性设置 在资源管理窗口中选择【Implementation】模式,选中顶层设计文档,资源操作窗口将按流程先后顺序由上至下列出各项操作栏目,双击【Synthesize-XST】项,启动XST综合,如图2.27所示。完成综合后,双击【View Synthesis Report】、【View RTL Schematic】或【View Technology Schematic】
34、等项可分别浏览XST的综合报告、综合产生的寄存器传输级模块符号和模块内部逻辑结构,如图2.28、图2.29和图2.30所示。图2.27 执行逻辑综合 图2.28 逻辑综合报告 图2.29 综合得到的RTL模块符号 图2.30 综合得到的模块内部逻辑结构 2.2.4 物理实现物理实现物理实现(Implement)是指将综合输出的逻辑网表转换成所选器件的底层模块与硬件原语,将设计映射到器件结构上进行布局布线,达到在选定器件上实现设计的目的。通常认为实现过程包括转换、映射和布局布线三个步骤,在图2.31中给出了物理实现流程中的执行工具、各类文件和相应的输入/输出关系。(1)转换工具(NGDBuild
35、):主要作用是将综合输出的逻辑网表翻译为Xilinx特定器件的底层结构和硬件原语。这里硬件原语是指Xilinx规定的FPGA内不可再做细分的基本硬件结构,例如FPGA中的各类Buffer(缓冲器)。在翻译过程中,设计文件和约束文件将被合并生成NGD(原始类型数据库)输出文件和BLD报告文件,其中NGD文件包含了当前设计的全部逻辑描述,BLD文件是转换的运行和结果报告。转换工具可以导入EDN、EDF、EDIF、SEDIF等网表格式的设计文件,以及UCF(用户约束文件)、NCF(网表约束文件)、NMC(物理宏库文件)、NGC(含有约束信息的网表)等格式的约束文件。图2.31 物理实现流程图(2)映
36、射工具(Map Build):其主要作用是将设计映射到具体型号的器件上。在映射过程中,由转换流程生成的NGD文件将被映射为目标器件的特定物理逻辑单元,并保存在NCD(展开的物理设计数据库)文件中。映射工具的输入文件包括NGD、NCD和MFP(映射布局规划器)文件,输出文件包括NCD、PCF(物理约束文件)、NGM和MRP(映射报告)文件。其中MRP文件是通过Floorplanner生成的布局约束文件;NCD文件包含当前设计的物理映射信息;PCF文件包含当前设计的物理约束信息;NGM文件与当前设计的静态时序分析有关;MRP文件是映射的运行报告,主要包括映射的命令行参数、目标设计占用的逻辑资源、映
37、射过程中出现的错误和警告以及优化过程中删除的逻辑等内容。(3)布局布线工具(Place&Route Build):在这一步将调用Xilinx布局布线器,根据用户约束和物理约束对设计模块进行实际的布局,并根据设计连接对布局后的模块进行布线,产生配置FPGA/CPLD的BIT(位流)文件。通过读取当前设计的NCD文件,布局布线将映射后生成的物理逻辑单元在目标系统中放置和连线,并提取相应的时间参数。布局布线的输入文件包括NCD和PCF模板文件,输出文件包括NCD、DLY(延时文件)、PAD和PAR文件。在布局布线的输出文件中,NCD包含当前设计的全部物理实现信息,DLY文件包含当前设计的网络延时信息
38、,PAD文件包含当前设计的输入/输出(I/O)管脚配置信息,PAR文件主要包括布局布线的命令行参数、布局布线中出现的错误和警告、目标占用的资源、未布线网络、网络时序信息等内容。物理实现过程是充分体现EDA软件自动化的过程,由软件自动完成,并生成报告。用户一般在执行实现之前,利用约束设计工具创建和修改约束,生成约束文件UCF(User Constraints File)对实现的过程加以控制,使设计满足项目确定的时序、频率、引脚位置等要求。用户可以在ISE工程管理集成界面的资源操作窗口中,将【Implement Design】项展开,如图2.32所示,快速启动实现过程中的各步骤。下面结合图2.32
39、对各项操作作简要说明。图2.32 物理实现过程的操作界面(1)转换(Translate)步骤的相关操作:【Translation Report】:显示翻译步骤的报告。【Floorplan Design】:启动Xilinx布局规划器(Floorplanner)进行手动布局,提高布局效率。【Generate Post-Translate Simulation Model】:产生转换后的仿真模型。(2)映射(Map)步骤的相关操作:【Map Report】:显示映射步骤的报告。【Generate Post-Map Static Timing】:产生映射后静态时序分析报告,启动时序分析器(Timing
40、 Analyzer)分析映射后的静态时序。【Manually Place&Route(FPGA Editor)】:启动FPGA底层编辑器进行手动布局布线,指导自动布局布线,解决布局布线异常。【Floorplan Design Post-Map(Floorplanner)】:启动Floorplanner编辑器在映射步骤添加约束关系到设计的UCF约束文件中。【Generate Post-Map Simulation Model】:产生映射步骤后的仿真模型。(3)布局布线(Place&Route)步骤的相关操作:【Place&Route Report】:显示布局布线报告。【Clock Region
41、Report】:显示多时钟区实现报告。【Asynchronous Delay Report】:显示异步实现报告。【Pad Report】:显示管脚锁定报告。【Guide Results Report】:显示布局布线指导报告,该报告仅在使用布局布线指导文件NCD文件后才产生。【MPPR Results Report】:提供了多周期反复布线(Multi Pass Place&Route)的多项报告。【Generate Post-Place&Route Static Timing】:包含了进行布局布线后静态时序分析的一系列命令,可以启动Timing Analyzer分析布局布线后的静态时序。【Vie
42、w/Edit Placed Design(Floorplanner)】和【View/Edit Routed Design(FPGA Editor)】:启动Floorplanner和FPGA Editor完成FPGA布局布线的结果分析、编辑,手动更改布局布线结果,产生布局布线指导与约束文件,辅助Xilinx自动布局布线器,提高布局布线效率,并解决布局布线中的问题。【XPower Analyze】和【Generator Power Data】:启动功耗仿真器并分析设计的功耗数据信息。【Generate Post-Place&Route Simulation Model】:产生布局布线后的仿真模型,
43、该仿真模型包含的时延信息最全,不仅包含门延时,还包含了实际布线延时。该仿真步骤必须进行,以确保设计功能与FPGA实际运行结果一致。【Generate IBIS Model】:产生IBIS仿真模型,辅助PCB布板的仿真与设计。【Back-annotate Pin Locations】:反标管脚锁定信息。实现过程的各步骤的属性既可分别设置,也可统一设置。设置方法是先在资源管理窗口中选择顶层模块文件,然后在当前资源操作窗口中选中相应的步骤,或在菜单栏中单击【Process】【Properties】项,或单击工具栏中对应按钮来编辑该步骤的属性。属性设置对话框如图2.33所示,对话框中共包含了翻译步骤属
44、性设置(Translate Properties)、映射步骤属性设置(Map Properties)、布局布线步骤属性设置(Place&Route Properties)、映射后静态时序属性设置(Post-Map Static Timing Report Properties)、布局布线后静态时序属性设置(Post-Place&Route Timing Report Properties)、仿真模型属性设置(Simulation Model Properties)和Xplorer属性设置(Xplorer Properties)等七个子类选项,其中各属性的含义读者可参看Xilinx公司提供的官方
45、文档,本节不作说明。在ISE软件中,提供了分步执行实现各步骤的命令,并有多款工具方便用户查看实现的结果,进行细节部分的修改及优化。这些软件功能繁多,这里不作介绍。对于并不复杂的数字系统,实现过程中用户一般只进行引脚锁定,其它约束选项都可采用设计工具所提供的默认值。进行引脚锁定,用户既可采用约束编辑器(Constraints Editor)编写约束文件完成,也可通过引脚与区域约束编辑器(PACE)实现快速锁定。使用PACE来锁定引脚是最方便的,用户可按下述介绍完成引脚锁定操作。图2.33 属性设置对话框 先根据设计要求或硬件电路板限制,确定设计的输入/输出端口和目标芯片管脚的锁定关系。Spart
46、an-3E Starter目标板设计的端口和引脚的锁定关系如表2.4所示。输入端口对应引脚接目标板的四个按键,输出端口对应引脚接目标板的四个LED。为工程新建一个物理实现约束(Implementation Constraints File)文件,然后在资源管理窗口中选中顶层模块文件,在当前资源操作窗口中选择【User Constraints】【Floorplan Area/IO/Logic Post Synthesis】并双击,启动约束编辑器PACE,如图2.34所示。图2.34 启动约束编辑器 图2.35 PACE界面 在PACE中执行引脚锁定操作十分简便。先在设计浏览窗口中选择“I/O P
47、ins”,当前设计对象列表窗口中将显示出设计中的端口;选中待锁定的端口,将其从设计对象列表窗口拖曳至封装观察视图中器件对应引脚处放置就完成了一个引脚的锁定。图2.35演示了如何将q(0)端口锁定到F11引脚的操作过程。完成锁定后的引脚在设计对象列表窗口中的表格内将自动填上相应锁定信息。同理完成剩余引脚的锁定,保存到约束文件后退出。此后再执行实现的各步骤,引脚的锁定关系就被确定下来。2.2.5 仿真验证仿真验证从图2.6中的设计流程关系可看到,仿真是EDA设计过程中十分重要的步骤。充分运用仿真软件来提高设计效率和成功率,正是现代电子设计自动化工程的一大特色。仿真软件让计算机根据一定的算法和一定的
48、仿真库对设计进行模拟,以验证设计,排除错误。对于同种仿真工具,功能仿真和时序仿真在软件运用上一般没有什么区别。目前,FPGA应用方面常用的仿真软件包括ModelSim、ActiveHDL、NC-Verilog等,在ISE中内嵌了由Xilinx公司自行设计的仿真软件ISE Simulator,与之配合的还有专门用来以图形化方式生成测试激励的软件工具HDL Bencher。无论是执行哪种仿真,都应首先规划和设计好测试时使用的输入激励,这组激励被称为测试平台TestBench。借助于测试平台,分析运行仿真之后得到的响应结果来验证所设计的模块是否满足要求。ISE提供了两种测试平台的建立方法,一种是直接
49、利用HDL语言编写,这部分内容留待第3章介绍;另一种就是使用HDL Bencher的图形化波形编辑功能编写。下面就结合约翰逊计数器设计,对HDL Bencher和ISE Simulator两款工具在ISE中的使用分别进行介绍。如图2.36所示,当在资源管理窗口中将【Sources for:】下拉菜单切换至功能仿真【Behavioral Simulation】项,在当前资源操作窗口中选择【Create New Source】,新建一个测试波形激励文件(Test Bench Waveform),如图2.37所示。该窗口用于指定仿真文件所对应的设计源文件。新建了测试平台文件之后,HDL Benche
50、r工具将自动启动初始时序设置向导。接下来就可采用图形化的方式来设计测试平台。图2.36 新建行为仿真测试波形激励文件 图2.37 新建测试波形激励文件向导 在如图2.38所示的初始时序设置向导【Initial Timing and Clock Wizard】对话框中,主要完成时钟周期、设计类型、全局信号等参数的设置。在时钟周期的设置中,涉及到触发沿、时钟高电平和低电平保持时间、输入建立时间、输出有效时间、时钟偏移等参数的设置;设计类型中又分为单时钟同步时序电路、多时钟同步时序电路和组合电路等类型;全局信号设置主要选择在设计中是否使用GSR(FPGA)和PRLD(CPLD)等全局置位、复位信号;