当前位置:首页 >> 信息与通信 >>

ChipScope Pro详细教程(Xilinx在线逻辑分析仪)


ChipScope Pro 实例教程
宋存杰
1. ChipScope Pro 简介 ChipScope Pro 的主要功能是通过 JTAG 口、在线实时地读出 FPGA 的内部信号。基本 原理是利用 FPGA 中未使用的 BlockRAM, 根据用户设定的触发条件将信号实时地保存到这 些 BlockRAM 中,然后通过 JTAG 口传送到 PC 机,显示出时

序波形。

一般来说,ChipScope Pro 在工作时需要在用户设计中实例化两种核:一是集成逻辑分 析仪核(ILA core,Integrated Logic Analyzer core) ,提供触发和跟踪捕获的功能;二是集成 控制器核(ICON core,Integrated Controller core) ,负责 ILA 核和边界扫描端口的通信,一 个 ICON 核可以连接 1~15 个 ILA 核。 ChipScope Pro 工具箱包含 3 个工具:ChipScope Pro Core Generator(核生成器) 、 ChipScope Pro Core Inserter(核插入器)和 ChipScope Pro Analyzer(分析器) 。 ChipScope Pro Core Generator 的作用是根据设定条件生成在线逻辑分析仪的 IP 核,包 括 ICON 核、ILA 核、ILA/ATC2 核和 IBA/OPB 核等,设计人员在原 HDL 代码中实例化这 些核,然后进行布局布线、下载配置文件,就可以利用 ChipScope Pro Analyzer 设定触发条 件、观察信号波形。 ChipScope Pro Core Inserter 除了不能生成 IBA/OPB 核和 ILA/ATC2 核以外,功能与 ChipScope Pro Core Generator 类似,可以生成 ICON 核和 ILA 核,但是它能自动完成在设计 网表中插入这些核的工作,不用手工在 HDL 代码中实例化,在实际工作中用得最多。 下图为 ChipScope 的两种使用流程图,左侧为使用 ChipScope Pro Core Generator 流程。 右侧为使用 ChipScope Pro Core Inserter 的流程。 两种方法各有优缺点, 但由于 ChipScope Pro Core Inserter 更方便一些,可以较好地满足大多数调试要求,建议优先掌握。 本次练习中,第 3、4 两章主要描述了 ChipScope Pro Core Inserter 的流程。第 5 章简要 描述了使用 ChipScope Pro Core Generator 的流程。

1 / 45

2. 创建简单的 ISE 工程 2.1 新建工程 ISE 启动 Xilinx-ISE。

2 / 45

新建 Project。File -> New Project。

填入工程的名字以及所在路径。Next。

选择工程所对应的开发板的器件类型。Next。

3 / 45

创建源文件窗口。因为我们已有了源文件,所以这里直接点击 Next。

4 / 45

添加已有的源文件到工程中。

选择源文件 led.v 与 led_top.v,打开。

由于事先已经把两个源文件都放到了工程目录下, 所以不用选择 Copy to Project, Next。

5 / 45

直接点击 Finish,完成工程的创建。

6 / 45

选择默认的 Synthesis/Imp + Simulation 即可。OK。

2.2 绑定管脚 在 Processes 区域中,选择 User Constraints 下面的 Assign Package Pins,右键点击 Run。

7 / 45

绑定管脚的约束,需要建立 UCF 文件,点击 Yes。

自动打开 Xilinx PACE 软件,绑定管脚,时钟输入 clock 与 B8 相连,复位信号 reset_n 与 switch[0]L13 相连,led 的输出信号 diode 与开发板上 8 个 led 灯相连。 I/O Name Clock Diode[0] Diode[1] Diode[2] Diode[3] Diode[4] Diode[5] Diode[6] Diode[7] I/O Direction Input Output Output Output Output Output Output Output Output
8 / 45

Location B8 F12 E12 E11 F11 C11 D11 E9 F9

Reset_n

Input

L13

Ctrl+S,保存,在弹出框中选择 XST Defalut 即可,OK。然后关闭 Xilinx PACE 软件。

