CN114546866A - 一种jtag读指令延时处理方法 - Google Patents

一种jtag读指令延时处理方法 Download PDF

Info

Publication number
CN114546866A
CN114546866A CN202210177944.0A CN202210177944A CN114546866A CN 114546866 A CN114546866 A CN 114546866A CN 202210177944 A CN202210177944 A CN 202210177944A CN 114546866 A CN114546866 A CN 114546866A
Authority
CN
China
Prior art keywords
instruction
jtag
read
upper computer
scan chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210177944.0A
Other languages
English (en)
Inventor
潘菲
李泉泉
韩琼磊
胡孔阳
章钰
刘先博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Core Century Technology Co ltd
Original Assignee
Anhui Core Century Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anhui Core Century Technology Co ltd filed Critical Anhui Core Century Technology Co ltd
Priority to CN202210177944.0A priority Critical patent/CN114546866A/zh
Publication of CN114546866A publication Critical patent/CN114546866A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种JTAG读指令延时处理方法,若上位机下发的有效读指令在新的扫描链捕获状态到来时仍未返回有效读数据,则上位机下发无效指令,直至上位机接收到有效的读数据返回。上位机下发无效指令驱动TAP状态机正常运转,但不产生有效读写操作(芯片内部接受到此类指令直接丢弃),意义在于实现读数据的轮询。JTAG模块接收到上位机下发的无效指令,TAP状态机会正常运转,每轮捕获状态均会检测是否返回有效数据,仅当检测到有效读数据返回后,上位机再继续下发有效指令即可避免读数据被覆盖的问题。

Description

