ChipScope Pro工具简介

网络上一个集合很多chipscope学习资源的网站 http://www.tutorgig.net/books.jsp?keywords=chipscope
Chipscope是XILINX推出的一款在线调试软件,价格便宜,通过它完全可以脱离传统逻辑分析仪(太贵)来调时序,观察FPGA内部的任何信号,触发条件、数据宽度和深度等的设置也非常方便,但是肯定也存在不足,比如速度和数据量方面。Chipscope本身是一个逻辑分析仪,主要用于在上板测试过程中采集并观察芯片内部信号,以便于调试。
它的原理是,在你综合完的网表里插入用于采集数据的core(包括ILA和ICON),插入的方式可以用core inserter,也可以用core generator,只不过后者需要在源代码中实例化。用core inserter更为快捷,基本上就是选择你要观察的信号以及触发源、时钟等,然后运行之后会自动生成一个新的网表文件,再用这个网表在ISE里面进行布局布线,生成下载文件,通过JTAG方式下载到芯片里运行。在芯片运行的过程中,如果你选择的触发源发生跳变,或满足触发条件时,芯片里的core会将你要观察的信号采集并存储在芯片内的RAM(也可以是FF)中,然后通过JTAG口将采集到的信号上载到PC,最后在PC的chipscope analyzer的界面中以波形的方式显示出来,因此你就能看到芯片里的信号波形。
我们平时都是使用Chipscope的 core inserter 方式来往我们的工程里面植入Chipscope核。凡事都是利弊相生的,XILINX的Chipscope core inserter工具帮你便捷地把core植入到你的工程里面,那么存在一定的弊端,那就是编译时间被延长得很长,而且每次编译过程中,都会根据你的cdc工程文件重新生成一次ICON、ILA内核网表,再重新编译整个工程,那么编译时间就不可避免地被延长了。
所以,如果要采集到你所要的信号波形,首先是你的触发条件被满足。chipscope不会去改变你的原始设计中的信号,只对他们作采集。
总结来说,chipscope是利用植入FPGA的两个core: ILA 和 ICON,利用JTAG数据线传回数据的方式来观察、调试设计的。

1.ChipScope Pro简介
ChipScope Pro可以分析任何内部FPGA信号,包括嵌入式处理器总线;在设计采集或综合之后,插入小型的、可配置的软件核,将引脚影响降至最低;在板上以达到或接 近目标工程运行的速度验证FPGA设计;利用FPGA的可重编程性能,可以在几分钟或几小时内确定设计问题并修改设计;内置的软件逻辑分析器可以用来识别 设计问题并进行调试,包括高级触发、过滤和显示选项,无需重新综合即可改变探针指向;可利用远程调试(从办公室到实验室,或在全球范围内)通过互联网连接 进行调试;此外还包括Agilent科技推出的、用于实现功能强大的验证功能的逻辑分析器可选配件,可以探测包括从FPGA内部到板上任何地方的交叉互联 信号。其典型的工作模式如图5-1所示。


图5-1 ChipScope Pro的典型工作模式示意图

ChipScope Pro为用户提供方便和稳定的逻辑分析解决方案,支持Spartan和Virtex全系列FPGA芯片,但对PC和芯片之间的JTAG通信电缆有一定的要求,目前支持下面四类:
 Platform Cable USB
 Parallel Cable IV
 MultiPRO (JTAG mode only)
ChipScope Pro软件由ChipScope Pro核生成器(ChipScope Pro Core Generator)、ChipScope Pro核插入器(ChipScope Pro Core Inserter)、ChipScope Pro分析仪(ChipScope Pro Analyzer)以及ChipScope Tcl脚本接口(ChipScope Tcl Scripting Interface)四个组件组成,支持普通FPGA设计以及基于FPGA的嵌入式、SOC系统,其具体功能如表5-1所示。

表5-1 ChipScope Pro组件的功能简介

在使用时,直接将ICON、ILA、以及ATC2等核直接插入到设计的综合网表中,然后通过实现工具完成布局布线,将生成的比特文件下载到芯片中,从而实现在线逻辑分析器。

2.ChipScope Pro软件的安装
(1)系统要求
安装ChipScope Pro的硬件要求如下:
 IBM兼容机型,主频1GHZ以上;
 内存1024MB或者更高;
 100M以上的可用硬盘空间。
注意:由于运行ChipScope Pro需要消耗大量的资源,为了节省时间,建议使用1024MB以上内存,CPU主频高于2.0GHz。
ChipScope Pro支持的操作系统如表5-2所示。

 表5-2 ChipScope Pro支持的操作系统列表

此外,在安装ChipScope Pro时,必须确保系统已安装相应版本的ISE集成开发环境。下面以在Windows环境中ChipScope Pro 9.1版本为例介绍其安装流程。

(2)软件安装
用户可以从Xilinx网站(www.xilinx.com)上直接下载其安装文件或者以管理员身份登陆PC系统进入安装光盘,具体的步骤如下:
 双击Setup.exe,弹出的欢迎界面如图5-2所示。单击“Next”按键,进入下一步即可。


图5-2 ChipScope 软件的安装欢迎界面

 对弹出的软件授权界面,点击“Yes”按键;选择合适的安装路径后,就进入注册ID输入界面,如图5-3所示。


图5-3 注册ID输入界面

注册ID是一个25位的数字,可在Xilinx网站输入产品ID后自动生成。输入完ID后,点击“Next”,直至点击“Finish”按键,完成安装。 如果在安装ISE时输入的ID包含了ChipScope Pro的授权,则“Registration ID”栏会自动显示ID号,不用再次输入。此后的页面参数都选择缺省参数,点击“Next”按键,进入安装进度页面,等其弹出图5-4所示的对话框时表明 安装成功,单击“Finish”按键完成安装。


图5-4 安装成功对话框

3.ChipScope Pro的使用流程
ChipScope Pro的开发流程如图5-5所示。首先,要生成系统控制模块的ICON核;然后生成各类逻辑分析核(ILA核、VIO核以及ATC2核等),设定触发以及 数据线宽度和采集长度,并将其和ICON核关联起来;接着完成设计以及相关核的综合,将设计中期望观察的信号和分析核的触发以及数据信号连接起来,紧接着 完成整体系统的实现并下载到芯片中;最后,打开ChipScope Analyze设定触发条件,观察波形。


