著录项信息
专利名称 | 一种JTAG主控制器及其实现方法 |
申请号 | CN201110117998.X | 申请日期 | 2011-05-09 |
法律状态 | 暂无 | 申报国家 | 暂无 |
公开/公告日 | 2012-11-14 | 公开/公告号 | CN102778645A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G01R31/28 | IPC分类号 | G;0;1;R;3;1;/;2;8查看分类表>
|
申请人 | 京微雅格(北京)科技有限公司 | 申请人地址 | 北京市大兴区北京经济技术开发区地盛北街1号A区9号楼303室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 京微雅格(北京)科技有限公司 | 当前权利人 | 京微雅格(北京)科技有限公司 |
发明人 | 李大伟;朱建彰;王强;王潘丰;邹丽娜 |
代理机构 | 北京亿腾知识产权代理事务所 | 代理人 | 陈霁 |
摘要
本发明涉及一种JTAG主控制器及其实现方法。该JTAG主控制器包JTAG信号发生器。该JTAG信号发生器获取外部的HOST指令,并对该HOST指令进行解析以得到IR指令或DR数据,从而根据该IR指令或DR数据产生相应JTAG接口信号,以通过该JTAG接口信号来驱动该目标芯片。本发明执行指令效率高,可应用于JTAG器件中。
1.一种与目标芯片连接的JTAG主控制器,其特征在于,包括:
JTAG信号发生器,获取外部的HOST指令,并对该HOST指令进行解析以得到IR指令或DR数据,从而根据该IR指令或DR数据产生相应JTAG接口信号,以通过该JTAG接口信号来驱动该目标芯片;
所述JTAG信号发生器包括HOST指令解析器,该HOST指令解析器用于解析来自内嵌存储器的HOST指令;
所述HOST指令解析器还包括一个状态机,该状态机包括指令状态(Header)和数据状态(Data状态);
系统复位时,该状态机处于指令状态(Header状态);在满足解析出的指令为发送IR指令,并且DR数据长度非0条件时,该状态机由指令状态(Header状态)转移到数据状态(Data状态)。
2.如权利要求1所述的一种JTAG主控制器,其特征在于,包括和JTAG信号发生器相连的内嵌存储器,暂存所述HOST指令。
3.如权利要求1所述的一种JTAG主控制器,其特征在于,包括存储器控制模块和外部存储器,用于将来自主机的HOST指令发送至该外部存储器并且从该外部存储器读取HOST指令。
4.如权利要求1所述的一种JTAG主控制器,其特征在于,该JTAG主控制器还包括时钟模块,该时钟模块用于提供JTAG接口信号中的TCK信号。
5.如权利要求1所述的一种JTAG主控制器,其特征在于,所述HOST指令的一部分定义IR指令长度,DR数据长度和发送IR指令中的一个或多个。
6.如权利要求5所述的一种JTAG主控制器,其特征在于,所述HOST指令的另一部分表示IR指令长度,DR数据长度和发送IR指令中的一个或多个。
7.如权利要求1所述的一种JTAG主控制器,其特征在于,所述HOST指令解析器还包括一计数器,该计数器用于对DR数据行数进行计数;
在所述状态机处于数据状态(Data状态)时,设置计算器的初始值,且所述HOST指令解析器每解析出一行DR数据,该计数器值递增或递减,直到该计数器值表明DR数据解析完毕,该状态机由数据状态(Data状态)转移到指令状态(Header状态)。
8.如权利要求1所述的一种JTAG主控制器,其特征在于,所述JTAG信号发生器还包括存储器读取控制器;该存储器读取控制器用于读取所述内嵌存储器中的一HOST指令,并在所述HOST指令解析器对其做出指示后,该存储器读取控制器将再读取所述内嵌存储器中的下一条HOST指令。
9.如权利要求1所述的一种JTAG主控制器,其特征在于,所述JTAG信号发生器还包括IR指令长度寄存器、IR指令寄存器、DR数据寄存器、DR数据长度寄存器;
该IR指令长度寄存器用于存储由所述HOST指令解析器解析得到的IR指令长度值;该IR指令寄存器用于存储由所述HOST指令解析器解析得到的IR指令;该DR数据寄存器用于存储由所述HOST指令解析器解析得到的DR数据;该DR数据长度寄存器用于存储由所述HOST指令解析器解析得到的DR数据长度值。
10.如权利要求9所述的一种JTAG主控制器,其特征在于,所述JTAG信号发生器还包括JTAG接口逻辑;该JTAG接口逻辑用于获取所述IR指令长度寄存器中的值、IR指令寄存器中的值,以及获取所述DR数据长度寄存器中的值、DR数据寄存器中的值,并根据该获取到的值,以及通过TAP状态机来驱动目标芯片。
11.一种JTAG主控制器的实现方法,其特征在于,包括:
获取HOST指令;
对该HOST指令进行解析,以得到IR指令或DR数据;
根据该IR指令和/或DR数据产生相应JTAG接口信号;
通过所述JTAG接口信号对目标芯片进行测试或者仿真或者调试;
该JTAG主控制器还包括一个指令状态(Header状态)与数据状态(Data状态)相互转移的状态机;
对该HOST指令进行解析,以得到IR指令和/或DR数据的步骤包括在该状态机处于指令状态时解析得到IR指令;在满足解析出的指令为发送IR指令,并且DR数据长度非0条件时,该状态机由指令状态转移到数据状态;在数据状态下,解析得到DR数据。
12.如权利要求11所述的一种JTAG主控制器的实现方法,其特征在于,所述HOST指令的一部分定义IR指令长度,DR数据长度和发送IR指令中的一个或多个;所述HOST指令的另一部分相应表示IR指令长度,DR数据长度和发送IR指令中的一个或多个。
13.如权利要求12所述的一种JTAG主控制器的实现方法,其特征在于,所述HOST指令的另一部分表示IR指令长度,DR数据长度和发送IR指令中的一个或多个。
14.如权利要求11所述的一种JTAG主控制器的实现方法,其特征在于,该JTAG主控制器包括计算器,对该HOST指令进行解析,以得到IR指令和/或DR数据的步骤包括,该JTAG主控制器每解析出一行DR数据,计数器值递增或递减,当该计数器值表明DR数据解析完毕,该状态机由数据状态转移到指令状态。
一种JTAG主控制器及其实现方法\n技术领域\n[0001] 本发明涉及电子领域,尤其涉及JTAG器件。\n背景技术\n[0002] JTAG接口作为IEEE的一种接口标准,在集成电路的测试、仿真、调试等方面发挥着重要作用。现有的多数高级器件都支持JTAG协议,如DSP、FPGA等器件。\n[0003] 标准的JTAG接口包括测试时钟输入信号TCK、测试数据输入信号TDI、测试模式选择信号TMS、测试数据输出端口TDO以及一个可选的测试reset输入信号TRST。\n[0004] JTAG器件内部逻辑通过一个TAP状态机来实现,图1示出了IEEE1149.1标准规定的JTAG器件的TAP状态机的状态转移示意图。如图1所示,TAP状态机包含两个分支,分别是命令寄存器接入(IR Access)分支和数据寄存器接入(DR Access)分支。并且该TAP状态机的状态转移由JTAG器件中的测试模式选择信号(TMS)来控制。\n[0005] IEEE1149.1标准规定了JTAG器件的命令寄存器(IR)和数据寄存器(DR),根据该规定,在TAP状态机的状态处于IR接入分支时,命令通过TDI端口在“移位IR”状态下逐位移到IR寄存器中,IR寄存器用于选择当TAP状态机处于DR接入分支时,由IR寄存器所选择的DR寄存器被连接在TDI和TDO之间,并在“移位DR”状态下,将数据通过TDI移位进入由IR寄存器所选择的寄存器中。\n[0006] 图2和图3分别示出了接入JTAG的命令寄存器和数据寄存器时,JTAG接口信号的时序图。图2是现有技术中通过JTAG接口完成4-bit命令寄存器接入而产生的JTAG信号时序图。图3是现有技术中通过JTAG接口完成8-bit数据寄存器接入而产生的JTAG信号时序图。\n[0007] 传统的JTAG主控器都是利用MIPS、ARM等处理器来实现,由于MIPS、ARM系统执行的功能由软件来实现,且采用的是MIPS、ARM自身的指令来完成特定功能,一个JTAG指令需要使用多个MIPS指令模拟,并且由于MIPS、ARM系统中任务的完成通过调度完成,因此导致其所产生的JTAG信号(即TCK、TMS、TDI等信号)不规则,并且两个指令之间的延迟较大,这对于芯片的测试及其不利。尤其是在对JTAG接口控制电路进行性能测试时,通过MIPS、ARM处理器无法产生高频的测试时钟,影响测试效果。上述问题均是由MIPS、ARM等系统自身特点所决定。\n发明内容\n[0008] 本发明提供了一种能解决以上问题的JTAG主控制器及其实现方法。\n[0009] 在第一方面,本发明提供了一种与目标芯片连接的JTAG主控制器。该JTAG主控制器包括JTAG信号发生器。该JTAG信号发生器用于获取外部的HOST指令,并对该HOST指令进行解析以得到IR指令或DR数据,从而根据该IR指令或DR数据产生相应JTAG接口信号,以通过该JTAG接口信号来驱动该目标芯片。\n[0010] 在第二方面,本发明提供了一种JTAG主控制器的实现方法。该方法首先获取HOST指令,然后对该HOST指令进行解析,以得到IR指令或DR数据。再根据该IR指令和/或DR数据产生相应JTAG接口信号。最后通过所述JTAG接口信号对目标芯片进行测试或者仿真或者调试。\n[0011] 本发明的JTAG主控制器不再采用MIPS、ARM等处理器,而是通过硬件构架方式来实现。此种结构的JTAG主控制器,其内部功能是通过硬件方式来完成的,因此其可以使所发送的信号周期等长、连续,并且不同指令之间延迟小,从而能够完成对目标芯片的准确测试、仿真或调试。\n附图说明\n[0012] 下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图中:\n[0013] 图1是IEEE 1149.1标准规定的JTAG器件的TAP状态机的状态转移示意图;\n[0014] 图2是现有技术中通过JTAG接口完成4-bit命令寄存器接入而产生的JTAG接口时序图;\n[0015] 图3是现有技术中通过JTAG接口完成8-bit数据寄存器接入而产生的JTAG信号时序图;\n[0016] 图4是本发明一个实施例的JTAG主控制器工作原理示意图;\n[0017] 图5是本发明一个实施例的JTAG信号发生器内部结构示意图;\n[0018] 图6是本发明一个实施例的HOST指令解析器的状态机示意图。\n具体实施方式\n[0019] 图4是本发明一个实施例的JTAG主控制器工作原理示意图。\n[0020] 该JTAG主控制器包括外部NVM410、存储器控制模块420、时钟模块430、内嵌存储器440、JTAG信号发生器450;其中,存储器控制模块420、时钟模块430、内嵌存储器440、JTAG信号发生器450集成在一个芯片上,如FPGA或ASIC芯片。\n[0021] 在该JTAG主控制器工作时,其需要通过JTAG信号发生器450与目标芯片460相连,以实现对目标芯片460的测试或调试或仿真等操作。该目标芯片460包含标准的JTAG接口,其符合IEEE1149.1标准。\n[0022] 图4中,外部NVM 410用于存储来自主机470的HOST指令的。该外部NVM 410可以是任意一种现有的非易失性存储器,如其为EEPROM(电可擦写可编程只读存储器)。\n[0023] 该存储器控制模块420用于将从主机470发送过来的HOST指令存储到该外部NVM \n410中,以及用于将外部NVM 410中的HOST指令搬运到内嵌存储器440中。\n[0024] 该内嵌存储器440用于暂存来自主机470或者外部NVM 410的HOST指令。\n[0025] 需要说明的是,在该JTAG主控制器初次被使用时,该JTAG主控制器需要通过其存储器控制模块420与主机470相连,以便该JTAG主控制器通过该存储器控制模块420将来自外部主机470中的HOST指令存储至该外部NVM410中。由于该外部NVM 410是一个非易失性存储器,其内部存储的HOST指令不易丢失,因此在该JTAG主控制器再次被使用时,无需再连接到该主机470上,该JTAG主控制器可以直接对目标芯片进行测试或调试或仿真等。\n[0026] 该时钟模块430与存储器控制模块420、JTAG信号发生器450相连,其用于产生电路运行所需要的时钟,并且该时钟模块430向该JTAG主控制器的TCK接口提供TCK信号。\n[0027] 一个例子中,该时钟模块430是由可编程逻辑器件的PLL模块来实现,即由可编程逻辑器件的PLL模块来产生时钟信号。由于该PLL模块能够产生高频时钟信号,因此本发明能够产生高频的测试时钟。而现有技术所采用的MIPS、ARM等系统由于其固有属性,无法产生高频测试时钟。\n[0028] 该JTAG信号发生器450用于读取内嵌存储器440中的HOST指令,并对该HOST指令进行解析,以得到相应IR指令长度、DR数据长度、IR指令、DR数据,并根据该IR指令长度、DR数据长度、IR指令、DR数据以及通过TAP状态机(图1中的TAP状态机)产生相应JTAG接口信号,从而根据该JTAG接口信号实现对目标芯片460的测试或调试或仿真等。其中,HOST指令是本实施例的自定义指令,其定义规则将在以下内容中得以详述,IR指令、DR数据则是由目标芯片设计者按照IEEE1149.1标准所规定来定义,因此目标芯片460可识别该IR指令和DR数据。\n[0029] 下面将通过图5及其相应说明部分阐述JTAG信号发生器450的工作原理。\n[0030] 图5是本发明一个实施例的JTAG信号发生器内部结构示意图。该JTAG信号发生器包括存储器读取控制器510、HOST指令解析器520、IR指令长度寄存器530、DR数据长度寄存器540、IR指令寄存器550、DR数据寄存器560、JTAG接口逻辑570。\n[0031] 图5中,HOST指令解析器520用于解析来自内嵌存储器440的HOST指令。该HOST指令格式是:Header+Data;其中,Header表示解析后得到IR指令的HOST指令,Data表示解析后得到DR数据的HOST指令。由此可见,JTAG信号发生器450对HOST指令进行解析,会先得到IR指令再得到DR数据。\n[0032] 一个例子中,Header长度为32比特,下面将以Header长度为32比特为例进行阐述。\n[0033] 表1是长度为32比特的Header的格式。\n[0034] \n[0035] 表1\n[0036] 表1是在Header[31:29]分别满足000、001、010、011情况下,Header[28:0]分别所指代的含义。现以举例方式对上述表1做进一步阐述。当HOST指令解析器520接收到的指令为Header=32′h0000_0010时,其将Header[28:0]相应内容写入IR指令长度寄存器,且写入值为16。当HOST指令解析器520接收到的指令为Header=32′h2000_00FF时,其将Header[28:0]相应内容写入DR数据长度寄存器,且写入值为255,并且根据该DR数据长度值计算DR数据的行数(下面有对如何得到该行数做阐述)。当HOST指令解析器\n520接收到的指令为Header=32′h4000_3FAF时,其将Header[28:0]相应内容写入IR寄存器,且写入值为29′h0000_3FAF。当HOST指令解析器520接收到的指令Header=\n32′h6000_0000时,HOST指令解析器及存储器读取控制器停止工作。\n[0037] 该HOST指令解析器520内部包含一个计数器,该计数器用于计数DR数据读取的行数。\n[0038] 该HOST指令解析器520还涉及一个状态机,参见图6,图6是本发明一个实施例的HOST指令解析器的状态机示意图。\n[0039] 图6中,系统复位时,状态机处于Header状态(指令状态);在Header状态下,当Header[31:29]==3′b010(表示当前指令为发送IR指令)时,且解析出DR数据长度非\n0值时,状态机转移到Data状态,并将HOST指令解析器520中的计数器的值设置为DR数据行数+1,以便对解析出DR数据进行行计数;在Data状态(数据状态)下,HOST指令解析器520的计数器开始减计数,即每读一行存储器中数据,该计数器值减1,直到该计数器值减到0为止,此时该状态机重新转移到Header状态。\n[0040] HOST指令解析器获得DR数据行数的方法为:当指令Header满足3′b010时,将Header[29:0]除以32,则得到的数值即为DR数据总行数。因此,计数器需要从Header[29:5]+1开始计数,以记录DR数据被读取行数。\n[0041] 表2是外部NVM 410及内嵌存储器440中存储内容格式的一个例子。\n[0042] \n[0043] 表2\n[0044] 下面以表2为例,详细阐述HOST指令解析器的工作原理。\n[0045] 该HOST指令解析器520从表2中的指令32′h0000_0010开始进行解析,根据表\n1可知,该指令32′h0000_0010可被解析出“IR指令长度为16”。\n[0046] 该HOST指令解析器520继续解析表2中的指令32′h2000_00FF,该指令\n32′h2000_00FF可被解析出“DR数据长度为255”,由于每行DR数据为32比特,因此可进一步解析出共8行DR数据,从而计数器的初始值为8+1=9。由于上述指令32′h0000_0010和32′h2000_00FF均未满足图6状态机的Header状态的转移条件,即均未满足Header[32:29]==3′b010,且DR长度非0,因此,此时仍旧处于Header状态。\n[0047] 该HOST指令解析器520继续解析表2中的指令32′h4000_3FAF,该指令\n32′h4000_3FAF可被解析出“发送IR指令3FAF”。由于该指令32′h4000_3FAF满足Header[32:29]==3′b010,且DR数据长度非0。因此,此时从Header状态转移到Data状态。\n[0048] 该HOST指令解析器520继续解析表2中的指令32′h1234_5678,由于此时已经转移到了Data状态,因此此时发送数据1234_5678......;以此类推,直到计数器的值为0,此时已发送完8行DR数据。\n[0049] 需要说明的是,该指令32′h4000_3FAF(即存储在外部NVM 410及内嵌存储器\n440中的指令32′h4000_3FAF)仅是一个例子,也就是说,发送IR指令3FAF仅是一个例子。\n实际上,具体发送什么样的IR指令需要依据目标芯片的配置来设定,并且所发送的IR指令通常有多条,而不限于表2中的一个32′h4000_3FAF指令。同样,指令32′h1234_5678也仅是一个例子,具体发送什么样的DR数据,以及发送多少条DR数据也是需要依据目标芯片的配置来设定。\n[0050] 上述表2以及相应说明部分是对HOST指令解析器520的工作原理所进行的阐述,下面继续描述图5中的存储器读取控制器510及JTAG接口逻辑570的工作原理。\n[0051] 该存储器读取控制器510在接收到测试开始指示信号之后(该信号可以通过按钮来产生),读取内嵌存储器440中的第一行内容,并将其送到HOST指令解析器520。该HOST指令解析器520解析该指令,具体解析方法参见表2、图6及其相应说明部分,在解析完该指令后,该HOST指令解析器520指示该存储器读取控制器510读取下一行数据。依次类推,直到该存储器读取控制器510读取到指令Header==32′h6000_0000,且该HOST指令解析器520对该指令解析完之后,该HOST指令解析器520以及该存储器读取控制器510停止工作。\n[0052] 该JTAG接口逻辑570在检测到该HOST指令解析器520发送的寄存器有效指示信号之后(该HOST指令解析器520在将解析出的信息发送到IR指令寄存器或者DR数据寄存器之后,都会向该JTAG接口逻辑发送一条寄存器有效指示信号),获取IR指令长度寄存器中的值或DR数据长度寄存器中的值或IR指令寄存器中的值或DR数据寄存器中的值,并根据该获得的值,按照图1中的TAP状态机以及图2、图3所示的JTAG接口时序图,来驱动目标芯片的JTAG接口。\n[0053] 具体地,IR指令寄存器的值在图1状态机处于“移位IR”状态下从TDI接口输出,且IR各状态的转移由IR指令长度寄存器中的值来决定;DR数据寄存器的值在图1状态机处于“移位DR”状态下从TDI接口输出,且DR各状态的转移由DR数据长度寄存器中的值来决定。而图5中的TCK接口输出来自时钟模块430的时钟信号,而TMS接口输出则来自于图1状态机转移的控制信号。\n[0054] 显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。
法律信息
- 2021-07-20
- 2018-06-26
- 2014-09-17
- 2013-01-09
实质审查的生效
IPC(主分类): G01R 31/28
专利申请号: 201110117998.X
申请日: 2011.05.09
- 2012-11-14
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |