ChipScopePro实例教程1.ChipScopePro简介ChipScopePro的主要功能是通过JTAG口、在线实时地读出FPGA的内部信号。基本原理是利用FPGA中未使用的BlockRAM,根据用户设定的触发条件将信号实时地保存到这些BlockRAM中,然后通过JTAG口传送到PC机,显示出时序波形。图表1一般来说,ChipScopePro在工作时需要在用户设计中实例化两种核:一是集成逻辑分析仪核(ILAcore,IntegratedLogicAnalyzercore),提供触发和跟踪捕获的功能;二是集成控制器核(ICONcore,IntegratedControllercore),负责ILA核和边界扫描端口的通信,一个ICON核可以连接1~15个ILA核。ChipScopePro工具箱包含3个工具:ChipScopeProCoreGenerator(核生成器)、ChipScopeProCoreInserter(核插入器)和ChipScopeProAnalyzer(分析器)。ChipScopeProCoreGenerator的作用是根据设定条件生成在线逻辑分析仪的IP核,包括ICON核、ILA核、ILA/ATC2核和IBA/OPB核等,设计人员在原HDL代码中实例化这些核,然后进行布局布线、下载配置文件,就可以利用ChipScopeProAnalyzer设定触发条件、观察信号波形。ChipScopeProCoreInserter除了不能生成IBA/OPB核和ILA/ATC2核以外,功能与ChipScopeProCoreGenerator类似,可以生成ICON核和ILA核,但是它能自动完成在设计网表中插入这些核的工作,不用手工在HDL代码中实例化,在实际工作中用得最多。ChipScope有两种使用方法:ChipScopeProCoreGenerator和ChipScopeProCoreInserter。两种方法各有优缺点,但由于ChipScopeProCoreInserter更方便一些,可以较好地满足大多数调试要求,建议优先掌握。2.ChipScopeProCoreInserter使用方法(添加CDC文件)在写好程序仿真正确后右键工程文件点击NewSourceNext→finish即已经插入了chipscope核如下图点开.cdc文件开始配置前两步不需改动:ILA核的配置分为3个部分:触发参数、捕获参数、网线连接。TriggerParameters选项卡用于设置触发输入信号和触发条件判断单元。NumberofInputTriggerPorts下拉列表中可以选择ILA核输入触发端口的数目。每个ILA核最多可以有16个输入触发端口。每个触发端口都有位宽(触发端口的信号线总数)、触发条件判断单元的类型和数目等。CaptureParameters选项卡用于对存储深度、数据位宽、采样时刻等参数的设置。ChipScope存储缓冲区所能够存储的最大采样值个数成为存储深度,与数据宽度共同决定了BlockRAM的占用数。如果选中DataSameAsTrigger选项,则数据与触发信号相同,这是一种很常用的模式,可以捕获和采集触发逻辑分析仪的任何数据。在这种模式下,ILA核省略了数据输入端口,可以减小CLB和布线资源的占用,但总的数据宽度不能大于256bit。不选中DataSameAsTrigger选项时,数据和触发信号完全独立,当采样的数据位宽小于触发宽度时,能减少采集的数据,节省BlockRAM资源。在本次练习中,我们选择DataSameAsTrigger这种常用模式,存储深度选择8192,在时钟上升沿采样。完成捕获参数的设置后,CoreInserter能够根据相应配置准确给出BlockRAM的个数。NetConnections选项卡用于将在线逻辑分析仪的输入信号和设计中的网线连接起来。由于目前尚未建立连接,所以NetConnections中的所有信号都为红色显示。点击ModifyConnection,会弹出SelectNet配置界面。利用SelectNet对话框,可以把ChipScope的工作时钟、触发信号、数据信号与设计中的网线连接起来,方法是在右侧选中ChipScope的信号,在左侧下方选中需要连接的网线,单击MakeConnections按钮,即可完成一条信号线的连接。所有信号都连接好之后,单击Ok按钮。保存退出3.Chipscope观察仪的使用当CDC文件添加设置成功后就可以开始使用chipscope观察仪来观察所选择的信号。首先将开发板与电脑连接好,打开开发板的电源。运行ChipScopeAnalyzer选择AnalyzeDesignUsingChipScope,右键点击Run配置目标芯片在常用工具栏上点击图标,初始化边界扫描链,成功完成扫描后,项目浏览器将会列出JTAG链上的器件。选择我们使用的开发板FPGA芯片型号XC5VFX70T在弹出的配置对话框中,选择需要下载的.bit文件。需要注意的是:ChipScope利用JTAG链来观察芯片内部逻辑,因此在生成配置文件时只能利用.bit格式的配置文件。设置触发条件把ChipScope设计和工程下载到FPGA中以后,还需要设定触发条件才能在Analyzer中捕获到有效波形。Analyzer的触发设置由Match(匹配)、Trig(触发)以及Capture(捕获)三部分。其中Match用于设置匹配函数,Trig用于把一个或多个触发条件组合起来构成最终的触发条件,Capture用于设定窗口的数目和触发位置,双击TriggerSetup,典型的配置界面如下图所示。对于总线信号,可选择多个信号,单击右键,选择AddtoBus命令,将其组合成相应的总线信号。并且可以选择BusRadix来改变总线显示的进制,以方便观察调试。不设定触发条件采集数据Match栏中不设定触发条件,先将FPGA复位,点击菜单栏上的按钮,开始采集数据。设定触发条件采集数据:在TriggerSetup栏Match区域的M0:TriggerPort0行的Value列输入触发条件。将触发条件设置为0_0010,这次不用重新复位,直接点击“”采集数据。将触发条件设置为0_0010,则可以看到采集结果的第一个数据为0_0010。改变Capture设置在“CaptureSetting”窗口中,可以设置窗口的数目和窗口中触发事件的位置,这里说的窗口是指包含由一个事件触发的连续的多个样本。Type列表框定义了所用窗口的类型。“Window”分页采集模式:在这种模式中,捕获缓冲区被划分为一个或多个容量大小相等的页面。分页模式采用单个触发条件事件(例如满足某个触发事件的布尔组合)来采集足够数据填满一个采集页面。在“Windows”文本框中确定窗口的数目,数值从1到捕获缓冲区的深度之间选取。在“Depth”列表框中选择每个捕获窗口的深度,可供选择的值由窗口数目决定。触发的位置由“Position”文本框决定,有效取值范围在1到每个捕获缓冲区深度减1之间,触发位置可以设置在捕获窗口的起始点(即先触发,后采样),也可设置在捕获窗口的终点(即采集数据直到触发事件发生),还可以设置在两者之间的任何位置。“NSamples”N点采样模式:捕获缓冲区将包括多个窗口,每个窗口包含N个样本,这时只能在窗口的第一个样本触发,也就是说触发位置必须在每个窗口的起始点。每次触发捕获的样本数由“SamplesPerTrigger”文本框决定,数值范围在1到捕获缓冲区深度之间。Window分页采集模式选择Window分页采集模式,窗口数目设置为1,触发位置设置为1024时,结果如下图所示。波形记录下了触发事件发生之前的1024次采样。4.