CN112559275A - 集成电路、用于维护调试集成电路的方法和接口电路 - Google Patents

集成电路、用于维护调试集成电路的方法和接口电路 Download PDF

Info

Publication number
CN112559275A
CN112559275A CN202010934303.6A CN202010934303A CN112559275A CN 112559275 A CN112559275 A CN 112559275A CN 202010934303 A CN202010934303 A CN 202010934303A CN 112559275 A CN112559275 A CN 112559275A
Authority
CN
China
Prior art keywords
integrated circuit
maintenance
bus
interface
register
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
CN202010934303.6A
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.)
China Unionpay Co Ltd
Original Assignee
China Unionpay 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 China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN202010934303.6A priority Critical patent/CN112559275A/zh
Publication of CN112559275A publication Critical patent/CN112559275A/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/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/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及半导体技术,特别涉及用于维护调试集成电路的方法和接口电路,以及包含上述接口电路的集成电路和实施上述方法的计算机可读存储介质。按照本发明一个方面的接口电路包含:接口模块,配置为经I2C总线从主机接收维护调试请求和向所述主机发送维护调试响应消息;以及与接口模块和集成电路内部单元耦合的处理模块,配置为响应于所述维护调试请求,对所述集成电路内部单元执行读取操作以获取所述集成电路内部单元的状态信息,以及对所述集成电路内部单元执行写入操作以改变所述集成电路内部单元的状态,其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含所述状态信息。

Description