图5-5 ChipScope的使用流程示意图

ChipScope Pro核生成器的作用就是根据设定条件生成在线逻辑分析仪的IP核,然后设计人员在原HDL代码中实例化生成的核,然后进行布局布线、下载配置文件,就可 以利用ChipScope Pro分析仪设定触发条件、观察信号波形。本节主要介绍核的基本知识以及核生成器的基本使用方法。

1.ChipScopePro核的基本介绍
ChipScopePro提供了7类不同的核资源,其中ICON核、ILA核、VIO核以及ATC2核获得了广泛应用,下面对这4类核进行简要说明。

(1)ICON核
如前所述,所有的核都需要通过JTAG电缆完成计算机和芯片的通信,在ChipScope Pro 中,只有ICON核具备和JTAG边界扫描端口通信的能力,因此ICON核是ChipScope Pro应用必不可缺的关键核。一个ICON核可以同时最多连接15个ILA、IBA/OPB、IBA/PLB、VIO或者ATC2核。在Virtex-4 以及Vitex-5芯片中,可以通过BSCAN_VIRTEX原语来使用USER1、USER2、USER3或者USER4扫描链,且由于 BSCAN_VIRTEX原语实现了一条单独的扫描链,因此就没有必要导出未使用的用户扫描链。在其余类型芯片中,只能使用USER1或者USER2扫描 链。

(2)ILA核
ILA核提供触发和跟踪功能,根据用户设置的触发条件捕获数据,然后在ICON的控制下,通过边界扫描口将数据上传到PC上,最后在Alalyzer中显 示出信号波形。由于ILA核和被监控设计是同步的,因此设计中的所有时钟约束会被添加到相应的ILA核中。ILA包括下面3个主要组件:
 输入、输出触发逻辑
输入触发逻辑用于检测各种细微触发条件;输出触发逻辑用于触发外部测试设备以及其它逻辑。
 数据捕获逻辑
数据捕获逻辑用于捕获数据,并将所捕获的数据存储到芯片的块RAM中。
 控制和状态逻辑
控制和状态逻辑用于管理ILA的各种操作。

(3)VIO核
虚拟输入、输出核用于实时监控和驱动FPGA内部的信号,可以观测FPGA设计中任意信号的输出结果,以及添加虚拟输入,如DIP开关、按键等,且不占用块RAM。VIO核面向模块操作,支持下面4类信号:
 异步输入信号
对于异步输入信号,通过JTAG电缆的时钟信号(TCK)采样,周期地读入PC,再将结果在ChipScope Pro分析仪界面上显示。
 同步输入信号
对于同步输入信号则利用设计时钟采样,然后周期地读入PC,在分析仪界面上显示。
 异步输出信号
异步输出信号由用户在ChipScope Pro分析仪中定义,再将其送到周围的逻辑中,且其每个输出信号逻辑“1”、“0”的门限可以由用户自己定义。
 同步输出信号
同步输出信号由用户定义,同步于设计时钟,其“1”、“0”的逻辑门限亦可独立定义。

(4)ATC2核
ATC2核由Xilinx和Aglient合作开发,适配于Aglient最新一代的逻辑分析器,联合完成调试捕获,允许逻辑分析仪访问FPGA内部设计 中任何一点的网表,提供更深的捕获深度、更复杂的触发设置,还支持网络远程调试,功能十分强大。与单独使用ChipScope Pro相比,可以更加减少用于调试的FPGA内部块RAM,使其更多地用于设计中。ATC2可以为每个信号提供2M的捕获深度,是ILA深度的60倍。此 外,最多允许在FPGA内部添加64个观测信号组,和逻辑分析仪的链接数最多可达128管脚。大的捕获深度以及多的观测信号对于查找设计故障原因是非常有 用的。

2.ChipScope核的生成流程
在ChipScope的各个核中,除了ICON核用于控制是必不可缺的之外,其余所有核的功能是类似的,都是用于不同场合的逻辑测试核,属性和配置过程基本一样。因此,本节只介绍ICON核和使用频率最高的ILA核的生成方法。

(1)ICON核的生成流程
点击“开始 → 所有程序 → ChipScope Pro 9.1i → ChipScope Pro Genatator”,则进入ChipScope Pro Genatator的向导界面,如图5-6所示。选中“ICON(Integrated Controller)”选项,点击“Next”进入配置页面。


图5-6 ChipScope Pro Genatator的向导界面

ICON的配置页面如图5-7所示。“Design Files”选项用于设定生成目录,单击“Browse”按键,选择ICON核输出网表的存放目录;根据目标芯片型号在“Device Family”下拉框中选择相应的器件类型;然后在“Number of Control Ports”下拉框中选择Port数;其余一般选用默认配置,则“Core Utilization”栏会给出ICON核所占的硬件资源,例如带1个Port的ICON核,要占用97个查找表(LUT)单元和28个触发器(FF) 单元。


图5-7 ICON核的配置界面

需要注意的是,Port数并不是信号端口数,而是外挂的集成分析仪核(如ILA、ATC2以及VIO等)的个数。

配置完毕后,点击“Next”按键,进入ICON核生成页面,如图5-8所示。其中可根据源文件的硬件语言形式,选择VHDL/Verilog HDL示例代码,并选择合适的综合工具,点击“Generator Core”按键,进入信息确认页面,点击“Start Over”按键即可完成ICON核的生成,同时会出现和图5-8一样的核生成向导界面,让用户继续添加所需的分析仪核。


图5-8 ICON核的生成界面

(2)ILA核的生成流程
在图5-6所示的向导界面中选择“ILA(Integrated Logic Analyzer Pro cores)”选项,进入ILA核的一般属性配置界面,如图5-9所示。“Design Files”选项用于设定生成目录,单击“Browse”按键,选择ICON核输出网表的存放目录;“Device Setting”选项用于设定芯片型号,在“Device Family”下拉框中选择和ICON核相同的器件类型。“Clock Setting”用于设定信号采样时刻,有上升沿和下降沿两种选择。配置完成后,点击“Next”,进入ILA核触发条件设置界面。


