CN105095040A - 一种芯片调试方法与装置 - Google Patents

一种芯片调试方法与装置 Download PDF

Info

Publication number
CN105095040A
CN105095040A CN201410194282.3A CN201410194282A CN105095040A CN 105095040 A CN105095040 A CN 105095040A CN 201410194282 A CN201410194282 A CN 201410194282A CN 105095040 A CN105095040 A CN 105095040A
Authority
CN
China
Prior art keywords
debugging
clock
kernel
debug
instruction
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.)
Granted
Application number
CN201410194282.3A
Other languages
English (en)
Other versions
CN105095040B (zh
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.)
Ruili Flat Core Microelectronics Guangzhou Co Ltd
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN201410194282.3A priority Critical patent/CN105095040B/zh
Publication of CN105095040A publication Critical patent/CN105095040A/zh
Application granted granted Critical
Publication of CN105095040B publication Critical patent/CN105095040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供了一种芯片调试方法,该方法包括以下:***接收调试信号,进入调试模式,同时进行时钟切换,由调试时钟控制芯片的内核与外设;根据调试需要,可选的进行单步调试、指令***、内核执行、外部数据存储器调试、特殊寄存器调试或内部寄存器调试。本发明在几乎不改动内核的基础上,通过四种不同的调试入口进入调试状态,解决了指令编码长度不一、指令执行周期不一致给调试带来的困难,完成了芯片调试功能。

Description

