一种用于仿真调试的硬件断点电路的制作方法

文档序号:6600080阅读:172来源:国知局
专利名称:一种用于仿真调试的硬件断点电路的制作方法
技术领域
本发明涉及集成电路测试技术领域,尤其涉及一种用于仿真调试的硬件断点电路。
背景技术
20世纪80年代以来,随着计算机嵌入式系统的广泛应用,微控制器(MCU, microcontroller unit/单片机)得到飞速的发展。早期的单片机是按照嵌入式应用技术 要求设计的计算机的单芯片化集成电路器件,也就是电子计算机的全部特性器件都集成到一片芯片上,故被形象的称为单片机。随着单片机应用范围的不断加大,对于其仿真调试功 能的要求也逐渐提高。仿真调试功能是指程序执行到指定行时,或存取预先设定的地址或数据时,停止 执行程序,一边通知外部,一边参照并改变当时的存储器的状态或变量的内容。断点可以看 作是程序停止执行的位置,并将微控制器的控制权切换到在线仿真调试模块,此时,微控制 器由正常模式变为调试模式。调试模式时微控制器不执行程序,而是在线仿真调试模块进 行操作。我们会在调试模式下通过JTAG总线控制在线仿真调试模块,读写在线仿真调试模 块和微控制器内的寄存器,然后让微控制器进入正常模式。在正常模式下,微控制器正常执 行程序。现有技术,采用硬件形式,这些断点可以具体实现为针对数据、指令或地址的断点 寄存器,可以用必要的数据、地址或指令对这些断点寄存器进行配置,以设置适当断点。例 如,配置好的断点地址寄存器与地址总线上的地址内容相匹配时,一个基于地址的断点条 件就发生了。现有技术中,在线仿真调试模块往往是对相关断点寄存器进行配置后,只要检 测到断点条件发生就能发送断点请求,这不能满足断点仿真调试的灵活性。因此,如何开发 一种具有灵活断点功能的仿真调试模块成为本领域技术人员努力的方向。

发明内容
本发明目的是提供一种用于仿真调试的硬件断点电路,该硬件断点电路可根据设 置的断点发生次数,决定何时向微控制器发送断点请求。为达到上述目的,本发明采用的技术方案是一种用于仿真调试的硬件断点电路。一种用于仿真调试的硬件断点电路,包括第一断点寄存器、第一断点比较器、第一断点计数器、第一参考值比较器、第一与 门、第二与门和第一非门;所述第一断点寄存器,用于存储第一断点条件信息;所述第一断点比较器,根据来自总线的信息和所述第一断点寄存器的信息的比较结果,产生第一断点条件发生信号;所述第一断点计数器,用于设置第一断点条件发生的次数,该断点计数器根据来自第一与门的输出信息,将该计数器当前值减1 ;所述第一参考值比较器,该比较器的一个输入端接收来自所述第一断点计数器输出的信息;所述第一与门,该第一与门的一个输入端接收来自所述第一断点比较器的输出信息,另一个输入端与第一非门的输出端连接,第一与门的输出端与所述第一断点计数器的 控制端连接,用于将第一断点计数器当前值减1 ;第二与门,该第二与门的一个输入端接收来自所述第一断点比较器的信息,另一 个输入端接收来自所述第一参考值比较器输出的信息,该第二与门的输出端用于发送第一 断点请求信号;所述第一非门,该第一非门的输入端与所述第一参考值比较器的输出端连接。上述技术方案中的有关内容解释如下1、上述方案中,所述硬件断点电路还包括第二断点寄存器、第二断点比较器、第 二断点计数器、第二参考值比较器、第三与门、第四与门、第二非门和第一或门;所述第二断点寄存器,用于存储第二断点条件信息;所述第二断点比较器,根据来自总线的信息和所述第二断点寄存器的信息的比较 结果,产生第二断点条件发生信号;所述第二断点计数器,用于设置第二断点条件发生的次数,该断点计数器根据来 自第三与门的输出信息,将该计数器当前值减1 ;所述第二参考值比较器,该比较器的一个输入端接收来自所述第二断点计数器输 出的信息;所述第三与门,该第三与门的一个输入端接收来自所述第二断点比较器的输出信 息,另一个输入端与第二非门的输出端连接,第三与门的输出端与所述第二断点计数器的 控制端连接,用于将第二断点计数器当前值减1 ;所述第四与门,该第四与门的一个输入端接收来自所述第二断点比较器的信息, 另一个输入端接收来自所述第二参考值比较器输出的信息,该第四与门的输出端用于发送 第二断点请求信号;所述第二非门,该第二非门的输入端与所述第二参考值比较器的输出端连接;第一或门,该第一或门的一个输入端与所述第二与门的输出端连接,另一个输入端与所述第四与门的输出端连接,用于向微控制器发出断点请求信号。2、上述方案中,所述总线的信息为数据总线的信息、控制总线的信息、地址总线的 信息中的一种。3、上述方案中,还包括用于屏蔽断点总线信息中某些位的第一断点屏蔽寄存器, 该第一断点屏蔽寄存器连接到所述第一断点比较器的一个输入端;用于屏蔽断点总线信息 中某些位的第二断点屏蔽寄存器,该第二断点屏蔽寄存器连接到所述第二断点比较器的一 个输入端。4、上述方案中,所述参考值为0。由于上述技术方案运用,本发明与现有技术相比,可以实现等到某个断点条件发 生N+1次后再给微控制器发送断点请求,从而给仿真调试带了很大的方便,缩短了产品开 发的周期。这样能检测到同一事件多次重复发生。比如我们需要检测地址总线上出现同一 个数值N+1次,则可以通过将第一断点计数器写为N来实现。再次,本发明通过设置或门实 现多个断点同时监控的功能。