集成电路、用于维护调试集成电路的方法和接口电路
技术领域
本发明涉及半导体技术,特别涉及用于维护调试集成电路的方法和接口电路,以及包含上述接口电路的集成电路和实施上述方法的计算机可读存储介质。
背景技术
在芯片设计领域,为了提高可调试性和可维护性,通常将维护调试功能(模块)与芯片的内部单元集成在一起,并通过特定的接口引脚实现片外设备与片内功能的交互访问。
当前芯片设计中应用较多的维护调试技术主要包括JTAG接口类维护调试技术、SPI接口类维护调试技术、UART接口类维护调试技术以及用户自定义接口类维护调试技术等,它们所采用的协议、处理逻辑复杂度以及芯片的引脚数量各不相同。借助这些维护调试技术,用户可完成芯片状态查询、诊断错误和调试分析等工作。
然而上述维护调试技术的协议处理逻辑比较复杂,测试信号易受干扰且占用的芯片引脚数较多,因而不利于降低成本(包括晶片生产成本、封装成本及板卡成本),而且信号易受干扰也影响了芯片长期稳定的运行。
例如以JTAG类维护接口为例,其在兼容JTAG协议的基础上可通过增加JTAG命令和寄存器扫描链来提供用户自定义的维护扩展功能。虽然其功能灵活,但是处理逻辑较为复杂,接口的引脚数量也较多,特别是对于小型芯片来说,实现代价偏高。又如SPI内维护接口,其同样需占用较多的引脚资源并且控制逻辑复杂。而UART接口虽然能够减少引脚数量,但是协议仍然比较复杂,而且通信稳定性也较差。
由上可见,需要提供一种能够解决上述问题的用于维护调试集成电路的方案。
发明内容
本发明的一个目的是提供一种用于维护调试集成电路的方法、接口电路、包含上述接口电路的集成电路和实施上述方法的计算机可读存储介质,其能够降低维护调试的复杂性和成本。
按照本发明一个方面的用于维护调试集成电路的接口电路包含:
接口模块,配置为经I2C总线从主机接收维护调试请求和向所述主机发送维护调试响应消息;以及
与接口模块和集成电路内部单元耦合的处理模块,配置为响应于所述维护调试请求,对所述集成电路内部单元执行读取操作以获取所述集成电路内部单元的状态信息,以及对所述集成电路内部单元执行写入操作以改变所述集成电路内部单元的状态,
其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含所述状态信息。
按照本发明另一个方面的集成电路包括:
用于实现一种或多种功能的内部单元;以及
用于维护调试所述集成电路的接口单元,其特征在于,所述接口单元包含:
接口模块,配置为经I2C总线从主机接收维护调试请求和向所述主机发送维护调试响应消息;以及
与接口模块和所述内部单元耦合的处理模块,配置为响应于所述维护调试请求,对所述内部单元执行读取操作以获取所述内部单元的状态信息,以及对所述内部单元执行写入操作以改变所述内部单元的状态,
其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含所述状态信息。
按照本发明另一个方面的用于维护调试集成电路的方法包含:
a)经I2C总线从主机接收维护调试请求;
b)基于所述维护调试请求中包含的操作参数对集成电路内部单元执行读取操作或写入操作;
c)生成维护调试响应消息;以及
d)经所述I2C总线向所述主机发送所述维护调试响应消息,
其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含通过读取操作获取的所述集成电路内部单元的状态信息。
按照本发明还有一个方面的计算机可读存储介质,其上存储计算机程序,其中,该程序被处理器执行时实现如上所述的方法。
与现有技术相比,本发明的一个或多个实施例的至少具有下列优点:
·能够减少用于维护调试的芯片引脚数量(仅占用2个引脚),节约逻辑资源,并且缩小芯片的封装尺寸。
·降低芯片板卡集成的复杂度和成本,并提高芯片运行稳定性。
·由于I2C协议的通用性强,因此便于推广应用。
·与JTAG协议和SPI协议相比,I2C协议要简洁得多,这对于晶圆级和芯片级测试开发是有利的,能够大大提高封装芯片的合格率和稳定性。
·由于具备对集成电路内部状态和寄存器的读写功能,因此大大方便了芯片运行状态下的问题诊断分析。
附图说明
本发明的上述和/或其它方面和优点将通过以下结合附图的各个方面的描述变得更加清晰和更容易理解,附图中相同或相似的单元采用相同的标号表示。附图包括:
图1为按照本发明一个实施例的用于维护调试集成电路的接口电路的示意框图。
图2为维护调试协议帧与I2C协议帧之间关系的示意图。
图3示出了维护调试写入请求帧的格式。
图4示出了维护调试读取请求帧的格式。
图5示出了用于承载维护调试响应消息的维护调试响应消息帧的格式。
图6示出了图3和4所示维护调试请求帧中的命令字节的格式。
图7示出了接口电路的状态寄存器各字节的定义。
图8示出了在维护调试过程中读取操作和写入操作所访问地址的格式。
图9为图1所示接口电路的电路模块示意图。
图10为第一控制模块的状态控制与转换示意图。
图11为I2C单个位信号的数据处理过程的示意图。
图12为图9中的移位寄存器的示例性结构的示意图。
图13为第二控制模块的状态控制与转换示意图。
图14为按照本发明另一个实施例的集成电路的示意框图。
图15为按照本发明另一个实施例的用于维护调试集成电路的方法的流程图。
具体实施方式
下面参照其中图示了本发明示意性实施例的附图更为全面地说明本发明。但本发明可以按不同形式来实现,而不应解读为仅限于本文给出的各实施例。给出的上述各实施例旨在使本文的披露全面完整,以将本发明的保护范围更为全面地传达给本领域技术人员。
在本说明书中,诸如“包含”和“包括”之类的用语表示除了具有在说明书和权利要求书中有直接和明确表述的单元和步骤以外,本发明的技术方案也不排除具有未被直接或明确表述的其它单元和步骤的情形。
诸如“第一”和“第二”之类的用语并不表示单元在时间、空间、大小等方面的顺序而仅仅是作区分各单元之用。
在本说明书中,术语“芯片”和“集成电路”可以互换使用,它们泛指能够实现一种或多种功能(例如计算、存储、选择和比较等)的微型电子器件或部件。
在本说明书中,术语“内部单元”泛指集成电路中除用于维护调试集成电路的接口电路以外、能够实现特定功能的电路单元。
图1为按照本发明一个实施例的用于维护调试集成电路的接口电路的示意框图。
如图1所示,接口电路10包括接口模块110和处理模块120,其中,接口模块110被接入I2C总线以与主机20通信,处理模块120与接口模块110和集成电路的一个或多个内部单元30耦合。
在图1所示的接口电路中,接口模块110被配置为经I2C总线从主机20接收维护调试请求和向主机20发送维护调试响应消息。I2C总线是一种支持多个主从设备的工业标准总线,包含一条双向串行数据线SDA和一条串行时钟线SCL。每个连接到总线的设备都被分配一个独立的地址,因而主设备可以通过该地址来访问各个从设备,从而实现设备之间的串行数据传输。具体而言,主设备可通过SDA线发送设备地址SLAVE_ADDRESS以查找从设备,这里的从设备地址SLAVE_ADDRESS的长度可以是7位或10位。紧随从设备地址SLAVE_ADDRESS的数据位(即第8位或11位)用来表示对从设备所执行操作的类型,其中,'0'表示写入操作,'1'表示读取操作。在本实施例中,接口模块110被设置为I2C总线的从设备以负责与片外I2C总线或主设备的交互,其一方面接收外部I2C主机发送的基于I2C协议的维护调试请求并从该请求中提取操作参数(例如操作类型(读取和写入)、读取地址、写入地址和写入数据等)以供处理模块120执行相应的读写操作之用,另一方面,接口模块110将处理模块120获取的集成电路的内部单元30的状态信息发送到片外I2C总线上。
可选地,接口模块110可支持I2C标准模式(100Kbps)和快速模式(Fm,400Kbps)下的数据传输。
处理模块120被配置为调取操作参数,基于操作参数对集成电路的内部单元30执行相应的读取操作以获取内部单元30的状态信息或对内部单元30执行写入操作以改变内部单元的状态,以及向接口模块110返回操作结果(例如所获取的状态信息)。
优选地,处理模块120按照总线方式主动发起对具有总线地址的内部单元30的读写操作(例如作为高级外围总线(APB)协议的主设备)。
为了提高性能指标,集成电路普遍采用多电源域、多时钟域、不同功能模块(IP)集成等设计技术,并且为了提高芯片使用的灵活性与可靠性,片内通常配备用于控制各部分上电、复位、时钟(PLL设置与升频)以及初始化过程的控制寄存器与状态寄存器。在本实施例中,优选地,处理模块120具有对诸如全局控制寄存器、全局状态寄存器和全局数据寄存器之类的全局寄存器(在本说明书中,全局寄存器也被视为一种集成电路内部单元)执行读写操作的能力,从而实现对集成电路内部单元的上电、复位、时钟以及初始化流程进行控制和监测,并且在正常运行或发生异常时也能借助接口电路进行分析和诊断。
此外,可选地,处理模块120还可以IRQ中断方式向集成电路核心逻辑反馈接口电路的状态信息。
需要指出的是,I2C接口一直被用于工业控制领域的主从设备间的数据传输通路,但是其并未提供芯片维护调试所需的功能。在本实施例中,考虑到I2C协议具有逻辑简洁和硬件资源占用少等优点,将其用作接口电路与外部主机之间的通信协议,从而达到降低维护调试的难度和成本的目的。为此,在本实施例中,通过将维护调试请求和维护调试响应消息封装在I2C协议帧来实现对I2C接口的利用。具体而言,在本实施例中,维护调试请求和维护调试响应消息(其包含内部单元的状态信息)被包含在I2C协议帧的数据部分内,因此能够利用I2C总线来传输维护调试请求和维护调试响应消息,而I2C协议帧的数据部分的解析操作和生成操作则由接口电路10和主机20来实现。
由于无需改变I2C协议帧的结构,因此本实施例的接口电路与I2C协议具有良好的兼容性。
优选地,维护调试请求和维护调试响应消息可以依照下面将要详细描述的维护调试协议来生成维护调试请求帧和维护调试响应消息帧(以下统称为维护调试协议帧)。
图2为维护调试协议帧与I2C协议帧之间关系的示意图。如图2所示,I2C协议帧包含7位的设备地址SLAVE_ADDRESS和1位的操作类型标志,维护调试协议帧以字节为单位被包含在I2C协议帧内作为I2C协议帧的数据部分,并且一个维护调试协议帧通常需要包含多个字节。
在图2所示的示例中,I2C协议帧所示采用的是7位地址模式,但是可以理解的是,对于10位地址模式的I2C协议帧,图2所示的维护调试协议帧与I2C协议帧之间的关系仍然是适用的。
可选地,维护调试协议可以从以下几个方面进行定义。但是需要指出的是,下面所描述的维护调试协议仅仅是示例性的,按照本发明的用于维护调试集成电路的方法、接口电路和包含该接口电路的集成电路的实施并不局限于特定结构或格式的协议。
·维护调试操作类型的定义
表1示出了维护调试操作类型的定义。
表1
Figure BDA0002671384850000071
Figure BDA0002671384850000081
·读取操作和写入操作可寻址的地址空间的分配
表2定义了在维护调试过程中读取操作和写入操作可寻址的集成电路内部单元的地址空间。
表2
Figure BDA0002671384850000082
·维护调试请求帧的格式
用于承载维护调试请求的维护调试请求帧包括维护调试写入请求帧和维护调试读取请求帧,图3和4分别示出了维护调试写入请求帧和维护调试读取请求帧的格式。
·维护调试响应消息帧的格式
图5示出了用于承载维护调试响应消息的维护调试响应消息帧的格式。
·命令字节的格式
图6示出了图3和4所示维护调试请求帧中的命令字节的格式。
·状态寄存器
图7示出了接口电路的状态寄存器各字节的定义。I2C主机可通过读取该状态寄存器的寄存器值来判断当前的维护调试请求是否得到正常处理。
·地址格式
图8示出了在维护调试过程中读取操作和写入操作所访问地址的格式。
由上面关于维护调试协议的描述可见,维护调试协议不改变I2C协议帧的结构,因此其能够完全兼容于I2C协议帧。
在本实施例中,优选地,接口模块110包含移位寄存器(例如宽移位寄存器),其配置为存储接口模块110所提取的操作参数以供处理模块120执行相应的读写操作之用,此外,该移位寄存器还配置为存储处理模块120所获取的内部单元30的状态信息以供生成维护调试响应消息之用。由于仅利用一个移位寄存器即可满足操作参数和状态信息的临时存储需要,因此简化了接口电路的结构并降低了制造成本。
图9为图1所示接口电路的电路模块示意图。
如图9所示,接口模块110包括第一控制模块1101、起始/停止及SCL检测模块1102、移位寄存器1103、地址比较模块1104及I2C总线状态寄存器1105。第一控制模块1101可被配置为完成起始/停止信号的自动检测、SLAVER地址识别、包含维护调试请求的I2C协议帧的接收和解析处理,其中,解析得到的操作参数被存储在移位寄存器1103内以供处理模块120调用;第一控制模块1101还被配置为将处理模块120获取的内部单元30的状态信息包含在I2C协议帧内并经I2C总线发送。
表3为第一控制模块1101的各个控制状态的描述。
表3
Figure BDA0002671384850000091
Figure BDA0002671384850000101
图10为第一控制模块的状态控制与转换示意图。
第一控制模块1101被接入I2C总线,其状态控制和行为主要以字节为单位进行操作,并且以双向串行数据线SDA的每一次变化为状态转换的条件。
以可支持的最高总线传输速率为400Kbps为例,在I2C位数据的生成和处理过程中,为了支持对该速率下的状态识别、控制数据接收与发送,可以将接口模块110的内部核心逻辑的运行时钟频率设计为≧2MHz(即,I2C核心逻辑时钟被设计为至少是I2C总线传输速率的5倍),从而能够满足将单个位信号的数据处理过程划分为5个处理状态(即ideal、A、B、C和D)的需要。图11为I2C单个位信号的数据处理过程的示意图,对于不同类型的位信号(START、REPSTART、STOP、WRITE和READ),其示出了在它们的各个处理状态下,双向串行数据线SDA和串行时钟线SCL上的信号电平。
通过在每个I2C位信号周期内实现上述5个处理状态,接口模块110能可靠地生成所需的I2C位信号或识别I2C位信号的变化。
起始/停止及SCL检测模块1102与第一控制模块1101和I2C总线耦合。该模块使用I2C核心逻辑时钟的上升沿采样SCL信号电平和SDA信号电平,如果在前后相邻的两个采样点检测到SDA信号电平由'1'变为'0且SCL信号电平保持为'1',则确定外部主机20发送了起始信号,因而将I2C主状态机状态转换信号“START”置为'1'并保持1拍有效,第一控制模块1101识别到该状态转换信号并在下一拍切换到“rd_address”状态。同样,如果在前后相邻的两个采样点检测到SDA信号电平由'0'变为'1'且SCL信号电平保持为“1”,则起始/停止及SCL检测模块1102确定外部主机20发送了停止信号,因而将I2C主状态机状态转换信号“STOP”置为'1'并保持1拍有效,第一控制模块1101识别到该状态转换信号并在下一拍切换到“IDEAL”状态。
如上所述,I2C核心逻辑时钟频率为可支持的最高总线传输速率的5倍以上,因此在检测到起始信号后,有完整的一拍能够完成状态转换和将双向串行数据线SDA上的数据移入移位寄存器1103或将移位寄存器1103中的数据移到双向串行数据线SDA上。由此,除接口电路10在执行维护调试操作时可能造成的响应延时外,无需通过强行拉低串行时钟线SCL来增加额外的通信延时。
移位寄存器1103与第一控制模块1101、处理模块120中的各个寄存器和I2C总线耦合。在第一控制模块1101的控制下,移位寄存器1103执行下列操作:在rx_address状态下完成对SLAVER地址的移位接收,在rx_subaddress状态下完成对地址第二字节的移位接收,并且在rx_data状态下完成对数据的移位接收;在接收完成的下一拍(I2C核心逻辑时钟),将接收的数据通过总线并行送入处理模块120中的指定寄存器(控制寄存器、地址寄存器或数据寄存器等);在ack_tx_data和ack_rx_address状态下且I2C总线处于写状态时,将指定数据寄存器内的数据并行加载到移位寄存器的特定字节处,并在tx_data状态有效时,在每个SCL信号电平下降沿后,将移位寄存器高位开始的每一位数据逐个发送到双向串行数据线SDA上。
为了支持基于I2C协议的各种维护调试需求以及I2C协议要求的字节间顺序操作,优选地,移位寄存器1103可采用72位的移位寄存器实现,其被分成可单独操作的9字节,每个移位寄存器字节的移入和移出都从高位开始。图12为图9中的移位寄存器的示例性结构的示意图。
地址比较模块1104与第一控制模块1101和移位寄存器1103耦合。第一控制模块1101将来自主机的I2C协议帧中的目标地址写入移位寄存器1103中。地址比较模块1104被配置为例如在接收到I2C协议帧中的完整目标地址的下一拍进行地址译码比较,以基于目标地址判断接口电路10是否为该I2C协议帧的接收方,判断结果被输出至第一控制模块1101。如果接口电路10为接收方,则第一控制模块1101将I2C协议帧中的操作参数写入移位寄存器1103,否则,则使接口模块110处于IDEAL状态。
处理模块120包括第二控制模块1201、寄存器组1202和总线接口模块1203,其中,第二控制模块1201与总线接口模块1203耦合,寄存器组1202中的各个寄存器例如以总线方式与移位寄存器1103耦合,其还例如以总线方式与第二控制模块1201耦合。此外,寄存器组1202中的状态寄存器1202A、控制寄存器1202B、地址寄存器1202C和数据寄存器1202D例如以总线方式与总线接口模块1203耦合。
在第二控制模块1201的控制下,总线接口模块1203基于控制寄存器1202B、地址寄存器1202C和数据寄存器1202D的寄存器值对内部单元30执行相应的读取操作或写入操作,并且将获取自内部单元30的状态信息写入数据寄存器1202D中。
可选地,总线接口模块1203可以为基于高级外围总线(APB)协议的接口模块,总线地址基于高级微控制器总线架构(AMBA)协议。可选地,总线接口模块1203能够以多个地址访问粒度(例如8位、16位及32位)对集成电路内部单元执行读写操作。
可选地,第二控制模块1201能够对全局控制寄存器执行读取操作和写入操作并且对全局状态寄存器执行读取操作。
参见图9,状态寄存器1202A与I2C总线状态寄存器1105耦合,其可配置为通过IRQ中断方式向集成电路内部单元(核心逻辑)报告处理模块发生异常情况的事件和接口模块发生异常情况的事件。
表4为第二控制模块1201的各个控制状态的描述。
表4
Figure BDA0002671384850000131
图13为第二控制模块的状态控制与转换示意图。
如图13所示,第二控制模块1201在集成电路上电复位后进入IDEAL状态,等待来自接口模块110的操作请求(包括操作命令(类型)、读取/写入地址或写入数据)。如果操作请求为APB总线读写请求,则第二控制模块1201命令总线接口模块1203将操作请求转换为APB总线的读/写周期,从而实现对APB地址空间的读/写访问;如果为全局寄存器读写请求,则第二控制模块1203命令例如配置寄存器1202E或状态寄存器1202F执行单拍的寄存器读写操作。
寄存器组1202包括状态寄存器1202A、控制寄存器1202B、地址寄存器1202C、数据寄存器1202D、配置寄存器1202E和状态寄存器1202F。状态寄存器1202A被配置为存储总线接口的当前操作状态和操作结果,控制寄存器1202B被配置为存储诸如读取命令或写入命令之类的操作参数,地址寄存器1202C被配置为存储诸如读取地址或写入地址之类的操作参数,数据寄存器1202D被配置为在读取操作时存储状态信息以及在写入操作时存储写入数据,配置寄存器1202E被配置为存储写入集成电路内部的全局寄存器的寄存器值,状态寄存器1202F被配置为存储从集成电路内部的全局寄存器读取的寄存器值。如图9所示,寄存器组1202中的各个寄存器以总线方式与移位寄存器1103耦合,使得维护调试请求中的操作参数能够被写入相应的寄存器内,并且所获取的内部单元的状态信息能够写入移位寄存器以用于维护调试响应消息的生成。
总线接口模块1203以总线方式与集成电路内部单元耦合,并且还与第二控制模块1201以及寄存器组1202中的部分寄存器耦合。在第二控制模块1201的控制下,对于读取操作,总线接口模块1203基于控制寄存器1202B和地址寄存器1202C中的寄存器值,将接口模块110发送的APB读取请求转换为APB总线读操作周期,并将APB总线上返回的读取数据写入数据寄存器1202D;对于写入操作,总线接口模块1203基于控制寄存器1202B、地址寄存器1202C及数据寄存器1202D中的寄存器值,将接口模块110发送的APB写请求转换为APB总线写操作周期,以将数据写入相应的地址。
图14为按照本发明另一个实施例的集成电路的示意框图。
如图14所示的集成电路1包括内部单元1A和用于维护调试的接口电路1B。在本实施例中,集成电路例如为SOC集成电路或ASIC集成电路,而接口电路1B可具有上面借助图1-13所述的实施例的各种结构和特征,此处不再赘述。
图15为按照本发明另一个实施例的用于维护调试集成电路的方法的流程图。在下面的描述中,示例性地但非必须地,所述方法步骤被应用于借助图1-13所述的接口电路和借助图14所述的集成电路。
如图15所示,在步骤1501,接口模块110经I2C总线从主机20接收维护调试请求。如上所述,维护调试请求可被包含在I2C协议帧的数据部分内,对于读取操作,维护调试请求的操作参数包括读取读取命令和集成电路内部读取地址,对于写入操作,维护调试请求的操作参数包括写入命令、集成电路内部写入地址和写入数据。
随后进入步骤1502,地址比较模块1102基于I2C协议帧中的目标地址来判断集成电路是否为维护调试请求的对象,如果集成电路为维护调试请求的对象,则进入步骤1503,否则进入步骤1504。
在步骤1503,在第一控制模块1101的控制下,操作参数被写入移位寄存器1103以供处理模块120执行读取操作或写入操作之用。
随后进入步骤1505,处理模块120基于移位寄存器1103中所存储的操作参数对集成电路内部单元30执行相应的读取操作或写入操作。如上所述,集成电路的内部单元30被分配相应的总线地址,因此总线接口模块1203能够按照总线方式执行相应的读取操作或写入操作。在本步骤中,对于读取操作,获取自内部单元30的状态信息被存储在移位寄存器1103内。
接着进入步骤1506,接口模块110生成维护调试响应消息。维护调试响应消息包含读取操作和写入操作的执行结果。例如对于读取操作,维护调试响应消息可包含内部单元30的状态信息(如果读取操作成功)或操作失败的指示;对于写入操作,维护调试响应消息可包含关于写入操作成功或失败的指示。
随后进入步骤1507,接口模块110经I2C总线向主机20发送所生成的维护调试响应消息。
回到步骤1502的另一个分支步骤1504,在该步骤中,第一状态控制机模块1101使接口模块110进入IDEAL状态。
可选地,图15所示的方法流程还可进一步包含步骤1508,在该步骤中,处理模块120通过IRQ中断方式向集成电路的内部单元30报告发生异常情况的事件,例如处理模块或接口模块发生异常情况的事件。
在本实施例中,步骤1508的执行可独立于其它步骤,因此可与步骤1501-1507中的任何一个步骤同时执行,或者可在步骤1501-1507中的任何一个步骤之前或之后执行。
按照本发明的另一方面,还提供了一种计算机可读存储介质,其上存储计算机程序,该程序被处理器执行时可实现上面借助图15所述的用于维护调试集成电路的方法步骤。
提供本文中提出的实施例和示例,以便最好地说明按照本技术及其特定应用的实施例,并且由此使本领域的技术人员能够实施和使用本发明。但是,本领域的技术人员将会知道,仅为了便于说明和举例而提供以上描述和示例。所提出的描述不是意在涵盖本发明的各个方面或者将本发明局限于所公开的精确形式。
鉴于以上所述,本公开的范围通过以下权利要求书来确定。

