CN101782626B - 一种jtag端口控制器 - Google Patents
一种jtag端口控制器 Download PDFInfo
- Publication number
- CN101782626B CN101782626B CN 201010126521 CN201010126521A CN101782626B CN 101782626 B CN101782626 B CN 101782626B CN 201010126521 CN201010126521 CN 201010126521 CN 201010126521 A CN201010126521 A CN 201010126521A CN 101782626 B CN101782626 B CN 101782626B
- Authority
- CN
- China
- Prior art keywords
- register
- information
- port
- data
- otc
- 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.)
- Active
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种JTAG端口控制器,至少包括指令寄存器、指令解码模块、第一数据寄存器、端口寄存器、状态机控制模块、第一选通器、第二选通器、信号组合模块和信号分离模块,其中,第一选通器接受来自所述测试访问端口中数据输入端口的串行数据信息并依次从其一个输出端口输出单比特信息;信号组合模块将第一数据寄存器的第1位至最高位信息与单比特信息组合成并行数据信息;所述第一数据寄存器为上升沿触发的寄存器;所述信号分离模块,将第一数据寄存器输出的并行数据信息的第0位信息与其它位信息分离;所述端口寄存器为下降沿触发的寄存器。本发明具有在进行写操作的同时,就能实时地观测到调试过程中信息的变化的优点。
Description
技术领域
本发明涉及集成电路测试技术领域,特别是JTAG(Joint Test ActionGroup)端口控制器领域。
背景技术
20世纪80年代以来,随着计算机嵌入式系统的广泛应用,微控制器(MCU,microcontroller unit/单片机)得到飞速的发展。早期的单片机是按照嵌入式应用技术要求设计的计算机的单芯片化集成电路器件,也就是电子计算机的全部特性器件都集成到一片芯片上,故被形象的称为单片机。随着单片机应用范围的不断加大,对于其仿真调试功能的要求也逐渐提高。
目前几乎所有的高速嵌入式处理器都用JTAG仿真调试模块。它是对IEEE1149.1协议进行了扩展,将原本用于测试的JTAG接口扩展成一个调试接口。JTAG是标准的国际协议(参阅IEEE standard 1149.1)。JTAG调试访问端口配置有以下5个管脚:TCK,TMS,TDI,TDO和TRST。TCK(TestClock)为调试时钟端口,为JTAG控制器提供时钟。TMS(Test Mode Select)为模式选择端口,可控制JTAG控制器的状态变化。TDI(Test Data Input)为串行调试输入数据端口,可通过该端口在TCK的上升沿移位输入TAP(TestAccess Port,调试访问端口)指令和数据。TDO(Test Data Input)为串行调试输出数据端口,可通过该端口在TCK的下降沿输出调试数据。TRST(TestReset)为复位端口,复位JTAG仿真调试模块。图1是通用的JTAG仿真调试系统,JTAG仿真调试模块与外部控制电路通过JTAG端口进行通信,JTAG仿真调试模块将从JTAG端口得到的调试信息送到微控制器并进行调试。JTAG仿真调试模块一般包括JTAG端口控制器(用于与JTAG端口通信,并与微控制器进行寄存器读写信息的传送,这里提及的寄存器是指CPU调试状态寄存器,调试时通常要求将微控制器的CPU调试状态寄存器的状态信息反馈给用户且能通过JTAG端口写CPU调试状态寄存器,所以需要通过JTAG端口对CPU调试状态寄存器进行读写操作)和调试控制模块(与微控制器进行调试信息的传送)。目前的JTAG端口控制器通常将串行的TDI数据转换为并行数据,再将并行数据写到JTAG相关的寄存器(如跟踪计数器,JTAG状态寄存器,CPU调试状态寄存器等,其中CPU调试状态寄存器存在于微控制器内,其他寄存器都存在于JTAG端口控制器内)中。在写某个寄存器时,并不能观测到此寄存器的新值和旧值的区别。而调试环境通常要求将寄存器的改变信息反馈给用户,让用户实时观测到寄存器值的改变,有哪些改变。若想知道寄存器值的改变情况,通常的做法是先将寄存器的值读出来,再与即将要写进去的值进行比较,从而获得寄存器值的改变信息。因为必须进行一次读寄存器的操作,所以比较浪费时间。
发明内容
本发明目的是提供一种JTAG端口控制器,该控制器在进行写操作的同时,就能实时地观测到调试过程中信息的变化。
为达到上述目的,本发明采用的技术方案是:一种JTAG端口控制器,
一种JTAG端口控制器,至少包括测试访问端口、指令寄存器、指令解码模块、第一数据寄存器、端口寄存器,还包括:状态机控制模块、第一选通器、信号组合模块、信号分离模块、第二选通器,其中,
所述状态机控制模块,用于控制所述JTAG端口控制器所处的工作状态;
所述第一选通器,根据所述指令寄存器的控制位信息,接受来自所述测试访问端口中数据输入端口的串行数据信息并依次从其输出端口输出单比特信息;或,接受来自所述信号分离模块一个输出端口输出的位于所述第一数据寄存器中第0位信息并从其输出端口输出该第0位信息;
所述信号组合模块,将所述信号分离模块一个输出端口输出的位于所述第一数据寄存器中第1位至最高位信息与所述第一选通器输出的单比特信息组合成并行数据信息,其中,单比特信息位于该并行数据信息的最高位;
所述第一数据寄存器为上升沿触发的寄存器,在时钟的上升沿将并行数据信息输出至该寄存器的输出端;
所述信号分离模块,接受来自所述第一数据寄存器输出的并行数据信息,并将该并行数据信息的第0位信息与其它位信息分离;
所述端口寄存器为下降沿触发的寄存器,接收来自所述信号分离模块的第0位信息并在时钟的下降沿将该第0位信息输出至该寄存器的输出端。
所述第二选通器,根据所述指令寄存器的控制位信息,控制将何种并行数据送到所述第一数据寄存器的输入端,当该第二选通器一个输入端有效时,将所述信号组合模块输出端口输出的并行数据信息选送到所述第一数据寄存器的输入端;当该第二选通器另一个输入端有效时,将保持所述第一数据寄存器的输出端数据不变。
上述技术方案中的有关内容解释如下:
1、上述方案中,还包括第三选通器和第二数据寄存器,该第三选通器位于所述数据寄存器与端口寄存器之间,用于选择第一数据寄存器和第二数据寄存器第0位信息的输出。
2、上述方案中,所述测试访问端口还包括模式选择端口、时钟端口、数据输出端口和复位端口。
由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
1、本发明JTAG端口控制器在进行写数据操作同时,就能实时地观测到调试过程中信息的变化,从而有利于开发人员及时发现问题和问题的查找。
2、本发明相对现有技术,不需要通过增加一次读操作才能观测到调试过程中的变化信息,节省了硬件资源并提高了效率。
3、本发明能提供前后数据实时对比并将结果反馈给用户。
4、本发明JTAG端口控制器的电路实现方式简单,并不需要增加很多的电路逻辑,性价比高。
附图说明
附图1为JTAG仿真调试系统示意图;
附图2为JTAG端口控制器的状态;
附图3为指令解码模块示意图;
附图4为本发明JTAG端口控制器的原理图;
附图5为本发明通过数据输入和输出端口的数据比较信息;
附图6为本发明数据寄存器的移位操作示意图。
以上附图中:1、指令寄存器;2、指令解码模块;3、第一数据寄存器;4、端口寄存器;5、状态机控制模块;6、第一选通器;7、信号组合模块;8、信号分离模块;9、第二选通器;10、第三选通器;11、第二数据寄存器。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例:一种JTAG端口控制器
一种JTAG端口控制器,至少包括测试访问端口、指令寄存器1、指令解码模块2、第一数据寄存器3、端口寄存器4,还包括:状态机控制模块5、第一选通器6、信号组合模块7、信号分离模块8、第二选通器9、第三选通器10、第二数据寄存器11,其中,
所述状态机控制模块5,用于控制所述JTAG端口控制器所处的状态;
所述第一选通器6,根据所述指令寄存器1的控制位信息,接受来自所述测试访问端口中数据输入端口TDI的串行数据信息并依次从其输出端口输出单比特信息;或,接受来自所述信号分离模块8一个输出端口输出的位于所述第一数据寄存器3中第0位信息并从其输出端口输出该第0位信息;
所述信号组合模块7,将所述信号分离模块8一个输出端口输出的位于所述第一数据寄存器3中第1位至最高位信息与所述第一选通器6输出的单比特信息组合成并行数据信息,其中,单比特信息位于该并行数据信息的最高位;
所述第一数据寄存器3为上升沿触发的寄存器,在时钟的上升沿将并行数据信息输出至该寄存器的输出端;
所述信号分离模块8,接受来自所述第一数据寄存器3输出的并行数据信息,并将该并行数据信息的第0位信息与其它位信息分离;
所述端口寄存器4为下降沿触发的寄存器,接收来自所述信号分离模块8的第0位信息并在时钟的下降沿将该第0位信息输出至该寄存器的输出端。
所述第二选通器9,根据所述指令寄存器1的控制位信息,控制将何种并行数据送到所述第一数据寄存器3的输入端,当该第二选通器9一个输入端有效时,将所述信号组合模块7输出端口输出的并行数据信息选送到所述第一数据寄存器3的输入端;当该第二选通器9另一个输入端有效时,将保持所述第一数据寄存器3的输出端数据不变。
所述第三选通器10和第二数据寄存器11,该第三选通器10位于所述数据寄存器3、11与端口寄存器4之间,用于选择第一数据寄存器3和第二数据寄存器11第0位信息的输出。
所述测试访问端口还包括模式选择端口TMS、时钟端口TCK、数据输出端口TDO和复位端口TRST。
本实施例上述内容具体解释如下。
JTAG端口控制器将从数据输入端口TDI输入的串行数据信息依次输入到相关的寄存器中,同时将JTAG相关寄存器的值转为串行数据信息并送到端口寄存器4的输出端TDO上。由模式选择端口TMS和复位端口TRST决定JTAG端口控制器的状态,并由JTAG端口控制器的状态和其它信息决定将从数据输入端口TDI输入的串行数据信息存入不同的寄存器,或从不同的寄存器中读出数据信息。
JTAG相关寄存器包括指令寄存器1(IR)、数据寄存器(DR)。指令寄存器1(IR)是一个包含在JTAG端口控制器内的8位寄存器,数据寄存器(DR)是指多个寄存器的集合,包括第一数据寄存器3,第二数据寄存器11,CPU调试状态寄存器等,数据寄存器(DR)都是由指令寄存器1(IR)控制如何进行读写操作的。在某个时刻只能操作其中一个数据寄存器(DR),至于要操作哪个数据寄存器(DR),则由指令寄存器1(IR)中的RS4~RS0位决定。
附图2是JTAG端口控制器的状态图。根据模式选择端口TMS和复位端口TRST的不同输入信息决定JTAG端口控制器进入不同的状态。当复位端口TRST的复位信号有效即被拉高时,无论模式选择端口TMS为何值,JTAG端口控制器都会立即进入到Test-Logic-Reset状态,且一直停留在Test-Logic-Reset状态直到复位端口(TRST)的复位信号无效即被拉低。当复位信号TRST无效且模式选择端口TMS为1,则停留在Test-Logic-Reset状态直到模式选择端口TMS为0。当复位信号TRST无效且模式选择端口TMS为0,则在TCK上升沿后离开Test-Logic-Reset状态而进入到Run-Test/Idle状态。另外,当在Select-IR-Scan状态且TMS为1时,在TCK上升沿后JTAG端口控制器也会进入到Test-Logic-Reset状态。除了Test-Logic-Reset状态和Run-Test/Idle状态,其他状态的进入都只与TMS和当前状态有关,与TRST无关。比如当JTAG端口控制器处于Run-Test/Idle状态且TMS输入为0时,JTAG端口控制器会一直停留在此状态;如果TMS为1,则在TCK上升沿后进入Select-DR-Scan状态。
通常,我们在系统上电时,会让复位信号TRST有效,让JTAG端口控制器进入到Test-Logic-Reset状态,然后让复位信号TRST无效且让模式选择信号TMS为0,在TCK上升沿后进入到Run-Test/Idle状态,继续让模式选择信号TMS保持为0从而停留在Run-Test/Idle状态。当用户需要写指令寄存器(IR)或数据寄存器(DR)时,会控制模式选择信号TMS取不同的值从而进入不同的状态,从而完成相关操作。比如要写指令寄存器1(IR),JTAG端口控制器会从Run-Test/Idle状态开始,经历Select-DR-Scan,Select-IR-Scan,Capture-IR,Shift-IR,Exit1-IR,Update-IR状态,最后再回到Run-Test/Idle状态,直到有新的操作。要写数据寄存器(DR),JTAG端口控制器也是从Run-Test/Idle状态开始,经历Select-DR-Scan,Capture-DR,Shift-DR,Exitl-DR,Update-DR状态,最后同样回到Run-Test/Idle状态,直到有新的操作。具体的操作请见后面用户写不同数据寄存器(DR)时的三个步骤。
当用户要写不同的数据寄存器(DR)时,需要如下三个步骤:步骤一:首先要写指令寄存器1(IR)。通过模式选择端口TMS输入相应的值让JTAG端口控制器进入到需要的状态,在Shift-IR状态时会将的串行输入值依次存入指令寄存器1(IR)中,经过8个TCK时钟周期后,指令寄存器1(IR)的8个位都被更新为需要的值,最后JTAG端口控制器又回到Run-Test/Idle状态,直到有新的操作才会离开Run-Test/Idle状态而进入Select-DR-Scan状态。指令寄存器1(IR)每一位的说明,如下:
7 6 5 4 3 2 1 0
R/W | Reserved | RS4 | RS3 | RS2 | RS1 | RS0 |
(1)R/W bit
1:读选中的数据寄存器(DR)
0:写选中的数据寄存器(DR)
(2)RS4~RS0bits
5’b00000~5’b00010:保留
5’b00011:选中16位trace counter OTC(追踪计数器,即第一数据寄存器3)
5’b00100:选中32位memory breakpoint A counter MBCA(存储器断点A计数器)
5’b00101:选中32位memory breakpoint B counter MBCB(存储器断点B计数器)
5’b00110:选中16位program counter first in first out buffer PCFIFO(程序计数器先进先出缓冲器)
5’b00111:选中32位memory breakpoint A base address register BABA(存储器断点A基地址寄存器)
5’b01000:选中32位memory breakpoint B base address register BABB(存储器断点B基地址寄存器)
5’b01001:选中32位memory breakpoint A mask address register BAMA(存储器断点A屏蔽地址寄存器)
5’b01010:选中32位memory breakpoint B mask address register BAMB(存储器断点B屏蔽地址寄存器)
5’b01011:选中128位CPU status register CPUSCR(CPU调试状态寄存器,保存微控制器的一些状态信息,如是否在调试模式,程序计数器的值等)
5’b01100:不选中任何寄存器
5’b01101:选中32位位JTAG control register OCR(JTAG控制寄存器)
5’b01110:选中32位JTAG status register OSR(JTAG状态寄存器,即第二数据寄存器11)
5’b01111~5’b11111:保留
步骤二:指令寄存器1(IR)的写操作完成后,它的RS4~RS0位和JTAG端口控制器中的Shift-DR状态信号被送到指令寄存器1(IR)的指令解码模块2中进行解码,决定选中哪个数据寄存器(DR)进行操作,相应的选择信号会被拉高。
图3是指令寄存器1的指令解码模块2,它根据JTAG端口控制器的Shift-DR状态信号和IR寄存器的RS4~RS0位解码得出不同数据寄存器(DR)的选择信号,如sel_otc,sel_osr信号等。要选中某个数据寄存器(DR),JTAG端口控制器必须处于Shift-DR状态,表明此时可以将TDI串行数据依次存入被选中的数据寄存器(DR)中。比如RS4~RS0位为5’b00011,且JTAG端口控制器处于Shift-DR状态时,则信号sel_otc被拉高,表明第一数据寄存器3即OTC寄存器被选中了。如RS4~RS0位为5’b01110,且JTAG端口控制器处于Shift-DR状态时,则信号sel_osr被拉高,表明第二数据寄存器11即OSR寄存器被选中了。
步骤三:最后再写被选中的数据寄存器(DR)。要通过TMS输入相应的值让JTAG端口控制器进入到需要的状态,通常在JTAG端口不进行任何操作的时候,JTAG端口控制器会停留在Run-Test/Idle状态,所以需要经过的状态依次为Select-DR-Scan,Capture-DR,Shift-DR,Exit1-DR,Update-DR,Run-Test/Idle,其中Shift-DR状态停留的TCK时钟周期由被选中的数据寄存器(DR)的位数决定,比如第一数据寄存器3即OTC寄存器是16位的寄存器,当选中第一数据寄存器3即OTC寄存器时,Shift-DR状态会停留16个TCK时钟周期;又比如第二数据寄存器11即OSR寄存器是32位的寄存器,当选中第二数据寄存器11即OSR寄存器时,Shift-DR状态会停留32个TCK时钟周期。Run-Test/Idle状态会一直停留直到有新的操作,其他状态只停留一个TCK时钟周期,在Shift-DR状态时会将TDI的串行输入值依次存入被选中的数据寄存器(DR)中,经过N个TCK时钟周期后,数据寄存器(DR)的N位都被更新为需要的值,N表示被选中的数据寄存器(DR)的位数,当选中第一数据寄存器3即OTC寄存器时,则N为16,当选中第二数据寄存器11即OSR寄存器时,N为32,最后JTAG端口控制器又回到Run-Test/Idle状态,直到有新的操作才会离开Run-Test/Idle状态而进入Select-DR-Scan状态。
经过这三个步骤,就完成了对某个数据寄存器(DR)的写操作。下面结合电路图和波形图对如何完成数据寄存器(DR)的写操作以及通过写操作来实时观测数据寄存器(DR)的变化做进一步说明。
图4是JTAG端口控制器的实现装置,它包括指令寄存器1(IR),状态机控制模块5,指令解码模块2,数据寄存器读写模块。指令寄存器1(IR)是一个包含在JTAG端口控制器内的8位寄存器,用于控制数据寄存器(DR)的读写操作。状态机控制模块5用于控制JTAG端口控制器进入何种状态,具体描述见前面对图2的说明。指令解码模块2的描述见前面图3的说明。数据寄存器读写模块用于控制除CPU调试状态寄存器(CPUSCR)以外的所有数据寄存器(DR)的读写操作,接收输入的串行数据信息,输出串行输出数据信息。
下面先以第一数据寄存器3即OTC寄存器为例做具体说明。
步骤一:当指令寄存器1中的R/W位为0,即写操作时,数据输出端口(TDO)被第一选通器6送到j_otc_si信号上。如果R/W位为1即读操作,第一数据寄存器3即OTC寄存器的第0位q_otc[0]被第一选通器6送到j_otc_si信号上。
步骤二:1位信号j_otc_si和15位信号q_otc[15:1]经信号组合模块7组合成一个新的16位信号{j_otc_si,q_otc[15:1]}。
步骤三:当指令解码模块2的输出信号sel_otc被拉高,即OTC寄存器被选中时,新的组合信号{j_otc_si,q_otc[15:1]}被第二选通器9送到信号d_otc[15:0]上。
步骤四:信号d_otc[15:0]在TCK上升沿时被保存到第一数据寄存器3即OTC寄存器中。此时,TDI(写OTC寄存器)或q_otc[0]即OTC寄存器的第0位的旧值(读OTC寄存器)被保存到OTC寄存器的第15位,而OTC寄存器的第1位的旧值被移到第0位。经过16个TCK时钟周期后,如果是写OTC寄存器操作,OTC寄存器的16位值全部更新为测试访问端口中数据输入端口TDI的串行数据信息;如果是读OTC寄存器操作,OTC寄存器的16位值全部更新为OTC寄存器的16位旧值,换句话说,经过16个TCK时钟周期后,OTC寄存器保持不变。此操作表明:OTC寄存器被选中且是写操作时,串行数据信息TDI被依次存入OTC寄存器的16位数据中(从最低位q_otc[0]到最高位q_otc[15]),即串行数据信息TDI第一个值最终被存入q_otc[0],第二个值最终被存入q_otc[1],第十六个值最终被存入q_otc[15]。
步骤五:信号q_otc[15:0](即OTC寄存器输出信号)是由信号q_otc[0](信号q_otc[15:0]的第0位)和信号q_otc[15:1](信号q_otc[15:0]的第15位到第1位)构成。当信号sel_otc被拉高时,信号q_otc[0]通过第三选通器10被送到端口寄存器4的输入端的信号d_tdo。信号d_tdo在TCK的下降沿被保存到端口寄存器4即TDO寄存器中。经过16个TCK时钟周期后,第一数据寄存器3即OTC寄存器的16位值全部从端口寄存器4输出端输出。此操作表明:OTC寄存器被选中时(此时在Shift-DR状态),OTC寄存器的16位值依次被送到端口寄存器4输出端端口(从最低位q_otc[0]到最高位q_otc[15]),即q_otc[0]被送到输出端TDO的的第1个数据,q_otc[1]被送到输出端TDO的第2个数据,q_otc[15]被送到输出端口TDO的第16个数据。
综上所述,如果是写OTC寄存器,我们可以得知:第一个TDI的值是OTC寄存器的第0位的新值;第一个TDO的值是OTC寄存器的第0位的旧值。此时我们在TCK的上升沿比较TDI和TDO,如果它们不相同则表明OTC寄存器的第0位会被改变,如果相同则表明OTC寄存器的第0位不会改变。同理我们可以得知OTC寄存器的其他位是否会有改变。
接着我们用图5的波形图来进一步说明。此波形图的前提是:指令寄存器1被写成8’b00000011,即R/W位为0,RS4~RS0位为5’b00011,表明写OTC寄存器操作。信号q_otc[0]是OTC寄存器输出信号q_otc[15:0]的第0位(事件1)。当JTAG端口控制器由Capture-DR状态变为Shift-DR状态时,信号sel_otc被拉高(事件2),表明选中OTC寄存器可以进行移位操作了。当信号sel_otc被拉高时,q_otc[0]通过第三选通器10被送到d_tdo(事件3),即事件3由事件1和事件2共同决定。在TCK下降沿(事件4)将d_tdo(事件3)的值存入TDO寄存器中(事件5),即事件5由事件4和事件3共同决定。综上可知,寄存器OTC的第0位旧值在TCK下降沿后被送到了TDO端口上。因为R/W为0,所以TDI的值通过第一选通器6被送到信号j_otc_si(事件6)。信号q_otc[15:1]是OTC寄存器输出信号q_otc[15:0]的高15位(q_otc[15]~q_otc[1])(事件7)。当信号sel_otc被拉高后(事件2),新的组合信号{j_otc_si,q_otc[15:1]}通过第二选通器9被送到d_otc[15:0](事件8),即事件8由事件2,事件6和事件7一起决定。在TCK上升沿(事件9)将d_otc[15:0](事件8)的值存入OTC寄存器q_otc[15:0]中(事件a)。综上可知,第一数据寄存器3即OTC寄存器的值由000F变成了0007,是因为第一个TDI的值被送到了OTC寄存器的第15位(经过16个TCK时钟后,该数据信息会被移位到OTC寄存器的第0位),OTC寄存器的第0位被移出到TDO端口上。我们在TCK的上升沿(事件9)比较TDI和TDO,可以发现OTC寄存器的第0位由原来的1(被送到端口寄存器4输出端即TDO端口上,即事件5)变成了0(第一个TDI的值为0,被送到了寄存器OTC的第15位,当写OTC操作完成后会被送到OTC的第0位)。同理,我们通过事件b能发现OTC的第0位到第3位均由1变成了0,通过事件c能发现OTC的第4位到第11位没有改变,通过事件d能发现OTC的第12位到第15位均由0变成了1。当JTAG端口控制器状态由Shift-DR状态变成Exitl-DR状态时,信号sel_otc被拉低(事件e),表明OTC寄存器不能进行移位操作了,OTC寄存器的值会保持F000不变(即信号sel_otc为低时,将保持OTC寄存器的输出端数据不变;),直到下一次移位操作。
sel_otc:OTC寄存器的选择信号。sel_otc为高表示选中了OTC寄存器进行移位操作。sel_otc为低表示没选中OTC寄存器。
j_otc_si:第一选通器6的输出。
q_otc[15:1]:寄存器OTC的第15位到第1位。
d_otc[15:0]:寄存器OTC的输入。
q_otc[15:0]:寄存器OTC的输出。
q_otc[0]:寄存器OTC的第0位。
d_tdo:寄存器TDO即端口寄存器4的输入,第二选通器9的输出。
TDO:JTAG的串行输出数据。
TDI:JTAG的串行输入数据。
图6是OTC寄存器在Shift-DR状态期间的移位操作,对应于图5中OTC寄存器由000F变为F000的过程。只列了时钟周期为0,1,2,14,15,16时的情况。经过16个TCK时钟周期后(从时钟周期0到时钟周期15),OTC寄存器的值由000F变为F000。到时钟周期16时,OTC寄存器的第15位为时钟周期15时的TDI值,OTC寄存器的第14位为时钟周期14时的TDI值,OTC寄存器的第13位为时钟周期13时的数据输入端口TDI的值,依此类推。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种JTAG端口控制器,至少包括测试访问端口、指令寄存器(1)、指令解码模块(2)、第一数据寄存器(3)、端口寄存器(4),其特征在于:还包括:状态机控制模块(5)、第一选通器(6)、信号组合模块(7)、信号分离模块(8)、第二选通器(9),其中,
所述状态机控制模块(5),用于控制所述JTAG端口控制器所处的工作状态;
所述第一选通器(6),根据所述指令寄存器(1)的控制位信息,接受来自所述测试访问端口中数据输入端口(TDI)的串行数据信息并从其输出端口输出单比特信息;或,接受来自所述信号分离模块(8)一个输出端口输出的位于所述第一数据寄存器(3)中第0位信息并从其输出端口输出该第0位信息;
所述信号组合模块(7),将所述信号分离模块(8)一个输出端口输出的位于所述第一数据寄存器(3)中第1位至最高位信息与所述第一选通器(6)输出的单比特信息组合成并行数据信息,其中,单比特信息位于该并行数据信息的最高位;
所述第一数据寄存器(3)为上升沿触发的寄存器,在时钟的上升沿将并行数据信息输出至该寄存器的输出端;
所述信号分离模块(8),接受来自所述第一数据寄存器(3)输出的并行数据信息,并将该并行数据信息的第0位信息与其它位信息分离;
所述端口寄存器(4)为下降沿触发的寄存器,接收来自所述信号分离模块(8)的第0位信息并在时钟的下降沿将该第0位信息输出至该寄存器的输出端。
所述第二选通器(9),根据所述指令寄存器(1)的控制位信息,控制将何种并行数据送到所述第一数据寄存器(3)的输入端,当该第二选通器(9)一个输入端有效时,将所述信号组合模块(7)输出端口输出的并行数据信息选送到所述第一数据寄存器(3)的输入端;当该第二选通器(9)另一个输入端有效时,将保持所述第一数据寄存器(3)的输出端数据不变。
2.根据权利要求1所述的JTAG端口控制器,其特征在于:还包括第三选通器(10)和第二数据寄存器(11),该第三选通器(10)位于所述第一、第二数据寄存器(3、11)与端口寄存器(4)之间,用于选择第一数据寄存器(3)和第二数据寄存器(11)第位信息的输出。
3.根据权利要求1所述的JTAG端口控制器,其特征在于:所述测试访问端口还包括模式选择端口(TMS)、时钟端口(TCK)、数据输出端口(TDO)和复位端口(TRST)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010126521 CN101782626B (zh) | 2010-03-11 | 2010-03-11 | 一种jtag端口控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010126521 CN101782626B (zh) | 2010-03-11 | 2010-03-11 | 一种jtag端口控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101782626A CN101782626A (zh) | 2010-07-21 |
CN101782626B true CN101782626B (zh) | 2012-03-14 |
Family
ID=42522704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010126521 Active CN101782626B (zh) | 2010-03-11 | 2010-03-11 | 一种jtag端口控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101782626B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279111B (zh) * | 2013-06-09 | 2016-03-30 | 杭州和利时自动化有限公司 | 多控制装置的同步执行方法、子系统及系统 |
US11408935B2 (en) * | 2019-05-31 | 2022-08-09 | Micron Technology, Inc. | JTAG registers with concurrent inputs |
CN113010344B (zh) * | 2019-12-19 | 2022-10-11 | 瑞昱半导体股份有限公司 | 联合测试工作组存取接口装置、主机端以及目标系统 |
CN113727485A (zh) * | 2021-08-31 | 2021-11-30 | 云尖信息技术有限公司 | 一种点灯系统及单bit点灯码流实现点双色灯的方法 |
CN115629926B (zh) * | 2022-11-30 | 2023-03-31 | 苏州浪潮智能科技有限公司 | 基于联合测试工作组接口的控制系统、方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080789B2 (en) * | 2003-05-09 | 2006-07-25 | Stmicroelectronics, Inc. | Smart card including a JTAG test controller and related methods |
CN100357751C (zh) * | 2004-02-26 | 2007-12-26 | 联想(北京)有限公司 | 一种jtag模块及应用该模块的调试方法 |
CN100365423C (zh) * | 2004-10-20 | 2008-01-30 | 华为技术有限公司 | 一种jtag链自动连接系统及其实现方法 |
CN100357874C (zh) * | 2005-09-30 | 2007-12-26 | 华为技术有限公司 | 一种基于边界扫描的闪存加载方法及系统 |
CN101097242B (zh) * | 2006-06-27 | 2010-04-21 | 中兴通讯股份有限公司 | 一种边界扫描测试控制器及测试方法 |
-
2010
- 2010-03-11 CN CN 201010126521 patent/CN101782626B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101782626A (zh) | 2010-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11835578B2 (en) | Selectable JTAG or trace access with data store and output | |
EP1866657B1 (en) | Optimized jtag interface | |
US6854029B2 (en) | DSP bus monitoring apparatus and method | |
Roncken et al. | Naturalized communication and testing | |
CN102073009B (zh) | 一种基于片上闪存的系统芯片jtag调试控制方法 | |
CN104272271B (zh) | 具有指令跟踪能力的处理器装置 | |
CN101782626B (zh) | 一种jtag端口控制器 | |
US10545187B2 (en) | Up control, CSU circuit, scan circuit, up signal contact point | |
CN102135920A (zh) | 嵌入式星载计算机故障注入系统及其注入方法 | |
CN105095040A (zh) | 一种芯片调试方法与装置 | |
US20200025826A1 (en) | Design-For-Test for Asynchronous Circuit Elements | |
CN103365749B (zh) | 一种多核处理器调试系统 | |
DE102009012768B4 (de) | JTAG Nachrichtenbox | |
CN100492315C (zh) | 嵌入式信号处理器模拟器 | |
CN104461796B (zh) | 用于嵌入式8051cpu的jtag调试模块及调试方法 | |
CN101329650B (zh) | 智能卡仿真器 | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
US8917566B2 (en) | Bypass structure for a memory device and method to reduce unknown test values | |
CN110717311A (zh) | 一种fpga内部访问系统、fpga验证方法 | |
CN111459785B (zh) | 一种芯片调试模式下时钟处理电路及其时钟处理方法 | |
US7747916B2 (en) | JTAG interface | |
CN117290212A (zh) | 基于risc-v架构调试系统 | |
CN119335370A (zh) | 一种基于scan chain的全信号调试方法及系统 | |
BDM et al. | Topic Page | |
Aguirre Echanove et al. | Improving the design process of VLSI circuits by means of a hardware debugging system: UNSHADES-1 framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room C2031, Suzhou Pioneer Park, 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province Patentee after: Suzhou Guoxin Technology Co., Ltd. Address before: Room C2031, Suzhou Pioneer Park, 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province Patentee before: C*Core Technology (Suzhou) Co., Ltd. |