图5-9 ILA核的配置界面

ILA核触发条件的设置界面如图5-10所示。


图5-10 ILA核触发条件配置界面

“Number of input Trigger Ports”用于设定触发端口数,每个端口ILA核可支持多路比特数据,最多可有16个端口,具体的比特数取决于用于测试的逻辑资源。如果选择默认值N, 则下面只会出现TRIG0~TRIG(N-1)的配置栏。图5-10中选择了默认值1,则只有TRIG0的配置栏,其中的“Trigger Width”用于设定每个端口的触发比特数,这里输入8;“#Match Unit”为触发单元的级联级数,最多可设置16级,这里选择了1级;“Counter Width”选项选择Disable,以节省资源;“Match Type”为触发条件类型,有6类触发条件类型(Basic、Basic w/edges、Extended、Extended w/edges、Range以及Range w/edges),如含义说明如表5-3所列。“w/edges”表明可以使用时钟的上升沿和下降沿来采样数据。其余选项选择默认值。配置完毕后,会在 “Core Utilization”栏自动给出核所占用的资源。点击“Next”按键,进入数据端口配置界面。

表5-3 触发条件判断单元类型列表

相关说明,1:其中“0”表示“逻辑0”,“1”表示“逻辑1”,“X”表示“未知”,“R”表示“从0到1的跳转”,“F”表示“从1到0的跳 转”,“B”表示“任何电平跳转”。2:比特/Slice数值只是为了说明不同匹配单元的大致资源利用率,不能用精确的硬件资源消耗评估。
ILA核数据端口设置界面如图5-11所示。

图5-11 ILA核数据端口配置界面

ILA核的数据端口设置界面比较简单,只是选择存储深度和数据位宽。建议读者选择“Data Same As Trigger”选项,可节省逻辑资源和布局布线的使用,当然,建议的前提是数据与触发信号相同。点击“Next”按键,进入ILA核生成的最后一步—— ILA核示例和模版配置界面,如图5-12所示。一般来讲,选择默认值即可。点击“Generate Core”完成核生成过程。


图5-12 ILA核示例和模版配置界面

核插入器不仅能产生常用的核(除了IBA/OPB、IBA/PLB、VIO以及IBERT等核),还能将其自动插入设计网表中,不需要手工在HDL代码中 例化,在很多场合下替代了核生成器的功能。本节主要介绍核插入器的使用方法。同样,本节只介绍ICON核以及ILA核在Core Inserter中的用法。

1.Core Inserter的用户界面
单击Windows环境下“开始 → 所有程序 → ChipScope Pro 9.1i → ChipScope Pro Core Inserter”,即可启动核插入器,其用户界面如图5-13所示。
核生成器的用户界面由标题栏、菜单栏、工具栏、项目浏览器、参数设置对话框以及信息显示窗口组成,各主要部分功能如下:
(1)菜单栏


图5-13 核插入器的用户界面

菜单栏由一系列常用处理命令的下拉菜单组成:
【文件(File)】:包含了新建工程、打开工程、保存工程、刷新网表、插入和删除单元、参数选择设计、插入核以及推出等操作等命令。其中,刷新网表命令 用于更新输入的网表文件,在实际应用中,当设计文件的网表变化时,ChipScope Pro会自动提示更新网表文件。
【编辑(Edit)】:包含了新建ILA单元、新建ATC2单元、核单元删除以及参数配置等操作命令。
【插入(Insert)】:包含了【Insert Core】命令,在各项设置完成后,将ChipScope Pro的网表插入到原设计的网表中。
【帮助(Help)】:包含了ChipScope Pro软件的版本信息。

(2)项目浏览器
项目浏览器列出了插入到设计中的所有ICON核和ILA核,选中一个核后,就可以在参数设置对话框中查看或修改其参数。
(3)参数设置对话框
参数设置对话框用于查看和设置ICON核以及ILA核的参数。
(4)信息显示窗口
核生成器所有工作状态信息都在该窗口显示。

2.Core Inserter的基本操作
核插入器中的工程文件(后缀为:.cdc)保存了与源文件、目标文件、核参数以及配置等所有相关信息,允许设计人员保存和找回不同阶段的配置信息。此外,.cdc文件可以作为ChipScope Pro分析仪用来提取信号名的输入文件。
当核插入器第一次打开时,所有相关区域都是空白的,可以通过File → New来新建工程,也可以通过File → Open Project来打开已有工程。
(1)指定输入、输出文件
输入、输出文件在参数设置对话框中完成,如图5-14所示,具体通过下面3个步骤完成:
首先,指定输入网表文件(.ngc);
其次,单击“Browse”按键,指定.ngc网表文件存放的目录;
最后,指定输出网表的存放目录和输出存放目录。
如果在ISE中启动核插入器,输入和输出目录是ISE自动设置的,且其参数只能在ISE中改变,而不能在核插入器中修改。


图5-14 核插入器的配置界面

(2)工程级参数
对于芯片型号、SRL16结构单元的使用以及RPM的使用这三项工程级参数,在每个工程中都必须进行设置。目标FPGA芯片的信号在Device Setting区域中的Device Family下拉中选择。由于ICON核和捕获核的结构都是根据不同的芯片类型进行优化的,因此需要根据电路板选择合适的芯片型号。其默认选项为 Virtex-4系列。

“USE SRL16s”检验栏用于配置生成核是否采用SRL16以及SRL16E组件,该选项只在Virtex-2以上或Sprtan-3以上系列芯片可选,如果 不选择该检验栏,将使用触发器和复用器来实现,从而提高时序性能,但增加了核所占的资源。在默认情况下,为了节省资源,该选项是选中的。

RPM用于配置是否将单个的核资源进行相对布局。该选项将为布局布线工具添加约束,使所有ChipScope Pro逻辑达到最优布局。如果设计使用了大部分的资源,那么满足布线约束的难度非常大,通过Use RPMs选项可以辅助布局布线器满足相应的时序。默认情况下,该选项是选中的。

核插入器左边就是核的资源使用率面板,显示了插入到网表中的核的LUT、FF以及块RAM等资源的占用情况。资源占用数值取决于核的数量、种类及其参数配置情况。