Claims (32)

1.一种用于维护调试集成电路的接口电路,其特征在于,包含:
接口模块,配置为经I2C总线从主机接收维护调试请求和向所述主机发送维护调试响应消息;以及
与接口模块和集成电路内部单元耦合的处理模块,配置为响应于所述维护调试请求,对所述集成电路内部单元执行读取操作以获取所述集成电路内部单元的状态信息,以及对所述集成电路内部单元执行写入操作以改变所述集成电路内部单元的状态,
其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含所述状态信息。
2.如权利要求1所述的接口电路,其中,所述维护调试请求包括操作参数,当所述维护调试请求涉及对所述集成电路内部单元的读取操作时,所述操作参数包括读取读取命令和集成电路内部读取地址,以及当所述维护调试请求涉及对所述集成电路内部单元的写入操作时,所述操作参数包括写入命令、集成电路内部写入地址和写入数据。
3.如权利要求1所述的接口电路,其中,被维护调试的集成电路为SOC集成电路或ASIC集成电路。
4.如权利要求2所述的接口电路,其中,所述接口模块进一步配置为:
从所述维护调试请求中提取所述操作参数以供所述处理模块执行所述读取操作和写入操作之用;以及
从所述处理模块读取所述状态信息以生成所述维护调试响应消息。
5.如权利要求4所述的接口电路,其中,所述接口模块包含:
与所述I2C总线耦合的第一控制模块;以及
与所述I2C总线、第一控制模块和处理模块耦合的移位寄存器,
在第一控制模块控制下,所述操作参数被写入所述移位寄存器以供所述处理模块执行所述读取操作和写入操作之用,并且
在第一控制模块控制下,将所述处理模块在执行读取操作时获取的状态信息写入所述移位寄存器以用于生成包含于向所述主机发送的I2C协议帧中的维护调试响应消息。
6.如权利要求5所述的接口电路,其中,所述接口模块还包含:
与所述第一控制模块和移位寄存器耦合的地址比较模块,配置为基于来自所述主机的I2C协议帧中的目标地址判断所述接口电路是否为该I2C协议帧的接收方,并且将判断结果输出至所述第一控制模块,
所述第一控制模块进一步配置为将来自所述主机的I2C协议帧中的目标地址写入所述移位寄存器中,并且响应于所述判断结果而执行下列操作:
如果所述接口电路为接收方,则将所述操作参数写入所述移位寄存器,否则,则使所述接口模块处于空闲状态。
7.如权利要求5所述的接口电路,其中,所述处理模块包含:
第二控制模块;
与所述第二控制模块和移位寄存器耦合的寄存器组;以及
耦合在所述集成电路内部单元与所述寄存器组之间的总线接口模块,
所述集成电路内部单元被分配相应的总线地址,在所述第二控制模块控制下,所述总线接口模块基于所述寄存器组的寄存器值对所述集成电路内部单元执行相应的读取操作或写入操作,并且将获取自所述集成电路内部单元的状态信息写入所述寄存器组中。
8.如权利要求7所述的接口电路,其中,所述第二控制模块进一步配置为对全局寄存器执行读写操作。
9.如权利要求7所述的接口电路,其中,所述总线接口模块为基于高级外围总线(APB)协议的接口模块,所述总线地址基于高级微控制器总线架构(AMBA)协议。
10.如权利要求9所述的接口电路,其中,所述总线地址具有多个访问粒度。
11.如权利要求7所述的接口电路,其中,所述寄存器组包括控制寄存器、地址寄存器、数据寄存器和状态寄存器,所述控制寄存器配置为存储所述读取命令或写入命令,所述地址寄存器配置为存储所述集成电路内部读取地址或集成电路内部写入地址,所述数据寄存器配置为存储所述状态信息或写入数据,以及所述状态寄存器配置为存储所述总线接口的当前操作状态和操作结果。
12.如权利要求11所述的接口电路,其中,所述接口模块还包含与所述状态寄存器耦合的I2C总线状态寄存器,所述状态寄存器配置为通过IRQ中断方式向所述集成电路内部单元报告所述处理模块发生异常情况的事件和所述接口模块发生异常情况的事件。
13.一种集成电路,包括:
用于实现一种或多种功能的内部单元;以及
用于维护调试所述集成电路的接口单元,其特征在于,所述接口单元包含:
接口模块,配置为经I2C总线从主机接收维护调试请求和向所述主机发送维护调试响应消息;以及
与接口模块和所述内部单元耦合的处理模块,配置为响应于所述维护调试请求,对所述内部单元执行读取操作以获取所述内部单元的状态信息,以及对所述内部单元执行写入操作以改变所述内部单元的状态,
其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含所述状态信息。
14.如权利要求13所述的集成电路,其中,所述维护调试请求包括操作参数,当所述维护调试请求涉及对所述内部单元的读取操作时,所述操作参数包括读取读取命令和集成电路内部读取地址,以及当所述维护调试请求涉及对所述内部单元的写入操作时,所述操作参数包括写入命令、集成电路内部写入地址和写入数据。
15.如权利要求13所述的集成电路,其中,所述集成电路为SOC集成电路或ASIC集成电路。
16.如权利要求14所述的集成电路,其中,所述接口模块进一步配置为:
从所述维护调试请求中提取所述操作参数以供所述处理模块执行所述读取操作和写入操作之用;以及
从所述处理模块读取所述状态信息以生成所述维护调试响应消息。
17.如权利要求16所述的集成电路,其中,所述接口模块包含:
与所述I2C总线耦合的第一控制模块;以及
与所述I2C总线、第一控制模块和处理模块耦合的移位寄存器,
在第一控制模块控制下,所述操作参数被写入所述移位寄存器以供所述处理模块执行所述读取操作和写入操作之用,并且
在第一控制模块控制下,将所述处理模块在执行读取操作时获取的状态信息写入所述移位寄存器以用于生成包含于向所述主机发送的I2C协议帧中的维护调试响应消息。
18.如权利要求17所述的集成电路,其中,所述接口模块还包含:
与所述第一控制模块和移位寄存器耦合的地址比较模块,配置为基于来自所述主机的I2C协议帧中的目标地址判断所述接口电路是否为该I2C协议帧的接收方,并且将判断结果输出至所述第一控制模块,
所述第一控制模块进一步配置为将来自所述主机的I2C协议帧中的目标地址写入所述移位寄存器中,并且响应于所述判断结果而执行下列操作:
如果所述接口电路为接收方,则将所述操作参数写入所述移位寄存器,否则,则使所述接口模块处于空闲状态。
19.如权利要求17所述的集成电路,其中,所述处理模块包含:
第二控制模块;
与所述第二控制模块和移位寄存器耦合的寄存器组;以及
耦合在所述内部单元与所述寄存器组之间的总线接口模块,
所述内部单元被分配相应的总线地址,在所述第二控制模块控制下,所述总线接口模块基于所述寄存器组的寄存器值对所述内部单元执行相应的读取操作或写入操作,并且将获取自所述内部单元的状态信息写入所述寄存器组中。
20.如权利要求19所述的集成电路,其中,所述第二控制模块进一步配置为对全局寄存器执行读写操作。
21.如权利要求19所述的集成电路,其中,所述总线接口模块为基于高级外围总线(APB)协议的接口模块,所述总线地址基于高级微控制器总线架构(AMBA)协议。
22.如权利要求21所述的集成电路,其中,所述总线地址具有多个访问粒度。
23.如权利要求19所述的集成电路,其中,所述寄存器组包括控制寄存器、地址寄存器、数据寄存器和状态寄存器,所述控制寄存器配置为存储所述读取命令或写入命令,所述地址寄存器配置为存储所述集成电路内部读取地址或集成电路内部写入地址,所述数据寄存器配置为存储所述状态信息或写入数据,以及所述状态寄存器配置为存储所述总线接口的当前操作状态和操作结果。
24.如权利要求23所述的集成电路,其中,所述接口模块还包含与所述状态寄存器耦合的I2C总线状态寄存器,所述状态寄存器配置为通过IRQ中断方式向所述内部单元报告所述处理模块发生异常情况的事件和所述接口模块发生异常情况的事件。
25.一种用于维护调试集成电路的方法,其特征在于,包含:
a)经I2C总线从主机接收维护调试请求;
b)基于所述维护调试请求中包含的操作参数对集成电路内部单元执行读取操作或写入操作;
c)生成维护调试响应消息;以及
d)经所述I2C总线向所述主机发送所述维护调试响应消息,
其中,所述维护调试请求和维护调试响应消息被包含在I2C协议帧的数据部分内,并且对于读取操作,所述维护调试响应消息包含通过读取操作获取的所述集成电路内部单元的状态信息。
26.如权利要求25所述的方法,其中,当所述维护调试请求涉及对集成电路内部单元的读取操作时,所述操作参数包括读取读取命令和集成电路内部读取地址,以及当所述维护调试请求涉及对所述集成电路内部单元的写入操作时,所述操作参数包括写入命令、集成电路内部写入地址和写入数据。
27.如权利要求26所述的方法,其中,步骤b)包括:
基于来自所述主机的I2C协议帧中的目标地址判断所述集成电路是否为所述维护调试请求的对象;
如果所述集成电路为所述维护调试请求的对象,则将所述操作参数写入移位寄存器以供执行读取操作或写入操作之用;以及
基于所述移位寄存器中所存储的操作参数对所述集成电路内部单元执行相应的读取操作或写入操作,
其中,对于读取操作,获取自所述集成电路内部单元的状态信息被存储在所述移位寄存器内。
28.如权利要求27所述的方法,其中,所述集成电路内部单元被分配相应的总线地址以按照总线方式执行相应的读取操作或写入操作。
29.如权利要求28所述的方法,其中,利用基于高级外围总线(APB)协议的接口模块执行读取操作和写入操作,并且所述总线地址基于高级微控制器总线架构(AMBA)协议。
30.如权利要求29所述的方法,其中,所述总线地址具有多个访问粒度。
31.如权利要求28所述的方法,其中,进一步包括步骤e):
通过IRQ中断方式向所述集成电路的内部单元报告发生异常情况的事件。
32.一种计算机可读存储介质,其上存储计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求25-31中任意一项所述的方法。
CN202010934303.6A 2020-09-08 2020-09-08 集成电路、用于维护调试集成电路的方法和接口电路 Pending CN112559275A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010934303.6A CN112559275A (zh) 2020-09-08 2020-09-08 集成电路、用于维护调试集成电路的方法和接口电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010934303.6A CN112559275A (zh) 2020-09-08 2020-09-08 集成电路、用于维护调试集成电路的方法和接口电路

