一般情况下,我是反感写这些内容的,找个UG看一下,然后练习一下,就会了,参考价值不大,这次破例,纯属冲动。
5.4.1 iMPACT综述与基本操作
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对常用的配置文件进行比较和说明。
表5-19 常用的Xilixn FPGA配置文件格式列表
对于FPGA器件,iMPACT能够直接将.bit位流文件下载到芯片中,或者将其转换为PROM器件的EXO/MCS文件格式,并下载到PROM芯片中。
2. iMPACT用户界面
有两种方法可以启动iMPACT软件,一种是在ISE过程管理区中,点击Generate Programming File前面的“+”号,再双击“Configure Device”,在ISE环境下运行;另一种是通过点击“开始 程序 ISE9.1 Accessories iMPACT”,在Windows环境下单独运行。其用户界面如图M所示。
图5-35 iMPACT的用户界面
iMPACT的用户界面主要由File、Edit、View、Operations、Options、Output、Debug、Window、Help菜单栏和常用工具栏组成。下面对常用的菜单栏操作进行简要介绍。
File菜单包含了常见的文件操作,其中的“Initialize Chain”用于自动完成边界扫描JTAG链上的器件类型和数目;“Export Project to CDF”用于把向前项目信息保存到CDF(Chain Description File)文件中。
Edit菜单包含了常用的配置操作,其中的“Add Device”用于手动创建JTAG扫描链时添加PROM或FPGA芯片;“Assign Configuration File”用于指定配置文件;“EDIT ROM”用于修改和删除PROM芯片;“Preference”用于设定iMPACT的通用选项。
View菜单包含了各个窗口显示/关闭的操作。
Operations菜单包含了配置、验证、擦除以及各类验证操作。其中“Program”用于对器件编程,下载相应的配置文件;“Verify”用于验证下载是否正确;“Erase”用于擦除FPGA或PROM芯片内的内容。
Options菜单包含编程、擦除以及回读等选项。
Output菜单包含了常用的电缆操作。其中“Cable Auto Connect”用于电缆自动连接;“Disconnect All Cables”用于断开所有电缆
Debug菜单包含了JTAG扫描连所有的调试操作。其中“Start/Stop Debug Chain”用于启动或停止调试;“Chain Integrity Test”用于扫描立案完整性测试;“IDCODE Test”用于IDCODE测试。
Window菜单包含了窗口管理操作,如关闭窗口、上一下/下一个窗口等。
Help菜单包含了iMPACT的在线帮助和版本信息。
5.4.2 使用IMPACT创建配置文件
一个设计经过综合、实现之后,需要为器件生成相应的编程文件。ISE中内嵌了比特流生成器,可生成FPGA以及PROM格式文件,从而实现动态配置,并验证数据是否正确。由于Xilinx FPGA支持多种配置模式,因此在完成数据配置之前,需要选择一个合适的模式,以避免出现编程错误
1. 配置参数设置窗口
在过程窗口中,选中[Generate Programming File]并单击右键打开[Process Properties]窗口,在其中可完成对各类编程参数的选择和配置。
(1)通用参数设置窗口
通用参数设置窗口如图5-36所示,主要选择配置文件的格式以及各种校验规则。
图5-36 通用参数(General Options)设置窗口
其中相应的选项说明如下:
(2)配置参数设置窗口
配置参数设置窗口如图5-37所示,主要完成配置电路所用管脚内部电阻的选择。
图5-37 配置参数(Configuration Options)设置窗口
其相应的选项说明如下:
(3)配置启动参数设置窗口
配置启动参数设置窗口如图5-38所示,主要完成配置电路时钟信号以及时钟驱动方案的选择。
图5-38配置启动参数(Startup Options)设置窗口
注意:图M的配置窗口对于不同系列的FPGA芯片是略存区别的。对于早期的Virtex和Spartan-2系列,还会有“Release Set/Reset(Output Events)”等选项,用于设置多少个时钟周期后,复位/置位内部锁存器、触发器。
其相应的选项说明如下:
(4)回读方式参数设置窗口
回读方式参数设置窗口如图5-39所示,主要用于回读文件格式和回读模式的设置。
图5-39 回读方式参数(Raedback Options)设置窗口
其相应的选项说明如下:
(5)加密参数设置窗口
加密参数设置窗口如图5-40所示,主要完成配置文件加密选项的设置。
图5-40加密参数(Encryption Options)设置窗口
其相应的选项说明如下:
2.生成FPGA比特配置文件的操作
FPGA配置文件主要用于调试阶段快速地通过JTAG模式配置FPGA,断电后芯片内的逻辑立刻消失,每次上电都需要重新配置。该操作比较简单,首先,根据在配置启动参数中选择配置时钟为JTAG CLK,否则会产生警告,配置过程容易出错;其次,直接点击过程区的Generate Programming File即可,如图5-41所示。
图5-41 创建FPGA配置文件示意图
3.生成PROM比特配置文件的操作
只有生成PROM文件并下载PROM芯片中,才能保证FPGA上电后自动加载逻辑并正常工作。和生成FPGA配置文件相比,生成PROM配置文件较为麻烦,下面对其进行详细说明。
1)将设计经过前仿、综合、实现以及后仿,确保设计无误。单击过程管理区中“Generate Programming File”前面的“+”号,双击“Generate PROM,ACE,or JTAG File”运行文件生成工具,弹出的文件界面如图5-42所示。
图5-42 PROM配置文件生成工具界面 图5-43 选择PROM芯片的类型和文件格式
2)单击“Next”按钮,进入PROM器件选择界面,如图5-43所示。下面以Xilinx PROM为例进行说明。选中Xilinx PROM,在文件格式“PROM File Format”中选择EXO,将PROM配置文件的名字改成“sqrt_test”,确定PROM的存放位置。
3)点击“Next”按钮,选择PROM器件的型号,如图5-44所示。可以选中“Auto Select PROM”选项,由iMPACT自动选择合适的PROM芯片,也可以手动在“Select a PROM”选项的下拉框中选择合适的PROM芯片,然后单击“Add”按钮添加选中的器件。可根据需要反复多次,添加多个PROM芯片。此外,对于 XCF08P以上的批ROM芯片,还可以使能修改和压缩功能。
图5-44 选择PROM芯片的型号 图5-45 PROM配置文件生成器综合信息显示窗口
4)单击“Next”,进入PROM文件综合信息显示窗口,如图5-45所示。如果确认信息无误,单击“Finish”,进入后续步骤;否则返回前面进行修改。
5)单击“Finish”后弹出的配置文件加载窗口如图5-46所示。
图5-46 比特文件选择界面
6)选择相应的文件后,单击“打开”按钮,将其加载。此时,iMPACT会根据加载的bit文件所对应的FPGA芯片计算PROM的容量,如果 PROM容量不够,会主动提醒用户修改PROM型号或者添加更多的PROM芯片;如果容量富裕,则会给出PROM的容量利用率,如图5-47所示。例如,图中给出的设计使用了81.66%的PROM容量。此时,还可以在PROM、FPGA器件的图标上点击右键分别更新芯片型号和相应的.bit文件。
图5-47 PROM容量显示界面
7)在iMPACT的过程管理窗口,双击“Generate File”,iMPACT会自动创建PROM配置文件。或在PROM上点击右键,选择“Generate File”也可完成。当配置文件创建成功后,显示文件大小以及所占PROM的容量,并在iMPACT界面上显示“PROM File Generation Succeeded”,如图5-48所示。
图5-48 PROM配置文件创建成功提示界面
5.4.3 使用IMPACT配置芯片
利用iMPACT配置芯片的操作流程见4.3.4节,这里就不再重复说明。
5.4.4 FPGA配置失败的常见问题
在配置FPGA器件时,经常会出现配置失败的情况,简单总结起来有下列几种情况,并给出响应的解决方案。
1. JTAG链扫描失败
解决方法:首先,检查所有芯片的TCK、TMS管脚是否和JTAG接口的TCK、TMS连接在一起;其次,检查配置电路的JTAG链路是否完整,从 JTAG接口的TDI到链首芯片的TDO、……、再到链尾芯片的TDO是否连接到JTAG接口的TDO;最后再检查电源是否正确。
2.无法通过计算机并口配置
解决方法:首先,检查计算机并口是否插好;其次,采用质量更好的并口配置电缆(Parallel Cable-IV)或信号质量更好的USB配置电缆,排除下载线的问题。目前,最好采用速度更快、可靠性更高的USB下载线。
3. 无法正常配置
解决方法:检查配置时钟信号CCLK或JTAG时钟信号TCK是否存在干扰信号或过冲。如果存在干扰,判断干扰源,并增加滤波电路以消除干扰。如果有过冲,说明该信号线阻抗可能由于较长不匹配,需要增加匹配电阻。一般情况下,CCLK信号的引线长度不超过10cm,还可通过增加源端匹配电阻(33~100 电阻)来改善时钟信号质量。
此外,如果FPGA芯片的旁路电容设计不合理或数据线上有地线及弹信号,也会导致配置失败。
4. DONE管脚状态始终为低
解决方法:检测DONE管脚的负载是否太重,选择合适的上拉电阻。
5. DONE管脚已经变高,但器件仍不能正常工作
解决方法:首先检查设计是否无误;其次,如果设计无误,再检查器件的启动顺序,参考配置流程,通过设计工具重新设置启动顺序。
6. 模式管脚选择错误
解决方法:根据模式选择管脚M[2:0]选择配置模式,当模式改变后,要修改位流文件中的配置时钟为CCLK还是TCK,否则容易配置失败
7. 器件上电后,有时候能配置成功,有时不成功
解决方法:这种情况,经常是由期间的复位未完成,就开始出现数据流。解决方法就是添加复位芯片,延长复位时间。