(3)核配置选项
由于各个核的功能和配置参数的意义是不同的,因此下面对常用的ICON核、ILA核以及ATC2核配置进行简单说明。
① ICON核配置说明
由于在所有核中,ICON核是所有核和JTAG边缘扫描电路的通信控制器,因此首先对其进行说明。其参数配置界面如图5-15所示。


图5-15 ICON核的属性配置界面

如果选中“Disable JTAG clock BUFG insertion”选项,则实现工具在对JTAG时钟布线时选用普通布线资源来代替全局时钟资源。默认情况下,ChipScope Pro是选用全局时钟资源的。注意在全局时钟资源不紧张时,尽量使用全局时钟以保证时钟偏移最小化,从而保证时序稳定。即使全局时钟资源不够而不得不禁用 BUFG时,也必须添加相应的约束,使JTAG时钟线上的抖动尽可能小。当ICON参数配置完后,点击“Next”或者新建ILA单元来自动生成ILA单 元;当需要添加ATC2核时,新建ATC2单元即可。

② ILA核配置说明
ILA核的配置【Selcet Integrated Logic Analyzer Options】分为3个部分:核触发条件的配置、核捕获条件的参数配置以及网线连接配置,如图5-16所示(设置完ICON核后,点击“Next”即可出现该界面)。


图5-16 ILA核触发条件的配置界面

【Trigger Parameters】选项用于设定触发输入信号以及触发条件判断单元。输入触发端口数在下拉栏“Number of Input Trigger Ports”中选择,最多有16个端口,并以TRIG n命名各个触发端口,n的范围为0~15。每个触发端口都有位宽(触发端口的信号线总数)、触发条件判断单元个数以及类型等参数,其中各个端口的位宽可独 立配置,且其范围为1~256;一个端口可以有多个触发条件匹配单元,在“# Match Units”下拉栏中选择,但一个ILA核总的触发条件匹配单元的个数超过16。触发条件匹配单元越多意味着采集信号的灵活性越大,占用的物理资源也就越 多,因此在满足触发条件的情况下,应尽量减少触发条件判断单元的个数。

触发参数设置完后,单击“Next”按键进入捕获参数选项卡【Capture Parameter】,完成对存储深度、数据位宽、采样时刻等参数的配置,如图5-17所示。


图5-17 ILA核捕获条件的配置界面

ILA核缓存器所能够存储的最大采样值个数称为数据深度,与数据宽度共同决定了块RAM的占用数。核生成器和插入器能根据相应配置准确给出块RAM的个 数。其单项数据位宽指标最大为256比特,单项最大存储深度为16384。例如在Virtex-4芯片中,其块RAM为18k比特,因此采集的数据深度和 宽度满足:深度 宽度 18 1024 块RAM的个数。如果选中【Data Same As Trigger】选项,则数据与触发信号相同,这是一种很常用的模式,可以捕获和采集触发逻辑分析仪的任何数据。然后在【Trigger Ports As Data】中选择作为数据的触发端口。在该模式下,ILA核将忽略数据端口,可以减少逻辑资源和布线资源,但总的数据宽度仍要小于等于256。如果不选中 【Data Same As Trigger】选项,数据和触发信号独立,在采样数据远小于触发位宽时,可以减少采集数据量,节省块RAM资源。完成上述设计后,可以在主窗口的左边看 到资源占用情况。然后点击“Next”按键进入线网连接界面,如图5-18所示。


图5-18 ILA核的线网连接配置界面

如图5-18所示,由于目前为建立核端口和设计线网信号的连接,所以“Net Connections”中的所有信号都为红色显示。点击“Modify Connection”,会弹出“Select Net”配置界面,如图5-19所示。


图5-19 ILA核与设计线网信号连接界面

首先在“Net Selections”栏选择Clock Signals或者Trigger/Data Signals子目录,然后在相应页面选中ILA核中的信号列表;再在左侧信号线网列表中找出期望观测的信号,最后单击右下角的“Make Connections”按键,完成一次连接。只有将Chip Scope核中所有信号都连接了相应的线网,设计才能被正确实现。

ChipScope Pro分析仪直接和ICON、ILA、ATC以及VIO等核交互,并允许用户配置器件、选择触发条件、建立控制台并通过PC显示分析结果。其数据观察方式和触发模式可根据设计进行灵活选择。

1.ChipScope 的用户界面
在Windows操作系统中,有两种方法可以启动ChipScope Analyzer,一种方法就是点击“开始 → 所有程序 → ChipScope Pro 9.1i → ChipScope Pro Analyzer”;另一种方法是设计综合实现后,在ISE的【Processes for Source】中,双击【Analyze Design Using Chipsoce】。分析仪的用户界面如图5-20所示。


图5-20 ChipScope分析仪用户界面示意图

分析仪的用户界面主要由菜单栏、常用工具栏、项目浏览器、信号浏览器、主窗口以及信息显示窗口组成,各主要部分功能如下:
(1)菜单栏
【文件(File)】:包含了新建项目(New Project)、打开项目(Open Project)、保存项目(Save Project)、项目另存为(Save Project As)、页面建立(Page Setup)、打印(Print)、导入(Import)、导出(Export)以及退出(Exit)等命令。导入用于从设计文件中获取信号列表,导出用 于提取捕获数据,以便后续观察和处理。

【视图(View)】:包含了显示项目浏览器(Project Tree)、显示信息显示窗口(Messages)两个命令。

【边界扫描链路(JTAG Chain)】:包含了下载电缆相关的命令,有主机服务设置(Serve Host Setting)、JTAG链建立(JTAG Chain Setup)、连接Xilinx并行下载线(Xilinx parallel Cable)、连接Xilinx并行USB下载线(Xilinx parallel USB Cable)、关闭电缆(Close Cable)、获取电缆信息(Get Cable Information)以及打开自动核状态查询(Auto Core Status Poll)等。

【器件(Device)】:包含了边界扫描链设置(JTAG Device Chain Setup)、配置器件(Configure)、显示器件识别码(Show IDCODE)和显示用户码(Show USERCODE)等命令。

【窗口(Windows)】:包含了新建窗口单元(New Unit Window)、关闭(C;ose)、自动重排(Auto Layout)等相关命令。