一种芯片调试方法与装置
技术领域
本发明涉及一种芯片调试方法,特别的,涉及一种JTAG片上调试方法。
背景技术
随着集成电路技术的快速发展,片上***的功能和复杂度越来越高,在开发过程中,不可避免的会出现各种错误,只有经过反复的调试修正才能满足设计要求。据统计,调试一般占用整个***开发时间的20%-50%,俨然已成为集成电路开发的关键环节,因此调试工具的开发就变得尤为重要。
如何有效地访问集成电路内部的信号是对片上***进行调试的关键。通过增加可访问测试端口来实现调试的方法会使得芯片面积过大,引起信号完整性问题,甚至需要重新进行设计。这就需要在芯片面积与可访问能力之间寻求一个平衡,即以尽量小的代价增加可访问的信号。
JTAG的出现解决了这一问题。目前,工业界和学术界都在IEEE1149.1的基础上对JATG进行了广泛的应用开发,金辉等人发表的《基于JTAG标准的处理器片上调试的分析和实现》中设计的JTAG片上调试***实现了调试的基本功能,但它对处理器内核进行了一系列修改;ARM的JTAG已经很成熟,但是它的指令具有固定编码长度,这对于指令***等操作更容易,而IC设计应用范围最广的DW-8051指令的编码长度和执行周期并不相同。本发明为了增强该***的可调试性以及提高***可靠性,基于IEEE1149.1标准,在几乎不改动内核的基础上,设计了JTAG片上调试***。
发明内容
本发明涉及一种芯片调试方法,在不改变内核的条件下,解决了指令编码长度不一以及指令执行周期不一致给调试带来的困难,实现了单步执行、指令***等功能。具体的,该方法包括以下步骤:
***接收调试信号,进入调试模式,同时进行时钟切换,由调试时钟控制芯片的内核与外设;
根据调试需要,可选的进行单步调试、指令***、内核执行、外部数据存储器调试、特殊寄存器调试或内部寄存器调试。
其中,进入调试模式的途径可以是状态位置低、调试接口单元发出的请求信号、触发断点或者触发观察点,其中,只有在***处于非安全模式下才可以通过后三种方法进入调试模式。
其中,采用门控时钟和多路选择器来实现时钟切换,即进入调试模式后,内核和外设的时钟被门控,内核停止指令执行,芯片调试模块输出状态位有效信号,重新给外设时钟驱动,这时外设时钟为调试时钟。
其中,所述的内核程序重启、运行、停止通过时钟切换协助完成,即在调试过程中,内核时钟是停止的,只有当单步执行和***指令执行时,内核才有时钟驱动,此时时钟来源于调试模块输出调试时钟。根据权利要求1所述的芯片调试方法,其特征在于,单步调试和指令***操作时,内核与内部ram、外部数据存储器、外设重新建立连接,操作完成连接关系解除。
其中,***处于调试状态时,除了单步调试和指令***的指令执行阶段,内核与内部寄存器,外部数据存储器以及特殊功能寄存器是断开连接的。
相应的,本发明提供了一种芯片调试装置,该装置包括:信号接收模块、调试状态判断模块、单步调试模块、指令***模块、内核执行模块、外部数据存储器调试模块、特殊寄存器调试模块以及内部寄存器调试模块。
从上述技术方案可以看出,本发明具有以下有益效果:几乎没有改动内核,不需要繁多的现场保护措施,结构简单、代价小;时钟控制网络利用门控时钟和设计上严格保证门控单元控制信号的时序关系,时钟切换具有稳定有效的时钟输出;解决了指令编码长度不一、指令执行周期不一致给调试带来的困难。
附图说明
图1芯片调试硬件结构图;
图2调试入口及进入调试状态后***各部分的时钟状态;
图3单步调试、指令***流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,本发明实施例中芯片调硬件结构图。硬件平台采用8位MCU,该平台采用DW-8051内核,采用16位地址总线,8位数据总线的方式,进行数据传输。可以看出,所述***结构基于8051内核,包括ADC、CAN、LIN、PWM等外设,一个32k的外部数据存储器,一个64k的程序存储器和256Byte的内部ram。内核通过访问特殊功能寄存器sfr,控制外设的工作状态,通过存储器地址和数据线读写数据和程序存储器,通过内部ram地址和数据线读写内部ram。
具体的,本发明实例将结合***进入调试模式、单步调试、指令***、访问内部ram、外部数据存储器、特殊功能寄存器、退出调试状态等过程分别进行详细说明。
首先,***进入调试模式,根据本发明,***可通过四条途径进入调试模式,如图2所示,下面将对这四种情况逐一说明。
在实施例1中,复位时P0.7/DEBUG置低,***自动进入调试模式,之后指令寄存器中移入4'b0011,执行go指令,***由调试状态回到正常工作状态。
在实施例2中,***在非安全模式下,通过JTAG调试接口控制单元发出request请求信号,内核在执行完当前指令后,进入调试状态,之后指令寄存器移入指令4'b0100,执行指令Debug_Register,选择调试接口寄存器,配置断点、观察点、单步调试等调试信息;最后令寄存器中移入4'b0011,执行go指令,***由调试状态回到正常工作状态。
在实施例3中,***在非安全模式下,内核输出pc值,即当前执行指令的地址与断点寄存器地址匹配,通过触发断点进入调试状态,内核在执行完当前指令后,进入调试状态;之后执行单步调试操作,指令***操作;最后指令寄存器中移入4'b0011,执行go指令,***由调试状态回到正常工作状态。
在实施例4中,***在非安全模式下,内核访问外部数据存储器,且当前执行的地址和数据与断点寄存器地址和数据匹配,通过触发观察点进入调试状态,内核在执行完当前指令后,进入调试状态;之后根据调试需要访问内部ram、外部数据存储器或特殊功能寄存器;最后指令寄存器中移入4'b0011,执行go指令,***由调试状态回到正常工作状态。
***进入调试模式的同时,采用门控时钟和多路选择器进行时钟切换,内核和外设的时钟被门控,内核停止指令执行,调试模块输出状态位有效信号,重新给外设时钟驱动,这时外设时钟为调试时钟TCK。
***进入调试模式后,根据调试需要选择单步调试、内核执行等不同的调试过程,下面将结合图3,对单步调试和内核执行的过程进行详细说明。
在实施例5中,***进入调试模式之后,进行单步调试操作,具体步骤如下:
在步骤S101中,***进入调试状态后,指令寄存器移入指令4'b0100,执行指令Debug_Register,选择调试接口寄存器,单步调试控制寄存器移入“1”,调试模块发起单步调试命令。
在步骤S102中:调试模块输出单步执行时钟使能信号,作为调试时钟TCk门控控制信号,其输出作为内核时钟输入;
在步骤S103中:内核与程序存储器重新建立起连接关系;内核与内部ram、外部数据存储器、外设也重新建立连接关系;
在步骤S104中:内核根据pc值,从程序存储器取指令,开始执行指令,这时pc值按照程序运行正常变化;
在步骤S105中:当该条指令执行完,调试模块检测到指令执行完毕标志;调试模块停止调试时钟输出到内核,内核程序运行停止,同时内核与程序存储器断开连接,单步调试操作完成。
在实施例6中,***进入调试模式之后,进行指令***操作,具体步骤如下:
在步骤S201中,***进入调试状态后,指令寄存器移入指令4'b0100,执行指令Instruction_Insert,这时扫描链1连接至TDI和TDO之间。
在步骤S202中,根据***指令的二进制编码长度,决定采用专用扫描链,***指令MOV9aH,#55H。
在步骤S203中,指令输入扫描链完成update操作后,调试模块输出指令***时钟使能信号,作为调试时钟TCK门控控制信号,其输出作为内核时钟输入;
在步骤S204中,与此同时,内核与内部ram、外部数据存储器、外设重新建立连接关系;
在步骤S205中,当该级流水线执行完毕,调试模块检测内核执行停止标志;调试模块停止调试时钟输出到内核,内核程序运行停止,同时内核与内部ram、外部数据存储器、外设断开连接;
在步骤S206中,按TAP控制器控制,依次移入8’h99并重复步骤S203至S205,接下来按TAP控制器控制,依次移入8’h55,并重复步骤S203至S205。
在步骤S207中,重复上述步骤,直至所有指令***完毕,最后查看指令执行结果,完成指令***操作。
在***进入调试模式之后,可选的,还可以进行内核执行、外部数据存储器调试、特殊寄存器调试或内部寄存器调试等操作。
在实施例7中,***进入调试模式之后,对外部数据存储器进行调试,具体的,
首先,***进入调试状态后,指令寄存器移入指令4'b0110,执行指令DM_Control,这时扫描链2连接至TDI和TDO之间,扫描链2长度为34,16位外部数据存储器地址,8位数据输出位,8位数据输入位,1位读信号,1位写信号;
其次,按TAP控制器控制,执行capture操作,通过capture得到指令执行结果,即读取对外部数据存储器执行读写操作结果;
接下来,按TAP控制器控制,执行shift操作,按位依次移入数据,8bit数据输出8′hbd,写操作有效,地址16′h1234,数据输入8′ha2;
最后按TAP控制器控制,执行update操作,完成对外部数据存储器写操作,外部数据存储器地址16′h1234,写入8′ha2,完成调试。
在实施例8中,***进入调试模式之后,对特殊功能寄存器进行调试,具体的,
首先,***进入调试状态后,指令寄存器移入指令4'b0111,执行指令SFR_Control,这时扫描链3连接至TDI和TDO之间,扫描链3长度为28,8位sfr地址,8位sfr数据输出位,8位sfr数据输入位,1位读信号,1位写信号;
其次,按TAP控制器控制,执行capture操作,通过capture得到指令执行结果,即读取对特殊功能寄存器执行读写操作结果;
接下来,按TAP控制器控制,执行shift操作,按位依次移入数据,8bit数据输出8′ha9,写操作有效,地址8′hb2,数据输入8′hbf;
最后按TAP控制器控制,执行update操作,完成对特殊功能寄存器写操作,地址8′hb2,写入8′hbf,控制外设工作状态,完成调试。
在实施例9中,***进入调试模式之后,对内部寄存器进行调试,具体的,
首先,***进入调试状态后,指令寄存器移入指令4'b1000,执行指令Iram_Control,这时扫描链4连接至TDI和TDO之间,扫描链4长度为26,8位内部ram地址,8位数据输出位。8位数据输入位,1位读信号,1位写信号;
其次,按TAP控制器控制,执行capture操作,通过capture得到指令执行结果,即读取对内部ram执行读写操作结果;
接下来,按TAP控制器控制,执行shift操作,按位依次移入数据,8bit数据输出8′ha9,写操作有效,地址8′he5,数据输入8′h9f;
最后按TAP控制器控制,执行update操作,地址8′he5,写入8′h9f完成对内部ram写操作。
以上公开仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何本领域的技术人员能思之的变化都应属于本发明的保护范围内。