Publications (1)

Publication Number Publication Date
CN112559275A true CN112559275A (zh) 2021-03-26

Family

ID=75041121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010934303.6A Pending CN112559275A (zh) 2020-09-08 2020-09-08 集成电路、用于维护调试集成电路的方法和接口电路

Country Status (1)

Country Link
CN (1) CN112559275A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558332A (zh) * 2004-01-18 2004-12-29 中兴通讯股份有限公司 一种实现自动读写内部集成电路设备的装置和方法
CN102033807A (zh) * 2010-12-17 2011-04-27 青岛海信信芯科技有限公司 Soc芯片调试设备、方法及装置
CN103472748A (zh) * 2013-09-04 2013-12-25 青岛海信信芯科技有限公司 时序控制电路的验证系统和验证方法
CN104407956A (zh) * 2014-12-03 2015-03-11 天津大学 通过串口调试的iic总线实验装置
CN105808396A (zh) * 2016-03-04 2016-07-27 浙江大华技术股份有限公司 一种芯片调试装置、调试方法及soc芯片系统
CN109918303A (zh) * 2019-03-05 2019-06-21 杭州嘉楠耘智信息科技有限公司 一种芯片、芯片调试方法及装置、设备、介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558332A (zh) * 2004-01-18 2004-12-29 中兴通讯股份有限公司 一种实现自动读写内部集成电路设备的装置和方法
CN102033807A (zh) * 2010-12-17 2011-04-27 青岛海信信芯科技有限公司 Soc芯片调试设备、方法及装置
CN103472748A (zh) * 2013-09-04 2013-12-25 青岛海信信芯科技有限公司 时序控制电路的验证系统和验证方法
CN104407956A (zh) * 2014-12-03 2015-03-11 天津大学 通过串口调试的iic总线实验装置
CN105808396A (zh) * 2016-03-04 2016-07-27 浙江大华技术股份有限公司 一种芯片调试装置、调试方法及soc芯片系统
CN109918303A (zh) * 2019-03-05 2019-06-21 杭州嘉楠耘智信息科技有限公司 一种芯片、芯片调试方法及装置、设备、介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐新艳: "《计算机电路基础》", 28 February 2002, 京:高等教育出版社, pages: 164 - 166 *