【帮助(Help)】:包含了版本信息以及所有核信息。

(2)项目浏览器
项目浏览器在JTAG边界扫描链正确初始化后会列出扫描链上所有能识别的器件,显示核的数目,并为每个核创建一个文件夹,其中包含了触发条件设置和要观察信号的波形文件。在配置下载完成后,项目浏览器也会同时更新。
(3)信号浏览器
信号浏览器用于添加和删除视图中的信号,当在项目浏览器中选中一个核后,会列出其所有信号以及完成重命名和信号总线组合等操作。
(4)主窗口
主窗口主要用于显示“Trigger Setup”、“Wavaform”、“Listing”以及“Bus Plot”等窗口。
(5)信息显示窗口
信息显示窗口会列出分析仪所有的状态信息,便于用户查看。

2.ChipScope Analyzer的基本操作
使用Analyzer观察信号波形时,首先需要将设计和ChipScope Pro核共同生成的配置文件下载到FPGA芯片中。然后通过设定不同的触发条件捕获波形,将其存储在芯片的块RAM上,通过JTAG链回读到PC上观察波形。

(1)配置目标芯片
打开Analyzer,在常用工具栏上点击图标“ ”,初始化边界扫描链,成功完成扫描后,项目浏览器会列出JTAG链上的器件,如图5-21所示。Analyzer能自动识别出链上的所有Xilinx所 有的主流的CPLD、FPGA、PROM以及System ACE芯片。


图5-21 Analyzer边界扫描结果示意图

当JTAG链扫描正确后,菜单项“Device”才能由灰色变为正常,用户可点击“Device → DEV: 0 My Device0(XC3S500E) → Configure”进行配置,此时会弹出图5-22所示的配置对话框,提示用户选择需要下载的.bit文件。需要注意的是:ChipScope利用 JTAG链来观察芯片内部逻辑,因此在生成配置文件时只能利用.bit格式的配置文件,且建议时钟选择“JTAG CLK”,选择“CCLK”可能会导致配置失败。


图5-22 Analyzer配置芯片示意图

在配置的过程中,Analyzer的右下角会给出配置状态,配置成功后显示“Done”标志,提醒用户芯片配置已完成。

(2)设置触发条件
把ChipScope设计和工程下载到FPGA中以后,还需要设定触发条件才能在Analyzer中捕获到有效波形。Analyzer的触发设置由 Match(匹配)、Trig(触发)以及Capture(捕获)三部分组成,其中Match用于设置匹配函数、Trig用于把一个或多个触发条件组合起 来构成最终的触发条件、Capture用于设定窗口的数目和触发位置,典型的配置界面如图5-23所示。


图5-23 Analyzer触发条件配置示意图

(3)观察信号波形
观察信号波形需要打开Waveform窗口,可在JTAG链目录下相应的芯片的ILA核下单击“Waveform”命令完成,显示界面类似于逻辑分析仪,如图5-24所示。


图5-24 Analyzer波形显示界面示意图

由于波形显示窗口列出的是ChipScope核中的信号,而不是设计中的线网信号,需要通过导入.cdc文件来添加信号网表名。在“File”菜单下,点击“Import..”命令,会弹出图5-25所示的对话框,选择设计目录下的.cdc文件即可。


图5-25 加载.cdc文件操作示意图

添加了信号名后,图5-24中的波形信号名称会由“DataPort[x]”变成信号网表名。对于总线信号,可按住“Ctrl”键选择多个信号,单击右键,选择“Add to Bus”命令,将其组合成相应的总线信号。
完成上述操作后,最后在“Trigger Setup”菜单下选择“Run”命令,或工具栏的“ ”图标,开始采集数据。

(4)导入、导出数据
ChipScope提供了强大的数据采集能力,最大深度可达16384,单靠肉眼观测是不可行的,需要将采集波形存储下来,再通过VC以及MATLAB等 工具完成后续分析。“File”菜单下“Export”命令,可完成相应的功能,导出.VCD、.ASCII以及.FBDT等3种类型的文件。

ChipScope Pro Series I/O Toolkit是专门用于高速串行接口(Rocket I/O)的调试和交互式配置工具,具备实时调整高速串行I/O的多种参数、与系统其他模块通信以及测量多通道误比特率等功能,并且通过JTAG链路即可调 试吉比特串行收发器,无需额外的管脚和接口,是串行I/O开发中最理想的调试工具。目前Series I/O Toolkit相关的软件只提供了对Virtex-4 RocketIOGT11收发器以及Virtex-5 RocketIO GTP 和GTX收发器的误比特率性能测试,不支持Virtex 2 Pro系列芯片的Rocket IO收发器。

1. ChipScope Pro Serial I/O Toolkit的操作流程
ChipScope Pro Serial I/O Toolkit可实时调整串行高速收发器的参数,可自动调用ISE的各个工具生成二进制配置文件,只需通过JTAG接口即可下载设计并测试硬件,无需额外 的管脚进行调试。其中,生成用于测试的二进制配置文件是由IBERT(Internal Bit Error Ratio Tester,内部误比特率测试器)核完成的,支持所有的高速串行标准,包括:PCI Express、RapidIO、千兆以太网、XAUI以及光纤信道等,极大地缩减了串行I/O测试场景的建立时间和调试时间。

ChipScope Pro Serial I/O Toolkit是内嵌在FPGA中的一种高速串行数据分析数字示波器,可方便地在信号的端点进行板级信号完整性分析,其基本操作流程如图5-26所示。首 先配置IBRET核参数,其次生成设计工程,在后台调用ISE工具生成FPGA的二进制配置文件,并将其下载到FPGA中,通过Chipscope Analyzer统计误比特率。


图5-26 ChipScope Pro Serial I/O Toolkit操作流程示意图

上述操作中最主要的就是生成IBERT核。实际上,该核和ILA核一样,也需要连接到ICON核上,但其自身具备控制、监控以及改变Virtex 4和Virtex 5系列Rocket I/O收发器参数的逻辑,并且还能完成误比特性能测试,主要分为以下三个组件:
 BERT逻辑
