ISE教程.docx
《ISE教程.docx》由会员分享,可在线阅读,更多相关《ISE教程.docx(20页珍藏版)》请在冰豆网上搜索。
ISE教程
光盘放进DVD光驱,等待其自动运行(如果没有自动运行,直接执行光盘目录下的Setup.exe文件程序即可),会弹出图4-1所示的欢迎界面,点击“Next”进入下一页。
图4-1ISE安装过程的欢迎界面
2.接着进入注册码获取、输入对话框,如图4-2所示。
注册码可以通过网站、邮件和传真方式申请注册码。
如果已有注册码,输入后单击“Next”按键后继续。
图4-2ISE9.1安装程序的注册码输入界面
购买了正版软件后,最常用的方法就是通过网站注册获取安装所需的注册码。
首先在Xilinx的官方主页上建立自己的帐号,然后点击图4-1中的“Website”按键,登陆帐号,输入CD盒上的产品序列号(序号的格式为:
3个字符+9个数字),会自动生成16位的注册码,直接记录下来即可,同时Xilinx网站会将注册码的详细信息发送到帐号所对应的邮箱中。
3.下一个对话框是Xilinx软件的授权声明对话框,选中“Iacceptthetermsofthissoftwarelicense”,单击“Next”后进入安装路径选择界面,如图4-3所示。
单击“Browse”按键后选择自定义安装路径,单击“Next”按键继续
图4-3ISE软件安装路径选择对话框
4.接下来的几个对话框分别是选择安装组件选择,如图4-4所示,用户需要选择自己使用的芯片所对应的模块,这样才能在开发中使用这些模块。
在计算机硬盘资源不紧张的情况下,通常选择“SelectAll”。
图4-4ISE安装组件选择界面
∙评论[支持者:
0人,反对者:
0人,中立者:
0人]查看评论信息
2008-11-2620:
53:
00
第3楼
小大
个性首页|QQ
5.随后进入设置环境变量页面,保持默认即可。
如果环境变量设置错误,则安装后不能正常启动ISE。
选择默认选项,安装完成后,在“我的电脑”上单击右键,选择属性环境变量中,可看到名为“Xilinx”的环境变量,其值为安装路径。
最后进入安装确认对话框,单击Install按钮,即可按照用户的设置自动安装ISE,如图4-5所示。
图4-5ISE安装进程示意图
6.安装完成后,会在桌面以及程序菜单中添加ProjectNavigator的快捷方式。
双击即可进入ISE集成开发环境。
4.1.4ISE软件的基本操作
1.ISE用户界面
ISE9.1i的界面如图4-6所示,由上到下主要分为标题栏、菜单栏、工具栏、工程管理区、源文件编辑区、过程管理区、信息显示区、状态栏等8部分。
图4-6ISE的主界面
∙标题栏:
主要显示当前工程的名称和当前打开的文件名称。
∙菜单栏:
主要包括文件(File)、编辑(Edit)、视图(View)、工程(Project)、源文件(Source)、操作(Process)、窗口(Window)和帮助(Help)等8个下拉菜单。
其使用方法和常用的Windows软件类似。
∙工具栏:
主要包含了常用命令的快捷按钮。
灵活运用工具栏可以极大地方便用户在ISE中的操作。
在工程管理中,此工具栏的运用极为频繁。
∙工程管理区:
提供了工程以及其相关文件的显示和管理功能,主要包括源文件视图(SourceView),快照视图(SnapshotView)和库视图(LibraryView)。
其中源文件视图比较常用,显示了源文件的层次关系。
快照是当前工程的备份,设计人员可以随时备份,也可以将当前工程随时恢复到某个备份状态。
快照视图用于查看当前工程的快照。
执行快照功能的方法是选择菜单项Project|TakeSnapshot。
库视图则显示了工程中用户产生的库的内容。
∙源文件编辑区:
源文件编辑区提供了源代码的编辑功能。
∙过程管理区:
本窗口显示的内容取决于工程管理区中所选定的文件。
相关操作和FPGA设计流程紧密相关,包括设计输入、综合、仿真、实现和生成配置文件等。
对某个文件进行了相应的处理后,在处理步骤的前面会出现一个图标来表示该步骤的状态。
∙信息显示区:
显示ISE中的处理信息,如操作步骤信息、警告信息和错误信息等。
信息显示区的下脚有两个标签,分别对应控制台信息区(Console)和文件查找区(FindinFiles)。
如果设计出现了警告和错误,双击信息显示区的警告和错误标志,就能自动切换到源代码出错的地方。
∙状态栏:
显示相关命令和操作的信息。
2.ISE菜单的基本操作
ISE所有的操作都可通过菜单完成,下面简要介绍ISE的菜单命令以及功能。
(1)File菜单
File菜单的命令包括:
NewProject、OpenProject、OpenExamples、CloseProject、SaveProjectAs、New、Open、Save、SaveAs、SaveAll、PrintPreview、Print、RecentFiles、RecentProjects以及Exit等。
NewProject命令:
用于新建工程,是开始设计的第一步。
ISE会为新建的工程创建一个和工程同名的文件夹,专门用于存放工程的所有文件。
OpenProject命令:
用于打开已有的ISE工程。
高版本的ISE可以打开低版本的工程,但需要版本转换,该转换是单向的、不可逆的,因此需要做好版本备份。
低版本的ISE不能打开高版本的ISE工程。
OpenExamples命令:
用于打开ISE提供的各种类型的示例。
CloseProject命令:
关闭当前工程。
如果关闭前未保存文件,ISE会提示用户保存后再退出。
SaveProjectAs命令:
可将整个工程另存为其他名字的工程,在大型开发中,常使用该命令来完成版本备份。
New命令:
用于新建源文件,可生成原理图、符号以及文本文件。
文本文件另存为时可修改其后缀名,以生成.v或.vhd的源文件。
Open命令:
用于打开所有Xilinx所支持的文件格式,便于用户查看各类文件资源。
Save、SaveAs以及SaveAll命令:
分别用于保存当前源文件、另存为当前源文件以及保存所有源文件。
用户要在开发当中养成及时保存文件的习惯,避免代码丢失。
PrintPreview命令:
用于打印预览当前文件,Print用于打印当前文件。
RecentFiles命令:
用于查看最近打开的文件。
RecentProjects命令:
用于查看最近打开的工程。
Exit命令:
用于退出ISE软件。
∙评论[支持者:
0人,反对者:
0人,中立者:
0人]查看评论信息
2008-11-2620:
53:
00
pengyoubieku
等级:
版主
文章:
4096
积分:
8553
圈子:
参与的圈子
注册:
2005年10月15日
第4楼
小大
个性首页|QQ
(2)Edit菜单
Edit菜单的命令包括:
Undo、Redo、Cut、Copy、Paste、Delete、Find、FindNext、FindinFiles、LanguageTemplates、SelectAll、UnselectAll、MessageFilters、ObjectProperties以及Preference等,大多数命令用于源代码开发中。
Undo命令:
用于撤销当前操作,返回到前一状态。
Redo命令:
是Undo命令的逆操作,用于恢复被撤销的操作。
Cut命令:
剪贴选中的代码,快捷键为“CRTL+X”。
Copy命令:
复制选中的代码,快捷键为“CRTL+C”。
Paste命令:
粘贴剪贴和复制的代码,快捷键为“CRTL+V”。
Delete命令:
删除选中的代码。
Find命令:
查找选中的文字,或寻找在其输入框中输入的内容,快捷键为“CRTL+F”。
FindNext命令:
寻找下一个要查找的内容,并跳至相应的位置,快捷键为“F3”。
LanguageTemplates命令:
可打开语言模版,里面有丰富的学习资料,是非常完整的HDL语言帮助手册,其地位类似于VisualC++的MSDN。
SelectAll命令:
选中所有的代码,其快捷键为“CRTL+A”。
UnselectAll命令:
撤销已选中的全部代码,是SelectAll的逆操作。
MessageFilter命令:
过滤消息,只显示用户期望的消息。
Preference命令:
用于设定ISE的启动参数以及运行参数,有着众多的设置项,最常用的就是第三方EDA软件的关联设置,将在第4.5节详细介绍。
(3)View菜单
View菜单主要管理ISE软件的视图,不涉及FPGA开发中的任何环节,其中常用的命令有LayoutHorizontally、LayoutVertically以及RestoreDefaultLayout。
LayoutHorizontally命令:
将水平地排列ISE主界面中过程管理区、过程管理区以及代码编辑区等主要栏目。
LayoutVertically命令:
将垂直地排列ISE主界面中过程管理区、过程管理区以及代码编辑区等主要栏目。
RestoreDefaultLayout命令:
将恢复ISE默认的主界面布局。
(4)Project菜单
Project菜单包含了对工程的各个操作,是设计中最常用的菜单之一,包括NewSource、AddSource、AddCopyofsource、CleanupProjectFiles、TogglePaths、Archive、TakeSnapshot、MakeSnapshotCurrent、ApplyProjectProperties以及SourceControl命令。
NewSource命令:
用于向工程中添加源代码,可以添加HDL源文件、IPCore以及管脚和时序约束文件。
AddSource命令:
将已有的各类源代码文件加入到工程中,Verilog模块的后缀为.v,VHDL模块的后缀为.vhd,IPcore源文件为.xco文件或.xaw文件,约束文件的后缀为.ucf。
AddCopyofsource命令,将目标文件拷贝一份添加到工程中。
CleanupProjectFiles命令:
用于清空综合和实现过程所产生的文件和目录。
如果在EDIF设计模式中,只清空实现过程所产生的文件。
TogglePaths命令:
用于显示或隐藏非工程文件夹中的远端源文件的路径;
Archive命令:
用于压缩当前工程,包括所有的文件,默认压缩类型为.zip格式。
TakeSnapshot命令:
用于产生一个工程快照,即当前目录和远程资源的一个只读记录,常用于版本控制。
MakeSnapshotCurrent命令:
用户恢复快照覆盖当前工程。
由于该命令会将当前工程删除,所以使用前一定要做好数据备份工作。
ApplyProjectProperties命令:
应用工程属性,会提示用于选择相应工程。
SourceControl常用于代码的导入和导出,有Export和Import两个子命令。
(4)Source菜单
Source菜单主要面向工程管理区,包含了对资源文件的各个操作,每个命令的操作也都可以在工程管理区单击右键弹出的对话框中点击实现,包括:
Open、SetasTopModule、UseSmartGuide、NewPartition、DeletePartition、Partitionproperties、PartitionForce、Remove、Movetolibrary以及Properties等命令。
Open命令:
可打开所有类型的源文件,包括.v、.vhd、.xco、.xaw以及.ucf等格式。
SetasTopModule命令:
用于将选中的文件设置成顶层模块。
只有设置成顶层模块,才能对其综合、实现以及生成相应的二进制比特流文件。
UseSmartGuide命令:
允许用户在本次实现时利用上一次实现的结果,包括时序约束以及布局布线结果,可节省实现的时间,但前提是工程改动不大。
NewPartition命令:
新建分区,常用于区域约束。
DeletePartition命令:
删除区域约束的分区
Partitionproperties命令:
可设置分区属性,详细说明刻参考4.4.4节内容。
PartitionForce命令:
包含“ForceSynthesisOut-of-data”和“ForceImplementDesignOut-of-data”两个指令,分别用于分区综合和增量设计。
Remove命令:
把选中的文件从工程中删除,但仍保留在计算机硬盘上。
Movetolibrary命令:
将选中的源文件移动到相应的库中,以便建立用户文件库。
Properties命令:
查看源文件属性,有Synthesis/ImplementationOnly、SimulationOnly以及Synthesis/Imp+Simulation三种类型,其中SimulationOnly类文件只能仿真,不能被综合。
(5)Process菜单
Process菜单包含了工程管理区的所有操作,每个命令的操作也都可以在过程管理区点击相应的图标实现,包括:
InmolementTopModule、Run、Rerun、RerunAll、Stop、OpenWithoutUpdating以及Properties等命令。
InmolementTopModule命令:
完成顶层模块的实现过程。
Run命令:
在工程过程栏,选中不同的操作,点击改命令,可分别启动综合、转换、映射、布局布线等过程。
Rerun命令:
重新运行Run指令执行的内容。
RerunAll命令:
重新运行所有Run指令执行的内容。
Stop命令:
停止当前操作,可中止当前操作,包括综合和实现的任一步骤。
OpenWithoutUpdating命令:
改指令用于打开相应上一次完成的综合或实现过程所产生的文件。
Properties命令:
在工程过程栏,选中不同的操作,点击该命令,可设置不同阶段的详细参数。
(6)Windows菜单
Windows菜单的主要功能是排列所有窗口,使其易看易管理。
通过本菜单可以看到当前打开的所有窗口,并能直接切换到某个打开的窗口。
由于各命令操作简单,不再介绍。
(7)Help菜单
Help菜单主要提供ISE所有帮助以及软件管理操作,包括:
HelpTopics、SoftwareManuals、XilinxontheWeb、Tutorials、UpdateSoftwareProductConfiguration、TipoftheDay、WebUpdata以及About命令。
HelpTopics命令:
点击后,将自动调用IE浏览器打开ISE的帮助文档。
SoftwareManuals命令:
点击后,将自动打开PDF文件,通过超链接到用户感兴趣的软件使用文档,其内容比网页形式的帮助文档要丰富。
XilinxontheWeb命令:
包括完整的Xilinx网络资源,可根据需要点击查看链接。
Tutorials命令:
包括本地快速入门ISE的说明文档和Xilinx网站的入门教学内容,可点击查看。
UpdateSoftwareProductConfiguration命令:
用于更新ISE软件的注册ID,如果试用版用户在试用期间购买了正版软件,不用卸载再重新安装,只需要通过该命令更换ID即可。
TipoftheDay命令:
每天提示,可设置或关闭在每次启动ISE时,弹出对话框,列出ISE的最新功能和一个应用技巧。
WebUpdata命令:
点击该命令,可自动连接到Xilinx的官方网站,下载最近的软件包并提示用户安装。
About命令:
点击该命令将弹出ISE的版本,包括主版本和升级号以及注册ID。
ISE约束文件完整讲解
ISE约束文件的基本操作
1.约束文件的概念
FPGA设计中的约束文件有3类:
用户设计文件(.UCF文件)、网表约束文件(.NCF文件)以及物理约束文件(.PCF文件),可以完成时序约束、管脚约束以及区域约束。
3类约束文件的关系为:
用户在设计输入阶段编写UCF文件,然后UCF文件和设计综合后生成NCF文件,最后再经过实现后生成PCF文件。
本节主要介绍UCF文件的使用方法。
UCF文件是ASC2码文件,描述了逻辑设计的约束,可以用文本编辑器和Xilinx约束文件编辑器进行编辑。
NCF约束文件的语法和UCF文件相同,二者的区别在于:
UCF文件由用户输入,NCF文件由综合工具自动生成,当二者发生冲突时,以UCF文件为准,这是因为UCF的优先级最高。
PCF文件可以分为两个部分:
一部分是映射产生的物理约束,另一部分是用户输入的约束,同样用户约束输入的优先级最高。
一般情况下,用户约束都应在UCF文件中完成,不建议直接修改NCF文件和PCF文件。
2.创建约束文件
约束文件的后缀是.ucf,所以一般也被称为UCF文件。
创建约束文件有两种方法,一种是通过新建方式,另一种则是利用过程管理器来完成。
第一种方法:
新建一个源文件,在代码类型中选取“ImplementationConstrainsFile”,在“FileName”中输入“one2two_ucf”。
单击“Next”按键进入模块选择对话框,选择模块“one2two”,然后单击“Next”进入下一页,再单击“Finish”按键完成约束文件的创建。
第二种方法:
在工程管理区中,将“Sourcefor”设置为“Synthesis/Implementation”。
“ConstrainsEditor”是一个专用的约束文件编辑器,双击过程管理区中“UserConstrains”下的“CreateTimingConstrains”就可以打开“ConstrainsEditor”,其界面如图所示:
图启动ConstrainsEditor引脚约束编辑
在“Ports”选项卡中可以看到,所有的端口都已经罗列出来了,如果要修改端口和FPGA管脚的对应关系,只需要在每个端口的“Location”列中填入管脚的编号即可。
例如在UCF文件中描述管脚分配的语法为:
NET“端口名称”LOC=引脚编号;
需要注意的是,UCF文件是大小敏感的,端口名称必须和源代码中的名字一致,且端口名字不能和关键字一样。
但是关键字NET是不区分大小写的。
3.编辑约束文件
在工程管理区中,将“Sourcefor”设置为“Synthesis/Implementation”,然后双击过程管理区中“UserConstrains”下的“EditConstraints(Text)”就可以打开约束文件编辑器,如下图所示,就会新建当前工程的约束文件。
图用户约束管理窗口
UCF文件的语法说明
1.语法
UCF文件的语法为:
{NET|INST|PIN}"signal_name"Attribute;
其中,“signal_name”是指所约束对象的名字,包含了对象所在层次的描述;“Attribute”为约束的具体描述;语句必须以分号“;”结束。
可以用“#”或“/**/”添加注释。
需要注意的是:
UCF文件是大小写敏感的,信号名必须和设计中保持大小写一致,但约束的关键字可以是大写、小写甚至大小写混合。
例如:
NET"CLK"LOC=P30;
“CLK”就是所约束信号名,LOC=P30;是约束具体的含义,将CLK信号分配到FPGA的P30管脚上。
对于所有的约束文件,使用与约束关键字或设计环境保留字相同的信号名会产生错误信息,除非将其用""括起来,因此在输入约束文件时,最好用""将所有的信号名括起来。
2.通配符
在UCF文件中,通配符指的是“*”和“?
”。
“*”可以代表任何字符串以及空,“?
”则代表一个字符。
在编辑约束文件时,使用通配符可以快速选择一组信号,当然这些信号都要包含部分共有的字符串。
例如:
NET"*CLK?
"FAST;
将包含“CLK”字符并以一个字符结尾的所有信号,并提高了其速率。
在位置约束中,可以在行号和列号中使用通配符。
例如:
INST"/CLK_logic/*"LOC=CLB_r*c7;
把CLK_logic层次中所有的实例放在第7列的CLB中。
3.定义设计层次
在UCF文件中,通过通配符*可以指定信号的设计层次。
其语法规则为:
*遍历所有层次
Level1/*遍历level1及以下层次中的模块
Level1/*/遍历level1种的模块,但不遍历更低层的模块
例4-5根据图4-75所示的结构,使用通配符遍历表4-3所要求的各个模块。
图层次模块示意图
表要求遍历的符号列表
管脚和区域约束语法
LOC约束是FPGA设计中最基本的布局约束和综合约束,能够定义基本设计单元在FPGA芯片中的位置,可实现绝对定位、范围定位以及区域定位。
此外,LOC还能将一组基本单元约束在特定区域之中。
LOC语句既可以书写在约束文件中,也可以直接添加到设计文件中。
换句话说,ISE中的FPGA底层工具编辑器(FPGAEditor)、布局规划器(Floorplanner)和引脚和区域约束编辑器的主要功能都可以通过LOC语句完成。
∙ LOC语句语法
INST"instance_name"LOC=location;
其中“location”可以是FPGA芯片中任一或多个合法位置。
如果为多个定位,需要用逗号“,”隔开,如下所示:
LOC=location1,location2,...,locationx;
目前,还不支持将多个逻辑置于同一位置以及将多个逻辑至于多个位置上。
需要说明的是,多位置约束并不是将设计定位到所有的位置上,而是在布局布线过程中,布局器任意挑选其中的一个作为最终的布局位置。
范围定位的语法为:
INST“instance_name”LOC=location:
location[SOFT];
常用的LOC定位语句如表4-4所列。
表常用的LOC定位语句
使用LOC完成端口定义时,其语法如下:
NET"Top_Module_PORT"LOC="Chip_Port";
其中,“Top_Module_PORT”为用户设计中顶层模块的信号端口,“Chip_Port”为FPGA芯片的管脚名。
LOC语句中是存在优先级的,当同时指定LOC端口和其端口连线时,对其连线约束的优先级是最高的。
例如,在图4-76中,LOC=11的优先级高于LOC=38。
图LOC优先级示意图
2.LOC属性说明
LOC语句通过加载不同的属性可以约束管脚位置、CLB、Slice、TBUF、块RAM、硬核乘法器、全局时钟、数字锁相环(DLL)以及DCM模块等资源,基本涵盖了FPGA芯片中所有类型的资源。
由此可见,LOC语句功能十分强大,表4-5列出了LOC的常用属性。
表LOC语句常用属性列表