Similar Documents

Publication Publication Date Title
US7058855B2 (en) Emulation interface system
US7810004B2 (en) Integrated circuit having a subordinate test interface
CN110213143B (zh) 一种1553b总线ip核及监视系统
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
US9684583B2 (en) Trace data export to remote memory using memory mapped write transactions
US8275579B2 (en) Communication of a diagnostic signal and a functional signal by an integrated circuit
CN107992390B (zh) 一种基于片上总线的芯片调试方法
US9552279B2 (en) Data bus network interface module and method therefor
JP2017537382A (ja) 電子システムにおけるマルチインターフェースデバッギングのための組込みユニバーサルシリアルバス(usb)デバッグ(eud)
EP1172730A2 (en) One-chip system large-scale integrated circuit including processor circuit and its pheripheral circuits
US8020058B2 (en) Multi-chip digital system having a plurality of controllers with self-identifying signal
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US20030191624A1 (en) Debug function built-in type microcomputer
EP3961403A1 (en) Bus monitoring device and method, storage medium, and electronic device
KR100801759B1 (ko) 슬레이브의 디버깅 방법 및 시스템
US6529979B1 (en) Method and apparatus for a high-speed serial communications bus protocol with positive acknowledgement
CN112559275A (zh) 集成电路、用于维护调试集成电路的方法和接口电路
US7281162B2 (en) Program-controlled unit
US7526691B1 (en) System and method for using TAP controllers
US20060117226A1 (en) Data communication system and data communication method
US7000148B2 (en) Program-controlled unit
US20160282408A1 (en) Integrated Circuit Including a Programmable Logic Analyzer with Enhanced and Debugging Capabilities and a Method Therefor
CN113009315A (zh) 接口转换电路、芯片、芯片测试系统及方法
WO2014027223A1 (en) Data bus network interface module and method therefor
US5121393A (en) System for testing a microprocessor

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