Claims (10)

1.一种芯片调试方法,该方法包括以下步骤:
a)***接收调试信号,进入调试模式,同时进行时钟切换,由调试时钟控制芯片的内核与外设;
b)根据调试需要,可选的进行单步调试、指令***、内核执行、外部数据存储器调试、特殊寄存器调试或内部寄存器调试。
2.根据权利要求1所述的芯片调试方法,其特征在于,进入调试模式的途径可以是状态位置低、调试接口单元发出的请求信号、触发断点或者触发观察点,其中,只有在***处于非安全模式下才可以通过后三种方法进入调试模式。
3.根据权利要求1所述的芯片调试方法,其特征在于,采用门控时钟和多路选择器来实现时钟切换,即进入调试模式后,内核和外设的时钟被门控,内核停止指令执行,芯片调试模块输出状态位有效信号,重新给外设时钟驱动,这时外设时钟为调试时钟。
4.根据权利要求1所述的芯片调试方法,其特征在于,所述的内核程序重启、运行、停止通过时钟切换协助完成,即在调试过程中,内核时钟是停止的,只有当单步执行和***指令执行时,内核才有时钟驱动,此时时钟来源于调试模块输出调试时钟。
5.根据权利要求1所述的芯片调试方法,其特征在于,单步调试和指令***操作时,内核与内部ram、外部数据存储器、外设重新建立连接,操作完成连接关系解除。
6.根据权利要求1所述的芯片调试方法,其特征在于,***处于调试状态时,除了单步调试和指令***的指令执行阶段,内核与内部寄存器,外部数据存储器以及特殊功能寄存器是断开连接的。
7.一种芯片调试装置,该装置包括:信号接收模块、时钟控制模块以及调试模块,其特征在于,
所述信号接收模块用于接收进入调试模式的指令,该指令可以是状态位置低、调试接口单元发出的请求信号、触发断点或者触发观察点,其中,只有在***处于非安全模式下才可以通过后三种方法进入调试模式;
所述时钟控制模块采用门控时钟和多路选择器实现,即进入调试模式后,内核和外设的时钟被门控,内核停止指令执行,芯片调试模块输出状态位有效信号,重新给外设时钟驱动,这时外设时钟为调试时钟;
所述调试模块包括:单步调试模块、指令***模块、内核执行模块、外部数据存储器调试模块、特殊寄存器调试模块以及内部寄存器调试模块。
8.根据权利要求7所述的芯片调试装置,其特征在于,所述的内核程序重启、运行、停止通过时钟切换协助完成,即在调试过程中,内核时钟是停止的,只有当单步执行和***指令执行时,内核才有时钟驱动,此时时钟来源于调试模块输出调试时钟。
9.根据权利要求7所述的芯片调试装置,其特征在于,调试模式为所述单步调试模块和指令***模块时,内核与内部ram、外部数据存储器、外设重新建立连接,操作完成连接关系解除。
10.根据权利要求7所述的芯片调试装置,其特征在于,***处于调试状态时,除了单步调试和指令***的指令执行阶段,内核与内部寄存器,外部数据存储器以及特殊功能寄存器是断开连接的。
CN201410194282.3A 2014-05-08 2014-05-08 一种芯片调试方法与装置 Active CN105095040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410194282.3A CN105095040B (zh) 2014-05-08 2014-05-08 一种芯片调试方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410194282.3A CN105095040B (zh) 2014-05-08 2014-05-08 一种芯片调试方法与装置