BERT逻辑中例化了Rocket I/O收发器组件,并包括了测试模式发生器和检查器。利用comma和comma检测器,可提供从简单的时钟信号到完全的PRBS模式以及成帧计数模式。

 动态重配置端口(DRP)逻辑
每个RocketI/O收发器都有一个动态重配置端口,因此每个收发器属性都可在系统中改变。所有的属性和DRP地址在IBERT核中都是可读可写的,且可独立访问。

 控制和状态逻辑
管理IBERT核的操作。

2.Chipscope Serial I/O Toolkit的基本操作
Chipscope Serial I/O Toolkit的操作分为两个阶段:首先,配置IBERT核、生成二进制配置文件;其次利用Analyzer将比特文件配置到FPGA中完成测试。需要注 意的是,IBERT核只能作为一个独立的设计,不能在用户设计中例化。不同系列芯片的IBERT核和以及在Analyzer中的配置是不同的,下面以 Virtex-5平台为例对整体操作过程进行说明。

例5-1:生成IBERT核,并在ML506平台上完成验证。
 双击“Xilinx ISE Design Suit 10.1 → Chipscope Pro → IBERT Core Generator”命令,打开IBERT核生成器,其界面如图5-27所示。直接点击“Next”按键进入通用参数设置界面,如图5-28所示。其中 “Output Bitstream”栏用于填写工程输入比特文件路径;“Divice Family”行下拉框中可选择芯片系列,本例选择Virtex5;“Device”行下拉框选择芯片型号,目前只支持Virtex-4和Virtex -5LXT/SXT/FXT系列,本例选择xc5vsx50t,“Package”行下拉框选择封装形式,本例选择ff1136;“Speed Grade”行下拉框选择芯片的速度等级,本例选择-1;“Silicon Revision”行下拉框可选择芯片标准试块的版本,有CES4’(工业样片)和正式产品(Product)两种选择,本例选择Product。点击 “Next”按键进入下一页。


图5-27 IBERT核生成器启动界面

图5-28 芯片型号选择界面

 配置IBERT核的时钟选项,其配置界面如图5-29所示。其中“IO Standard”行下拉框中可以选择时钟信号的电平标准,本例选择LVCMOS33;“P Source Pin”编辑框用于输入时钟管脚的位置约束,本例输入AG18;“Frequency(MHz)”用于输入频率值,本例输入27。点击“Next”进入下 一页。


图5-29 时钟源配置界面

其中Virtex-5 LXT/SXT/FXT系列GTP收发器的时钟结构是固定的,如图5-30所示。因此在IBERT核中的每个GTP_DUAL/GTX_DUAL设计中都有该时钟电路。可以看出,一个Tile中的两个GTP接收时钟是不同的,而发送时钟是相同的。


图5-30 GTP收发器时钟结构

 配置MGT选项,其配置界面如图5-31所示。其中“Resource Usage”栏列出了当前配置的时钟资料利用率,包括GTP Duals和DCM模块的数量,其中DCM模块不能超过芯片中的最大数目;“Patterns Setting”栏用于设置测试模式,常用的模式包括:PRBS 7-bit (X7 + X6 + 1)、PRBS7-bit Alt (X7 + X + 1)、PRBS 9-bit、PRBS 11-bit、PRBS 15-bit、PRBS 20-bit、PRBS 23-bit、PRBS 29-bit、PRBS 31-bit以及用户自定义模式(可为任意20比特模式,包括时钟信号)、成帧计数以及空闲模式,缺省值为PRBS7-bit、PRBS 23-bit、PRBS 31-bit和 User Pattern,本例选择如图5-31所示;在“GTP/GTX Settings”区域,每个GTP_DUAL/GTX_DUAL都可以被使能且单独配置。如果一个GTP_DUAL/GTX_DUAL被使能,则需要指 定最大的线速率以及时钟频率,本例使能了GTP_DUAL_X0Y2和GTP_DUAL_X0Y3。配置完成后,点击“Next”按键进入下一页。


图5-31 MGT参数配置界面

 配置GPIO参数,其配置界面如图5-32所示。目前GPIO选项包括VIO核控制的同步输出管脚,其中的“Add VIO Controlled Output Pins”选项可使能在IBERT设计中添加VIO管脚的功能;“Number of Output Pins”编辑框用于输入同步VIO管脚数,其范围为1到256;选中“Edit Output Pin Types Individually”项可单独编辑每个VIO管脚,否则所有的VIO管脚具有相同的属性;“Pin Name”列给出了所有管脚名称,目前只支持GPIO_OUT[n]的形式,且不能被设计人员修改;“Pin Loc”列为管脚的位置约束输入栏;“IO Standard”列的下拉框可选择电平标准,支持常用的电平标准;“VCCO”列出了相应的电平值,由电平标准决定;“Drive”列为相应的驱动能 力,有效范围为2到24mA;“Slew Rate”列设置转换速率,有Fast和Slow两种选择,本例选择“Fast”。配置完成后,点击“Next”按键进入下一页。


图5-32 MGT参数配置界面

 配置示例和模板参数,其配置界面如图5-33所示,一般选择缺省值即可,点击“Next”按键进入生成页面,如图5-34所示。在此过程中,IBERT核 会调用ISE工具自动生成比特文件,并会在最后给出提示信息。点击“Previous”、“Cancel”或“Start Over”按键都可以取消该过程。生成比特文件后,会在Messages栏给出“IBERT Design Generation Completed”字样的提示信息,并给出6个步骤各自所占用的时间。


图5-33 MGT参数配置界面图

图5-34 MGT参数配置界面

 将下载线将PC机和ML506开发板连接起来,打开Chipscope Analyzer,点击工具栏的“ ”按键,将调用iMPACT工具扫描JTAG链路,其结果如图5-35所示,列出JTAG链上的5款芯片,包括FPGA芯片XC5VSX50T。


图5-35 JTAG链扫描结果示意图

然后选择“Device → DEV: 4 My Device4(XC5VSX50T)→ Configure”命令,打开比特文件选择界面,选择刚才生成的ibert.bit文件,在弹出的图5-36中点击“OK”按键,即开始配置FPGA芯 片,并在右下角Analyzer显示配置进度。


图5-36 比特配置文件确认界面

