Xilinx可编程逻辑器件设计与开发(基础篇)连载35:Spartan

9.4 chipscope pro分析仪 chipscope pro 分析工具(analyzer tool)直接与icon、ila、iba、vio及ibert核相连,用户可以实时地创建或修改触发条件。
注意:虽然chipscope pro分析工具能识别设计中的atc2核,但是需要将jtag接口与安捷伦逻辑分析仪相连,建立atc2核与安捷伦逻辑分析仪的通信。
分析工具有两部分:分析工具服务器和客户端。
(1) 服务器是命令行服务程序,可以通过jtag下载电缆连接目标器件的jtag口。如果用户想通过jtag下载线调试本地目标系统,不需要手动打开分析工具服务器,只有当用户需要和远程客户端相连时,才需要手动打开分析工具服务器
(2) 分析工具客户端是一个图形化的用户接口界面(gui),它连接目标系统的jtag链,与目标器件中的chipscope内核通信。分析工具的客户端和服务器可以运行在一台机器上(local host模式)或者不同机器上(remote模式),remote模式在以下情况下非常有用。
调试一个远程系统。
和其他同事共享一个系统资源。
给远程客户演示问题或功能。
在大部分情况下,用户是通过分析工具客户端来对设计进行分析的,这里详细介绍客户端界面和功能。客户端界面如图9-38所示。
图9-38 【chipscope pro analyzer tool】客户端接口
分析工具客户端由菜单栏、常用工具栏、项目浏览器、信号浏览器、主窗口以及信息显示窗口组成。
(1) 菜单栏。
【file】文件菜单:包含与工程相关的操作,如【new project】新建项目、【open project】打开项目、【save project】保存项目、【save project as】项目另存、【page setup】页面建立、【print】打印、【import】导入、【export】导出以及【exit】退出等命令。其中比较重要的导入和导出功能,【import】导入用于从设计文件中获取信号列表,【export】导出用于提取捕获数据,以便后续观察和处理。
【view】视图菜单:包含了显示【project tree】项目浏览器和显示【messages】信息显示窗口两个命令。
【jtag chain】边界扫描链路菜单:包含了下载电缆相关的命令,有【serve host setting】主机服务设臵、【jtag chain setup】jtag链建立、【xilinx parallel cable】连接xilinx并行下载线、【xilinx parallel usb cable】连接xilinx并行usb下载线、【close cable】关闭电缆、【get cable information】获取电缆信息以及【auto core status poll】打开自动核状态查询等。
【device】器件菜单:包含了【jtag device chain setup】边界扫描链设臵、【configure】配臵器件、【show idcode】显示器件识别码和【show usercode】显示用户码等命令。
【windows】窗口菜单:包含了【new unit window】新建窗口单元、【close】关闭、【auto layout】自动重排等相关命令。
【help】帮助菜单:包含了版本信息以及所有核信息。
(2) 项目浏览器:项目浏览器在jtag边界扫描链正确初始化后会列出扫描链上所有能识别的器件,显示核的数目,并为每个核创建一个文件夹,其中包含了触发条件设置和要观察信号的波形文件。在配置下载完成后,项目浏览器也会同时更新。
(3) 信号浏览器:信号浏览器用于添加和删除视图中的信号,当在项目浏览器中选中一个chipscope核后,在信号浏览器中会显示出与此核相关的信号,可以对这些信号重命名或将信号组合成总线的形式。
命名信号和总线,双击或者单击右键后选择【rename】,可以重新命名信号和总线名称。
从窗口中添加/移除信号。用【clear all】→【waveform】或者【clear all】→【listing】命令删除信号。用【add all to view】命令添加信号。
合并/添加信号到总线。对于ila核和iba核,只有数据信号可以合并总线,对于vio核,可以将各类信号分组。单击要分组的信号,选择【add to bus】→【new bus】,将总线信号重新排序。利用【reverse bus order】命令可以将lsb到msb排列的总线顺序变成msb到lsb排列。
(4) 主窗口:主窗口主要用于显示【trigger setup】、【wavaform】、【listing】以及【bus plot】等窗口。
(5) 信息显示窗口:信息显示窗口会列出分析仪所有的状态信息,便于用户查看。
使用analyzer观察信号波形时,首先需要将设计和chipscope pro核共同生成的配置文件下载到fpga芯片中。然后通过设定不同的触发条件捕获数据,将其存储在芯片的bram中,通过jtag链回读到pc上观察波形。
一、 配置目标芯片 打开analyzer,在常用工具栏上单击,初始化边界扫描链,成功完成扫描后,项目浏览器会列出jtag链上的器件,如图9-39所示。analyzer能自动识别出边界扫描链上的所有xilinx的cpld、fpga、prom以及system ace芯片。图9-39所示为ml505目标板的jtag链扫描结果。
图9-39 analyzer边界扫描结果
当jtag链扫描正确后,菜单项“device”才能由灰色变为正常。需要注意的是:chipscope通过jtag链来观察芯片内部逻辑,因此在生成配置文件时只能利用.bit格式的配置文件,且时钟需要选择“jtag clk”,选择“cclk”可能会导致配置失败。
二、 设置触发条件 将包含chipscope核的工程下载到fpga中以后,还需要设定触发条件才能在analyzer中捕获到有效波形。analyzer的触发设置由【match】匹配、【trig】触发以及【capture】捕获三部分组成,其中【match】用于设置匹配函数,【trig】用于把一个或多个触发条件组合起来构成复杂的触发条件,【capture】用于设定窗口的数目和触发位置,典型的配置界面如图9-40所示。
图9-40 analyzer触发条件配置示意图
(1) 【match】里设置触发条件的匹配函数,多个函数的组合构成chipscope pro核的整个触发条件。
【match unit】:用于指定该函数用于哪个触发的匹配函数。
【function】:选择比较类型。
【value】:设臵比较的具体数值。
【radix】:设臵【value】里的数据格式。可以是十六进制、八进制、二进制、有符号或者无符号数。
【count】:触发条件所设臵的事件发生多少次之后才认为满足触发条件。
【at least n times】:事件连续或者不连续发生n次后满足触发函数条件。
【for n cycles】:事件只有连续发生n次才算满足触发函数条件。
(2) 【trig】窗格可以把一个或多个触发条件组合起来,构成复杂的触发条件。触发条件是一个或者多个触发条件的组合,chipscope pro根据触发条件判断是否捕获数据。在analyzer中可以定义多个触发条件。
【add】按钮:可以加入新的触发条件。
【del】按钮:可以删除触发条件。
【trigger condition name】:允许用户为触发条件命名。
【trigger condition equation】:显示触发条件的构成,默认为来自不同触发条件函数的逻辑与。如果希望改变该设臵,可以单击该区域,弹出【trigger condition】对话框,如图9-41所示。可以根据需要设臵,设臵的触发条件等式将重新显示在对话框的下方。在工程管理窗口选择【trigger setup】→【save trigger setup】命令,可以将触发设臵保存到后缀为.ctj的文件中,方便下次调用。选择【trigger setup】→【read trigger setup】命令,可以从该文件中读入触发条件设臵参数。
图9-41 【trigger condition】设置界面
(3) 【capture】里可以设置视窗的数目和视窗中触发事件的位置,这些视窗通常包含由一个触发事件产生的一连串连续采样点。
【type】下拉列表框:定义了所用视窗的类型,如果选择【windows】类型,那么视窗中的采样数必须是2的若干次方,触发可以发生在视窗的任何位臵;选择【n samples】类型,缓冲器buffer中将包含多个视窗。每个视窗包含n个采样点,每个触发总在第一个采样窗口。
【windows】编辑框:用来定义窗口的数目,数值范围为1到捕获缓冲区的深度之间。
【depth】下拉列表框:每个触发窗口的深度,深度由窗口数量决定。
【position】编辑框:触发位臵,范围为1到捕获缓冲区深度减1之间。
三、 捕获数据 运行捕获running/arming the trigger,设置好触发条件后,在工程管理窗口中选择【trigger setup】→【run】命令,分析仪进入捕获(arm)状态。如果触发条件得到满足,core捕获数据,直到设置的缓冲区填满为止,然后通过jtag上传数据,并在【waveform】和【listing】窗口中显示。如果需要强制进行数据捕获,可以选择【trigger setup】→【trigger immediate】命令,该命令忽略触发条件并立刻进行捕获,直到设置的缓冲区填满为止,并在【waveform】和【listing】窗口中显示。
要停止捕获,选择【trigger setup】→【stop acuqisition】命令。
四、 观察信号 ila核可以通过【waveform】、【listing】和【bus plot】窗口观察信号波形。
(1) 【waveform】窗口
在图9-42所示【jtag chain】的ila核下单击【waveform】,打开图9-43所示波形显示界面,它类似于逻辑分析仪,可以支持如下操作。
图9-42 观察波形设置
图9-43 analyzer波形显示界面示意图
重新排列总线和信号的位臵:用户可以拖动信号到所希望的位臵,重新排列总线和信号的位臵。
添加总线:可按住ctrl键,选择多个总线信号,单击右键,选择“add to bus”命令,将其组合成相应的总线信号,如dataport,如图9-43所示。

