XilinxIMPACT工具使用IMPACT5.4.1iMPACT综述与基本操作1.iMPACT简介iMPACT支持4种下载模式:边界扫描,从串模式、SelectMap模式以及Desktop配置模式。从串模式是一种常用配置电路,可用USB口或并口完成配置。SelectMap模式是一种并行配置模式,速度快,但需要使用多个信号管脚。Desktop模式是一种高速配置模式,可配置FPGA、PROM以及SystemACE,但需要专用的硬件设备。在实际中,由于边界扫描模式标准统一、设备简单,且可通过JTAG链路配置FPGA、CPLD以及PROM,使用最为广泛。因此本节主要基于边界扫描模式来介绍IMPACT的使用方法。当设计完成后,ISE调用BitGEN程序把布局布线后的.ncd文件转化成.bit文件,包括了配置数据和配置指令。如果使用JTAG模式,可直接将.bit文件通过iMPACT文件配置到FPGA芯片中。如果要用其它模式配置FPGA,则需要通过iMPACT进行格式转化,生成.mcs、.exo以及.hex等文件格式,表M对常用的配置文件进行比较和说明。对于FPGA器件,iMPACT能够直接将.bit位流文件下载到芯片中,或者将其转换为PROM器件的EXO/MCS文件格式,并下载到PROM芯片中。2.iMPACT用户界面有两种方法可以启动iMPACT软件,一种是在ISE过程管理区中,点击GenerateProgrammingFile前面的“+”号,再双击“ConfigureDevice”,在ISE环境下运行;另一种是通过点击“开始程序ISE9.1AccessoriesiMPACT”,在Windows环境下单独运行。iMPACT的用户界面主要由File、Edit、View、Operations、Options、Output、Debug、Window、Help菜单栏和常用工具栏组成。下面对常用的菜单栏操作进行简要介绍。File菜单File菜单包含了常见的文件操作,其中的“InitializeChain”用于自动完成边界扫描JTAG链上的器件类型和数目;“ExportProjecttoCDF”用于把向前项目信息保存到CDF(ChainDescriptionFile)文件中。Edit菜单Edit菜单包含了常用的配置操作,其中的“AddDevice”用于手动创建JTAG扫描链时添加PROM或FPGA芯片;“AssignConfigurationFile”用于指定配置文件;“EDITROM”用于修改和删除PROM芯片;“Preference”用于设定iMPACT的通用选项。View菜单View菜单包含了各个窗口显示/关闭的操作。Operations菜单Operations菜单包含了配置、验证、擦除以及各类验证操作。其中“Program”用于对器件编程,下载相应的配置文件;“Verify”用于验证下载是否正确;“Erase”用于擦除FPGA或PROM芯片内的内容。Options菜单Options菜单包含编程、擦除以及回读等选项。Output菜单Output菜单包含了常用的电缆操作。其中“CableAutoConnect”用于电缆自动连接;“DisconnectAllCables”用于断开所有电缆Debug菜单Debug菜单包含了JTAG扫描连所有的调试操作。其中“Start/StopDebugChain”用于启动或停止调试;“ChainIntegrityTest”用于扫描立案完整性测试;“IDCODETest”用于IDCODE测试。Window菜单Window菜单包含了窗口管理操作,如关闭窗口、上一下/下一个窗口等。Help菜单Help菜单包含了iMPACT的在线帮助和版本信息。5.4.2使用IMPACT创建配置文件一个设计经过综合、实现之后,需要为器件生成相应的编程文件。ISE中内嵌了比特流生成器,可生成FPGA以及PROM格式文件,从而实现动态配置,并验证数据是否正确。由于XilinxFPGA支持多种配置模式,因此在完成数据配置之前,需要选择一个合适的模式,以避免出现编程错误1.配置参数设置窗口在过程窗口中,选中[GenerateProgrammingFile]并单击右键打开[ProcessProperties]窗口,在其中可完成对各类编程参数的选择和配置。(1)通用参数设置窗口通用参数设置窗口如图5-36所示,主要选择配置文件的格式以及各种校验规则。图5-36通用参数(GeneralOptions)设置窗口其中相应的选项说明如下:RunDesignRulesChecker(DRC):运行设计规则校验。建议使用该功能,在位流文件生成中进行规则校验,这样可对NCD文件进行评估。其默认值为选中。CreatBitFile:创建位流文件。用于设计在实现后生成可配置的比特文件。其默认值为选中。CreatBinaryConfigurationFile:创建二进制配置文件。其默认值为不选中。CreatASCIIConfigurationFile:创建ASCII配置文件。其默认值为不选中。CreatIEEE1532ConfigurationFile:创建符合IEEE1532标准的配置文件,仅对Virtex系列芯片有关。其默认值为不选中。CreatBitStreamCompression:使能比特文件压缩功能,可节约PROM的存储空间。其默认值为不选中。EnableDebuggingofSerialModeBitStream:使能比特文件的调试功能。其默认值为不选中。EnableCyclicRedundancyChecking(CRC):使能循环冗余校验,在配置数据中添加4位校验码。其默认值为不选中。(2)配置参数设置窗口配置参数设置窗口如图5-37所示,主要完成配置电路所用管脚内部电阻的选择。图5-37配置参数(ConfigurationOptions)设置窗口其相应的选项说明如下:ConfigurationRate:配置数据速率。其默认值为4Mbps。ConfigurationClk(ConfigurationPins):用于选择配置时钟管脚CCLK内部是否使用上拉电阻,有“Pullup”和“Float”两种选择。选择上拉可以减小时钟信号线上的干扰信号,默认值为选择内部上拉。ConfigurationPinM0:用于选择模式控制管脚M0的内部电阻阻值,有“PullUp”、“Float”和“PullDown”3种选择,分别对应着上拉、悬空和下拉,其电阻值的范围为50~100,上拉和下拉能在一定程度上减小干扰。默认值为选择内部上拉。ConfigurationPinM1:用于选择模式控制管脚M1的内部电阻阻值。同M0的说明。ConfigurationPinM2:用于选择模式控制管脚M2的内部电阻阻值。同M0的说明ConfigurationPinProgram:用于选择编程控制管脚PROG的内部电阻阻值,有“PullUp”、“Float”和“PullDown”3种选择,分别对应着上拉、悬空和下拉,上拉和下拉能在一定程度上减小干扰,避免非法操作。默认值为选择内部上拉。ConfigurationPinDone:用于选择DONE管脚的内部电阻阻值,有“PullUp”、“Float”和“PullDown”3种选择,分别对应着上拉、悬空和下拉,其电阻值的范围为2~18。由于DONE信号为集电极开路输出,必须有终端电阻才能正常工作,如果外部电路中没有上拉电阻,则必须选择“PullUp”;同样,在选择“Float”时,要保证外部电路中已有上拉电阻。ConfigurationPinInitConfigurationPinCSConfigurationPinDInConfigurationPinBusyConfigurationPinRdWrJTAGPinTCK:用于选择JTAG时钟管脚TCK的内部电阻阻值,有“PullUp”、“Float”和“PullDown”3种选择,分别对应着上拉、悬空和下拉,建议选择内部上拉。默认值为选择内部上拉。JTAGPinTDI:用于选择JTAG输入数据管脚TDI的内部电阻阻值,同TCK的说明。JTAGPinTDO:用于选择JTAG输出数据管脚TDO的内部电阻阻值,同TCK的说明。JTAGPinTMS:用于选择JTAG测试模式选择管脚TMS的内部电阻阻值,同TCK的说明。UnusedIOPins:用于选择未用管脚的内部电阻选择,同TCK的说明。默认值为FFFFFFFF。UserIDCode(8DigitalHexadecimal):用户码身份输入,其格式为8个16进制数。DCIUpdateMode:用于选择设计DCI进行阻抗调整的模式,有“AsRequired”、“Continuous”和“Quiet(Off)”3种选择,分别对应着仅在需要时调整阻抗、连续调整阻抗以及达到初始后便不再调整阻抗的3种模式。默认值为“AsRequired”。(3)配置启动参数设置窗口配置启动参数设置窗口如图5-38所示,主要完成配置电路时钟信号以及时钟驱动方案的选择。图5-38配置启动参数(StartupOptions)设置窗口注意:图M的配置窗口对于不同系列的FPGA芯片是略存区别的。对于早期的Virtex和Spartan-2系列,还会有“ReleaseSet/Reset(OutputEvents)”等选项,用于设置多少个时钟周期后,复位/置位内部锁存器、触发器。其相应的选项说明如下:FPGAStart-UpClock:用于选择FPGA芯片的配置时钟,有“CCLK”、“UserClock”和“JTAGClock”3个可选项。当配置模式为主模式时,则配置时钟由FPGA芯片生成;当配置模式为从模式时,则配置时钟由外部提供。当配置PROM器件时,必须选择CCLK时钟;当选择JTAG模式的配置时钟,该时钟由JTAG接口TCK信号提供。用户自定义的配置时钟UserClock目前很少使用。默认值为CCLK。EnableInternalDonePipe:用于选择是否等待插入的延迟信号CFG_DONE后,DONE管脚有效,对于高速配置方案非常有效。默认值为不选择。Done(OutputEvents):用于设置多少个CFG_DONE周期后,使DONE信号有效。默认值为4。EnableOutputs(OutputEvents):用于设置多少个时钟周期后,将输入、输出管脚从三态条件释放到实际的输入、输出结构。默认值为5。ReleaseWriteEnable(OutputEvents):用于设置多少个时钟周期后,释放全局写信号到触发器和存储器。如果选择“Done”参数,表示当Done脚为高时,释放写使能信号;选择“Keep”,用于保持当前的写使能信号。默认值为6。ReleaseDLL(OutputEvents):用于设置等待多少个时钟周期后,DLL输出有效。默认值为“NoWait”。MatchCycle:用于设置是否等到DCI匹配后,再进入启动周期。默认值为“NoWait”。DriveDonePinHigh:用于设置是否将Done置高。默认值为不选中。(4)回读方式参数设置窗口回读方式参数设置窗口如图5-39所示,主要用于回读文件格式和回读模式的设置。图5-39回读方式参数(RaedbackOptions)设置窗口其相应的选项说明如下:Security:用于设置是否在回读和重新配置数据时设置保护模式,有“EnableReadbackandReconfiguration”、“DisableReadback”和“DisableReadbackandReconfiguration”3个选项,分别对应着使能回读和重新配置数据、禁止回读以及禁止回读和重新配置数据。其中,禁止回读和重配置是处于对设计保护考虑的;回读执行时,需要由M0/RTRIG脚产生一个上升沿来启动,需要一个外部的逻辑电路驱动CCLK时钟