2.3 综合 在 Processes 区域中,选择 Synthesize – XST,右键点击 Run。综合完成后,Synthesize – XST 前面会出现绿色的对勾。表示综合完成且没有任何错误和警告。

9 / 45

2.4 实现 在 Processes 区域中,选择 Implement Design,右键点击 Run。连续执行翻译 Translate、 映射 Map、布局布线 Place & Route 工作。

10 / 45

2.5 产生编程文件 在 Processes 区域中,选择 Generate Programming File,右键点击 Run。

2.6 下载编程文件 在 Processes 区域中, 选择 Generate Programming File 下面的 Configure Device iMPACT) ( , 右键点击 Run。

11 / 45

打开 iMPACT 软件。选择使用 JTAG 扫描链配置设备。

为 FPGA 芯片选择编程文件 led_top.bit。

启动时钟切换为 JtagClk。

12 / 45

另外两个直接点击 Cancel 即可。

同上。

13 / 45

右键点击 FPGA 芯片图标,选择编程 Program。

14 / 45

点击 OK。

下载成功。可以看到开发板上的 LED 灯开始流动点亮。

15 / 45

3. 配置 ChipScope Pro Core Inserter 3.1 添加 ChipScope Core Inserter 工程文件

选择 ChipScope Definition and Connection File,设置文件名称。

选择需要观察内部信号的源文件。

16 / 45

工程中出现 led.cdc 文件。

17 / 45

3.3 打开 ChipScope Pro Core Inserter 打开 led.cdc 文件

18 / 45

在 ISE 中启动 Core Inserter,网表的输入输出目录是 ISE 自动设置的,且其参数只能在 ISE 中改变,不能在 Core Inserter 中修改。

3.4 配置 ICON 核 ICON 核是所有核和 JTAG 扫描电路的通信控制器,因此首先对其进行说明,如下图所 示,要指定是否禁止在 JTAG 时钟上插入 BUFG。如果选中此项,JTAG 时钟将使用普通布 线资源,而不是全局时钟布线,这样会在 JTAG 时钟线上产生较大的布线延时差别,因此, 在全局时钟资源足够的情况下,应该尽量使 JTAG 时钟使用 BUFG 资源。这里不选中此项, 使用 BUFG 资源。

19 / 45

3.5 配置 ILA 核 ILA 核的配置分为 3 个部分:触发参数、捕获参数、网线连接。 Trigger Parameters 选项卡用于设置触发输入信号和触发条件判断单元。Number of Input Trigger Ports 下拉列表中可以选择 ILA 核输入触发端口的数目。每个 ILA 核最多可以有 16 个输入触发端口。每个触发端口都有位宽(触发端口的信号线总数) 、触发条件判断单元的 类型和数目等。

Capture Parameters 选项卡用于对存储深度、数据位宽、采样时刻等参数的设置。 ChipScope 存储缓冲区所能够存储的最大采样值个数成为存储深度,与数据宽度共同决定了 Block RAM 的占用数。如果选中 Data Same As Trigger 选项,则数据与触发信号相同,这是 一种很常用的模式,可以捕获和采集触发逻辑分析仪的任何数据。在这种模式下,ILA 核省 略了数据输入端口,可以减小 CLB 和布线资源的占用,但总的数据宽度不能大于 256bit。 不选中 Data Same As Trigger 选项时,数据和触发信号完全独立,当采样的数据位宽小于触 发宽度时,能减少采集的数据,节省 Block RAM 资源。在本次练习中,我们选择 Data Same As Trigger 这种常用模式,存储深度选择 8192,在时钟上升沿采样。 完成捕获参数的设置后,Core Inserter 能够根据相应配置准确给出 Block RAM 的个数, 如下图左侧中 Core Utilization 框所示。

20 / 45

Net Connections 选项卡用于将在线逻辑分析仪的输入信号和设计中的网线连接起来。 由 于目前尚未建立连接,所以 Net Connections 中的所有信号都为红色显示。点击 Modify Connection,会弹出 Select Net 配置界面。

利用 Select Net 对话框,可以把 ChipScope 的工作时钟、触发信号、数据信号与设计中 的网线连接起来,方法是在右侧选中 ChipScope 的信号,在左侧下方选中需要连接的网线, 单击 Make Connections 按钮,即可完成一条信号线的连接。所有信号都连接好之后,单击
21 / 45

Ok 按钮。 在本次练习中,我们将 led 设计中的 count[16]选择为采样时钟,而没有选择 led 设计本 身的时钟信号 clock。 这是因为我们在设计中使用了 25 位宽的计数器, 计数满一次之后,led 灯才移动一次。由于采样深度只有 8192,如果使用 clock 来采样,只能采样 8192 个时钟周 期,这明显是不够的。根据测算,我们选择 count[16]为采样时钟,在 8192 次采样后,能采 样到 led 循环 4 次。 采样时钟 Count[20] Count[19] Count[18] Count[17] Count[16] Count[15] Count[14] 采样深度 8192 8192 8192 8192 8192 8192 8192 Led 周期数 64 周期数 32 16 8 4 2 1 Led 周期内采样次数 128 次数 256 512 1024 2048 4096 8192

触发和数据端口与设计中的 diode 输出信号相连。

22 / 45

应保证所有端口信号都已经连接, 否则设计无法正确实现, 当端口中的信号全部连接时 端口名字为黑色,否则为红色。最后,返回工程中。

23 / 45

4. 启动 ChipScope Pro Analyzer 4.1 重新运行 Implement Design ChipScope Core Inserter 产生的网表要被插入到原来的设计网表中,需要重新实现设计 Implement Design,完成翻译、映射、布局布线后生成 BIT 文件,下载到 FPGA 中后,利用 ChipScope Pro Analyzer 分析信号波形。 以后每次通过 Core Inserter 修改网表之后,都需要重新运行 Implement Design,重新生 成编程文件。

4.2 重新生成编程文件

24 / 45

4.3 运行 ChipScopeAnalyzer 选择 Analyze Design Using ChipScope,右键点击 Run。

25 / 45

ChipScope Pro Analyzer 启动后,界面如下图所示。

4.4 配置目标芯片 在常用工具栏上点击图标 ,初始化边界扫描链,成功完成扫描后,项目浏览器将会 列出 JTAG 链上的器件。选择我们使用的开发板 FPGA 芯片型号 XC3S500E。

点击“DEV:0 MyDevice0(XC3S500E) -> Configure”进行配置。
26 / 45

在弹出的配置对话框中, 选择需要下载的.bit 文件。 需要注意的是: ChipScope 利用 JTAG 链来观察芯片内部逻辑,因此在生成配置文件时只能利用.bit 格式的配置文件,且时钟选择 “JTAG CLK” ,选择“CCLK”可能会配置失败。

27 / 45

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

置界面如下图所示。

4.6 观察信号波形 观察信号波形需要打开 Waveform 窗口,双击 Waveform 命令,显示界面如上图所示。 由于波形显示窗口中列出的是 ChipScope 核中的信号,而不是设计中线网信号,需要通过导 入.cdc 文件来添加信号网表名。在 File 菜单下,点击 Import 命令,在弹出框中选择设计目 录下的.cdc 文件即可。

29 / 45

添加了信号名后,波形信号名称会由 DataPort[x]变成信号网表名。
30 / 45

对于总线信号,可选择多个信号,单击右键,选择 Add to Bus 命令,将其组合成相应 的总线信号。

31 / 45

4.7 不设定触发条件采集数据 Match 栏中不设定触发条件,先将 FPGA 复位,点击菜单栏上的 据。 按钮,开始采集数

32 / 45

整体结果如下图所示。

总线信号的进制表示可以通过右键点击 Bus Signal -> Bus Radix,进行选择。

通过右键点击波形,选择 Zoom 命令调节观察窗口的大小。

33 / 45

由于这次采集数据时,是先按下复位键后,再开始采集数据,所以,复位完成后,采集 的第一个数据就是 led 灯的复位值 0000_0001。

4.8 设定触发条件采集数据 在 Trigger Setup 栏 Match 区域的 M0:Trigger Port0 行的 Value 列输入触发条件 0000_0001。 这次不用重新复位,直接点击“ ”采集数据。

34 / 45

可以看到,采集结果的第一个数据为 0000_0001,如下图所示。当然用户可以设置其他 的触发条件。

若将触发条件设置为 0001_0000,则可以看到采集结果的第一个数据为 0001_0000。
35 / 45

4.9 改变 Capture 设置 在“Capture Setting”窗口中,可以设置窗口的数目和窗口中触发事件的位置,这里说 的窗口是指包含由一个事件触发的连续的多个样本。 Type 列表框定义了所用窗口的类型。 “Window”分页采集模式:在这种模式中,捕获缓冲区被划分为一个或多个容量大小 相等的页面。分页模式采用单个触发条件事件(例如满足某个触发事件的布尔组合)来采集 足够数据填满一个采集页面。在“Windows”文本框中确定窗口的数目,数值从 1 到捕获缓 冲区的深度之间选取。在“Depth”列表框中选择每个捕获窗口的深度,可供选择的值由窗 口数目决定。触发的位置由“Position”文本框决定,有效取值范围在 1 到每个捕获缓冲区 深度减 1 之间,触发位置可以设置在捕获窗口的起始点(即先触发,后采样) ,也可设置在 捕获窗口的终点(即采集数据直到触发事件发生) ,还可以设置在两者之间的任何位置。 “N Samples”N 点采样模式:捕获缓冲区将包括多个窗口,每个窗口包含 N 个样本, 这时只能在窗口的第一个样本触发, 也就是说触发位置必须在每个窗口的起始点。 每次触发 捕获的样本数由“Samples Per Trigger”文本框决定,数值范围在 1 到捕获缓冲区深度之间。 4.9.1 Window 分页采集模式 选择 Window 分页采集模式,窗口数目设置为 1,触发位置设置为 1024 时,结果如下 图所示。波形记录下了触发事件发生之前的 1024 次采样。

36 / 45

调节波形窗口,可以看到在 0 时刻,采集到的数据还是 0001_0000。

将窗口数目设置为 2 时,捕获缓冲区深度自动修改为 4096,当然还可以在列表框中选 择其他的值。波形如下图所示。波形中出现了两个窗口,每个窗口都包括 4096 次采样。

37 / 45

4.9.2 N 点采样模式 Type 列表框选择 N Samples 类型,每次触发捕获的样本数由 Sample Per Trigger 文本框 中设置为 1800。波形如下图所示。有 4 个窗口。

调节波形窗口,可以看到,第一个窗口中采样 1800 次之后,没有连续采样,而是等待 下一次触发事件发生,才继续开始第二次采样。

38 / 45

4.10 保存退出工程 退出软件时,保存工程,设定工程文件名为 led.cpj。

以后再次打开 ChipScope Pro Analyzer 时,就可以先 Open Project,选择这个 led.cpj 文 件。然后再点击左上角上的 Open Cable/Search JTAG Chain。如果编程文件已经发生变化, 还需要右键点击 JTAG Chain 下面的 DEV:0 MyDevice(XC3S500E) ,选择 Configure,更新 一下 bit 流文件。再进行下面的工作。 5. ChipScope Pro Core Generator 流程 在创建好 ISE 工程后,首先要使用 ChipScope Pro Core Generator 产生 ICON 核与 ILA 核,输出结果是 HDL 文件,其中描述了 IP 核的定义和接口。然后把 IP 核实例化到自己的 设计中,同时把需要观察的信号连接到 IP 核的端口上,再进行综合、布局布线、下载等操 作,FPGA 运行起来后就可以在 ChipScope Pro Analyzer 中观察波形了。 5.1 生成 ICON 核 打开 ChipScope Pro Core Generator 软件。选择生成 ICON 核。

39 / 45

输出的 ICON 核网表的保存位置,选择本次 ISE 工程所在目录下,名字不要改。 器件类型选择 Spartan3 E。 选择控制端口数量,这里选择 1.

选择产生 Verilog 格式的 HDL Example File,点击 Generate Core。

40 / 45

点击 Star Over。

5.2 生成 ILA 核

41 / 45

选择 ILA 核网表的保存位置,时钟上升沿采样。

设置触发端口数量,触发宽度等。

42 / 45

设置存储深度等。

43 / 45

最后点击 Start Over 完成 ILA 核的配置。

5.3 修改设计网表 ChipScope Core Generator 将在工程目录下生成以下主要文件: icon.edn ICON 核的网表 icon.ncf ICON 核的网表约束文件 icon_xst_example.v ICON 核的实例化代码示例 ila.cdc ChipScope Core Generator 的工程文件
44 / 45

ila.edn ILA 核的网表 ila.ncf ILA 核的网表约束文件 ila_xst_example.v ILA 核的实例化代码示例 首先,添加 icon_xst_example.v 和 ila_xst_example.v 到工程中。 然后,只需要按照 IP 核的实例化代码的示例,修改原设计的 RTL 代码 led.v。

注意, 核的 control 信号要与 icon 核的 control0 相连, ila 采样时钟 clk 与 count[16]相连, 触发信号与 diode 信号相连。 然后,再进行综合、布局布线、下载等操作。 最后,双击 Analyze Design Using ChipScope,启动 ChipScope Pro Analyzer 对设计进行 分析,下面的流程就与 ChipScope Pro Core Inserter 的流程相同。

45 / 45


相关文章:
keil的软件逻辑分析仪使用教程
keil 的软件逻辑分析仪( logic analyzer)使用教程在 keil MDK 中软件逻辑分析仪很强的功能,可以分析数字信号,模拟化的信号,CPU 的总线 (UART、IIC 等一切有输出...
Chipscope 快速入门详细教程(青山紫木原创)
本教程是继《Xilinx ISE 快速入门详细教程》之后 ...方法 —— 利用 逻辑分 析仪 Chipscope 在线调试。...ChipScope Pro详细教程(... 45页 2下载券 ChipScope...
学习使用chipscope逻辑分析仪v1.1
学习使用chipscope逻辑分析仪v1.1_信息与通信_工程科技_专业资料。学习使用 chipscope...ChipScope培训 40页 1下载券 ChipScope Pro实例教程 45页 5下载券 Xilinx FP...
ISE应用基础实验
ISE9.1 文件夹拷贝 到 E:盘根目录下; 3.具体实现: (1)创建工程 1)双击...在线逻辑分析仪(ChipScope Pro)具有传统逻辑分析 仪的功能,是针对 Xilinx Virtex...
实验六 ChipScope应用基础实验
在线逻辑分析仪(ChipScope Pro)具有传统逻 辑分析仪的功能,是针对 Xilinx Virtex...chipscope_edk91lab 17页 免费 Chipscope实例教程 6页 免费 chipscope使用文档...
第6章 ChipScope应用基础实验
在线逻辑分析仪(ChipScope Pro)具有传统逻 辑分析仪的功能,是针对 Xilinx Virtex-II Pro 等系列 FPGA 的在线片内信号分 析工具,主要功能是通过 JTAG 口,在线、...
chipscope教程
chipscope教程_计算机软件及应用_IT/计算机_专业资料。ChipScope Pro 实例教程 1....ChipScope Pro Core Generator 的作用是根据设定条件生成在线逻辑分析仪的 IP 核...
xilinx软件介绍
1) ISE Foundation:开发集成工具 2) ChipScope Pro:在线逻辑分析仪工具 3) PlanAhead:用于布局和布线等设计分析工具 ISE Foundation 软件是 xilinx 公司推出的 ...
VIVADO下ILA使用指南
类似于片上逻辑分析仪,通过在 RTL 设计中嵌入 ILA...选项变亮,点击该选项,下载 bit 文件 点击 Pro......(类似于 chipscope) 点击左侧的触发开关,vivado 会...
ChipScope9使用方法
网上流传的教程大概针对的是 ISE6.2 和 ChipScope6.2 版本的使用,而且还有...接下来就要用 ChipScope 来生成逻辑分析仪的核, 首先打开 Xilinx ChipScope Pro ...
更多相关标签:
xilinx chipscope | xilinx 逻辑单元 | 逻辑分析仪 | saleae逻辑分析仪软件 | saleae逻辑分析仪 | 逻辑分析仪的作用 | 逻辑分析仪使用方法 | 逻辑分析仪软件 |