半导体集成电路的制作方法

文档序号:6466846阅读:114来源:国知局
专利名称:半导体集成电路的制作方法
技术领域
本发明涉及半导体集成电路。更特别地,本发明涉及包括接收控 制信号的宏的半导体集成电路。
背景技术
迄今为止,用于调试程序的调试器一般通过事先获取有关程序的 执行历史信息,并且之后通过在调试的异常终止后参考和分析执行历 史信息而识别出程序的执行状态。在这种方法中,使用者可以容易地 获取表示在调试异常终止时所获取的信息的数据。然而,关于表示调 试如何异常终止的信息,使用者需要回顾该信息并且之后分析该信息。在此方面中,日本专利申请公开No.2004-252684公开了一种调试方法, 包括信息获取步骤,该信息获取步骤具有以下步骤在执行程序时输出执行历史信息,稍后获取执行程序所需的调试信息,并且输出用于将执行历史信息与调试信息相关联的信息;以及通过使用在信息获 取步骤中获取的信息而复制当输出任何执行历史信息时的状态的步 骤,并且之后再次执行所述程序。以公开在日本专利申请公开 No.2004-252684中的方法,通过使用在信息获取步骤中获取的信息而容 易地说明调试异常终止的原因。此外,日本专利申请公开No.2005-352591公开了一种多处理器系 统,该多处理器系统试图在不增加专用于调试的特定硬件装置的情况 下通过设置多个断点而提高调试效率。关于断点的设置,该多处理器 系统允许断点发生条件在多个CPU中通过使用断点设置表格而被独立 设置。所述多处理器系统被配置为中断调试目标程序的执行并且之后 在全部这些条件均被满足并且断点设置表格中的信息和断点历史表格 中的信息相互匹配的情况下呼叫调试器程序。然而,在前述常规的技术中,存在以下问题。当某些宏作为调试 目标而由调试器调试时,假设这些作为调试目标的宏的状态是由调试 器以外的因素改变。此外,宏的状态涉及例如该宏的内部信号或输出 信号。可行的设定是例如当除了作为调试目标的宏以外的宏发送例如 重置信号的控制信号到调试目标宏时,接收该控制信号的调试目标宏 的状态转换。在此情况下,尽管宏被调试器调试,但调试目标宏的状 态转换。结果,调试器丢失信息,该信息表示将在调试的执行期间执 行的程序位置并且之后异常终止调试(挂起)。这种异常终止因调试 器不能识别出例如将由除了调试器的因素发送的控制信号的外部原因 而发生。在包括多主控器的实际系统中,例如,甚至于均为主控器的多个 宏中存在主控器/从控器关系。因此,存在这些多个宏中的主控器重置 这些多个宏中的从控器的情况。在调试器调试这些宏的情况下,由此 需要在程序中提供设置以避免在调试期间变为有效的主控器被重置为 从控器。然而,这种设置不在软件程序的原始序列中。发明内容根据本发明的半导体集成电路包括宏,该宏基于收到的控制信号而转换到一定状态;第一寄存器,该第一寄存器存储表示所述宏是否接收了控制信号的值;以及第二寄存器,该第二寄存器用于存储表示在所述宏在开始接收所述控制信号之前是否已在过去接收到了控制信 号的值。假设当调试器调试作为目标的宏时由于该宏的状态由除了调 试器之外的因素转换,则调试器变为不能继续调试。此时,通过参考 第一寄存器和第二寄存器,调试器可以识别出引起调试器变得不能继 续调试的因素并且之后执行所需要的相应于所述因素的处理。例如, 通过参考第一寄存器和第二寄存器,调试器可以识别出作为调试目标 的宏在过去已接收了控制信号,并且之后,不被调试器检测的宏的状 态已经发生转换。在此情况下,鉴于调试目标宏在过去已经转换的事实,调试器可以通过执行重新开始调试所需的处理而再次开始调试。 例如,在调试目标宏的状态由从不同宏发送的控制信号转换后,调试 器执行处理以使其自身已知的关于调试目标宏的信息与关于调试目标 宏的信息相匹配。在这种处理完成之后,调试器可以重新开始调试目 标宏的调试。此外,调试器可以识别出被从不同宏发送到调试目标宏 的控制信号并且调试目标宏的状态由此被固定到基于控制信号的状 态。在此情况下,调试器等待不同的宏以阻止控制信号被发送到调试 目标宏,并且在不同的宏停止控制信号被发送到调试目标宏之后,调 试器可以通过执行重新开始调试所需要的处理而再次开始调试。根据本发明,即使在由于被调试器调试的宏的状态由除了调试器 之外的因素改变的情况下,调试器变为不能继续调试时,调试器也可 以在不引起调试器的异常终止的情况下重新开始调试。