一种JTAG读指令延时处理方法
技术领域
本发明涉及JTAG调试技术领域,尤其是一种JTAG读指令延时处理方法。
背景技术
随着计算机技术、通信技术和微电子技术的高速发展,JTAG(JointTestActionGroup,联合测试工作组)作为一种国际标准测试协议(IEEE1149.1兼容)广泛应用于芯片内部测试。目前,JTAG接口主要用于芯片电气特性测试(边界扫描)及芯片内部调试(在线编程)。
JTAG内部有一个状态机,称为TAP控制器。TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。TAP状态机共有16种状态,如图1所示,图1中每个椭圆形代表一种状态,标有状态名称及标识代码,箭头代表各状态所有可能的转换流程;状态前的转换是在TCK的驱动下,由TMS控制。JTAG扫描链一共有四种操作,分别为挂起、捕获(Capture)、移位(Shift)和更新(Update)。上位机的读指令在扫描链处于更新状态时下发,之后当扫描链处于捕获状态时,对应该读指令的返回数据才能更新至扫描链上,参照图2。读取不同存储器数据的网络延迟并不完全相同,很难提前预估延迟时间,为了保证读取的数据不被覆盖,现有的解决方案根据最长的延时时间来降低TCK,实际应用中,TCK降至芯片内核时钟的千分之一,乃至万分之一,大大降低了工作效率。
发明内容
针对现有技术存在的上述问题,本发明提供了一种JTAG读指令延时处理方法,能够大大提高工作效率。
一种JTAG读指令延时处理方法,若上位机下发的有效读指令在新的扫描链捕获状态到来时仍未返回有效读数据,则上位机下发无效指令,直至上位机接收到有效的读数据返回;无效指令为最高位为0的指令。
进一步的,JTAG模块包括TAP状态机、指令寄存器、旁路寄存器、调试扫描链,
所述TAP状态机模块兼容标准IEEE1149.1协议,根据状态转换控制指令寄存器及调试扫描链的写入和读出,完成调试指令的下发和返回数据的上传;
所述指令寄存器,用于控制链路的选择,通过TAP状态机写入指令寄存器,根据指令寄存器的寄存器值选择接入旁路寄存器链或调试扫描链;
所述旁路寄存器,用于在多个芯片JTAG接口串联情况下,旁路指定芯片的JTAG调试电路,激活待调试芯片的JTAG调试电路;
所述调试扫描链,用于在调试模式激活的情况下,完成仿真器下发指令的接收操作,以及上一轮指令返回值的上传操作。
进一步的,调试扫描链连接有1个指令缓存单元和1个数据缓存单元;所述缓存单元为深度为32,宽度为65的同步fifo。
本发明的有益效果:1、上位机下发无效指令驱动TAP状态机正常运转,但不产生有效读写操作(芯片内部接受到此类指令直接丢弃),意义在于实现读数据的轮询。JTAG模块接收到上位机下发的无效指令,TAP状态机会正常运转,每轮捕获状态均会检测是否返回有效数据,仅当检测到有效读数据返回后,上位机再继续下发有效指令即可避免读数据被覆盖的问题;2、调试扫描链连接有1个指令缓存单元和1个数据缓存单元,由于缓存单元的存在,上位机可以连续下发一批有效读指令,再一直下发无效指令,直至对应这16个读指令的读数据全部返回为止,再启动下一批有效指令的下发,进一步缩短返回数据的平均等待时间,提高在线仿真器的工作频率,进而提高整体工作效率。
附图说明
图1为TAP状态机状态转换示意图;
图2为现有调试扫描链调试工作时序状态图;
图3为上位机下发无效指令后的现有调试扫描链调试工作时序状态图;
图4为JTAG模块内部结构示意图;
图5是带缓存的调试扫描链结构示意图;
图6是带缓存的调试扫描链调试工作时序状态图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
从图2可以看出,上位机的读指令在扫描链处于更新状态时下发,若在下一次扫描链跳转至捕获状态前,对应该读指令的返回数据已经读出,则顺利能够更新至扫描链上,否则对应该读指令的返回数据需要等待再下一次扫描链跳转至捕获状态时,才能更新至扫描链上。倘若在对应该读指令的返回数据更新至扫描链上之前,上位机又下发了一次读指令,并且对应此读指令的返回数据及时读出,则会覆盖前一次读指令的返回数据,导致前一次读指令的返回数据的丢失。目前,针对这一技术问题的解决方案为,根据最长的延时时间来降低TCK,实际应用中,TCK降至芯片内核时钟的千分之一,乃至万分之一,大大降低了工作效率。
为此,本实施例提出一种JTAG读指令延时处理方法,若上位机下发的有效读指令在新的扫描链捕获状态到来时仍未返回有效读数据,则上位机下发无效指令,直至上位机接收到有效的读数据返回。
上位机下发无效指令驱动TAP状态机正常运转,但不产生有效读写操作(芯片内部接受到此类指令直接丢弃),意义在于实现读数据的轮询。JTAG模块接收到上位机下发的无效指令,如图3所示,TAP状态机会正常运转,每轮捕获状态均会检测是否返回有效数据,仅当检测到有效读数据返回后,上位机再继续下发有效指令即可避免读数据被覆盖的问题。
本实施例提供的JTAG读指令延时处理方法的优势为:上位机下发无效指令在保证TAP状态机正常运转的前提下,不产生有效读写操作。由于上位机下发无效指令起到了监测读数据是否已经返回的作用,因此再通过降低TCK来解决读数据覆盖的问题,TCK可以提高到最高芯片内核时钟的一半,从而通过***无效指令的方式,使得调试指令的生效延时接近芯片内部指令的网络延迟,大大提高了工作效率。
JTAG模块包括TAP状态机、指令寄存器、旁路寄存器、调试扫描链,内部连接关系如图4所示。
所述TAP状态机模块兼容标准IEEE1149.1协议,根据状态转换控制指令寄存器及调试扫描链的写入和读出,完成调试指令的下发和返回数据的上传;
所述指令寄存器,用于控制链路的选择,通过TAP状态机写入指令寄存器,根据指令寄存器的寄存器值选择接入旁路寄存器链或调试扫描链。
所述旁路寄存器,用于在多个芯片JTAG接口串联情况下,旁路指定芯片的JTAG调试电路,激活待调试芯片的JTAG调试电路。
所述调试扫描链,用于在调试模式激活的情况下,完成仿真器下发指令的接收操作,以及上一轮指令返回值的上传操作。
实施例2
当上位机需要连续下发一批读指令时,扫描链接收到每条读指令的返回数据都需要等待数量不等的捕获状态,为了在这一情况下进一步缩短返回数据的平均等待时间,本实施例中的调试扫描链连接有1个指令缓存单元和1个数据缓存单元,所述缓存单元可以是深度为32,宽度为65的同步fifo,如图5所示。
由于缓存单元的存在,上位机可以连续下发一批(例如16个,不超过fifo深度即可)有效读指令,参照图6,再一直下发无效指令,直至对应这16个读指令的读数据全部返回为止,再启动下一批有效指令的下发。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