完成FPGA配置后,双击“New Project”区域的“UNIT:0 MyBERT_V5_GTP0(BERT _V5 _GTP0)”,会弹出IBERT交互测试界面,如图5-37所示,分为3个配置页面,其中“Clock Setting”页面用于配置GTP的时钟与功率特性,用户首先要在“GTP_DUAL Power”下拉框选择“On”选项,打开相应的功率开关,GTP才可以开始工作;“MGT/IBERT Setting”栏用于设置GTP收发端参数;“Sweep Test Setting”是Virtex 5系列芯片独有的测试选项。在每一页面都会列出GTP_DUAL_X0Y1和GTP_DUAL_X0Y2两个GTP Tile,和图5-31的配置信息是一致的,由于目前GTP的功率开关尚未打开,因此在Analyzer中,GTP_DUAL_X0Y1和 GTP_DUAL_X0Y2工作状态提示栏的背景为红色,正常工作后会变成绿色。


图5-37 IBERT交互测试界面

 为了便于说明,下面以GTP_DUAL_X0Y2为例进行说明。在图5-38中“CLKP/ CLKN Settings”栏中“GTP_DUAL_X0Y2”列、“GTP_DUAL_Power”行的下拉框中选择“On”选项,打开 GTP_DUAL_X0Y2。经过短暂的时间后,相应的“GTP_DUAL_PLL_States”会由“NOT LOCKED”状态跳变为“LOCKED”,“REF CLKOUT Frag(MHz)”行显示输出频率为149.71,锁相环正常工作,且其状态指示栏的背景显示为绿色,表明GTP _DUAL_X0Y2的时钟模块工作正常,如图5-38所示。


图5-38 GTP时钟工作状态示意图

等PLL状态工作正常后,可点击“CH0 Clock Status”和“CH1 Clock Status”栏目,打开GTP_DUAL中两个GTP各自的收发时钟状态察看器,分别如图5-39、5-40所示,会列出相应的发送DCM和接收DCM 的工作状态,只有“LOCKED”才表明PLL其正常工作;本设计两个GTP的收发频率都在300MHz左右。


图5-39 GTP 0通道时钟状态


图5-40 GTP 1通道时钟状态

 配置完GTP时钟状态后,可切换到“MGT/BERT Settings”页面配置GTP参数,并查看相应的测试结果。“MGT Setting”区域为GTP参数设置,如图5-41所示,其中“MGT Link Status”为“LINKED”状态、“GTP_DUAL_PLL LOCK Status”为“LOCKED”状态,且背景为绿色时,说明GTP已正常工作,可以完成交互测试;“Loopback Mode”用于选择自环测试模式,有近端PMA自环(将一个GTP的发送和接收端环回)、远端PMA自环(在一个Tile内完成自环)等不同的测试模式, 本利选择近端PMA自环;“Coding”选择线路编码模式,本例未选择线路编码。此外,用户还可以设置DRP以及设定线路速率,本例采用缺省值。


图5-41 GTP交互测试界面


图5-42发送链路配置栏

配置完MGT参数后,点击“TX Setting”,打开发送链路设置栏,如图5-42所示,其中:“TXOUT/TClk DCM Status”栏为发送链路DCM工作状态指示,为“LOCKED”时表明发送链路正常工作;“Invert TX Polarity”可以改变发送极性,这一功能非常有用,可有效便面电路板设计时链路极性反接的错误;“Inject TX Bir Error”用于人为注入错误,点击相应的“Inject”按键即可加入一个错误比特;“TX Diff Boost”和“TX Diff Output Swing”选项用于设置差分输出模式和功率大小,根据需要选择即可;“Tx Pre-Emphasis”为预加重选项,在发送端主动弥补传输信道的不理想特性,由于IBERT测试在芯片内自环,因此预加重设置为0%。
接下来需要配置GTP的接收链路参数,其配置界面如图5-43所示。和发送链路一样,可察看接收时钟工作状态以及反转接收极性等匹配功能;“Enable RX EQ”选项用于使能接收端均衡器;“RX EQ Wb/HP Ratio”用于设置均衡器的强度参数,本例选择缺省值。


图5-43 接收链路参数配置界面


图5-44 BERT参数配置界面

配置完收、发链路后,可以在“BERT Setting”区域察看误比特率统计结果,其配置界面如图5-44的下半部分所示,其中:“TX/RX Data Patten”下拉框用于选择测试模式,可选项就是用户在生成IBERT核时所添加的测试项,本例选择“PRBS 7-bit”;“RX Bit Error Rati o”为相应的自环测试误比特率,本例测试结果分别为1.999E-11和3.129E-011,从数字上看来已满足各类应用的要求;“RX Line Rate”为接收链路的线路码率,分别为2.99Gbps和 3.002Gbps;“RX Received Bit Count”为接收到的比特数,5-44图中分别为5.003E010和3.186E10;“RX Bit Error Count”为误比特率个数,本例由于没有发生错误,所以错误比特数为0.000E000;“BERT Reset”为BERT统计复位键,点击后可将目前的统计结果清零,从新开始统计。


图5-45 Sweep测试设置界面


图5-46 Sweep测试结果示意图

 Sweep Test Setting(扫描测试)为Virtex5系列FPGA独有的性能测试,自动完成对某一通道的不同配置参数进行测试,只能在近端环回和远端环回测试模式 中使用。其配置页面如图5-45所示,配置完成后,点击“Start”按键,即可得到图5-46所示的分析结果。
 完成上述基本测试后,读者可以进一步了解IBERT的交互测试操作合GTP特性,如果仅在发端反转极性,则肯定会有大量的误码,图5-47中 “GTP_DUAL_X0Y2_0”的测试结果验证了这一特点;同时将收端极性也反转过来,重新点击“Reset”按键开始测试,其相应的测试结果如图 5-48所示,回复到以前的高性能。这表明在实际设计中,收发端的极性一定要匹配。


图5-47 收发端极性不一致测试结果示意图


图5-48收发端极性一致测试结果示意图

最后一点则是说明“Inject Error Bit”的用法,分别点击4次GTP_0的“Inject”按键,1次GTP_1的“Inject”按键,可以看到相应的“RX Bit Error Count”分别增加了4和1,如图5-49所示。其实,插入误比特也是一种测试方法,如果插入误比特,而IBERT没有统计到,说明环回链路是存在问题 的。