通过以下结合附图的一些优选实施例的描述,本发明的以上和其 他目的、优点和特征将更加清楚,其中图l是示出了根据本发明的实施例的半导体集成电路的图; 图2是示出了TAP控制器251的状态的图;图3是提供了根据本发明的实施例的描述重置监测方法的图;图4是提供了描述TAP状态的图; 图5是示出了H寄存器的构造的图。
具体实施方式
以下,应用了本发明的特定实施例将参考附图进行详细描述。应 该注意实施例将通过使用在以下说明中适当的特定示例而被描述,但 这种特定的示例不限制本发明的权利要求的范围。图l是示出了根据本发明的实施例的半导体集成电路的图。调试器10将JTAG信号和重置信号nSRST作为控制信号发送到半导体集成电路20并调试宏。JTAG信号是由JTAG标准(IEEE 1149.1)定义的信号并 且此处提及包括TCK、 TMS、 TDI、 TDO和nTRST的五个信号。nTRST 信号是用于调试CPU的重置信号。基于这些信号的各种操作将在以下描 述。半导体集成电路20是包括多个宏21-23、数据寄存器24、 TAP 25、 与门26、与门27和与门28的片上系统(SOC)。多个宏21-23作为主控 器并且还分别输出重置信号RST1-RST3。数据寄存器24经由终端41-44 接收JTAG信号并且还输出重置信号RST4。 TAP 25也接收JTAG信号并 且基于接收到的JTAG信号而控制数据寄存器24等。与门26接收 RST1-RST3。与门27接收从与门26输出的信号并且还从数据寄存器25 接收重置信号RST4。与门28接收从与门27输出的信号并且还接收从调 试器10输出的nSRST信号。与门28还接收从半导体集成电路20的外部输 出的重置信号并且该重置信号经由终端47由半导体集成电路20接收。 与门28输出重置信号RST5。此处,如图1所示,包括在半导体集成电路20中的宏29-31分别与 宏21-23相同。虽然宏21-23是每个均作为主控器的宏,但是宏21-23的 每个还是作为宏21-23中的任一者的从控器的宏。此外,存在作为主控 器的宏21发送控制信号到同样作为主控器的宏22或23的情况。例如, 在此情况下将被发送的控制信号是使得宏22或23处于重置状态的重置 信号。图l由以下方式表示这种情况。宏21首先输出低有效的重置信号 RST1,并且之后该重置信号RSTl经由与门电路26-28而由表示与宏22 相同的宏的宏30接收或由表示与宏23相同的宏的宏31接收。这是因为 宏22和30相同,并且宏23和31相同。此外,存在宏21控制其本身的情 况。换句话说,宏21使得其本身的状态处于前述重置状态。图l以下方 式表示这种情况。宏21首先输出RST1信号并且之后该RST1信号经由与 门电路26-28而由宏29接收。这是因为宏21和29表示相同的宏。此处, 术语"重置状态"表示宏的内部信号或输出信号的某些特定状态(高 电平或低电平)。在宏接收表示有效信号值的重置信号的情况下,宏 的内部信号或输出信号保持相应于该有效重置信号的状态。图1中所示的TAP 25是基于JTAG标准(IEEE1149.1)执行操作的 控制器并且包括TAP控制器251和指令寄存器252。 TAP控制器251从调 试器接收JTAG信号中的TCK、 TMS禾卩nTRST。 TCK是时钟信号,并且 TAP控制器251通过该TCK而同步操作。TMS是控制TAP控制器251的特 定操作的信号。TAP控制器251在TCK的上升沿上获得从调试器输出的 TMS。指令寄存器252接收JTAG信号中的TDI信号和TDO信号。TDI信 号是从调试器输出到指令寄存器252和TAP25的数据寄存器24的信号。 例如,TDI信号是串行比特流。调试器发送指令代码到TAP控制器251 以使得TAP控制器251执行期望的操作。调试器10输出作为TDI信号的 该指令代码。TAP控制器251在寄存器252中存储这种指令代码,之后相 应于所存储的指令而解译指令并且之后执行所述指令。TDO信号是从 数据寄存器24和指令寄存器252输出的信号。例如,基于由TAP控制器 251执行的指令的算法计算的结果作为TDO信号从数据寄存器24输出 到调试器。数据寄存器24是由TAP 25基于JTAG信号而控制的寄存器。数 据寄存器24包括状态寄存器241 (此后,称作S寄存器)和历史寄存 器242 (此后,称作H寄存器)。在图1中,S寄存器32和H寄存器 33被由均包括在数据寄存器24中的S寄存器241和H寄存器242分 离地描述。S寄存器241和32是相同的寄存器。此外,H寄存器242 和33是相同的寄存器。如上所述,图1示出了宏21-23和宏29-31分 别相同。这是因为宏21-23分别作为主控器,但每个宏均可以作为任一 个宏的从控器。根据这种标记,均包括在数据寄存器24中的S寄存器 241和H寄存器242以及连接到宏29-31的S寄存器32和H寄存器33 是相同的。换句话说,S寄存器32和H寄存器33是包括在数据寄存 器24中的寄存器的一种类型。数据寄存器24包括边界扫描寄存器、旁路寄存器和其他数据寄存 器。边界扫描寄存器放置在核心逻辑引脚和输入/输出引脚之间的边界 处。旁路寄存器形成允许从调试器输出的TDI信号像TDO信号一样避开边界扫描寄存器的路径。数据寄存器24还可以包括用于作为选择的 不同用途的寄存器。例如,数据寄存器24可以包括用于识别出装置或 制造商的ID代码寄存器等。在本实施例中,数据寄存器24包括S寄 存器32和H寄存器33 (这些寄存器分别与S寄存器241和H寄存器 242相同)。S寄存器32和H寄存器33均由TAP 25基于JTAG信号 而控制。S寄存器32和H寄存器33的功能将在以下进行描述。此处,图2示出了包括在TAP 25中的TAP控制器251的操作和 TMS之间的关系。图2说明了状态机,该状态机示出了 TAP控制器251 的操作状态的转换。TAP控制器251的操作状态基于由TAP控制器251 响应于TCK的上升沿而获得的TMS信号而转换。在测试-逻辑-重置中,全部测试逻辑均被禁止,并且集成电路(IC) 的正常操作被使能。不考虑初始状态,当响应于TCK的上升沿而五次 接收高信号电平的TMS时,TAP控制器251的操作状态转换为测试-逻辑-重置状态。此外,虽然nTRST是用于TAP控制器251的重置信 号,但是由于TAP控制器251的操作状态根据前述方式转换到测试-逻辑-重置状态,nTRST被选择性地使用。在TAP控制器251的操作状 态为运行-测试-空闲的情况下,TAP控制器251使得IC内的测试逻辑 仅在存在特定指令时有效。除此情况外,TAP控制器251使得IC内的 测试逻辑处于空闲状态。TAP控制器251的操作状态经由选择-DR-扫描(Select-DR-Scan) 状态进行到捕捉-DR(Capture-DR)状态或选择-IR-扫描(Select-IR-Scan)状态。TAP控制器251的操作状态从选择-IR-扫描状态转换到捕捉-IR (Capture-IR)状态或测试-逻辑-重置状态。在捕捉-IR中, 一系列固定值被指令寄存器252在TCK的上升沿上并行读取。在移位-IR (Shift-IR)中,指令寄存器252响应TCK的上升沿并 且之后获得串行比特流,该串行比特流为TDI信号。调试器输出作为 TDI信号的指令代码。之后,指令寄存器252获得从调试器输出的指令 代码。在结束l-IR (Exitl-IR)中,TAP控制器251转换到暂停-IR状态 和更新-IR状态中的任一者。在暂停-IR中,TAP控制器251被允许暂时停止指令寄存器252 的移位。在结束2-DR (Exit2-DR)中,TAP控制器251的操作状态转换到 移位-IR状态和更新-IR状态中的任一者。在更新-IR中,TAP控制器251执行相应于存储在移位-IR状态中 的指令寄存器252中的指令代码的指令。在捕捉-DR (Capture-DR)中,在TCK的上升沿上,数据被并行 地读入由当前指令选择的数据寄存器中。移位-DR( Shift-DR)、结束1 -DR( Exit 1-DR )、暂停-DR( Pause-DR )、 结束2-DR (Exit2-DR)和更新-DR (Update-DR)与指令路径的移位-IR (Shift-IR)、结束l-IR (Exitl-IR)、暂停-IR (Pause-IR)、结束2-IR (Exit2-IR)和更新-IR (Update-IR)状态相同。如上所述,TAP控制器251是包括16种状态的状态机。TAP控制 器251的操作状态基于TMS信号和TCK信号而转换。之后,TAP控 制器251控制数据寄存器、指令寄存器252、多路复用器等并且由此执行JTAG功能。测试重置(TRST)信号是用于初始化TAP控制器251 的信号并且其是可选择的。TRST信号经由终端45输入到TAP控制器 251。在TMS处于"H"状态并且TCK的上升沿还被检测到五次的情 况下,TAP控制器251同样被初始化。例如前述的TDI、TDO、TMS和TCK的JTAG信号经由终端41-44 而输入到控制电路250和宏21-23。此外,用于调试CPU的重置信号 nSRST和来自半导体集成电路20的外部的重置信号分别经由终端46 和终端47而输入。其次,将给出当调试器10调试包括在半导体集成电路20中的宏 时调试器10和半导体集成电路20的操作的说明。所述说明将通过假 设调试器10调试宏(M0) 21 (也就是宏29)而给出。图1中的由虚 线表示的和朝向宏22和宏23以及宏30和宏31的每个箭头表示宏22 和宏23,也就是,宏30和宏31不是调试目标。此处,假设当调试器 调试宏21时,不同的宏发送某些控制信号到宏21,从而使接收控制信 号的宏21的状态改变。具体地,宏21的输出信号或内部信号的状态 改变。此后,该控制信号被假设为作为特定示例的重置信号。具体地, 例如,假设当调试器10调试宏21时,重置信号RST2从宏22输出, 并且之后重置信号RST2由宏29接收。在此情况下,虽然调试器10调 试宏21,但是宏21的状态变为与由调试器10执行的控制没有任何关 系的重置状态。调试器10检测到其本身已知的宏21的状态和宏21的 实际状态不再相互匹配。在此情况下,调试器IO需要执行处理以将该 调试器10已知的宏21的状态与宏21的实际状态相互匹配。这是因为 除非调试器执行这种处理,否则调试器10不能重新开始宏21的调试, 从而使得由调试器10执行的宏21的调试不得不异常终止。鉴于此, 调试器10执行处理以参考存储在S寄存器32和H寄存器33中的值。此处,将概念性地给出S寄存器32和H寄存器33的基本功能和 操作的说明。应该注意的是,关于JTAG信号或TAP控制器251的特定操作将在以下描述。S寄存器32存储关于作为调试目标的宏21是否 接收了重置信号的信息。具体地,S寄存器存储关于从与门28输出的 RST5是否被接收以及宏21-23、数据寄存器24、调试器10和半导体集 成电路20外部的元件是否已经分别输出RST1-RST4、 nSRST和重置信 号到宏29 (也就是宏21)的信息。例如,假设当信号值为"0"时每 个重置信号变为有效。在此情况下,如果RST1-RST4、 nSRST和从外 部输出的重置信号中的任一者变为"0",则信号值经由与门26、 27 和28变为重置信号RST5并且因此由宏29接收。S寄存器32接收信 号值变为"O"的重置信号RST5并且在其中存储重置信号RST5。此后, 在全部RST1-RST4、 nSRST和从外部输出的重置信号均被取消的情况 下,也就是,在这些信号值变为"1"的情况下,RST5变为"1" 。 S 寄存器32重新存储变为"1"的RST5的值从而代替之前存储的值"O"。 如所述,S寄存器32是存储表示宏21当前是否处于重置状态的值的寄 存器。另一方面,H寄存器33存储信息,该信息关于作为调试目标的宏 21在接收了将被存储在S寄存器32中的宏21的重置信号之前是否接 收了 RSTl-RST4、nSRST和从半导体集成电路20的外部输出的重置信 号中的任意一个。换句话说,H寄存器33是存储历史的寄存器,该历 史表示宏21的操作状态是否在过去已变为重置状态。例如,假设当信 号值为"0"时每个重置信号变为有效。在此情况下,如果RST1-RST4、 nSRST和从外部输出的重置信号中的任一者在开始接收将被存储在S 寄存器中的宏21的重置信号之前变为"0",也就是,在所述信号中 的任一者在过去已变为"0"的情况下,信号值经由与门26、 27和28 变为重置信号RST5并且因此由宏29接收。这种情况表示宏21已响应 前述信号,并且宏21的状态在过去已变为重置状态。H寄存器33接 收信号值变为"0"的重置信号RST5并且在其中存储该重置信号RST5 的值。即使在此后全部RST1-RST4、 nSRST和从外部输出的重置信号 均被取消的情况下,也就是,当这些信号的信号值变为"1"时,H寄 存器33不以"1"替代之前存储在其中的RST5的信号值"0" 。 H寄存器33保持信号值"0"。将再次描述当调试器10调试宏21时调试器10的操作。如上所述, 调试器10参考S寄存器32和H寄存器33。调试器10输出JTAG信号 中的TDI信号到包括在TAP 25中的指令寄存器252。在此情况下TDI 信号是指令代码。所述指令代码表示将包括在数据寄存器24中的S寄 存器32和H寄存器33中的存储值输出到调试器IO的操作。当包括在 TAP 25中的TAP控制器251的操作状态变为移位-IR时,指令寄存器 252在TCK的上升沿获得从调试器10输出的将被接收的指令代码。此 后,当TAP控制器251的操作状态转换为更新-IR时,TAP25执行相 应于存储在指令寄存器252中的指令代码的指令。具体地,TAP 25输 出存储在包括在数据寄存器24中的S寄存器32和H寄存器33中的每 个信号值到调试器10。在此情况下,从S寄存器32和H寄存器33输 出的每个信号值均为TDO信号。调试器IO接收作为TDO信号的分别 存储在S寄存器32和H寄存器33中的值。调试器10接收存储在S寄存器32和H寄存器33中的值。通过 本操作,调试器10可以识别出作为调试目标的宏21是否在过去已处 于重置状态以及宏21当前是否处于重置状态。调试器10根据获得的S 寄存器32和H寄存器33的值执行以下处理。首先,考虑由调试器IO 获得的S寄存器32的值为"1"并且由调试器10获得的H寄存器33 的值为"0"的情况。在此情况下,调试器10识别出宏21此时未接收 有效重置信号并且虽然宏21当前未处于重置状态,但宏21过去已处 于重置状态。调试器10迅速执行重新开始宏21的调试的处理。应该 注意的是,重新开始调试的处理基于所使用的调试器的规格而变化。 具体地,所述处理基于调试器的制造商而彼此不同。对于重新开始调 试的处理,例如, 一个处理可以是试图将包括在调试器本身中的宏21 上的信息与宏21上的信息相匹配的处理,该处理由通过宏21接收的 重置信号而改变。在重新开始调试所需要的处理完成之后,调试器10 开始再次调试宏21。另一方面,考虑由调试器10获得的S寄存器32的值为"0",并 且由调试器10获得的H寄存器33的值为"1"或"0"的情况。在此 情况下,调试器10识别出作为调试目标的宏21此时接收有效重置信 号并且宏21当前处于重置状态。因此,调试器10首先等待直至宏21 不再接收重置信号。为了执行该操作,调试器IO需要连续获得S寄存 器32的值。为此原因,例如,调试器10执行以下操作。调试器10再 次发送TDI信号到指令寄存器252。在此情况中的TDI信号也是指令 代码。指令寄存器252根据TCK同样地获得指令代码。TAP 25此后相 应于由指令寄存器252最新获得的指令代码而执行指令。在此情况下, TAP 25继续输出S寄存器32的值到调试器10直至存储在S寄存器32 中的值从"0"变为"1"。在此情况下由调试器10接收的S寄存器32 的值也作为TDO信号而输出到调试器10。调试器10继续参考S寄存 器32的值并且等待直至S寄存器32的值从"0"变为"1"。之后, 假设将由调试器IO接收的S寄存器32的值在某一点处从"0"变为"1"。 调试器10此后执行重新开始宏21的调试的处理。在所述处理完成之 后,调试器10重新开始宏21的调试。由于宏21的状态变为与由调试器10执行的控制没有任何关系的 重置状态,在调试器IO变为不能继续宏21的调试的情况下,调试器 10执行前述处理。调试器10可以通过执行前述处理而再次开始宏21 的调试。换句话说,即使宏21的状态变为与由调试器10执行的控制 没有任何关系的重置状态,调试也不会异常终止。图3示出了基于概念的S寄存器32和H寄存器33的操作,其中 没有考虑根据JTAG信号的TAP 25的操作。在图3中,"S"表示存 储在S寄存器32中的值,并且"H"表示存储在H寄存器33中的值。 TCK是时钟信号。主重置是由调试器IO调试的宏所接收的重置信号。 在信号处于低电平时该重置信号变为有效。如时间点tl所示,S寄存 器32和H寄存器33分别存储值"1"作为初始值。在时间点t2,主重置信号变为低电平,并且调试目标宏转换为重置状态。在此时间点上,存储在S寄存器32中的值变为"0"。存储在H寄存器33中的值在时 间点t2不改变。在时间点t3,主重置信号处于低电平,并且调试目标 宏处于重置状态。在此情况下,S寄存器32继续在其中存储"0"。另一方面,H寄存器33在时间点t2处响应主重置信号从高电平 改变至低电平的事件,并且将存储在该H寄存器33中的值从"1"更 新为"0"。在时间点t3和时间点t4之间的S寄存器32和H寄存器 33的操作如下。S寄存器32在每个时钟的上升沿将主重置信号的值存 储于其中。由于主重置信号在该时段中保持在低电平,在时间点t3和 时间点t4之间S寄存器32继续存储值"0"于其中。另一方面,H寄 存器33在时间点3处响应主重置信号在时间点t2处改变为低电平的事 件而保持存储在该H寄存器33中的值"0",从而使调试目标宏变为 重置状态。主重置信号在时间点t4处从低电平改变为高电平。具体地,调试 目标宏不再处于重置状态。在此情况下,由于S寄存器32在每个时钟 的上升沿存储主重置信号的值,S寄存器32将存储在该S寄存器32 中的值从"0"更新为"1"。另一方面,H寄存器33在时间点t3处响 应主重置信号变为低电平的事件而保持存储在该H寄存器33中的值 "0",从而使调试目标宏在时间点t2处变为重置状态。主重置信号处于高电平并且在时间点t5和时间点t6之间恒定。因 此,存储在S寄存器32和H寄存器33中的值分别均不改变。假设调试所述调试目标宏的宏在时间点t6参考存储在S寄存器32 和H寄存器33中的值。这种"参考操作"依照前述流程被执行。在此 情况下,在时间点t6后的任何时间时段中,将被存储在S寄存器32 和H寄存器33中的值不改变直至主重置信号再次变为低电平。在主重 置信号再次变为低电平后的时间时段中的操作与以上描述的操作相同。另一方面,存在调试器执行操作以在时间点t6初始化H寄存器 33的值的情况。H寄存器33包括在任意时间初始化存储在该H寄存器 33中的值的功能。具体地,例如该初始化操作在以下情况中执行。假 设调试器参考存储在S寄存器32和H寄存器33中的值并且之后执行 重新开始调试所需的处理。假设调试器之后重新开始宏的调试。在此 情况下,不再需要存储在H寄存器33中的历史信息。因此,调试器初 始化存储在H寄存器33中的值。考虑图1中的情况,调试器10可以 发送指令代码到TAP 25,并且之后TAP 25可以初始化H寄存器33的 值。目前为止给出了结合TAP 25、 S寄存器32和H寄存器33,由调 试器10执行的宏21的调试的说明。此后,在更详细地考虑TAP25基 于JTAG标准而执行操作的观点的同时,将给出S寄存器32和H寄存 器33的操作的说明。TAP 25根据图2中所示的TAP控制器251的操 作状态的转换而执行各种控制。在本实施例中,当TAP 25从调试器10 接收指令以输出存储在S寄存器32和H寄存器33中的值时,当TAP 控制器251处于捕捉-DR状态时S寄存器32和H寄存器33的值被输 出到调试器。另一方面,当TAP控制器251的操作状态处于更新-DR 状态时,TAP25在H寄存器33中写入RST5的值。虽然TAP 25执行对S寄存器32和H寄存器33的操作以在TAP 控制器251处于一定操作状态时存储所述值,但是在更新将被存储在H 寄存器33中的值时发生了以下问题。考虑TAP控制器251的操作状态 以捕捉-DR、移位-DR、结束l-DR、暂停-DR、结束2-DR到更新-DR 的顺序转换的情况,并且之后在完成更新-DR的操作状态之后,操作 状态再次返回到捕捉-DR并且之后以相同的顺序转换。之后,例如, 假设重置信号RST5的值在捕捉-DR状态下从"1"变为"0",并且 之后在捕捉-DR状态之后但是在更新-DR状态之前的操作状态中从"O"变为"1"。当TAP控制器251的操作状态处于更新-DR状态时,TAP 25在H寄存器33中写入RST5的值。在此情况下,H寄存器33在不 存储表示RST5的值在过去曾变为"0"的历史的情况下存储信号值"1" 于其中。在H寄存器33不能存储调试目标宏的重置信号的正确接收历 史的情况下,调试器IO变为不能继续所述宏的调试,从而使调试异常 终止。图5示出了可以解决该问题的H寄存器33的构造。实际存储表示 调试目标宏是否已变为重置状态的历史的元件是触发器FFd。触发器 FFa和FFb是用于使得图1中的RST5信号与TCK同步的寄存器。图 5中所示的H寄存器33还包括与电路51、 52、 54和55以及选择器53 和56。FFc保持在TAP控制器251的操作状态是捕捉-DR时获得的FFb 的输出信号。FFb的输出信号的这个值是RST5的值。应该注意的是, S寄存器32被放置在FFa的前面并且存储RST5中的改变。由于FFa 和FFb被放置在S寄存器32和H寄存器33之间,H寄存器33在S 寄存器32更新了存储值之后的两个时钟周期更新存储值。此时,如果作为FFb的输出信号的RST5的信号值在其中TAP控 制器251的操作状态是移位-DR、结束l-DR、结束2-DR和暂停-DR的 时段中从"1"变为"0",则FFc存储值"0"。在FFc—旦存储了值 "0"的情况下,即使此后FFb的输出信号值从"0"变为"1" , FFc 也保持"0"。另一方面,与门54在FFc的输出为"1",并且TAP 控制器251的操作状态也为更新-DR的情况下输出值"1"。与门54 在其他情况下输出值"0"。另一方面,FFd响应于作为FFb的输出信 号的RST5的信号值在其中TAP控制器251的操作状态是移位-DR、结 束l-DR、结束2-DR和暂停-DR的时段中从"1"变为"0"的事件而 存储值"0"。之后,FFc输出值"0"到与门54。因此,在TAP控制器251的操作状态是移位-DR、结束1-DR、结 束2-DR和暂停-DR时,即使FFb的输出信号从"0"变为"1",并且之后,TAP控制器251的操作状态变为更新-DR,此后与门54的输出 值为"0"。因此,选择器56发送与门55的输出信号到FFd而不是发 送FFb的输出信号到FFd,所述与门55的输出信号是之前存储在FFd 中的值。FFd由此可以保持存储值"0"。具体地,如图4中的实线所 示,存储在H寄存器32中的值在清除信息的时刻未被更新(重置历史 信息未被清除)。由此,可以在捕捉-DR之后更新-DR之前的时段中留 下关于变为非有效的重置信号的信息作为历史。在本实施方式中,在每个系统以及SOC中均包括多个主控器,通 过使用S寄存器32和H寄存器33,即使当宏21通过以下方式重置时, 调试器IO也可以监测当前重置状态以及过去的重置状态作为调试目 标宏(目标)的宏21通过因素而重置,该因素在由调试器IO对宏21 执行的控制的外部;调试目标宏21重置其本身;调试目标宏21由在 系统或SOC外部的按钮开关等进行重置;或者另一个主控器重置调试 目标宏21等。此处,通过重置的重置目标资源是存在于主控器的内部 或外部的资源并且由诸如断点、检查点、状态控制寄存器、改变JTAG 链长度的系统等的调试器IO使用。因此,即使调试器10不再获知调试目标宏的状态,调试器10也 可以确定下一个动作。调试器10由此可以执行调试目标的重置并且之 后在不引起该调试器IO自身被挂起(异常终止)的情况下继续调试所 述调试目标。此外,由于可以通过使用JTAG链而执行重置监测的状态的读取 和写入操作,因此即使调试目标宏重置其本身,调试器也可以识别出 重置状态。因此,调试器的可用性被提高。应该注意的是,本发明不限于前述实施例,并且照例,可以在不 脱离本发明的精神和范围的范围内进行各种修改。显而易见的是,本发明不限于以上实施例,而是可以在不脱离本 发明的范围和精神的情况下进行修改和变化。
权利要求
1.一种半导体集成电路,包括宏,所述宏能够变为预定状态;第一寄存器,所述第一寄存器存储第一值,所述第一值表示所述宏在特定时间点上是否处于所述预定状态;以及第二寄存器,所述第二寄存器存储第二值,所述第二值表示在所述特定时间点之前所述宏是否已处于所述预定状态。
2. 根据权利要求l所述的半导体集成电路,其中所述预定状态是 重置状态,并且所述宏响应于接收重置信号而变为所述重置状态。
3. 根据权利要求l所述的半导体集成电路,其中当所述宏被调试 时,所述第一寄存器和所述第二寄存器分别存储所述第一值和所述第 二值。
4. 根据权利要求l所述的半导体集成电路,该半导体集成电路还 包括-控制电路,所述控制电路从所述第一寄存器和所述第二寄存器输 出所述第一值和所述第二值到外部装置。
5. 根据权利要求4所述的半导体集成电路,其中所述控制电路响 应于来自所述外部装置的指令而输出所述第一值和所述第二值到所述 外部装置。
6. 根据权利要求4所述的半导体集成电路,其中所述外部装置是 执行所述宏的调试的调试器。
7. 根据权利要求4所述的半导体集成电路,其中所述控制电路是 TAP控制器,所述TAP控制器具有捕捉DR状态,在该捕捉DR状态中所述控制电路输出所述第一值和所述第二值到所述外部装置,并且所述TAP控制器具有更新DR状态,在该更新DR状态中所述控制电 路在所述第二寄存器中存储所述第二值,所述控制电路在所述捕捉DR 状态后变为所述更新DR状态,其中,响应于变为所述更新DR状态,在所述宏的所述预定状态 在所述捕捉DR状态和所述更新DR状态之间改变为另一个状态的情况 下,所述控制电路在所述第二寄存器中存储所述第二值,所述第二值 表示所述宏已处于所述预定状态。
全文摘要
涉及一种半导体集成电路。本发明的一个目的所要解决的问题是如果作为调试目标的宏的状态在调试器调试作为目标的宏时由除了调试器之外的因素改变,则调试器变为不能继续调试并且调试异常终止。为了解决上述问题,公开了一种半导体集成电路,该半导体集成电路包括第一寄存器,该第一寄存器存储表示所述宏响应于在宏的调试期间接收的重置信号而处于重置状态的值;以及第二寄存器,该第二寄存器存储表示所述宏过去是否通过接收重置信号而已经处于重置状态的值。
文档编号G06F11/28GK101403989SQ20081016106
公开日2009年4月8日 申请日期2008年9月26日 优先权日2007年9月26日
发明者国江周市, 町村广喜 申请人:恩益禧电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1