Claims (5)

1.一种JTAG读指令延时处理方法,其特征在于,若上位机下发的有效读指令在新的扫描链捕获状态到来时仍未返回有效读数据,则上位机下发无效指令,直至上位机接收到有效的读数据返回。
2.根据权利要求1所述的JTAG读指令延时处理方法,其特征在于,无效指令为最高位为0的指令。
3.根据权利要求2所述的JTAG读指令延时处理方法,其特征在于,JTAG模块包括TAP状态机、指令寄存器、旁路寄存器、调试扫描链,
所述TAP状态机模块兼容标准IEEE1149.1协议,根据状态转换控制指令寄存器及调试扫描链的写入和读出,完成调试指令的下发和返回数据的上传;
所述指令寄存器,用于控制链路的选择,通过TAP状态机写入指令寄存器,根据指令寄存器的寄存器值选择接入旁路寄存器链或调试扫描链;
所述旁路寄存器,用于在多个芯片JTAG接口串联情况下,旁路指定芯片的JTAG调试电路,激活待调试芯片的JTAG调试电路;
所述调试扫描链,用于在调试模式激活的情况下,完成仿真器下发指令的接收操作,以及上一轮指令返回值的上传操作。
4.根据权利要求3所述的JTAG读指令延时处理方法,其特征在于,调试扫描链连接有1个指令缓存单元和1个数据缓存单元。
5.根据权利要求4所述的JTAG读指令延时处理方法,其特征在于,所述缓存单元为深度为32,宽度为65的同步fifo。
CN202210177944.0A 2022-02-24 2022-02-24 一种jtag读指令延时处理方法 Pending CN114546866A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210177944.0A CN114546866A (zh) 2022-02-24 2022-02-24 一种jtag读指令延时处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210177944.0A CN114546866A (zh) 2022-02-24 2022-02-24 一种jtag读指令延时处理方法

Publications (1)

Publication Number Publication Date
CN114546866A true CN114546866A (zh) 2022-05-27

Family

ID=81679681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210177944.0A Pending CN114546866A (zh) 2022-02-24 2022-02-24 一种jtag读指令延时处理方法

Country Status (1)

Country Link
CN (1) CN114546866A (zh)

Similar Documents

Publication Publication Date Title
US8055963B2 (en) Accessing sequential data in a microcontroller
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
CN1260577C (zh) 测试存取端口的数据同步
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
CN102360329B (zh) 总线监控与调试控制装置及进行总线监控与总线调试的方法
US6684362B1 (en) Method and apparatus for connecting manufacturing test interface to a global serial bus including an I2 c bus
CN101458652B (zh) 微控制器嵌入式在线仿真调试***
US20030056154A1 (en) System and method for communicating with an integrated circuit
CN101432699A (zh) 在多个处理器/核的测试与调试进程期间控制电源、时钟和复位的装置和方法
US6665816B1 (en) Data shift register
CN105550119A (zh) 一种基于jtag协议的仿真装置
JPS61253555A (ja) トランザクシヨン・アナライザ
JPH10253719A (ja) Tapコントローラを有する集積回路
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
CN101458725A (zh) 微控制器芯片及其调试方法
US7428661B2 (en) Test and debug processor and method
US5515530A (en) Method and apparatus for asynchronous, bi-directional communication between first and second logic elements having a fixed priority arbitrator
US5687371A (en) Selection from a plurality of bus operating speeds for a processor bus interface during processor reset
JP2008170444A (ja) 集積回路
CN114546866A (zh) 一种jtag读指令延时处理方法
US6529979B1 (en) Method and apparatus for a high-speed serial communications bus protocol with positive acknowledgement
CN106991022B (zh) 一种基于扫描链的芯片分析方法
CN102486939B (zh) 存储器的联合测试行动组测试方法和装置
JP4122824B2 (ja) 不揮発性記憶装置のデ−タ転送制御回路,不揮発性記憶装置の書き換え回路,及び,通信制御装置
Melear Emulation techniques for microcontrollers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination