一种基于通用调试接口的SoC硬件调试器制造技术

技术编号:8413073 阅读:423 留言:0更新日期:2013-03-14 02:07
本发明专利技术公开了一种基于通用调试接口的SoC硬件调试器,包括通用调试接口、TAP控制器、扫描链、调试控制寄存器模块、同步模块、JTAG-AHB协议转换模块、AHB-DMA模块、AHB总线控制器、调试支持模块、SoC外设模块和支持调试的处理器。本发明专利技术首次将JTAG口应用到GAISLER实验室开源的调试支持模块DSU中,并且避免了在处理器关键路径中插入扫描链,其结构和性能优于目前一般的硬件调试模块。而且该SoC硬件调试器已经过流片验证,功能正确可靠。

【技术实现步骤摘要】

本专利技术属于半导体集成电路领域,涉及一种基于通用调试接口的SoC硬件调试器
技术介绍
根据SoC (片上系统)调试过程中使用的资源,SoC调试可以分为软件调试和硬件调试。软件调试主要是在运行的程序中驻留监控程序,其实现的调试功能较为简单,已经不能满足实际的工程需要;硬件调试的策略是在SoC系统中集成支持调试的相关功能模块,通过调试主机对这些功能模块进行操作,从而快速定位SoC电路使用中出现的问题,硬件调试已经成为目前SoC工程应用中调试技术的主流。典型的基于硬件的调试系统如图I中的100所示。高层调试工具101是调试人员与调试系统交互的窗口 ;调试主机102是运行高层调试工具101的计算机,102解析101的调试命令,并且将解析后的调试命令的信息Cl发送给协议转换器103 ;103将Cl转化为调试接口和调试逻辑105可接受具有一定时序信息的调试命令c2,105根据c2对被调试的SoC芯片104进行调试,之后返回调试信息al,al经过103转化为102可以接收的信息,最终调试人员通过交互窗口 101得到调试信息。其中如果调试主机102发出的调试信息可以直接被调试接口 105识别,那么协议转换器103可以省略,调试接口和调试逻辑105集成在SoC内部,调试接口 105和104共同组成支持调试的SoC电路。显而易见,不同调试接口的信号时序不同,因此SoC调试系统的设计主要包括协议转换器103和调试接口和调试逻辑105的设计。目前业界主要存在两种基于硬件的SoC调试系统。一种是ARM公司开发的基于JTAG的调试模块,一种是美国GAISLER实验室开发的基于UART串口的调试支持模块DSU(Dubug Support Units)。图I所示的调试接口和调试逻辑105在如今的ARM处理器中的结构如图2中的200所示。由图2可知ARM处理器主要包括三个部分ARM主要的处理器逻辑205、嵌入式调试模块201、符合IEEE1149. I的TAP控制器203。205包含了基本的处理器及对调试的支持逻辑;201包括一组寄存器和比较器,寄存器用来控制调试、反应调试状态、设置断点等,比较器产生异常;203通过标准的JTAG接口访问和控制各个扫描链。图2中的扫描链202、扫描链204及扫描链206是为了支持硬件调试而插入的,其中扫描链202长度为38位,高6位为寄存器地址域,低32位为数据域,该扫描链是专门用来访问201内的寄存器。通过访问201内的寄存器,可以让ARM处理器进入调试状态、设置断点、设置观察点。通过扫描链206可以访问ARM处理器的外围电路,包括数据总线,该扫描链的长度为113位,其中包括数据总线0-31位、内核控制信号、201的控制信号及地址总线的31-0位。扫描链204是206的一部分,而且只有33位,包括数据总线的32位及BREAKPT位,利用该扫描链可以更快地插入指令和数据插入到ARM核内部。另外,ARM还提供了三个信号SI、S2、S3,其中SI输入到205,为调试请求DBGREQ,通过置其为1,可以迫使ARM进入调试状态;S3从205输回到201,为调试响应DBGACK,通过读S3可判断当前ARM核是否处于调试模式;S2输入205,为断点信号BREAKPT,控制ARM核进入调试状态的时机。ARM的调试原理简要如下通过在图I所示的102上运行ARM的调试工具101,然后通过103JTAG协议转换器,将调试信息送到图2所示的203TAP控制器,通过203更新201内部的寄存器,调试相关的寄存器,同时将需要的访问地址或者要执行的程序通过204更新至数据总线,当S3DBGACK有效时,ARM就执行相关的调试命令,然后通过相应的扫描链将调试结果通过203的TDO串口移出去。然后经过图I示的al、a2返回到调试主机,供调试人员观察。美国GAISLER实验室开发的基于UART串口的调试支持模块DSU的结构框图如图3中300所示。由图3知SoC系统中的硬件调试支持模块主要由调试接口和调试逻辑302、调试支持模块303两个模块组成。302通过串口接口接收外部的调试信息,并将串口通信协议进行转化,使之符合AHB总线协议。302的内部结构如图4中的400所示。异步串行收发器UART401遵循RS232协议,接收调试主机101给的串行调试命令,将串行的数据转换 为8位并行数据送给RS232-AHB协议转换模块402,402将多个并行的8位调试原语进行解析,转化为片上总线AHB协议格式,生成AHB总线读/写命令,访问SoC内部模块,同时将调试访问的结果通过402传给调试主机。303主要包括A、B两组寄存器,其中A组寄存器501用来控制处理器的调试,B组寄存器502只是可读,是处理器内部信息的映射寄存器。通过302对303内部寄存器的操作,产生调试行为并读回调试结构。303内部结构框图如图5中500所示。另外图3中的DBGREQ、DBGACK含义同图2中的SI和S3,DGBEN为调试模式的使能信号,这三根信号均来自芯片管脚。基于UART串口的调试支持模块DSU基本的调试原理为通过在图I所示的102上运行DSU调试工具101,然后通过串行接口将调试原语送到图3所示的302,302和处理器304均为AHB总线的主控制器,当SoC系统处于调试状态时,302将调试信息生成AHB总线读/写命令,并向AHB控制器301请求占有使用总线,之后按照调试信息访问SoC内部模块,同时将调试访问的结果通过402传给调试主机。综合上述业内主流的硬件调试模块可知ARM调试系统为了使芯片整机、板级测试与芯片级的调试方式相统一,使用SoC电路中用于边界扫描和芯片件互联测试的JTAG管脚调试,虽然节约了芯片宝贵的管脚资源,但是ARM调试系统在处理器的关键路径上插入扫描链,对系统有“侵入式”影响,限制了系统性能的提升与发挥。基于UART串口的调试支持模块DSU使用串口传输调试信息,调试速度较慢,需要uart_tx、uart_rx、DBGEN、DBGQER、DBGREQ共五个额外的芯片管脚,但不需要插入额外的扫描连,且由于500中502的使用,使该调试系统对SoC的性能没有“侵入式”影响,其重大缺陷是芯片级SoC的调试可以使用基于UART串口的调试支持模块DSU,但是由于更高的应用层次上(如板级、整机)只能通过IEEE标准的JTAG接口调试,因此基于UART串口的调试支持模块DSU无法将芯片整机、板级测试与芯片级的测试方式相统一,需要分别在SoC电路不同的调试阶段制作不同的测试版,极大地浪费了资源。
技术实现思路
本专利技术解决的问题在于提供一种基于通用调试接口的SoC硬件调试器,将SoC电路不同阶段的调试方式相互统一,避免制作同一 SoC电路的多套测试板。本专利技术是通过以下技术方案来实现的一种基于通用调试接口的SoC硬件调试器,包括通用调试接口、TAP控制器、扫描链、调试控制寄存器模块、同步模块、JTAG-AHB协议转换模块、AHB-DMA模块、AHB总线控制器、调试支持模块、SoC外设模块和支持调试的处理器;通用调试接口连接外部 调试设备,并将调试信息通过TAP控制器控制的扫描链更新到调试控制寄存器模块;调试控制寄存器模块通过同步模块将调试信息送入JTAG本文档来自技高网
...

【技术保护点】
一种基于通用调试接口的SoC硬件调试器,其特征在于,包括通用调试接口、TAP控制器、扫描链、调试控制寄存器模块、同步模块、JTAG?AHB协议转换模块、AHB?DMA模块、AHB总线控制器、调试支持模块、SoC外设模块和支持调试的处理器;通用调试接口连接外部调试设备,并将调试信息通过TAP控制器控制的扫描链更新到调试控制寄存器模块;调试控制寄存器模块通过同步模块将调试信息送入JTAG?AHB协议转换模块;调试控制寄存器模块与同步模块双向连接,其间信号的传输方向由通用调试接口的调试信息决定;JTAG?AHB协议转换模块将同步模块发送的包含调试信息的原语转化为符合AHB协议的总线读写操作,并将其发送至AHB?DMA同步模块;AHB?DMA模块根据JTAG?AHB协议转换模块发送的总线读写操作,向AHB总线控制器发起使用AHB总线的请求,待得到使用AHB总线授权且SoC处于调试模式时,通过访问调试支持模块、支持调试的处理器和SoC外设模块来对SoC系统进行调试。

【技术特征摘要】

【专利技术属性】
技术研发人员:段青亚陈庆宇盛廷义赵恒星李剑
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1