图5-49 误比特插入测试示意图

5.1.6 ChipScope Pro应用实例
在Xilinx软件设计工具中,ISE可集成Xilinx公司的所有工具和程序。ChipScope Pro也不例外,在ISE中将其作为一类源文件,和HDL源文件、IP Core以及嵌入式系统的地位是等同的。本节在Xilinx Spartan3E-D开发板上实现一个计数器模块,基于该模块详细介绍如何在ISE中新建ChipScope应用以及观察、分析数据的详细操作。
例5-2:在ISE中实现一个8比特计数器,利用ChipScope分析其逻辑输出。
(1)新建用户工程,添加mycounter.v的源文件,其内容如下所列:
module mycounter(clk, reset, dout);
input clk;
input reset;
output [7:0] dout;

reg [7:0] dout;

always @(posedge clk) begin
if (reset == 0)
dout <= 0;
else
dout <= dout + 1;
end

endmodule
然后根据电路连接,添加相应的管脚约束。
(2)综合工程,然后在ISE工程管理区,单击右键,选择“Add New Source”命令,在弹出的对话框中选择“ChipScope Definition and Connection File”类型,并在“File Name”栏输入ChipScope 设计名称mychipscope,如图5-50所示。


图5-50 添加ChipScope设计示意图

单击“Next”按键,进入分析文件选择界面,这里会将该文件夹里所有的HDL设计、原理图设计都罗列出来(包括顶层模块和全部底层模块),供用户挑选, 用鼠标单击即可选中,本例选择mycounter,如图5-51所示。单击“Next”按键进入小结页面,单击“Finish”按键完成添加。


图5-51 测试模块选择界面

(3)双击工程区mycounter.v下的子模块mychipscope.cdc,可自动打开Chipscope Pro Core Insterser软件,按照5.1.3节相应的步骤添加触发单元和触发位宽。其中触发类型选为Basic,位宽为8比特;设置采样深度为4096,各步 骤如图5-52到图5-55所示。


图5-52 调试工程配置界面

图5-53 ICON核配置界面


图5-54 触发信号配置界面

图5-55 采集深度配置界面

(4)点击“Next”进入网表连接显示页面,如图5-56所示。其中如果用户定义的触发和时钟信号线有未连接的情况,则图中“UNIT”、“CLOCKPORT”以及“TRIGGERPORTS”等字样以红色显示;正确完成连接后则变成黑色。


图5-56 网表连接提示界面

点击图5-56中“Modify Connection”的按键,进入连接页面,时钟和数据的连接如图5-57、图5-58所示。需要注意的是,ChipScope Pro只能分析FPGA设计的内部信号,因此不能直接连接输入信号的网表,所以输入信号网表全部以灰色显示。如果要采样输入信号,可通过连接其输入缓冲信 号来实现,时钟信号选择相应的BUFGP,普通信号选择相应的IBUF。如图5-57中所示,选择采样时钟时,选择了CLK_BUFGP。


图5-57 时钟网表连接界面


图5-58 触发网表连接界面

连接完成后,单击“OK”按键返回连接显示界面,发现所有提示字符“UNIT”、“CLOCKPORT”以及“TRIGGERPORTS”没有红色,则单 击“Return Project Navigator”,退出Chipscope,返回到ISE中。否则需要再次点击“Modify Connection”按键重新连接。
(5)在工程中加入UCF文件,约束时钟、数据管脚位置。为了简化也可以只添加clk和reset这两个控制信号的管脚约束,其内容如下:
NET “clk” LOC = “C9″ | IOSTANDARD = LVCMOS33 ;
# Define clock period for 50 MHz oscillator (40%/60% duty-cycle)
NET ” clk ” PERIOD = 20.0ns HIGH 40%;
NET “reset” LOC = “H13” | IOSTANDARD = LVTTL | PULLDOWN ;
(6)在ISE过程控制区中双击“Implement Design”和“Generate Programming File”,可以完成实现以及生成可编程文件,并将设计人员插入的各类核也将被包含在比特文件中。生成配置文件后,双击图5-59所示的“Analyze Design Using Chipscope”图标,可自动打开Chipscope Pro Analyzer软件。


图5-59 Chipscope Pro Analyzer启动操作示意图

(7)在Chipscope Analyzer用户界面上点击工具栏上图标“ ”,初始化边界扫描链。等扫描完成后,单击“Device”菜单下“DEV: 0 My Device0(XC3S500E) → Configure”命令选择.bit文件配置FPGA。
(8)芯片配置完成后,选择“File”菜单的“Import”命令,可弹出CDC文件加载页面,选择相应的CDC文件,将会把所有以“Dataport<n>”的名称修改为综合后的线网名称。
(9)组合cnt总线信号。可按住“Ctrl”键,选择多个总线信号,单击右键,选择“Add to Bus”命令,将其组合成相应的总线信号,如图5-60所示。


图5-60 添加总线操作示意图

(10)不设定触发条件采集数据。点击工具栏的“ ”图标,开始采集数据。整体结果如图5-61所示,单击工具栏的“ ”按键,可放大信号,局部结果如图5-62所示。从分析结果可以看出,本设计在FPGA中成功地完成了8比特计数器的功能。


图5-61 Analyzer分析结果整体示意图


图5-62 Analyzer分析结果局部示意图

(11)设定触发条件采集数据。在“Trigger Setup”栏Match区域的“M0: Trigger Port0”行的Value列输入触发条件“0000_0000”,如图5-63所示。


图5-63 触发条件设置界面

点击工具栏的“ ”图标,开始采集数据,可以看到,采集结果的第一个数为0,如图5-64所示。当然,用户可以根据需要设置更复杂的触发条件。


图5-64 触发条件设置界面

(12)利用Bus Plot功能绘制输出信号波形。在工程区双击“Bus Plot”命令,然后在弹出窗口的“Bus Selection”区域选中“dout”,则会将采集数据以图形方式显示出来,如图5-65所示。由于本设计是8比特加1计数器,因此其波形就是幅度为 0到255的锯齿波。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s