Virtex中的ChipScope Pro调试设计、相关IP 核
ChipScope Pro调试设计
在传统的FPGA设计中,调试时大都采用示波器和逻辑分析仪。FPGA和PCB设计人员保留一定数量FPGA引脚作为测试引脚,FPGA设计者在编写FPGA代码时,将需要观察的FPGA内部信号定义为模块的输出,在综合实现时再把这些信号锁定到保留的测试引脚上,最后连接示波器或逻辑分析仪的探头到这些测试脚进行观测。这个测试方法存在很多局限性,成本高、灵活性差、操作麻烦。
随着FPGA的规模不断增大,FPGA的设计变得越来越复杂,其封装形式大多向球形方式转移,传统的使用探针监测信号的方式变得越来越困难。Xilinx推出的集成化逻辑分析工具ChipScope Pro,完全解决了这些问题。
ChipScope Pro具有传统逻辑分析仪的功能,价格便宜,而且不需要附加大量探头,具有很高的实用价值。它是针对Xilinx Virtex系列和Spartan系列器件设计的片内逻辑分析工具,它通过JTAG口,将FPGA内部信号实时读出,传入计算机进行分析。基本方法是利用FPGA内的BRAM,存储信号波形数据,然后通过JTAG接口将数据传送到计算机,并将波形在计算机显示出来。ChipScope测试系统连接结构图如图9-1所示。
使用这种技术观察FPGA内部信号的测试方法,具有以下优点。

ChipScope Pro由一系列相关的IP 核及其软件工具组成,包括核生成器(Core Generator)、核插入器(Core Inserter)、分析仪(ChipScope Analyzer)和TCL 脚本控制接口。
(1) 核生成器
Xilinx Core Generator Tool 集成控制器核(ICON) 集成逻辑分析核(ILA) 虚拟I/O 核(VIO) 安捷伦跟踪核(ATC2)的网表和实例化所需的模板文件(2) 核插入器
Core Inserter(核插入器)(3) ChipScope Analyzer(ChipScope 分析软件):通过它可以配置FPGA,可以设定触发条件,可以设定ILA、IBA/OPB、IBA/PLB、VIO 及IBERT 的踪迹显示方式。
(4) ChipScope Engine Tcl (CSE/Tcl) Scripting Interface(TCL 脚本控制接口):通过TCL 脚本语言和JTAG 链,完成与芯片的通信交互。在设计中,使用ChipScope Pro 有两种操作流程,如图9-2 所示。

流程1:通过ChipScope Pro 内核生成器,产生各种不同功能调试内核,如ICON、ILA和IBA 等,将生成的例化代码插入HDL 源程序中,再对包括ChipScope Pro 内核的设计进行综合实现后下载到器件中,利用ChipScope Analyzer 进行分析。
流程2:利用ChipScope Pro 的内核插入器将所需要的内核直接插入到已经综合完成的设计网表(NGC 或EDIF)中,然后对这个新的网表文件布局布线后下载到器件中,利用ChipScope Analyzer 进行分析。
接下来我们详细介绍ChipScope 的IP 核及其应用,重点介绍如下内容。
ChipScope Pro 相关IP 核
ChipScope Pro 提供了多种不同功能的调试内核,通常分成三类:逻辑调试内核、误比特率测试核和集成总线分析核。用户根据系统的调试要求,应用不同的调试内核,方便快速地找到设计中存在的问题。常用IP 核如图9-3 所示。
(1) 逻辑调试内核。
ICON(集成控制器核)(2) IBERT(误比特率测试核)。
(3) IBA(Integrated Bus Analyzer,集成总线分析核)。

一、 ICON 核
ICON 核具备与JTAG 边界扫描端口通信的能力,因此ICON 核是ChipScope Pro 应用必不可少的关键核。一个ICON 核可以最多同时连接15 个ILA、IBA/OPB、IBA/PLB、VIO或者ATC2 核。在Virtex-4/5/6 和Spartan-6 芯片中,可以通过BSCAN_VIRTEX 原语来使用USER1、USER2、USER3 或者USER4 扫描链,且由于BSCAN_VIRTEX 原语实现了一条单独的扫描链,因此就没有必要导出未使用的用户扫描链。在其余类型芯片中,只能使用USER1 或者USER2 扫描链。
二、 ILA 核
ILA 核提供触发和跟踪功能,根据用户设置的触发条件捕获数据,然后在ICON 的控制下,通过边界扫描端口将数据上传到PC,最后在分析仪(Alalyzer)中显示出信号波形。由于ILA 核和被监控的逻辑是同步的,因此设计中的所有时钟约束会被应用到ILA 核。ILA包括下面3 个主要组件:
三、 VIO 核
VIO(Virtual I/O)核是一个虚拟控制台,用于实时监控和控制FPGA 内部逻辑信号,可以观测FPGA 设计中任意模块的输出信号,也可以对这些模块添加虚拟输入,类似DIP开关、按键等,且不占用BRAM 资源。VIO 核面向模块操作,支持下面4 类信号:
四、 ATC2 核
ATC2 核由Xilinx 和Aglient 合作开发,配合Aglient 的最新一代的逻辑分析仪使用。ATC2 内核结构框图如图9-4 所示,可以看成一个可配置的多路复用器,输入为一些信号组,最大可以配置成64 个组。

Agilent 逻辑分析仪上运行一个FPGA 动态探测器的应用软件,用它可以观察从FPGA 输出的信号。
ATC2 实现了FPGA 与Aglient 逻辑分析仪的联合调试、捕获数据,允许Aglient 逻辑分析仪访问FPGA 内部任何节点,提供更深的捕获深度,具有更复杂的触发设置,并且支持网络远程调试,功能十分强大。与单独使用ChipScope Pro 相比,减少了BRAM 的使用。
ATC2 与Anlient 逻辑分析仪连接,可以为每个信号提供2M 的捕获深度,是ILA 的60倍。此外,最多允许在FPGA 内部添加64 个观测信号组,和逻辑分析仪的连接路径最多可达128 条。这非常有利于查找设计缺陷。
五、 IBERT 核
IBERT 核用于测量高速串行收发器多条通道上的误码率和实时调整高速串行收发器参数。BERT 核由三部分组成。
六、 IBA/OPB核
在Xilinx的FPGA中可以嵌入软核处理器MicroBlaze,在一些高端器件中还有IBM的硬核处理器核PowerPC,IBA/OPB核是专用于连接片上外设总线(OPB)的。IBA/OPB核主要包含四个部分:
七、 IBA/PLB核
IBA/PLB核是专用于连接片上外设总线(PLB)的。IBA/PLB核主要包含三个部分:
(chipscope_plbv46_iba),用于调试。
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/80354454
- 点赞
- 收藏
- 关注作者
评论(0)