对信号和总线进行放大和缩小。
测量光标:【waveform】窗口中可以设臵两个光标──x和o。用户可以放臵这两个光标到采集的数据点上。该点的信号和总线状态将在x或者o里显示,两个带颜色的竖线分别为x和o坐标。
(2) 【listing】窗口如图9-44所示。
图9-44 【listing】窗口界面
【listing】窗口以列表形式显示采样缓冲区。基本功能和【waveform】相同。
(3) 【bus plot】绘图窗口如图9-45所示。
图9-45 【bus plot】窗口界面
【plot】选项组。
【data vs. time】:显示所有的总线,每条总线有单独的颜色,可以根据数据格式(十六进制,二进制,十进制等)显示。
【data vs. data】:需要选择两条总线,x和y坐标分别对应一组总线。
【display】选项组:图形绘制方式可以是【lines】线、【points】点或者【 lines and points】点线。
【bus selection】选项组:选项中列出设臵中所有的总线,根据【plot】选项组设臵的方式,选择所要观测的总线组。可以单击总线名旁边的【colored】按钮,选择总线的颜色。
【min/max】选项组:显示视图中的最大最小值。
【x】【y】:显示鼠标所在位臵的x或y坐标。
如果设计中有vio核,可以在【vio console】窗口观测虚拟输入输出信号状态,如图9-46所示。
图9-46 【vio console】窗口界面
(1) 【bus/signal】栏:包含vio核的总线或者信号名称。单击右键,设置信号/总线的【type】显示类型和【persistence】显示时间长度。
【type】:设臵vio总线/信号的类型。
vio输入信号支持的显示类型:
文本:ascii字符
leds(红、蓝、绿三个颜色可选;可以设置为高有效或低有效)
vio输入总线只支持一个有效显示类型
文本
vio输出信号支持的显示类型:
文本:ascii文本
按钮:高有效或低有效
反转按钮
脉冲序列(只针对同步输出)
单脉冲(只针对同步输出)
vio输出总线就有两个有效显示类型:
文本
脉冲序列(只针对同步输出)
【persistence】:设臵vio总线/信号【value】栏的显示时间长度。
【infinite】:一直显示vio总线/信号。
【long】:显示80个采样周期。
【short】:显示8个采样周期。
(2) 【value】栏:显示信号的当前值。
五、 导入、导出数据 chipscope提供了强大的数据采集能力,最大深度可达16384,单靠肉眼观测是不可行的,需要将采集波形存储下来,再通过vc、matlab等工具完成后续分析。【file】菜单下【export】命令,可导出.vcd、.ascii以及.fbdt等3种类型的文件。
用户可以对采样信号进行重命名,然后在chipscope中导入所有信号名,以方便观察和分析。core generator、core inserter、synplicity certify和fpga editor 工具都可以产生有关信号名的文件,在chipscope中,可以运行【file】菜单下【import】命令,从指定文件中导入信号名。
9.5 利用fpga editor修改chipscope pro核信号连接 对于使用高密度fpga实现的复杂的逻辑设计,每次在chipscope pro core中修改信号探点都需要重新进行布局布线,布局布线需要花费较长的时间。更令人头痛的是,布局布线后的结果可能每次都有差异,有时会变得很差。如何解决这个问题呢?fpga editor与chipscope的协同工作有效地解决了这个问题。
利用fpga editor和chipscope pro协同工作,可在fpga editor中对器件内的chipscope pro探点直接修改。由于不再布局布线,不仅提高了工作效率,而且chipscope pro analyzer的跟踪和分析也更准确。
运行ise 11.x设计工具,在【processes for source....】窗口中单击【view/edit routed design(fpga editor)】。弹出fpga editor界面,在右边菜单栏中单击【ila】命令,打开如图9-47所示的ila设计界面,在【array】窗口中修改布线。
图9-47 【fpga editor】ila设计界面
【ila capture units】列表框:列出了设计中ila捕获单元的名称和位信息。
【data and trigger bits】列表框:列出了所选ila捕获单元的类型、位数、网线和部件信息。
【write cdc..】按钮:保存chipscope pro core的修改为后缀为.cdc的文件,默认值为原设计文件。
【change net】按钮:用来修改ila core的连线,单击该按钮,在fpgaeditor窗口下边信息栏中同时显示该连线的延时数据。用这个按钮可以更改chipscope网线连接到一个设计者所关心的网线上。
【view component】按钮:用于在【block】窗口中显示所选部件的内部结构。
【bitgen..】按钮:用于重新生成fpga的比特流文件。
【download】按钮:启动impact工具,把比特流文件下载到目标器件中。
9.6 小结 本章详细介绍了xilinx内嵌逻辑分析仪chipscope pro,它是xilinx开发的功能强大的在线调试工具,它解决了用片外逻辑分析仪进行设计调试时需要硬连接的瓶颈。本章首先介绍了chipscope pro的各个组成部分,包括icon、ila、vio和atc2等功能模块,接着用一个实例介绍了chipscope pro的应用,最后讨论了用chipscope pro分析仪进行设计调试的方法。希望通过本章介绍,读者能快速熟悉并掌握chipscope pro的应用,并借助此工具,快速找到并排除设计中的问题。

车载电源转换器芯片12V24V36V48V转5V1A电源芯片AH8662
三月不止小米6,小米平板3齐发!
PlUG-IN HEV 安全性指标
vivo正式公布新机S9系列处理器配置
科技巨头纷纷元宇宙 元宇宙为什么这么火
Xilinx可编程逻辑器件设计与开发(基础篇)连载35:Spartan
LED显示屏花屏的解决方法
光影之旅:户外电源助力无拘束摄影
将0-5V电压经过APC芯片GP9303M转换成高频调制信号
机器视觉的一些基本视觉原理有哪些
苹果官方翻新iPad再次来袭:12.9英寸iPad Pro WLAN版
对于电动汽车其实养不起也卖不掉
AIO-3128C--入手指南(配件介绍)
蓝牙耳机泄音孔防水设计,集成微尔斯透声膜技术!声损低、音质好!
自然语言对话领域的现状与未来展望
环球晶并购世创将为行业带来怎样的巨变?
贾跃亭发声亲证“没失联”,法拉第正式与乐视撤资,在美建厂计划终成泡汤?
1.8V编解码器采用集成电源管理与双miniDSP音频处理引擎
离网逆变器到底是什么?并网逆变器的原理详细说明
显卡扩展坞是什么