Publications (2)

Publication Number Publication Date
CN105095040A true CN105095040A (zh) 2015-11-25
CN105095040B CN105095040B (zh) 2019-03-26

Family

ID=54575536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410194282.3A Active CN105095040B (zh) 2014-05-08 2014-05-08 一种芯片调试方法与装置

Country Status (1)

Country Link
CN (1) CN105095040B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193705A (zh) * 2017-06-22 2017-09-22 湖南国科微电子股份有限公司 一种芯片调试方法及装置
CN107239614A (zh) * 2017-06-05 2017-10-10 芯海科技(深圳)股份有限公司 一种外部事件触发断点的芯片仿真方法
CN107607853A (zh) * 2017-08-18 2018-01-19 北京集创北方科技股份有限公司 芯片的调试方法、装置、存储介质和处理器
CN107704346A (zh) * 2017-08-08 2018-02-16 湖南国科微电子股份有限公司 Soc芯片调试方法及调试***
CN111858205A (zh) * 2020-06-30 2020-10-30 浪潮(北京)电子信息产业有限公司 一种芯片调试方法和***
CN112255534A (zh) * 2020-10-14 2021-01-22 天津津航计算技术研究所 一种基于fpga的ip核模块调试***
CN112506727A (zh) * 2020-12-16 2021-03-16 珠海昇生微电子有限责任公司 一种芯片调试、测试以及固件更新的方法及其***
CN114625639A (zh) * 2022-03-03 2022-06-14 上海先楫半导体科技有限公司 一种基于片上***的调试方法、***以及芯片
CN112506727B (zh) * 2020-12-16 2024-07-02 珠海昇生微电子有限责任公司 一种芯片调试、测试以及固件更新的方法及其***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154184A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器jtag调试方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154184A (zh) * 2006-09-29 2008-04-02 上海海尔集成电路有限公司 一种微控制器jtag调试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邓囧 等: "面上车身控制应用的8位MCU JTAG片上调试模块设计", 《科学技术与工程》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239614A (zh) * 2017-06-05 2017-10-10 芯海科技(深圳)股份有限公司 一种外部事件触发断点的芯片仿真方法
CN107193705B (zh) * 2017-06-22 2020-10-23 湖南国科微电子股份有限公司 一种芯片调试方法及装置
CN107193705A (zh) * 2017-06-22 2017-09-22 湖南国科微电子股份有限公司 一种芯片调试方法及装置
CN107704346B (zh) * 2017-08-08 2021-07-27 湖南国科微电子股份有限公司 Soc芯片调试方法及调试***
CN107704346A (zh) * 2017-08-08 2018-02-16 湖南国科微电子股份有限公司 Soc芯片调试方法及调试***
CN107607853B (zh) * 2017-08-18 2020-03-17 北京集创北方科技股份有限公司 芯片的调试方法、装置、存储介质和处理器
CN107607853A (zh) * 2017-08-18 2018-01-19 北京集创北方科技股份有限公司 芯片的调试方法、装置、存储介质和处理器
CN111858205A (zh) * 2020-06-30 2020-10-30 浪潮(北京)电子信息产业有限公司 一种芯片调试方法和***
CN111858205B (zh) * 2020-06-30 2022-07-08 浪潮(北京)电子信息产业有限公司 一种芯片调试方法和***
CN112255534A (zh) * 2020-10-14 2021-01-22 天津津航计算技术研究所 一种基于fpga的ip核模块调试***
CN112506727A (zh) * 2020-12-16 2021-03-16 珠海昇生微电子有限责任公司 一种芯片调试、测试以及固件更新的方法及其***
CN112506727B (zh) * 2020-12-16 2024-07-02 珠海昇生微电子有限责任公司 一种芯片调试、测试以及固件更新的方法及其***
CN114625639A (zh) * 2022-03-03 2022-06-14 上海先楫半导体科技有限公司 一种基于片上***的调试方法、***以及芯片
CN114625639B (zh) * 2022-03-03 2024-05-28 上海先楫半导体科技有限公司 一种基于片上***的调试方法、***以及芯片