附图1为JTAG仿真调试系统示意图;附图2为本发明硬件断点电路的结构原理图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述实施例一种用于仿真调试的硬件断点电路一种用于仿真调试的硬件断点电路,包括第一断点寄存器、第一断点比较器、第一断点计数器、第一参考值比较器、第一与门、第二与门和第一非门;所述第一断点寄存器,用于存储第一断点条件信息;所述第一断点比较器,根据来自总线的信息和所述第一断点寄存器的信息的比较 结果,产生第一断点条件发生信号;所述第一断点计数器,用于设置第一断点条件发生的次数,该断点计数器根据来 自第一与门的输出信息,将该计数器当前值减1 ;所述第一参考值比较器,该比较器的一个输入端接收来自所述第一断点计数器输 出的信息,所述参考值为0;所述第一与门,该第一与门的一个输入端接收来自所述第一断点比较器的输出信 息,另一个输入端与第一非门的输出端连接,第一与门的输出端与所述第一断点计数器的 控制端连接,用于将第一断点计数器当前值减1。所述第一断点计数器的输入端连接的是 当前值减1的结果。第一与门输出端是所述第一断点计数器的控制端,当它有效时,能让第 一断点计数器减1 ;第二与门,该第二与门的一个输入端接收来自所述第一断点比较器的信息,另一 个输入端接收来自所述第一参考值比较器输出的信息,该第二与门的输出端用于发送第一 断点请求信号; 所述第一非门,该第一非门的输入端与所述第一参考值比较器的输出端连接。用于存储第二断点条件信息的第二断点寄存器;第二断点比较器、第二断点计数器、第二参考值比较器、第三与门、第四与门和第 二非门;所述第二断点比较器,根据来自总线的信息和所述第二断点寄存器的信息的比较 结果,产生第二断点条件发生信号;所述第二断点计数器,用于设置第二断点条件发生的次数,该断点计数器根据来 自第三与门的输出信息,将该计数器当前值减1 ;所述第二参考值比较器,该比较器的一个输入端接收来自所述第二断点计数器输 出的信息,所述参考值为0;所述第三与门,该第三与门的输出端接收来自所述第二断点比较器的输出信息, 另一个输入端与第二非门的输出连接,第三与门的输出端与所述第二断点计数器的控制端 连接,用于将第二断点计数器当前值减1 ;
所述第四与门,该第四与门的一个输入端接收来自所述第二断点比较器的信息, 另一个输入端接收来自所述第二参考值比较器输出的信息,该第四与门的输出端用于发送 第二断点请求信号;所述第二非门,该第二非门的输入端与所述第二参考值比较器的输出端连接;第一或门,该第一或门的一个输入端与所述第二与门的输出端连接,另一个输入端与所述第四与门的输出端连接,用于向微控制器发出断点请求信号。用于屏蔽断点总线信息中某些位的第一断点屏蔽寄存器,该第一断点屏蔽寄存器 连接到所述第一断点比较器的一个输入端;用于屏蔽断点总线信息中某些位的第二断点屏 蔽寄存器,该第二断点屏蔽寄存器连接到所述第二断点比较器的一个输入端。上述方案中,所述总线的信息为数据总线的信息、控制总线的信息、地址总线的信 息中的一种,其原理相同。本实施例上述内容具体工作过程如下。一种微控制器在线仿真调试模块,见图1。包括JTAG端口控制器和硬件断点电路。 JTAG端口控制器用来收集从JTAG总线发送来的调试指令,这些调试指令用于读写硬件断 点电路和微控制器内的相关寄存器。硬件断点电路监视微控制器的地址总线的实时变化, 根据断点寄存器和断点屏蔽寄存器的值来检测断点条件何时发生,并根据断点计数器的值 决定何时向微控制器发送断点请求。如果微控制器接收到断点请求,则从正常模式进入调 试模式。正常模式时微控制器正常执行程序,调试模式时微控制器不执行程序,而在线仿真 调试模块会进行一系列操作,比如通过JTAG总线读写寄存器。硬件断点电路包含如下几个寄存器第一断点寄存器即32位第一断点地址寄存器,第二断点寄存器即32位第二断点 地址寄存器,用于存储断点的地址内容。第一断点屏蔽寄存器即32位第一断点地址屏蔽寄存器,第二断点屏蔽寄存器即 32位第二断点地址屏蔽寄存器,用于屏蔽地址总线的某些位。例如不需要检测地址总线的 低8位时,地址屏蔽寄存器的低8位都被置为1。如不需要检测地址总线的最高位,则只需 要将地址屏蔽寄存器的最高位置为1。除去不需要检测的地址总线的某些位,地址总线剩 下的其他位必须与地址寄存器的对应位完全相等才能让断点条件发生。例如,地址总线的 内容为 32,b0001_0010_0011_0100_0101_0110_0111_0101,第一断点地址寄存器内容为 32 ,b0001_0010_0011_0100_0101_0110_0111_1010,第一断点地址屏蔽寄存器内容为 32,b000 0_0000_0000_0000_0000_0000_0000_1111。因为第一断点地址屏蔽寄存器的低4位均为1, 表明地址总线的低4位不用与第一断点地址寄存器的低4位进行比较,而地址总线的高28 位和第一断点地址寄存器的高28位相等,所以第一断点的断点条件发生。这些是通过图2 中的第一断点比较器实现的。图2中的第二断点比较器用于比较地址总线、第二断点地址 寄存器和第二断点地址屏蔽寄存器,从而得到第二断点的断点条件发生信号。第一断点计数器,用于设置第一断点条件发生的次数,该第一断点计数器根据第 一与门的输出信息,将该计数器当前值减1。第二断点计数器,用于设置第二断点条件发生的次数,该第二断点计数器根据第 三与门的输出信息,将该计数器当前值减1。硬件断点电路的实现方式见图2。
我们先来看第一断点的相关操作。首先,微控制器的地址总线与第一断点地址屏 蔽寄存器和第一断点地址寄存器通过第一断点比较器进行比较,如果匹配则第一断点的断 点条件发生。如果第一断点计数器不为0即第一非门的输出端有效,则当第一断点的断点条件发生时,不能通过第二与门发送断点请求,但是会通过第一与门让第一断点计数器减1。第 一断点的断点条件发生一次就让第一断点计数器减1,第一断点的断点条件发生N次则第 一断点计数器减N,直到第一断点计数器为0。如果第一断点计数器为0即第一参考值比较 器输出端有效,则当第一断点的断点条件发生时,通过第二与门向微控制器发送断点请求。例如,我们将第一断点计数器设置为2,当第一断点条件发生第一次时,第一断点 计数器减1变为1,此时第一参考值比较器输出端无效,第一非门输出端有效;当第一断点 条件发生第二次时,第一断点计数器减1变为0,此时第一参考值比较器输出端有效,第一 非门输出端无效;当第一断点条件发生第三次时,第一断点计数器不再减1,而是通过第二 与门向微控制器发送断点请求。通过这样的方式,就可以限定第一断点条件必须发生N次后,当第一断点的断点 条件再发生一次时就能向微控制器发送断点请求。本实施例还通过增加第一或门实现了 2个断点的同时监控。我们再来看第二断点 的相关操作。第二断点的断点条件发生同理于第一断点;第二断点计数器的工作原理同理于第 一断点计数器。例如,我们将第二断点计数器设置为3,当第二断点条件发生第一次时,第二断点 计数器减1变为2,此时第二参考值比较器输出端无效,第二非门输出端有效;当第二断点 条件发生第二次时,第二断点计数器减1变为1,此时第二参考值比较器输出端无效,第二 非门输出端有效;当第二断点条件发生第三次时,第二断点计数器减1变为0,此时第二参 考值比较器输出端有效,第二非门输出端无效;当第二断点条件发生第四次时,第二断点计 数器不再减1,而是通过第四与门和第一或门向微控制器发送断点请求。通过这样的方式,就可以限定第二断点条件必须发生N次后,当第二断点的断点 条件再发生一次时就能向微控制器发送断点请求。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人 士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明 精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
一种用于仿真调试的硬件断点电路,其特征在于包括第一断点寄存器、第一断点比较器、第一断点计数器、第一参考值比较器、第一与门、第二与门和第一非门;所述第一断点寄存器,用于存储第一断点条件信息;所述第一断点比较器,根据来自总线的信息和所述第一断点寄存器的信息的比较结果,产生第一断点条件发生信号;所述第一断点计数器,用于设置第一断点条件发生的次数,该断点计数器根据来自第一与门的输出信息,将该计数器当前值减1;所述第一参考值比较器,该比较器的一个输入端接收来自所述第一断点计数器输出的信息;所述第一与门,该第一与门的一个输入端接收来自所述第一断点比较器的输出信息,另一个输入端与第一非门的输出端连接,第一与门的输出端与所述第一断点计数器的控制端连接,用于将第一断点计数器当前值减1;第二与门,该第二与门的一个输入端接收来自所述第一断点比较器的信息,另一个输入端接收来自所述第一参考值比较器输出的信息,该第二与门的输出端用于发送第一断点请求信号;所述第一非门,该第一非门的输入端与所述第一参考值比较器的输出端连接。
2.根据权利要求1所述的硬件断点电路,其特征在于所述硬件断点电路还包括第二 断点寄存器、第二断点比较器、第二断点计数器、第二参考值比较器、第三与门、第四与门、 第二非门和第一或门;所述第二断点寄存器,用于存储第二断点条件信息的;所述第二断点比较器,根据来自总线的信息和所述第二断点寄存器的信息的比较结 果,产生第二断点条件发生信号;所述第二断点计数器,用于设置第二断点条件发生的次数,该断点计数器根据来自第 三与门的输出信息,将该计数器当前值减1 ;所述第二参考值比较器,该比较器的一个输入端接收来自所述第二断点计数器输出的 fn息;所述第三与门,该第三与门的一个输入端接收来自所述第二断点比较器的输出信息, 另一个输入端与第二非门的输出端连接,第三与门的输出端与所述第二断点计数器的控制 端连接,用于将第二断点计数器当前值减ι ;所述第四与门,该第四与门的一个输入端接收来自所述第二断点比较器的信息,另一 个输入端接收来自所述第二参考值比较器输出的信息,该第四与门的输出端用于发送第二 断点请求信号;所述第二非门,该第二非门的输入端与所述第二参考值比较器的输出端连接; 第一或门,该第一或门的一个输入端与所述第二与门的输出端连接,另一个输入端与 所述第四与门的输出端连接,用于向微控制器发出断点请求信号。
3.根据权利要求1或2所述的硬件断点电路,其特征在于所述总线的信息为数据总 线的信息、控制总线的信息、地址总线的信息中的一种。
4.根据权利要求1或2所述的硬件断点电路,其特征在于还包括用于屏蔽断点总线信息中某些位的第一断点屏蔽寄存器,该第一断点屏蔽寄存器连接到所述第一断点比较器的一个输入端;用于屏蔽断点总线信息中某些位的第二断点屏蔽寄存器,该第二断点屏蔽 寄存器连接到所述第二断点比较器的一个输入端。
5.根据权利要求1或2所述的硬件断点电路,其特征在于所述参考值为O。
6.根据权利要求3所述的硬件断点电路,其特征在于所述参考值为O。
全文摘要
一种用于仿真调试的硬件断点电路,包括用于存储第一断点条件信息的第一断点寄存器;第一断点比较器;用于存储第二断点条件信息的第二断点寄存器;第二断点比较器;第一断点计数器,用于设置第一断点条件发生的次数;第一与门;第一非门;第二断点计数器,用于设置第二断点条件发生的次数;第三与门;第二非门;第二与门;第四与门;第一或门,用于向微控制器发送断点请求信号。本发明可以等到某个断点条件发生N次后再给微控制器发送断点请求信号,从而给仿真调试带了很大的方便,缩短了产品开发的周期。
文档编号G06F11/36GK101847119SQ20101013779
公开日2010年9月29日 申请日期2010年3月23日 优先权日2010年3月23日
发明者于麦口, 肖佐楠, 蒋小梅, 郑茳 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1