Also Published As

Publication number Publication date
CN105095040B (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN105095040A (zh) 一种芯片调试方法与装置
US8656220B2 (en) System-on-chip and debugging method thereof
CN104471545B (zh) 具有基于中断状态的可配置断点的装置
US7644310B2 (en) Semiconductor IC incorporating a co-debugging function and test system
CN111308329B (zh) 用于众核计算芯片可测性设计的电路、装置及方法
CN106484581B (zh) 空间辐射环境下可编程soc器件单粒子翻转检测***及方法
CN1507567A (zh) 测试存取端口的数据同步
US10078113B1 (en) Methods and circuits for debugging data bus communications
CN104272271B (zh) 具有指令跟踪能力的处理器装置
US9222976B1 (en) Methods and circuits for debugging multiple IC packages
US20190187210A1 (en) Test access port with address and command capability
CN102419415B (zh) 一种基于边界扫描电路的tap接口优化电路
CN107290654A (zh) 一种fpga逻辑测试结构及方法
CN100492315C (zh) 嵌入式信号处理器模拟器
CN101782626B (zh) 一种jtag端口控制器
US11353509B2 (en) Digital circuit robustness verification method and system
CN106991022B (zh) 一种基于扫描链的芯片分析方法
US9581643B1 (en) Methods and circuits for testing partial circuit designs
CN111459785B (zh) 一种芯片调试模式下时钟处理电路及其时钟处理方法
CN203573309U (zh) 嵌入式***存储器的测试结构
TWI544224B (zh) 以掃描鏈對記憶體存取之晶片測試系統及其方法
CN105527896A (zh) 十二通道隔离型测速板卡
CN203930004U (zh) 一种智慧型数字集成电路故障检测***
US20060259664A1 (en) Real-time prioritization of stall or event information
US20240003972A1 (en) Method and system for testing semiconductor circuits

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201216

Address after: 510000 601, building a, 136 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: AoXin integrated circuit technology (Guangdong) Co.,Ltd.

Address before: 100029 Beijing city Chaoyang District Beitucheng West Road No. 3

Patentee before: Institute of Microelectronics, Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220429

Address after: 510000 room 710, Jianshe building, No. 348, Kaifa Avenue, Huangpu District, Guangzhou, Guangdong

Patentee after: Ruili flat core Microelectronics (Guangzhou) Co.,Ltd.

Address before: 510000 601, building a, 136 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: AoXin integrated circuit technology (Guangdong) Co.,Ltd.