CN107430167B - 半导体装置和诊断测试方法 - Google Patents

半导体装置和诊断测试方法 Download PDF

Info

Publication number
CN107430167B
CN107430167B CN201580078737.8A CN201580078737A CN107430167B CN 107430167 B CN107430167 B CN 107430167B CN 201580078737 A CN201580078737 A CN 201580078737A CN 107430167 B CN107430167 B CN 107430167B
Authority
CN
China
Prior art keywords
test
circuit
scan
semiconductor device
diagnosis
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.)
Active
Application number
CN201580078737.8A
Other languages
English (en)
Other versions
CN107430167A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN107430167A publication Critical patent/CN107430167A/zh
Application granted granted Critical
Publication of CN107430167B publication Critical patent/CN107430167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318555Control logic
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318544Scanning methods, algorithms and patterns
    • G01R31/318547Data generators or compressors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318566Comparators; Diagnosing the device under test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318569Error indication, logging circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318594Timing aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

根据本发明的半导体装置(1)包括具有扫描链的待测试电路(2)以及通过使用扫描链执行待测试电路的扫描测试的第一测试控制装置(3)和第二测试控制装置(4)。第二测试控制装置(4)执行待测试电路(2)的第二扫描测试,待测试电路(2)向第一测试控制装置(3)提供指令,以在执行第二扫描测试之后执行第一扫描测试,并且第一测试控制装置(3)响应于来自待测试电路的指令(2)执行待测试电路(2)的第一扫描测试。

Description

半导体装置和诊断测试方法
技术领域
本发明涉及半导体装置和诊断测试方法,并且特别地涉及一种用于执行待测试电路的扫描测试的技术。
背景技术
近年来,汽车越来越电气化和电子化,并且半导体装置不仅被用于窗户或灯具等的车身控制,还被用于直接影响乘客和行人安全的机构,例如,如刹车或转向的底盘控制、如当今的冲突回避的高级驾驶援助系统。对于这种半导体装置,其功能要求高度安全性。汽车功能安全标准ISO26262规定了根据其应用和社会环境提高安全性的必要性。
例如,一种已知的措施是将能够检测单点故障(SPF)和潜在故障(LF)的安全机构并入到半导体装置中,所述单点故障是由于单一故障引起的故障,所述潜在故障(LF)是由同时发生的多个故障引起的故障。换句话说,需要能够检测SPF和LF两者的具有增强的可靠性的半导体装置。
专利文献1公开了一种控制装置,其通过在两个处理器中执行相同的计算、通过比较器比较计算结果以确定计算结果是否匹配来诊断处理器是否正常。此外,该控制装置通过BIST(内建自测试)诊断比较器,进一步提高了可靠性。然而,如后面所述,该控制装置没有公开在不需要多个待测试电路的情况下用于检测SPF和LF两者的技术。
引用列表
专利文献
PTL1:日本未审查专利申请公开No.2008-267999
发明内容
技术问题
如上所述,存在以下问题:不存在在不需要多个待测试电路的情况下能够检测SPF和LF两者的、具有增强的可靠性的半导体装置。
本发明的其他问题和新颖特征将从说明书和附图的描述中变得显而易见。
问题的解决方案
根据一个实施例,在半导体装置中,在第二测试控制装置执行待测试电路的第二扫描测试之后,待测试电路向第一测试控制装置给出用于执行第一扫描测试的指令。
发明的有益效果
根据上述一个实施例,可以提供具有增强的可靠性的半导体装置。
附图说明
图1是示出根据实施例的半导体装置的示意性配置的框图。
图2是示出根据第一实施例的半导体装置的配置的框图。
图3是示出根据第一实施例的半导体装置的操作的框图。
图4是示出根据第一实施例的变形例的半导体装置的配置的框图。
图5是示出根据第二实施例的半导体装置的配置的框图。
图6是示出根据第三实施例的半导体装置的配置的框图。
图7是示出根据第三实施例的半导体装置的操作的框图。
图8是示出根据第四实施例的半导体装置的配置的框图。
图9是示出根据第四实施例的半导体装置的操作的框图。
图10是示出根据第五实施例的半导体装置的配置的框图。
图11是示出根据第六实施例的半导体装置的配置的框图。
图12是示出根据第七实施例的半导体装置的配置的框图。
图13是示出根据第七实施例的半导体装置的前一半操作的框图。
图14是示出根据第七实施例的半导体装置的后一半操作的框图
图15是示出根据第八实施例的半导体装置的配置的框图。
图16是示出根据第八实施例的半导体装置的前一半操作的框图。
图17是示出根据第八实施例的半导体装置的后一半操作的框图。
具体实施方式
以下,参照附图对本发明的优选实施例进行说明。应当注意,以下实施例中给出的具体数值等仅仅是出于说明的目的,并且除非特别指出,否则所述值不限于此。此外,在下面的说明书和附图中,适当地省略、缩短和简化对本领域技术人员而言显而易见的事情以使得说明清楚。
<实施例的概述>
稍后将描述根据实施例的半导体装置的示意性配置,下面将参照图1进行描述。图1是示出作为根据稍后将描述的实施例的半导体装置的概述的半导体装置的框图。
半导体装置(1)包括待测试电路(2)、第一测试控制装置(3)、第二测试控制装置(4)和公共结果确定装置(5)。
待测试电路(2)具有扫描链。第一测试控制装置(3)和第二测试控制装置(4)中的每一个装置使用待测试电路的扫描链(2)并执行待测试电路(2)的扫描测试。公共结果确定装置(5)确定通过由第一测试控制装置(3)和第二测试控制装置(4)中的每一个装置执行的扫描测试所获得的待测试电路(2)的测试结果。
第二测试控制装置(4)将测试模式扫描到待测试电路(2)的扫描链中,使待测试电路(2)在测试模式中操作,并将测试结果从待测试电路(2)的扫描链扫描出。第二测试控制装置(4)将测试结果输出到公共结果确定装置(5)。基于来自第二测试控制装置(4)的测试结果输出,公共结果确定装置(5)确定在待测试电路(2)中是否发生故障。
第二测试控制装置(4)执行待测试电路(2)的扫描测试。在第二测试控制装置(4)执行待测试电路(2)的扫描测试之后,待测试电路(2)向第一测试控制装置(3)提供用于执行扫描测试的指令。响应于来自待测试电路(2)的用于扫描测试的指令,第一测试控制装置(3)执行待测试电路(2)的扫描测试。
以这种方式,通过由第一测试控制装置(3)执行的扫描测试,可以检测待测试电路(2)的正常功能中的故障(即,SPF)。此外,通过由第二测试控制装置(4)执行的扫描测试,可以检测功能中的故障(即LF),以发起通过第一测试控制装置(3)的扫描测试。由此可以检测SPF和LF两者并增强半导体装置(1)的可靠性。
<第一实施例>
[总体配置]
下面描述第一实施例。以下参照图2描述根据第一实施例的半导体装置(1A)的配置。图2是示出根据第一实施例的半导体装置(1A)的配置的框图。
如图2所示,半导体装置(1A)包括作为实现其功能的元件的CPU(10)、内部存储器(11)、外部I/F(接口)(12)、系统总线(13)和系统控制电路(15)。
CPU(10)、内部存储器(11)和外部I/F(12)通过系统总线(13)彼此连接。因此,在CPU(10)、内部存储器(11)和外部I/F(12)之间传送必要的数据。
CPU(10)运行用于半导体装置(1A)的应用程序来操作。因此,应用程序包含用于使CPU(10)执行各种处理以实现半导体装置(1A)中的功能的多个指令。CPU(10)是运行应用程序并由此对半导体装置(1A)进行控制的运算电路。
在第一实施例中,假设CPU(10)是待测试电路。CPU(10)具有多个扫描链。可以通过使用多个扫描链的扫描测试来诊断CPU(10)。
内部存储器(11)是存储要由CPU(10)使用以执行上述各种处理的数据的存储电路。因此,例如,数据包含上述应用程序。CPU(10)读取存储在内部存储器(11)中的数据,并且基于读取的数据执行处理。此外,CPU(10)将通过执行处理生成的数据写入到内部存储器(11)。例如,内部存储器(11)是诸如RAM(随机存取存储器)的易失性存储器。
外部I/F(12)也连接到放置在半导体装置(1A)外部的外部存储器(14)。外部I/F(12)是在外部存储器(14)和连接到系统总线(13)的电路(CPU(10)等)之间发送和接收数据的电路。因此,CPU(10)通过系统总线(13)和外部I/F(12)读取存储在外部存储器(14)中的数据以及将数据写入外部存储器(14)。
外部存储器(14)是存储任意数据的存储电路。外部存储器(14)还可以存储要由CPU(10)使用以执行上述各种处理的数据。例如,外部存储器(14)可以预先存储上述应用程序。然后,CPU(10)可以将存储在外部存储器(14)中的应用程序加载到内部存储器(11)并运行程序。具体地,CPU(10)可以读取存储在外部存储器(14)中的数据,并且基于读取的数据执行处理。此外,CPU(10)可以将通过处理的执行而生成的数据写入外部存储器(14)。例如,外部存储器(14)是诸如ROM(只读存储器)或闪存(FLASH)存储器的非易失性存储器。
在第一实施例中,待用于执行CPU(10)的扫描测试的多个测试模式被存储在内部存储器(11)或外部存储器(14)中。
系统控制电路(15)进行半导体装置(1A)的诸如启动等的整体控制。系统控制电路(15)通过系统总线(13)或者直接连接的信号线执行CPU(10)、内部存储器(11)和外部I/F(12)的各种控制,例如重置(reset)控制。此外,系统控制电路(15)通过直接连接的时钟信号线(未示出)向CPU(10)、内部存储器(11)和外部I/F(12)供给时钟。
半导体装置(1A)包括作为第一测试控制装置(3)的第一测试控制电路(100)、模式输入电路(101)、第一结果压缩电路(206)和第一预期值存储器电路(103)。此外,半导体装置(1A)包括作为第二测试控制装置(4)的第二测试控制电路(200)、模式生成电路(201)、第二结果压缩电路(207)和第二预期值存储电路(203)。此外,半导体装置(1A)包括作为公共结果确定装置(5)的递归压缩电路(208)、比较电路(209)和定时器(205)。
[第一测试控制装置(3)]
第一测试控制装置(3)的组合元件如上面在整体配置的描述中所述。第一测试控制电路(100)通过系统总线(13)连接到CPU(10)。第一测试控制电路(100)响应于来自CPU(10)的请求而执行CPU(10)的扫描测试。
模式输入电路(101)连接到第一测试控制电路(100)和系统总线(13)。响应于来自第一测试控制电路(100)的请求,模式输入电路(101)通过系统总线(13)从内部存储器(11)或外部存储器(14)读取多个测试模式。注意,例如在其中测试模式被预存储在外部存储器(14)中的情况下,CPU(10)可以在半导体装置(1A)的启动的完成之后将它们从外部存储器(14)传送到内部存储器(11)。然后,模式输入电路(101)可以读取已经传送到内部存储器(11)的测试模式。
此外,模式输入电路(101)通过选择电路(300)与CPU(10)连接。模式输入电路(101)通过选择电路(300)将多个读取测试模式顺序地供给到CPU(10)的多个扫描链。
具体而言,一个测试模式是具有位数与CPU(10)的扫描链的数量相同的数据。每一个移位周期(一个时钟),一个测试模式被输入到多个扫描链。在存储在外部存储器(14)或内部存储器(11)中的测试模式的位数小于CPU(10)的扫描链的数量的情况下(即,在采用压缩扫描测试的情况下),模式输入电路(101)将测试模式扩展为具有位数与CPU(10)的扫描链的数量相同的数据并将其输入到扫描链。
第一结果压缩电路(206)在空间轴方向上压缩从CPU(10)的多个扫描链输出的具有多位的测试结果。该测试结果意味着每一个移位周期从多个扫描链输出的具有多位的数据。因此,测试结果是具有多位的数据(例如,几十位到几百位),其位数与CPU(10)的扫描链的数量相同。第一结果压缩电路(206)例如通过以树结构连接异或(XOR)的压缩电路将多位的测试结果压缩为1位代码。第一测试控制装置(3)假设压缩扫描测试技术的使用。第一结果压缩电路(206)通过选择电路(301)连接到递归压缩电路(208)。第一结果压缩电路(206)通过选择电路(301)将压缩测试结果(上述代码)输出到递归压缩电路(208)。
第一预期值存储电路(103)存储第一预期值,第一预期值是通过递归压缩电路(208)压缩从第一结果压缩电路(206)输出的测试结果之后的代码的预期值。第一预期值可以根据存储在外部存储器14或内部存储器11中的多个测试模式而被预存储在第一预期值存储电路(103)中。另一方面,可以将第一预期值与多个测试模式一起预存储在外部存储器14或内部存储器11中,并且在半导体装置(1A)的启动的完成之后系统控制电路(15)可以从外部存储器14或内部存储器11读取第一预期值并将其写入第一预期值存储电路(103)。第一预期值存储电路(103)通过选择电路(302)连接到比较电路(209)。第一预期值存储电路(103)通过选择电路(302)将第一预期值输出到比较电路(209)。
[第二测试控制装置(4)]
第二测试控制装置(4)的组成元件如上文在整体配置的描述中所述。第二测试控制电路(200)连接到系统控制电路(15)。第二测试控制电路(200)响应于来自系统控制电路(15)的请求而执行CPU(10)的扫描测试。
模式生成电路(201)与第二测试控制电路(200)连接。响应于来自第二测试控制电路(200)的请求,模式生成电路(201)通过伪随机数生成多个测试模式。模式生成电路(201)通过选择电路(300)与CPU(10)连接。模式生成电路(201)通过选择电路(300)将多个生成的测试模式顺序地供给到CPU(10)的多个扫描链。
第二结果压缩电路(207)在时间轴方向上压缩从CPU(10)的多个扫描链输出的多位的测试结果。第二结果压缩电路(207)例如通过MISR(多输入签名寄存器)将所有测试结果压缩成一个多位的代码。具体地,该代码是具有位数与多个扫描链的数量相同的多位数据。注意,通过其中XOR以树结构连接的压缩电路在空间方向上被压缩的测试结果可以是MISR的输入。换句话说,代码的位数可以小于扫描链的数量。第二测试控制装置(4)假设逻辑BIST技术的使用。第二结果压缩电路(207)通过选择电路(301)连接到递归压缩电路(208)。第二结果压缩电路(207)通过选择电路(301)将压缩测试结果(上述代码)输出到递归压缩电路(208)。
第二预期值存储电路(203)存储第二预期值,第二预期值是通过递归压缩电路(208)压缩从第二结果压缩电路(207)输出的测试结果之后的代码的预期值。第二预期值由模式生成电路(201)根据由模式生成电路(201)生成的测试模式生成并存储到第二预期值存储电路(203)中。第二预期值存储电路(203)通过选择电路(302)连接到比较电路(209)。第二预期值存储电路(203)通过选择电路(302)将第二预期值输出到比较电路(209)。
应当注意,包括在半导体装置(1A)中的诸如第一预期值存储电路(103)和第二预期值存储电路(203)的存储电路是电路、寄存器、存储器等,其例如通过使用电源和接地而以固定的方式指示预定值。存储器是RAM、ROM(例如包括熔丝ROM)、闪存存储器等。这同样适用于以下描述。
[公共结果确定装置(5)]
公共结果确定装置(5)的组成元件如上面在整体配置的描述中所述。递归压缩电路(208)在时间轴方向上对经压缩的测试结果进行压缩。递归压缩电路(208)由多位的寄存器构成,该多位的寄存器使用其本身存储的数据以递归方式计算输入数据和其本身存储的数据的异或,并将计算结果存储在其本身中,例如SISR(单输入签名寄存器)。递归压缩电路(208)连接到比较电路(209)。递归压缩电路(208)将经压缩的测试结果输出到比较电路(209)。
比较电路(209)通过选择电路(302)连接到第一预期值存储电路(103)和第二预期值存储电路(203)。此外,比较电路(209)也连接到系统控制电路(15)。比较电路(209)将从递归压缩电路(208)输出的经压缩的测试结果与从第一预期值存储电路(103)或第二预期值存储电路(203)输出的预期值进行比较。当测试结果和预期值不匹配时,比较电路(209)通知系统控制电路(15)错误。另一方面,当测试结果和预期值匹配时,比较电路(209)通知系统控制电路(15)正常。
定时器(205)是监视第一测试控制电路(100)和第二测试控制电路(200)中的每一个电路的扫描测试执行时间的电路。换句话说,定时器(205)是所谓的看门狗定时器。当在从第一测试控制电路(100)或第二测试控制电路(200)通知扫描测试的发起的时间起经过预定时间之前,定时器(205)没有被通知通过第一测试控制电路(100)或第二测试控制电路(200)的扫描测试的结束时,定时器(205)通知系统控制电路(15)错误。由此,可以检测通过第一测试控制电路(100)和第二测试控制电路(200)的扫描测试没有正常结束的异常。另一方面,当在从第一测试控制电路(100)或第二测试控制电路(200)通知扫描测试的发起的时间起经过预定时间之前,定时器(205)被通知通过第一测试控制电路(100)或第二测试控制电路(200)的扫描测试的结束时,定时器(205)不通知系统控制电路(15)错误。
选择电路(300)有选择地将从模式输入电路(101)和模式生成电路(201)之一输出的测试模式输出到CPU(10)。选择电路(301)将从第一结果压缩电路(206)和第二结果压缩电路(207)之一输出的测试结果输出到递归压缩电路(208)。选择电路(302)将从第一预期值存储电路(103)和第二预期值存储电路(203)之一输出的预期值结果输出到比较电路(209)。
以下参照图3说明根据第一实施例的半导体装置(1A)的自诊断期间的操作。图3是表示根据第一实施例的半导体装置(1A)的自诊断期间的操作的流程图。
在图3中,通过箭头连接操作事件(处理块),并根据箭头的定向按时间顺序执行操作事件。分支箭头表示处理的并行执行。注意,菱形操作事件表示条件分支。在菱形操作事件中,向下箭头基本上指示当针对操作事件的条件作出正常确定时的分支目的地,并且横向方向箭头基本上指示当针对操作事件的条件作出异常确定时的分支目的地。在下文中,参考图2所示的半导体装置(1A)和图3所示的操作流程的示例来描述根据第一实施例的半导体装置(1A)的操作。
[整体操作流程]
当半导体装置(1A)通电并且第二测试控制装置(4)和公共结果确定装置(5)的重置被取消时,半导体装置(1A)首先进行检测LF的诊断。这种诊断在下文中也称为“启动时的诊断”。对于启动时的诊断,使用第二测试控制装置(4)和公共结果确定装置(5)。当未检测到LF时,半导体装置(1A)开始正常操作。
此外,在正常操作期间,半导体装置(1A)暂停处理并进行诊断用于以预定间隔检测SPF。这种诊断在下文中也称为“操作期间的诊断”。对于操作期间的诊断,使用第一测试控制装置(3)和公共结果确定装置(5)。当未检测到SPF时,半导体装置(1A)恢复正常操作。当通过启动时的诊断或操作期间的诊断检测到LF或SPF时,公共结果确定装置(5)向系统控制电路(15)通知错误。
[启动时的诊断(LF检测流程)]
当发起启动时的诊断时,系统控制电路(15)使诊断发起信号生效(assert)并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起CPU(10)的诊断的指令。响应于诊断发起信号的生效,第二测试控制电路(200)发起CPU(10)的诊断(S101)。此外,当发起诊断时,第二测试控制电路(200)控制选择电路(300、301、302)以选择第二测试控制装置(4)侧(图2中为“2”)。注意,选择电路(300、301、302)的这种控制可以在系统控制电路(15)使诊断发起信号生效之前执行。
此外,当发起诊断时,第二测试控制电路(200)向定时器(205)输出发起通知信号,所述发起通知信号通知要对CPU(10)执行的扫描测试的发起。响应于来自第二测试控制电路(200)的发起通知信号,定时器(205)发起对从发起通知信号被通知时的时间起的经过时间的测量(S102)。定时器(205)与由第二测试控制电路(200)执行的扫描测试并行地操作。当在测量的经过时间达到预定阈值之前扫描测试未完成时(即,当没有从第二测试控制电路(200)输出通知扫描测试的终止的终止通知信号时),定时器(205)向系统控制电路(15)输出通知错误(超时)的通知信号(S102:超时)。注意,当系统控制电路(15)从后面描述的比较电路(209)接收到通知信号时,可以执行终止通知信号到定时器(205)的输出。
注意,例如,阈值被预存储在半导体装置(1A)中包括的存储电路(未示出)中,并且定时器(205)参考存储在该存储电路中的阈值。虽然上面描述了其中第二测试控制电路(200)控制定时器(205)的示例,但是系统控制电路(15)可以直接控制定时器(205)。
为了发起CPU(10)的诊断,第二测试控制电路(200)向模式生成电路(201)输出用于生成测试模式的指令信号。响应于来自第二测试控制电路(200)的指令信号,模式生成电路(201)生成测试模式。针对测试模式的生成,例如利用使用LFSR(线性反馈移位寄存器)的PRPG(伪随机模式生成器)。具体地,在这种情况下,第二测试控制电路(200)包括PRPG。
以这种方式生成测试模式,是因为在半导体装置(1A)的启动期间,半导体装置(1A)中的包括系统总线(13)的许多模块处于用于诊断的休眠状态,并且不可能通过系统总线(13)从内部存储器(11)或外部存储器(14)读取测试模式。因此,将测试模式存储在存储电路中的方法可以仅以有限的方式实现,例如准备可不通过系统总线(13)访问的专用存储电路(例如,闪存存储器、ROM等)。
另一方面,在半导体装置(1A)的启动期间通过第二测试控制装置(4)和公共结果确定装置(5)的诊断中,使用伪随机数生成测试模式,这消除了对向半导体装置(1A)添加专用存储电路的需要,并降低了半导体装置(1A)的面积成本。
通过在完成系统总线(13)的诊断之后,经由系统总线(13)从内部存储器(11)或外部存储器(14)读取测试模式,消除了添加专用存储电路的需要。然而,在该方法中,在系统总线(13)的诊断完成之前,无法发起CPU(10)的启动时的诊断。这不是优选的,因为对于半导体装置而言完成启动的时间通常受到限制(例如,在50毫秒内)。另一方面,通过如上所述使用伪随机数来生成测试模式,可以在与系统总线(13)的诊断并行的情况下执行CPU(10)的启动时的诊断,由此可以减少半导体装置(1A)的启动并在时限内完成半导体装置(1A)的启动。
模式生成电路(201)将多个生成的测试模式顺序地供给到CPU(10)的扫描链,并执行CPU(10)的扫描测试。具体地说,CPU(10)利用供给到扫描链的测试模式执行操作(捕获)。作为该操作的结果,存储在扫描链中的测试结果由第二结果压缩电路(207)串行获取,并且所有测试结果被压缩成一个代码。
在供给了CPU(10)的启动时的诊断所需的所有测试模式并且由第二结果压缩电路(207)压缩了所有的测试结果之后,第二结果压缩电路(207)向递归压缩电路(208)逐位地串行输出多个测试结果(代码)。递归压缩电路(208)对从第二结果压缩电路(207)输出的压缩测试结果进行再压缩。因此,在其中递归压缩电路(208)包括SISR的情况下,测试结果(其大小是由第二结果压缩电路(207)压缩之后的多位的测试结果的位数×1)被压缩到与SISR的级数相对应的大小。递归压缩电路(208)将压缩的测试结果输出到比较电路(209)。
比较电路(209)确定从递归压缩电路(208)输出的压缩测试结果和存储在第二预期值存储电路(203)中的第二预期值是否匹配(S103)。
当比较结果为匹配时,比较电路(209)确定CPU(10)正常(S103:正常)。在这种情况下,比较电路(209)向系统控制电路(15)输出用于通知正常的通知信号。
另一方面,当比较结果不匹配时,比较电路(209)确定CPU(10)异常(S103:异常)。换句话说,在这种情况下检测到LF。在这种情况下,比较电路(209)向系统控制电路(15)输出用于通知错误的通知信号。
当从定时器(205)或比较电路(209)输出用于通知错误的通知信号时,系统控制电路(15)迅速地执行用于停止半导体装置(1A)中的系统的处理,并由此停止半导体装置(1A)中的系统(S111)。换句话说,系统控制电路(15)禁止半导体装置(1A)的启动。
此外,当扫描测试结束时,第二测试控制电路(200)向定时器(205)输出通知扫描测试的终止的终止通知信号。
[操作期间的诊断(SPF检测流程)]
当CPU(10)的LF诊断结果正常(S103:正常)时,系统控制电路(15)发起CPU(10)的启动(S104)。启动完成后,CPU(10)执行应用程序的处理(S105)。此外,在应用程序的处理中,CPU(10)还执行用于定期进行自诊断(每经过指定时间)的处理。当经过指定时间并且达到执行用于自诊断的处理的时间时(S106:是),CPU(10)使诊断发起信号生效,并将其通过系统总线(13)输出到第一测试控制电路(100),并且然后转变到停止处理的状态(例如睡眠模式)(S107),该诊断发起信号提供用于发起CPU(10)的诊断的指令。
响应于诊断发起信号的生效,第一测试控制电路(100)发起CPU(10)的诊断(S108)。此外,第一测试控制电路(100)控制选择电路(300、301、302)以选择第一测试控制装置(3)侧(图2中的“1”)。注意,可以在CPU(10)使诊断发起信号生效之前执行对选择电路(300、301、302)的这种控制。
此外,当发起诊断时,第一测试控制电路(100)向定时器(205)输出发起通知信号,该发起通知信号通知要对CPU(10)执行的扫描测试的发起。响应于来自第一测试控制电路(100)的发起通知信号,定时器(205)发起对从发起通知信号被通知时的时间起的经过时间的测量(S109)。定时器(205)与由第一测试控制电路(100)执行的扫描测试并行地操作。当在测量的经过时间达到预定阈值之前扫描测试未完成时(即,当没有从第一测试控制电路(100)输出通知扫描测试的终止的终止通知信号时),定时器(205)向系统控制电路(15)通知错误(超时)(S109:超时)。注意,当系统控制电路(15)从稍后描述的比较电路(209)接收到通知信号时,可以执行终止通知信号到定时器(205)的输出。
注意,例如,如上所述,定时器(205)参考存储在半导体装置(1A)中包括的存储电路中的阈值。此外,在操作期间的诊断中使用的阈值和启动时的诊断中使用的阈值可能不同。
为了发起CPU(10)的诊断,第一测试控制电路(100)通过系统总线(13)向模式输入电路(101)输出用于输入测试模式的指令信号。响应于来自第一测试控制电路(100)的指令信号,模式输入电路(101)从内部存储器(11)或外部存储器(14)获取测试模式。
这是使用由任意值组成的测试模式,以便在短的测试时间内实现高故障检测率。由于任意值的使用,数据量可能很大。然而,当测试模式被存储在外部存储器(14)中时,可以减小半导体装置(1A)的面积成本。
模式输入电路(101)将多个获取的测试模式供给到CPU(10)的扫描链,并执行CPU(10)的扫描测试。具体地说,CPU(10)利用供给到扫描链的测试模式执行操作(捕获)。作为该操作的结果,存储在扫描链中的测试结果被第一结果压缩电路(206)串行地获取并压缩成1位代码。第一结果压缩电路(206)将经压缩的测试结果(代码)逐位地串行输出到递归压缩电路(208)。递归压缩电路(208)对从第一结果压缩电路(206)输出的经压缩的测试结果(代码)进行再压缩。因此,在递归压缩电路(208)包括SISR的情况下,测试结果(其大小是由第一结果压缩电路(206)压缩之后的1位测试结果×其数量)被压缩为与SISR的级数对应的大小。递归压缩电路(208)将经压缩的测试结果输出到比较电路(209)。
比较电路(209)确定从递归压缩电路(208)输出的经压缩的测试结果和存储在第一预期值存储电路(103)中的第一预期值是否匹配(S110)。
当比较结果为匹配时,比较电路(209)向系统控制电路(15)输出用于通知正常的通知信号。当从比较电路(209)输出通知正常的通知信号时,系统控制电路(15)确定CPU(10)正常(S110:正常)。
当CPU(10)被确定为正常(S110:正常)时,系统控制电路(15)复位并重启CPU(10)(S104)。在重启完成之后,CPU(10)恢复在上述步骤S107中停止的处理(S105)。然后,在经过指定时间(S106:是)之后,CPU(10)执行处理以再次进行自诊断(S107)。
另一方面,当比较结果不匹配时,比较电路(209)向系统控制电路(15)输出用于通知错误的通知信号。当从比较电路(209)输出通知错误的通知信号时,系统控制电路(15)确定CPU(10)异常(S110:异常)。换句话说,在这种情况下检测到SPF。
当CPU(10)被确定为异常(S110:异常)时,系统控制电路(15)迅速地执行用于停止半导体装置(1A)中的系统的处理,并且由此停止半导体装置(1A)中的系统(S111)。
[功能安全方面SPF/LF检测的补充说明]
下面描述在第一实施例的配置和操作中可以检测SPF和LF两者以及功能安全性是有效的原因。
SPF是由于单个故障引起的故障,并且在第一实施例中,它对应于由于CPU(10)中的故障而发生的故障。通过由第一测试控制装置(3)以规则的间隔执行的扫描测试和由公共结果确定装置(5)作出的结果确定来检测CPU(10)中的故障,并且可以得出结论:根据第一实施例,提高了半导体装置(1A)的抗SPF的安全性(可靠性)。
LF是由于多个故障的同时发生而引起的故障。例如,可以是以下故障:由于在安全机构中发生故障,应该由安全机构检测到的SPF变得不可检测。在第一实施例中,它对应于由于CPU(10)和公共结果确定装置(5)中的故障而发生的故障。更具体地说,当CPU(10)是发起用于检测SPF的操作(即操作期间的诊断)的模块时,如果在用于启动CPU(10)的操作期间的诊断的机构中发生故障并且操作期间的诊断无法开始,则同时发生的CPU(10)中的故障被错过。结果,妨碍了安全性的提高。对于公共结果确定装置(5),如果在公共结果确定装置(5)中发生不管测试结果和预期值之间的比较结果如何、总是向系统控制电路(15)通知CPU(10)正常的故障,则应该由操作期间的诊断检测的CPU(10)中的故障未被通知给系统控制电路(15),并且因此妨碍了安全性的提高。
在半导体装置(1A)的启动时,通过由第二测试控制装置(4)和公共结果确定装置(5)执行的扫描测试来检测CPU(10)中的故障。公共结果确定装置(5)中的故障通过用于检测LF的操作(即启动时的诊断)被功能上诊断。这是因为在公共结果确定装置(5)中包括的递归压缩电路(208)具有多位的寄存器,所述多位的寄存器计算输入数据和其自身数据的异或并且以递归的方式使用其自身的值,这是一种其中1位反转显著改变结果的结构。因此,除了从第二测试控制装置(4)输出的测试结果之外,如果递归压缩电路(208)执行与预期操作不同的操作,则由于测试结果是与预期值不同的值而变得明显。注意,可以通过将稍后描述的比较电路(209)的诊断添加到启动时的诊断中来应对比较电路(209)的错误确定。
注意,对于第一测试控制装置(3),即使在任何部分发生故障也不会妨碍安全性的提高。例如,即使在模式输入电路(101)和CPU(10)中同时发生故障时,由于递归压缩电路(208)生成的最终测试结果与预期值之间的失配,故障也变得明显。结果,系统控制电路(15)被通知错误,并且系统控制电路(15)可以执行控制以将系统转变为安全模式。因此,只要CPU(10)的操作期间的诊断正常执行并且公共结果确定装置(5)的评估正确,不管诊断期间的操作如何,安全性的提高都不会受到妨碍。
由于上述原因,根据第一实施例,可以得出结论:提高了半导体装置(1A)抗LF的安全性。因此,根据第一实施例,可以检测SPF和LF两者并增强半导体装置(1A)的可靠性。
此外,在第一实施例中,包括递归压缩电路(208)和比较电路(209)的公共结果确定装置(5)由用于检测CPU(10)中的SPF的第一测试控制装置(3)和用于检测CPU(10)中的LF的第二测试控制装置(4)共享。在这种配置中,通过执行启动时的诊断来检测递归压缩电路(208)和比较电路(209)中的LF,并且不需要将用于检测LF的诊断装置添加到“用于检测CPU(10)中的SPF的诊断装置”。
此外,在第一实施例中,利用使用扫描测试(压缩扫描)的第一测试控制装置(3)来检测SPF,并且利用使用扫描测试(逻辑BIST)的第二测试控制装置(4)来检测LF。
在这种配置中,可以实现能够低成本地检测SPF和LF两者的具有高安全性的半导体装置。具体而言,在CPU(10)的操作期间的诊断中,由第一测试控制装置(3)执行CPU(10)的扫描测试,并且由此可以在不使CPU(10)冗余的情况下检测SPF,并且由此可以减少用于CPU(10)的冗余的面积和功耗,并实现成本降低。此外,在CPU(10)的启动时的诊断期间由第二测试控制装置(4)执行CPU(10)的扫描测试,并且由递归压缩电路(208)和比较电路(209)作出使用其结果的确定,递归压缩电路(208)和比较电路(209)也用于SPF的检测,并由此可以通过扫描测试来检测CPU(10)中的LF,并且也可以检测到在递归压缩电路(208)和比较电路(209)中的LF,因此可以增强安全性。
注意,尽管在第一实施例中描述了待测试电路(待诊断电路)是CPU的示例,但是待测试电路不限于CPU。它可以应用于需要高安全性的半导体装置中的各种处理模块。
<第一实施例的修改示例>
接下来描述第一实施例的修改示例。以下参照图4描述根据第一实施例的修改示例的半导体装置(1A)的自诊断期间的操作。图4是示出根据第一实施例的修改示例的半导体装置(1A)的自诊断期间的操作的流程图。在图3所示的操作中,可以在启动时的诊断中添加诊断比较电路(209)是否故障的操作。该操作如图4所示,图4所示的操作与图3所示的操作的不同之处在于,在步骤S101、S102和步骤S103之间添加步骤S112。
在系统控制电路(15)提供用于发起CPU(10)的诊断的指令之前,它使诊断发起信号生效并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起比较电路(209)的诊断的指令。响应于诊断发起信号的生效,第二测试控制电路(200)发起比较电路(209)的诊断(S112)。
虽然在步骤S112中以与步骤S103中相同的方式执行CPU(10)的扫描测试,但是不同之处在于,由第二测试控制电路(200)存储在第二预期值存储电路(203)中的第二预期值是有意导致错误的值。
因此,在步骤S112中,当从比较电路(209)输出通知错误的通知信号时,系统控制电路(15)确定比较电路(209)正常(S112:正常)。在这种情况下,半导体装置(1A)的操作进行到步骤S103。
另一方面,当从比较电路(209)输出通知正常的通知信号时,系统控制电路(15)确定CPU(10)异常(S112:异常)。在这种情况下,系统控制电路(15)迅速执行用于停止半导体装置(1A)中的系统的处理,并由此停止半导体装置(1A)中的系统(S111)。换句话说,系统控制电路(15)禁止半导体装置(1A)的启动。
注意,比较电路(209)的诊断不限于以上述方式执行扫描测试。例如,系统控制电路(15)可以在半导体装置(1A)的启动时将与从递归压缩电路(208)输出到比较电路(209)的初始值不同的第二预期值存储到第二预期值存储电路(203),并且使比较电路(209)仅比较从比较电路(209)输出的初始值与存储在第二预期值存储电路(203)中的第二预期值,且引起根据比较结果的通知,由此诊断比较电路(209)。
如上所述,在第一实施例的修改示例中,比较电路(209)在进行扫描测试之前进行不同值之间的比较,并且如果比较结果为匹配,则停止半导体装置(1A)的操作。由此可以检测比较电路(209)中的故障,并且防止故障的比较电路(209)对测试结果作出确定。
<第二实施例>
下面描述第二实施例。在以下第二实施例的描述中,与上述第一实施例中相同的元件由相同的附图标记等表示,并且适当地省略对其的描述。以下参照图5描述根据第二实施例的半导体装置(1B)的配置。图5是示出根据第二实施例的半导体装置(1B)的配置的框图。
如图5所示,半导体装置(1B)包括作为用于实现其功能的元件的多个待测试电路(40、50、60)和系统控制电路(15)。虽然在图5中示出了其中待测试电路的数量为3的示例,但是待测试电路的数量不限于此。
待测试电路(40、50、60)中的每个电路与待测试电路(2)相同。因此,例如,待测试电路(40、50、60)中的每个电路例如是CPU(10)。
此外,半导体装置(1B)包括多个第一测试控制装置(41、51、61)、多个第二测试控制装置(42、52、62)和多个公共结果确定装置(43、53、63)。
第一测试控制装置(41、51、61)中的每个装置与第一测试控制装置(3)相同。因此,第一测试控制装置(41、51、61)中的每个装置包括第一测试控制电路(100)、模式输入电路(101)、第一结果压缩电路(206)和第一预期值存储电路(103)(未示出)。
第二测试控制装置(42、52、62)中的每个装置与第二测试控制装置(4)相同。因此,第二测试控制装置(42、52、62)中的每个装置包括第二测试控制电路(200)、模式生成电路(201)、第二结果压缩电路(207)和第二预期值存储电路(203)(未示出)。
公共结果确定装置(43、53、63)中的每个装置与公共结果确定装置(5)相同。因此,公共结果确定装置(43、53、63)中的每个装置包括递归压缩电路(208)、比较电路(209)和定时器(205)。
因此,第一测试控制装置(41、51、61)和公共结果确定装置(43、52、62)对应于分别在待测试电路(40、50、60)的操作期间执行诊断的装置。第二测试控制装置(42、52、62)和公共结果确定装置(43、53、63)对应于分别在待测试电路(40、50、60)的启动时执行诊断的装置。
此外,半导体装置(1B)包括与门(44、54、64)和测试目标设定电路(70)。
与门(44)被插入到从系统控制电路(15)向第二测试控制装置42传送诊断发起信号的信号线路中。与门(54)被插入到从系统控制电路(15)向第二测试控制装置(52)传送诊断发起信号的信号线路中。与门(64)被插入到从系统控制电路(15)向第二测试控制装置(62)传送诊断发起信号的信号线路中。
向与门(44)输入从系统控制电路(15)输出的诊断发起信号和从测试目标设定电路(70)输出的测试目标设定信号的反转值。向与门(54)输入从系统控制电路(15)输出的诊断发起信号和从测试目标设定电路(70)输出的测试目标设定信号的反转值。向与门(64)输入从系统控制电路(15)输出的诊断发起信号和从测试目标设定电路(70)输出的测试目标设定信号的反转值。
与门(44、54、64)中的每个与门计算从测试目标设定电路(70)输出的测试目标设定信号的反转值和从系统控制电路(15)输出的诊断发起信号的与运算,并将指示计算结果的信号输出到第二测试控制装置(42)。
在测试目标设定电路(70)中包括的存储电路(未图示)针对待测试电路(40、50、60)中的每个电路存储一值,所述值指示其是否是在半导体装置(1B)的启动时要进行启动时的诊断的目标。该存储电路例如是在半导体装置(1B)的制造的完成之后的步骤中可以任意地改变其值的存储器。该存储器例如是闪存存储器、熔丝ROM等。测试目标设定电路(70)分别将用于待测试电路(40、50、60)的值作为测试目标设定信号输出到与门(44、54、64)。更具体地说,当其是在半导体装置(1B)的启动时要进行启动时的诊断的目标时,输出低电平的测试目标设定信号,并且当其不是在半导体装置(1B)的启动时要进行启动时的诊断的目标时,输出高电平的测试目标设定信号。
当从测试目标设定电路(70)输出的测试目标设定信号为低电平时,与门(44)将从系统控制电路(15)输出的诊断发起信号输出到第二测试控制装置(42)而没有进行任何改变。因此,可以将从系统控制电路(15)输出的高电平诊断发起信号(生效的诊断开始信号)直接输出到第二测试控制装置(42)。由此可以通过系统控制电路(15)发起由第二测试控制装置(42)进行的启动时的诊断。
另一方面,当从测试目标设定电路(70)输出的测试目标设定信号为高电平时,不管从系统控制电路(15)输出的诊断发起信号的值如何,与门(44)总是输出低电平信号(无效信号)作为至第二测试控制装置(42)的诊断发起信号。因此,无法通过系统控制电路(15)发起由第二测试控制装置(42)进行的启动时的诊断。
与门(54、64)的操作与上述操作相同,并且省略其描述。
如上所述,在第二实施例中,在测试目标设定电路(70)中存储指示待测试电路(40、50、60)中的每个电路是否为在半导体装置(1B)的启动时由多个第二测试控制装置(42、52、62)进行的扫描测试的目标的值。根据这些值,多个第二测试控制装置(42、52、62)中的每一个装置在半导体装置(1B)的启动时执行扫描测试。由此可以禁用任意待测试电路的启动时的诊断,并减少启动时的诊断的目标。具体地说,通过不执行任意待测试电路的启动时的诊断,可以减少半导体装置(1B)的启动时间。在输送半导体产品之前可以改变此设置,可以应对多个客户需求,例如当优先考虑增强安全性时和优先考虑启动速度时。
<第三实施例>
下面描述第三实施例。在第三实施例的以下描述中,与上述第二实施例中相同的元件用相同的附图标记等表示,并且适当地省略对其的说明。
[配置]
以下参照图6说明根据第三实施例的半导体装置(1C)的配置。图6是示出根据第三实施例的半导体装置(1C)的配置的框图。如图3所示,半导体装置(1C)与根据第二实施例的半导体装置(1B)的不同之处在于,它还包括多个或门(45、55、65)。此外,系统总线(13)在图6中被明确示出。
或门(45)被插入到从与门(44)向第二测试控制装置(42)传送诊断发起信号的信号线路中。或门(55)被插入到从与门(54)向第二测试控制装置(52)传送诊断发起信号的信号线路中。或门(65)被插入到从与门(64)向第二测试控制装置(62)传送诊断发起信号的信号线路。
如上所述,或门(45、55、65)中的每一个或门的一个输入端子连接到与门(44、54、64)中的每一个与门的输出端子,并且或门(45、55、65)中的每一个或门的另一个输入端子连接到系统总线(13)。
或门(45、55、65)中的每一个或门计算从与门(44、54、64)中的每个与门输出的诊断发起信号和从系统总线(13)输出的诊断发起信号的或运算,并将指示计算结果的信号输出到第二测试控制装置(42)。
[操作]
当从系统总线(13)输出的诊断发起信号为低电平时,或门(45)将从与门(44)输出的诊断发起信号输出到第二测试控制装置(42),而没有进行任何改变。具体地说,当在测试目标设定电路(70)中将待测试电路(40)设定为测试目标时并且从测试目标设定电路(70)输出到与门(44)的测试目标设定信号为低电平时,通过系统控制电路(15)可以发起由第二测试控制装置(42)进行的启动时的诊断。
另一方面,当从系统总线(13)输出的诊断发起信号为高电平时,不管从与门(44)输出的诊断发起信号的值如何,或门(45)总是输出高电平信号作为至第二测试控制装置(42)的诊断发起信号。具体地说,当在测试目标设定电路(70)中未将待测试电路(40)设定为测试目标时,并且即使当从测试目标设定电路(70)输出到与门(44)的测试目标设定信号为高电平时,当从系统总线(13)输出的诊断发起信号生效(从低电平变为高电平)时,也可以发起由第二测试控制装置(42)进行的启动时的诊断。
或门(55、65)的操作与上述操作相同,并且省略其描述。
以下参照图7描述根据第三实施例的半导体装置(1C)的自诊断期间的操作。图7是示出根据第三实施例的半导体装置(1C)的自诊断期间的操作的流程图。
在图7中,通过箭头连接操作事件,根据箭头的定向按时间顺序执行事件。分支箭头表示处理的并行执行。注意,菱形事件表示条件分支。在菱形操作事件中,向下箭头基本上指示当事件的结果正常时的下一处理。参照图6所示的半导体装置(1C)的示例和图7所示的操作流程,对根据第三实施例的操作进行描述。
[操作流程]
在本例中假设在待测试电路(40、50、60)中只有待测试电路(40)在测试目标设置电路(70)中被设置作为在半导体装置(1C)的启动时要进行启动时的诊断的目标。当半导体装置(1C)通电并且第二测试控制装置(42、52、62)和公共结果确定装置(43、53、63)的重置被取消时,半导体装置(1C)发起启动时的诊断。当发起启动时的诊断时,系统控制电路(15)发起通过第二测试控制装置(42)的待测试电路(40)的诊断(S201)。
当公共结果确定装置(43)确定测试结果和预期值不匹配(S202:异常)时,确定待测试电路(40)异常并通知系统控制电路(15)错误。注意,这同样适用于定时器(205)检测到超时的情况。另一方面,当公共结果确定装置(43)确定待测试电路(40)正常(S202:正常)时,它通知系统控制电路(15)正常。响应于该通知,系统控制电路(15)启动待测试电路(40)(S203)。待测试电路(40)由此进入正常操作模式,并根据其功能发起处理(S204)。
注意,步骤S201和S202中的具体操作与图3中的步骤S101至S103中的操作相同,并且省略其描述。
由于待测试电路(40)发起正常操作,所以半导体装置(1C)的系统被引导(即完成半导体装置(1C)的启动)。在半导体装置(1C)的启动之后,待测试电路(40)通过系统总线(13)向第二测试控制装置(52)和第二测试控制装置(62)中的每个装置请求发起待测试电路(50)和测试电路(60)中的每个电路的诊断,作为根据其功能的处理。具体而言,待测试电路(40)使诊断发起信号生效(将诊断发起信号从低电平变为高电平),该诊断发起信号通过系统总线(13)被输出到或门(55、65)中的每个或门。因此,由第二测试控制装置(52)和第二测试控制装置(62)中的每个装置发起待测试电路(50)和待测试电路(60)中的每个电路的诊断(S205、S209)。
待测试电路(40)例如参考通过系统总线(13)存储在测试目标设定电路(70)中的值,并且使如下诊断发起信号生效,该诊断发起信号用于至分别对应于待测试电路(50、60)的第二测试控制装置(52)和第二测试控制装置(62)的启动时的诊断,待测试电路(50、60)根据该值不是启动时的诊断的目标。注意,待测试电路(40)不需要针对不是启动时的诊断的目标所有待测试电路(50、60)执行启动时的诊断。待测试电路(40)可以仅针对不是启动时的诊断的目标的待测试电路(50、60)中的预定指定电路执行启动时的诊断。例如,作为启动时的诊断的目标的指定待测试电路可以由存储在测试目标设定电路(70)中的值(与指示启动时的诊断的目标的值分开地存储)来指明,并且可以被设置为由待测试电路(40)执行的应用程序的处理,或者可以由存储在外部存储器(14)中的值指明。
当公共结果确定装置(53)确定测试结果和预期值不匹配(S206:异常)时,确定待测试电路(50)异常并通知系统控制电路(15)错误。注意,这同样适用于定时器(205)检测到超时的情况。另一方面,当公共结果确定装置(53)确定待测试电路(50)正常(S206:正常)时,它通知系统控制电路(15)正常。响应于该通知,系统控制电路(15)启动待测试电路(50)(S207)。待测试电路(40)由此进入正常操作模式,并根据其功能发起处理(S208)。
当公共结果确定装置(63)确定测试结果和预期值不匹配(S210:异常)时,确定待测试电路(60)异常并通知系统控制电路(15)错误。注意,这同样适用于定时器(205)检测到超时的情况。另一方面,当公共结果确定装置(63)确定待测试电路(60)正常(S210:正常)时,它通知系统控制电路(15)正常。响应于该通知,系统控制电路(15)启动待测试电路(60)(S211)。待测试电路(60)由此进入正常操作模式,并根据其功能发起处理(S212)。
当通知错误时,系统控制电路(15)迅速执行用于停止半导体装置(1C)中的系统的处理,并由此停止半导体装置(1C)中的系统(S213)。注意,在针对待测试电路(50)和待测试电路(60)中的至少一个电路通知错误的情况下,系统控制电路(15)可以禁止针对其通知了错误的待测试电路(50)或待测试电路(60)的启动并继续系统操作。
注意,虽然待测试电路(40、50、60)中的每个电路在正常操作的处理中定期发起其本身启动时的诊断,但是该操作与第一实施例中描述的相同,因此没有重复描述。
[特征与效果]
在上述第三实施例中,存在多个路径,以便向启动时的诊断的多个目标中的每一个目标提供用于发起诊断的指令。在第三实施例中,存在两条路径:在通电之后立即取消重置之后由系统控制电路(15)启动诊断的路径,以及在半导体装置(1C)的系统被引导之后通过系统总线(13)启动诊断的路径。换句话说,通过存储在测试目标设置电路(70)中的值被指明为第二测试控制电路的扫描测试的目标的待测试电路(40)针对如下第二测试控制装置(52、62)提供用于执行启动时(扫描测试)的诊断的指令,该第二测试控制装置(52、62)对应于未通过存储在测试目标设置电路(70)中的值被指明为第二测试控制电路的扫描测试的目标的待测试电路(50、60)中的指定待测试电路(待测试电路中的所有或一些)。从而可以减少系统的引导时间以及确保高安全性。
这是基于以下考虑:由于不是半导体装置(1C)中的所有待测试电路(40、50、60)都在启动之后发起操作,所以可以优先考虑它们的自诊断。例如,当待测试电路是与外部网络进行通信的通信模块时,电路需要被立刻启动,并且其自诊断需要在启动后立即被执行。另一方面,当待测试电路是期望比通信模块晚工作的诸如图像处理模块的模块时,在完成半导体装置(1C)的启动之后可以不急于执行自诊断。这是因为在预期操作之前发生的故障不对应于LF。
<第四实施例>
下面描述第四实施例。在第四实施例的以下描述中,与上述第一实施例相同的元件用相同的附图标记等表示,并且适当地省略对其的说明。
[配置]
以下,参照图8描述根据第四实施例的半导体装置(1D)的配置。图8是示出根据第四实施例的半导体装置(1D)的配置的框图。如图8所示,半导体装置(1D)与根据第一实施例的半导体装置(1A)的不同之处在于,它包括第一结果确定电路(102)、第一定时器(104)、第二结果确定电路(202)和第二定时器(204),来代替第一结果压缩电路(206)、第二结果压缩电路(207)和公共结果确定装置(5)(定时器(205)、递归压缩电路(208)和比较电路(209)),并且还包括切断电路(16、17)。
第一结果确定电路(102)包括第一结果压缩电路(206)、递归压缩电路(208)和比较电路(209)(未示出)。第二结果确定电路(202)包括第二结果压缩电路(207)、递归压缩电路(208)和比较电路(209)(未示出)。
具体而言,尽管根据第一实施例的半导体装置(1A)包括被共同用于启动时的诊断和操作期间的诊断的公共结果确定装置(5)作为用于确定测试结果的电路,但是根据第四实施例的半导体装置(1D)包括在启动时的诊断和操作期间的诊断之间单独使用的电路作为用于确定测试结果的电路。半导体装置(1D)包括第一结果确定电路(102)和第一定时器(104)作为用于操作期间的诊断的电路,并且包括第二结果确定电路(202)和第二定时器(204)作为用于启动时的诊断的电路。
因此,在第四实施例中,第一测试控制电路(100)、模式输入电路(101)、第一结果确定电路(102)的一部分(第一结果压缩电路(206))和第一预期值存储电路(103)用作第一测试控制装置(3)。此外,第二测试控制电路(200)、模式生成电路(201)、第二结果确定电路(202)的一部分(第二结果压缩电路(207))和第二预期值存储电路(203)作为第二测试控制装置(4)。
第一结果确定电路(102)获取从CPU(10)的扫描链输出的测试结果,并且通过第一结果压缩电路(206)和递归压缩电路(208)压缩所获取的测试结果。第一结果确定电路(102)通过比较电路(209)将经压缩的测试结果与从第一预期值存储电路(103)输出的第一预期值进行比较。注意,压缩测试结果的具体方法、根据比较结果向系统控制电路(15)通知的细节等与第一实施例中的相同,因此没有重复描述。
半导体装置(1D)包括操作诊断装置(20),操作诊断装置(20)包括:第一测试控制电路(100)、模式输入电路(101)、第一结果确定电路(102)、第一预期值存储电路(103)和第一定时器(104)。操作诊断装置(20)具有用于进行自身扫描测试的多条扫描链。注意,在操作诊断装置(20)的扫描链中,CPU(10)中的扫描链对于第一测试控制装置(3)使用的CPU(10)中的扫描链可以是公用的。然后,在第四实施例中,与第一实施例不同,作为第二测试控制装置(4)的扫描测试的目标的电路是包括CPU(10)的操作诊断装置(20),而不仅是CPU(10)。因此,在第四实施例中,不同于第一实施例,模式生成电路(201)将测试模式输入到操作诊断装置(20)的扫描链,而不仅是输入到CPU(10)的扫描链。
第二结果确定电路(202)获取从操作诊断装置(20)的扫描链输出的测试结果,并且通过第二结果压缩电路(207)和递归压缩电路(208)压缩所获取的测试结果。第二结果确定电路(202)通过比较电路(209)将经压缩的测试结果与从第二预期值存储电路(203)输出的第二预期值进行比较。注意,压缩测试结果的具体方法、根据比较结果向系统控制电路(15)通知的细节等与第一实施例中的相同,因此没有重复描述。
第一定时器(104)和第二定时器(204)中的每一个定时器的操作与定时器(205)的操作基本相同,因此不重复描述。注意,然而,第一定时器(104)不监视通过第二测试控制电路(200)的扫描测试执行时间,而监视通过第一测试控制电路(100)的扫描测试执行时间。第二定时器(204)不监视通过第一测试控制电路(100)的扫描测试执行时间,而监视通过第二测试控制电路(200)的扫描测试执行时间。
因此,当发起扫描测试时,第一测试控制电路(100)向第一定时器(104)输出通知扫描测试的发起的发起通知信号。当扫描测试结束时,第一测试控制电路(100)向第一定时器(104)输出通知扫描测试的终止的终止通知信号。
此外,当发起扫描测试时,第二测试控制电路(200)向第二定时器(204)输出通知扫描测试的发起的发起通知信号。当扫描测试结束时,第二测试控制电路(200)向第二定时器(204)输出通知扫描测试的终止的终止通知信号。
切断电路(16)在启动时的诊断中的扫描测试期间切断从系统总线(13)向操作诊断装置(20)输出的信号。该信号是从系统总线(13)向CPU(10)、模式输入电路(101)和第一测试控制电路(100)中的每一个输出的信号。此外,在启动时的诊断中的扫描测试期间,切断电路(16)切断从操作诊断装置(20)向系统总线(13)输出的信号。该信号是从CPU(10)、模式输入电路(101)和第一测试控制电路(100)中的每一个向系统总线(13)输出的信号。
由此可以防止由于在启动时的诊断期间从系统总线(13)向操作诊断装置(20)输出的信号而使操作诊断装置(20)发生故障,并且尽管操作诊断装置(20)没有故障,也得到与第二预期值不同的测试结果。也可以防止由于在启动时的诊断期间无意中从操作诊断装置(20)输出到系统总线(13)的信号而导致连接到系统总线(13)的电路(内部存储器(11)、外部I/F(12)等)发生故障。
在启动时的诊断的扫描测试期间,切断电路(17)切断从操作诊断装置(20)向系统控制电路(15)输出的信号。例如,该信号是从第一结果确定电路(102)(比较电路(209))输出的通知信号和从第一定时器(104)输出的通知信号。从而可以防止在启动时的诊断期间由于从操作诊断装置(20)向系统控制电路(15)无意中输出的通知信号而造成的错误的误检测。
此外,在第四实施例中,由于不是公共使用进行诊断的电路,而是使用不同的电路分别用于启动时的诊断和操作期间的诊断,因此不需要选择电路(300、301、302)。因此,与根据第一实施例的半导体装置(1A)不同,根据第四实施例的半导体装置(1D)不包括选择电路(300、301、302)。
[操作]
以下参照图9描述根据第四实施例的半导体装置(1D)的自诊断期间的操作。图9是示出根据第四实施例的在半导体装置(1D)的自诊断期间的操作的流程图。
在图9中,通过箭头连接操作事件,并且根据箭头的定向按时间顺序执行事件。分支箭头表示处理的并行执行。注意,菱形事件表示条件分支。在菱形操作事件中,向下箭头基本上指示当事件的结果正常时的下一处理。参考图8所示的半导体装置(1D)的示例和图9所示的操作流程来描述根据第四实施例的操作。
[操作流程]
当半导体装置(1D)通电并且针对其执行启动时的诊断的电路(200至204)的重置被取消时,半导体装置(1D)发起启动时的诊断。当发起启动时的诊断时,系统控制电路(15)使诊断发起信号生效,该诊断发起信号提供用于发起操作诊断装置(20)的诊断的指令并将其输出到第二测试控制电路(200)。响应于诊断发起信号的生效,第二测试控制电路(200)发起操作诊断装置(20)的诊断(S301)。
当诊断被发起时(在发起操作诊断装置(20)的扫描测试之前),第二测试控制电路(200)控制切断电路(16)以切断在系统总线(13)和操作诊断装置(20)之间传送的信号。此外,第二测试控制电路(200)控制切断电路(17)以切断在系统总线(13)和操作诊断装置(20)之间传送的信号。这防止如上所述的诊断期间的系统总线(13)和系统控制电路(15)的故障等。
当诊断被发起时,第二测试控制电路(200)向第二定时器(204)输出发起通知信号,该发起通知信号通知要对CPU(10)执行的扫描测试的发起。根据第二定时器(204)的确定结果(S302)的特定确定和操作与定时器(205)的相同(与图1的步骤S102相同),并且省略其描述。注意,不仅如上所述通过第二测试控制电路(200)对第二定时器(204)进行控制,系统控制电路(15)也可以对第二定时器(204)进行控制。
为了发起操作诊断装置(20)的诊断,第二测试控制电路(200)向模式生成电路(201)提供用于生成测试模式的指令,并执行操作诊断装置(20)的扫描测试。注意,扫描测试中的操作与第一实施例中的操作相同,除了不仅对CPU(10)执行测试,而且对包括CPU(10)的操作诊断设备(20)执行测试,因此省略其描述。
第二结果确定电路(202)压缩从操作诊断装置(20)获取的测试结果,并且确定经压缩的测试结果和存储在第二预期值存储电路(203)中的第二预期值是否匹配(S303)。
第二结果确定电路(202)在比较结果为匹配(S303:正常)时,向系统控制电路(15)输出用于通知正常的通知信号,并当比较结果为不匹配(S303:异常)时向系统控制电路(15)输出用于通知错误的通知信号,正如在第一实施例中那样(图1的步骤S103)。
此外,在扫描测试结束之后(在所有测试结果从扫描链输出之后),第二测试控制电路(200)控制切断电路(16)不切断在系统总线(13)和操作诊断装置(20)之间传送的信号。第二测试控制电路(200)也控制切断电路(17)不切断在系统总线(13)和操作诊断装置(20)之间传送的信号。
当操作诊断装置(20)的诊断结果正常(S303:正常)时,测试控制电路(105)发起CPU(10)的启动(S304),并且CPU(10)执行处理(S305),正如在第一实施例中描述的图1的步骤S104和S105中那样。每当经过指定时间(S306:是)时,CPU(10)向第一测试控制电路(100)提供用于诊断CPU(10)的指令并停止其处理(S307),就像在第一实施例中描述的步骤S106和S107中那样。响应于来自CPU(10)的指令,第一测试控制电路(100)发起CPU(10)的诊断,就像在第一实施例中描述的图1的步骤S108中一样(S308)。
当诊断被发起时,第一测试控制电路(100)向第一定时器(104)输出通知要对CPU(10)执行的扫描测试的发起的发起通知信号。根据第一定时器(104)的确定结果(S309)的特定确定和操作与定时器(205)的相同(与图1的步骤S109相同),并且省略其描述。注意,第一定时器(104)的控制不仅如上所述地通过第一测试控制电路(100)进行,也可以通过系统控制电路(15)进行。
为了发起CPU(10)的诊断,第一测试控制电路(100)通过系统总线(13)向模式输入电路(101)提供用于输入测试模式的指令,并执行CPU(10)的扫描测试。注意,扫描测试中的操作与第一实施例中的操作相同,因此省略其描述。
第一结果确定电路(102)压缩从CPU(10)获取的测试结果,并且确定经压缩的测试结果和存储在第一预期值存储电路(103)中的第一预期值是否匹配(S310)。
当比较结果为匹配时,第一结果确定电路(102)向系统控制电路(15)输出用于通知正常的通知信号(S310:正常),并当比较结果为不匹配(S310:异常)时,将用于通知错误的通知信号输出到系统控制电路(15),正如第一实施例(图1的步骤S110)中那样。当从第一定时器(104)、第二定时器(204)、第一结果确定电路(102)或第二结果确定电路(202)通知错误时,系统控制电路(15)迅速地执行用于停止半导体装置(1D)中的系统的处理,并由此停止半导体装置(1D)中的系统(S311),正如第一实施例描述的图1的步骤S111中那样。
[特征与效果]
在第四实施例中,在包括CPU(10)的整个操作诊断装置(20)上执行用于检测LF的启动时的诊断。换句话说,与CPU(10)一起执行第一测试控制装置(3)的扫描测试。在这种配置中,通过在操作期间执行单个CPU(10)的扫描测试,可以以比使CPU冗余更低的成本确保安全性,并且还确保用于操作期间的诊断的电路(10、100至104)的安全性。
<第五实施例>
下面描述第五实施例。在第五实施例的以下描述中,与上述第四实施例相同的元件用相同的附图标记等表示,并且适当地省略对其的说明。
[配置]
以下参照图10描述根据第五实施例的半导体装置(1E)的配置。图10是示出根据第五实施例的半导体装置(1E)的配置的框图。如图10所示,半导体装置(1E)与根据第四实施例的半导体装置(1E)的不同之处在于,它不包括切断电路(16)、(17)、第二测试控制电路(200)、模式生成电路(201)、第二结果确定电路(202)、第二预期值存储电路(203)和第二定时器(204)。此外,半导体装置(1E)与根据第四实施例的半导体装置(1E)的不同之处在于,它包括测试控制电路(600)、模式输入电路(601)、结果确定电路(602)、预期值存储电路(603)和定时器(604),来代替第一测试控制电路(100)、模式输入电路(101)、第一结果确定电路(102)、第一预期值存储电路103)和第一定时器(104)。此外,半导体装置(1E)与根据第四实施例的半导体装置(1E)的不同之处在于,它包括ROM(400)和选择电路(401)。
在第五实施例中,通过测试控制电路(600)、模式输入电路(601)、结果确定电路(602)、预期值存储电路(603)和定时器(604)来执行启动时的诊断和操作期间的诊断二者。具体地,在第五实施例中,结果确定电路(602)包括第一结果压缩电路(206)、第二结果压缩电路(207)、递归压缩电路(208)和比较电路(209)(没有示出)。
因此,在第五实施例中,测试控制电路(600)、模式输入电路(601)、结果确定电路(602)的一部分(第一结果压缩电路(206)和第二结果压缩电路(207))、预期值存储电路(603)和定时器(604)用作第一测试控制装置(3)和第二测试控制装置(4)。此外,预期值存储电路(603)预存储要用于操作期间的诊断的第一预期值和要用于启动时的诊断的第二预期值。
测试控制电路(600)与根据第四实施例的第一测试控制电路(100)的不同之处在于,它还在启动时的诊断中进行CPU(10)的扫描测试。具体而言,测试控制电路(600)响应于在半导体装置(1E)的启动时来自系统控制电路(15)的请求,而在启动时的诊断中进行CPU(10)的扫描测试。
模式输入电路(601)通过选择电路(401)连接到系统总线(13)和ROM(400)。ROM(400)存储用于启动时的诊断的多个测试模式。选择电路(401)选择性地将从系统总线(13)和ROM(400)之一输出的测试模式输出到模式输入电路(601)。
当发起启动时的诊断时,选择电路(401)由测试控制电路(600)或系统控制电路(15)控制,使得ROM(400)侧被选择用于与模式输入电路(601)连接。例如,测试控制电路(600)可以响应于来自系统控制电路(15)的诊断发起信号的生效进行控制,或者系统控制电路(15)可以在诊断发起信号的生效之前进行控制。
在启动时的诊断中,模式输入电路(101)响应于来自第一测试控制电路(100)的请求而从ROM(400)读取测试模式,并将其供给到CPU(10)的扫描链。
结果确定电路(602)获取从CPU(10)的扫描链输出的测试结果,并且通过第二结果压缩电路(207)和递归压缩电路(208)压缩所获取的测试结果,就像根据第四实施例的第二结果确定电路(202)那样。结果确定电路(602)通过比较电路(209)将压缩测试结果与从预期值存储电路(603)输出的第二预期值进行比较。因此,结果确定电路(602)进行CPU(10)的诊断而不是操作诊断装置(20)的诊断,这与第二结果确定电路(202)不同。注意,压缩测试结果的具体方法、根据比较结果向系统控制电路(15)通知的细节等与根据第四实施例的第二结果确定电路(202)中的相同,因此不再重复描述。
定时器(604)的操作基本上与根据第一实施例的定时器(205)的操作相同,因此不再重复描述。注意,然而,定时器(604)与根据第一实施例的定时器(205)的不同之处在于,它在启动时的诊断和操作期间的诊断二者中都监视通过测试控制电路(600)的扫描测试执行时间,而不监视通过测试控制电路(100、200)的扫描测试执行时间,测试控制电路(100、200)在启动时的诊断和在操作期间的诊断之间是不同的。
在操作时的诊断中的测试控制电路(600)、模式输入电路(601)、结果确定电路(602)和定时器(604)的操作与根据第四实施例的第一测试控制电路(100)、模式输入电路(101)、第一结果确定电路(102)和第一定时器(104)的操作相同,因此省略其描述。注意,在第五实施例中,在发起操作期间的诊断时,由测试控制电路(600)或CPU(10)控制选择电路(401),使得选择系统总线(13)侧用于与模式输入电路(601)连接。例如,测试控制电路(600)可以响应于来自CPU(10)的诊断发起信号的生效而进行控制,或者CPU(10)可以在诊断发起信号的生效之前进行控制。
[操作]
根据第五实施例的半导体装置(1E)的操作与根据第四实施例的半导体装置(1D)的操作(图9所示的操作)基本相同,因此省略其描述。然而,应注意,半导体装置(1E)的操作与半导体装置(1D)的操作的不同之处在于,启动时的诊断和操作期间的诊断二者都由测试控制电路(600)、模式输入电路(601)、结果确定电路(602)和定时器(604)执行,选择电路(401)在启动时的诊断和操作期间的诊断的发起时被控制,并且启动时的诊断中的测试模式不是生成的而是从ROM(400)获取的。
[特征与效果]
在第五实施例中,用于执行启动时的诊断和操作期间的诊断的电路被共用。在启动时,包括系统总线(13)的许多模块处于用于诊断的休眠状态。因此,难以通过系统总线(13)获取测试模式。鉴于此,在第五实施例中在专用ROM(400)中存储要在启动时的诊断中使用的测试数据。具体地,在系统总线(13)的初始化期间,从ROM(400)获取测试模式,并且将所获取的测试模式输入到CPU(10)的扫描链,并且执行启动时的诊断中的扫描测试。然后,在系统总线(13)的初始化之后,通过系统总线(13)从外部存储器(14)获取测试模式,并将所获取的测试模式输入到CPU(10)的扫描链,并执行操作期间的诊断中的扫描测试。在该配置中,通过在操作期间执行单个CPU(10)的扫描测试并且共用用于执行启动时的诊断和操作期间的诊断的电路,可以以比使CPU冗余更低的成本确保安全性,并且还确保用于操作期间的诊断的诊断装置的安全性。
<第六实施例>
下面描述第六实施例。在第六实施例的以下描述中,与上述第五实施例相同的元件由相同的附图标记等表示,并且适当地省略对其的说明。
[配置]
以下参照图11描述根据第六实施例的半导体装置(1F)的配置。图11是示出根据第六实施例的半导体装置(1F)的配置的框图。如图11所示,半导体装置(1F)与图10所示的根据第五实施例的半导体装置(1E)的不同之处在于,它包括外部I/F(18)和选择电路(402)。此外,半导体装置(1F)与根据第五实施例的半导体装置(1E)的不同之处在于它不包括ROM(400)。
在第六实施例中,与第五实施例不同,外部存储器(14)存储在启动时的诊断中使用的测试模式以及在操作期间的诊断中使用的测试模式。此外,在第六实施例中,与第五实施例不同,外部I/F(18)代替ROM(400)而连接到选择电路(401)。此外,外部存储器(14)通过选择电路(402)连接到外部I/F(12)和外部I/F(18)。外部I/F(18)是通过选择电路(402)在外部存储器14和选择电路(401)之间发送和接收数据的电路。
具体地,在第六实施例中,选择电路(401)选择性地将从系统总线(13)和外部I/F(18)之一输入的测试模式输出到模式输入电路(601)。此外,选择电路(402)选择性地将从外部存储器(14)输入的测试模式输出到外部I/F(12)和外部I/F(18)之一。
因此,在第六实施例中,在发起启动时的诊断时,选择电路(401)由测试控制电路(600)或系统控制电路(15)控制,使得外部I/F(18)侧为被选择用于与模式输入电路(601)连接。此外,当发起启动时诊断时,选择电路(402)由测试控制电路(600)或系统控制电路(15)控制,使得外部I/F(18)侧被选择用于与外部存储器(14)连接。例如,测试控制电路(600)可以响应于来自系统控制电路(15)的诊断发起信号的生效而进行控制,或者系统控制电路(15)在诊断开始信号的生效之前进行控制。
因此,在启动时的诊断中,模式输入电路(601)响应于来自第一测试控制电路(100)的请求,不经由系统总线(13)而通过外部I/F(18)从外部存储器(14)读取测试模式,并将其供给到CPU(10)的扫描链。
然后,当发起操作期间的诊断时,选择电路(401)由测试控制电路(600)或CPU(10)控制,使得系统总线(13)侧被选择用于与模式输入电路(601)连接。此外,当发起操作期间的诊断时,选择电路(402)由测试控制电路(600)或CPU(10)控制,使得外部I/F(12)侧被选择用于与外部存储器(14)连接。例如,测试控制电路(600)可以响应于来自CPU(10)的诊断发起信号的生效而进行控制,或者CPU(10)可以在诊断发起信号的生效之前进行控制。
注意,在操作期间的诊断中的操作与第五实施例的相同,因此不再重复描述。
[操作]
根据第六实施例的半导体装置(1F)的操作与根据第五实施例的半导体装置(1E)的操作基本相同,因此省略其描述。然而,注意,半导体装置(1F)的操作与半导体装置(1E)的操作的不同之处在于,当发起启动时的诊断和操作期间的诊断时进一步控制选择电路(402),以及在启动时的诊断中的测试模式不是从ROM(400)而是从外部存储器(14)获取的。
[特征与效果]
在第六实施例中,正与第五实施例一样,共用用于执行启动时的诊断和操作期间的诊断的电路。具体地,在第六实施例中,在系统总线(13)的初始化期间,通过外部I/F(18)从外部存储器(14)获取测试模式,并将获取的测试模式输入到CPU(10)的扫描链,且执行在启动时的诊断中的扫描测试。然后,在系统总线(13)的初始化之后,通过系统总线(13)从外部存储器(14)获取测试模式,并将所获取的测试模式输入到CPU(10)的扫描链,并执行在操作期间的诊断中的扫描测试。在这种配置中,通过在操作期间执行单个CPU(10)的扫描测试并且共用用于启动时的诊断和操作期间的诊断的电路,可以以比使CPU冗余更低的成本来确保安全性,并且还确保用于操作期间的诊断的诊断装置的安全性。此外,由于半导体装置(1F)不需要包括ROM(400),因此可以进一步降低成本。
<第七实施例>
下面描述第七实施例。在第七实施例的以下描述中,与上述第一实施例相同的元件由相同的附图标记等表示,并且适当地省略对其的说明。
[整体配置]
以下参照图12描述根据第七实施例的半导体装置(1G)的配置。图12是示出根据第七实施例的半导体装置(1G)的配置的框图。如图12所示,半导体装置(1G)与根据第一实施例的半导体装置(1A)的不同之处在于,它包括的不是一个CPU(10)而是多个CPU(10A至10D)。此外,半导体装置(1G)与根据第一实施例的半导体装置(1A)的不同之处在于它包括选择电路(501)。
CPU(10A至10D)中的每个CPU与根据第一实施例的CPU(10)相同,并且省略其描述。具体地,半导体装置(1G)采用其上安装有相同结构的多个CPU的多处理器配置。
[第一测试控制装置(3)]
第一测试控制电路(100)通过系统总线(13)连接到CPU(10A至10D)中的每个CPU。第一测试控制电路(100)响应于来自CPU(10A)的请求而执行CPU(10A)的扫描测试,响应于来自CPU(10B)的请求而执行CPU(10B)的扫描测试,响应于来自CPU(10C)的请求而执行CPU(10C)的扫描测试,并且响应于来自CPU(10D)的请求而执行CPU(10D)的扫描测试。
所有CPU(10A至10D)通过选择电路(300)连接到模式输入电路(101)和模式输入电路(201)。具体地,通过选择电路(300)将从模式输入电路(101)和模式输入电路(201)中的每个电路输出的测试模式输入到所有的CPU(10A至10D)。
当执行扫描测试时,第一测试控制电路(100)使分别输出到CPU(10A至10D)的扫描使能信号之中的、要输出到待测试CPU的扫描使能信号生效,并且持续地使要输出到其它CPU的扫描使能信号无效。
在输入生效的扫描使能信号的时段期间,CPU(10A至10D)中的每一个CPU执行扫描移位操作,并且将通过选择电路(300)输入的测试模式扫描到其本身的扫描链中,并扫描出存储在那些扫描链中的测试结果。另一方面,在输入了无效的扫描使能信号的时段期间,CPU(10A至10D)中的每一个CPU都不执行扫描移位操作,并且不将通过选择电路(300)输入的测试模式扫描到其本身的扫描链中,并且不扫描出存储在那些扫描链中的测试结果。
在该操作中,可以仅对待测试的CPU执行扫描测试,并且不待测试的CPU可以继续正常操作。
[第二测试控制装置(4)]
在第七实施例中,与第一实施例中一样,第二测试控制电路(200)响应于来自系统控制电路(15)的请求,执行CPU(10A至10D)中的每个CPU的扫描测试。然而,注意,在第七实施例中,与第一实施例不同,系统控制电路(15)通过该请求为第二测试控制电路(200)指定待测试的CPU。第二测试控制电路(200)执行由系统控制电路(15)指定的CPU的扫描测试。
第二测试控制电路(200)像第一测试控制电路(100)一样,使用于待测试CPU的扫描使能信号生效,并由此执行待测试CPU的扫描测试。具体操作与上述相同,并且省略其描述。
[公共结果确定装置(5)]
第一结果压缩电路(206)和第二结果压缩电路(207)通过选择电路(501)连接到CPU(10A至10D)中的每个CPU。选择电路(501)选择性地将从CPU(10A至10D)之一输出的测试结果输出到第一结果压缩电路(206)和第二结果压缩电路(207)中的每个电路。当发起启动时的诊断时,选择电路(501)由第二测试控制电路(200)或系统控制电路(15)控制,使得待测试的CPU被选择用于与第一结果压缩电路(206)和第二结果压缩电路(207)连接。例如,第二测试控制电路(200A至200D)中的每一个电路可以响应于来自系统控制电路(15)的诊断发起信号的生效进行控制,或者系统控制电路(15)可以在诊断发起信号的生效之前进行控制。
此外,当发起操作期间的诊断时,选择电路(501)由第一测试控制电路(100)或待测试的CPU控制,使得待测试的CPU被选择用于与第一结果压缩电路(206)和第二结果压缩电路(207)连接。例如,第一测试控制电路(100)可以响应于来自待测试的CPU的诊断发起信号的生效而进行控制,或者待测试的CPU可以在诊断发起信号的生效之前进行控制。
因此,第一结果压缩电路(206)和第二结果压缩电路(207)可以从其上执行扫描测试的CPU获取测试结果并压缩结果。注意,公共结果确定装置(5)的操作与第一实施例中的相同,因此没有重复描述。
[操作]
下面参考图13和图14描述根据第七实施例的半导体装置(1G)的自诊断期间的操作。图13和图14是示出根据第七实施例的半导体装置(1G)的自诊断期间的操作的流程图。
在图13和图14中,通过箭头连接操作事件,根据箭头的定向按时间顺序执行事件。分支箭头表示处理的并行执行。注意,菱形事件表示条件分支。在菱形操作事件中,向下箭头基本上指示当事件结果正常时的下一处理,并且向右箭头基本上指示当事件的结果异常时的下一处理。参考图12所示的半导体装置(1G)的和图13和图14所示的操作流程来描述根据第七实施例的操作。
[整体操作流程]
当半导体装置(1G)通电并且第二测试控制装置(4)和公共结果确定装置(5)的重置被取消时,半导体装置(1G)首先进行用于检测LF的诊断。在CPU(10A至10D)中的每个CPU上以指定的顺序执行启动时的诊断。当未检测到LF时,半导体装置(1G)开始正常操作。
此外,在正常操作期间,半导体装置(1G)暂停CPU(10A至10D)中的任何一个CPU的处理,并且在其处理以规则间隔暂停的CPU中进行用于检测SPF的操作期间的诊断。当未检测到SPF时,半导体装置(1G)允许其上执行启动时的诊断的CPU恢复正常操作。注意,用于检测SPF的诊断操作以指定顺序在CPU(10A至10D)中的每个CPU上执行,并且不在两个或更多个CPU上同时执行。
[启动时的诊断的流程(LF检测流程)]
当发起启动时的诊断时,系统控制电路(15)进行比较电路(209)的诊断(S401)。系统控制电路(15)使诊断发起信号生效并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起比较电路(209)的诊断的指令。响应于提供用于发起比较电路(209)的诊断的指令的诊断发起信号的生效,第二测试控制电路(200)进行比较电路(209)的诊断。该步骤S401中的操作与在第一实施例的修改示例中描述的图4的步骤S112中的操作相同,并且省略其描述。
然后,系统控制电路(15)使诊断发起信号生效并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起CPU(10A)诊断的指令。响应于提供用于发起CPU(10A)的诊断的指令的诊断发起信号的生效,第二测试控制电路(200)发起CPU(10A)的诊断(S402)。步骤S402中的具体操作与第一实施例中的图3的步骤S101中的操作相同,并且省略其描述。这同样适用于后述的在CPU(10B至10D)上的操作。
然而,注意,第七实施例与第一实施例的不同之处在于,在发起CPU(10A)的启动时的诊断之前,第二测试控制电路(200)或系统控制电路(15)控制选择电路(501)选择待测试的CPU(10A)。
在发起第一CPU(10A)的诊断之前,与第一实施例中的图3的步骤S102一样(S403),第二测试控制电路(200)启动定时器(205)。根据定时器(205)的确定结果的具体确定和通知与第一实施例中的图3的步骤S102基本相同,并且省略其描述。然而,注意,在第七实施例中,定时器(205)监视从第一CPU(10A)的诊断的发起到最后一个CPU(10D)的诊断的终止的时间,如后面的描述。
在CPU(10A)中的扫描测试的结束之后,比较电路(209)确定扫描测试中获得的测试结果(S404)。注意,步骤S404中的具体操作与第一实施例中的图3的步骤S104相同,并且省略其描述。这同样适用于后述的CPU(10B至10D)上的操作。
当比较电路(209)提供错误通知作为CPU(10A)的诊断结果(S404:异常)时,系统控制电路15迅速执行用于停止系统的处理,并由此停止系统(S423)。换句话说,系统控制电路(15)禁止半导体装置(1G)的启动。这同样适用于后述的CPU(10B至10D)上的操作。
另一方面,当从比较电路(209)输出通知正常的通知信号作为CPU(10A)的诊断结果时(S404:正常),系统控制电路(15)使诊断发起信号生效并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起CPU(10B)的诊断的指令。响应于提供用于发起CPU(10B)的诊断的指令的诊断发起信号的生效,第二测试控制电路(200)发起CPU(10B)的诊断(S405)。注意,在发起CPU(10B的)的启动时的诊断之前,第二测试控制电路(200)或系统控制电路(15)控制选择电路(501)以选择待测试的CPU(10B)。然后,在CPU(10B)中的扫描测试的结束后,比较电路(209)确定扫描测试中获得的测试结果(S406)。
当从比较电路(209)输出通知正常的通知信号作为CPU(10B)的诊断结果时(S406:正常),系统控制电路(15)使诊断发起信号生效并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起CPU(10C)的诊断的指令。响应于提供用于发起CPU(10C)的诊断的指令的诊断发起信号的生效,第二测试控制电路(200)发起CPU(10C)的诊断(S407)。注意,在发起CPU(10C)的启动时的诊断之前,第二测试控制电路(200)或系统控制电路(15)控制选择电路(501)以选择待测试的CPU(10C)。然后,在CPU(10C)中的扫描测试的结束之后,比较电路(209)对扫描测试中获得的测试结果进行确定(S408)。
当从比较电路(209)输出通知正常的通知信号作为CPU(10C)的诊断结果时(S408:正常),系统控制电路(15)使诊断发起信号生效并将其输出到第二测试控制电路(200),该诊断发起信号提供用于发起CPU(10D)的诊断的指令。响应于提供用于发起CPU(10D)的诊断的指令的诊断发起信号的生效,第二测试控制电路(200)发起CPU(10D)的诊断(S409)。注意,在发起CPU(10D)的启动时的诊断之前,第二测试控制电路(200)或系统控制电路(15)控制选择电路(501)以选择待测试的CPU(10D)。然后,在CPU(10D)中的扫描测试的结束后,比较电路(209)对扫描测试中获得的测试结果进行确定(S410)。
此外,当最后一个CPU(10D)的扫描测试结束时,第二测试控制电路(200)向定时器(205)输出通知扫描测试的终止的通知信号。响应于来自第二测试控制电路(200)的通知信号,定时器(205)终止经过时间的测量。
注意,每当执行CPU(10A至10D)中的每个CPU的启动时的诊断时,可以执行定时器(205)的监视。例如,当要发起CPU(10A至10D)中的每个CPU的扫描测试的执行时,第二测试控制电路(200)可以向定时器(205)输出发起通知信号,并当CPU(10A至10D)中的每个CPU的扫描测试的执行终止时,向定时器(205)输出终止通知信号。
此外,可以通过仅将CPU(10A至10D)中诊断结果为被通知错误的CPU回落并且启动剩余的CPU来引导半导体装置(1G)中的系统。
[操作期间的诊断(SPF检测流程)]
当所有CPU(10A至10D)的诊断结果正常时,系统控制电路(15)发起所有CPU(10A至10D)的启动,就像在第一实施例中描述的图1的步骤S104和S105中一样(S411、S418、S421、S424),并且CPU(10A至10D)中的每个CPU执行处理(S412、S419、S422、S425)。
该处理包括以规则的间隔进行自诊断的处理,如第一实施例中那样。在第七实施例中,其由系统控制电路(15)或CPU(10A至10D)的协调操作控制,使得多个CPU不同时进入自诊断模式。在第七实施例中,描述了其中按CPU(10A)、CPU(10B)、CPU(10C)和CPU(10D)的顺序执行自诊断的示例。
首先,当经过指定时间(S413:是)时,CPU(10A)进行自诊断(S10)。虽然步骤S10中的操作包括步骤S414至S417中的操作,但是具体操作与第一实施例(图3)的步骤S107至S110中的操作相同,并且省略其描述。注意,在发起CPU(10A)的操作期间的诊断之前,第一测试控制电路(100)或CPU(10A)控制选择电路(501)以选择要测试的CPU(10A)。此外,在诊断结果异常的情况下(S416:异常或S417:异常,S427)的操作也与第一实施例中的步骤(S109:异常或S110:异常,S111)中的操作相同(图3),省略其说明。
当CPU(10A)的诊断结果正常(S417:正常)时,系统控制电路15重启CPU(10A)(S411)。在重启之后,CPU(10A)恢复暂停的处理(S412)。
接下来,当经过指定时间(S420:是)时,CPU(10B)进行自诊断(S11)。因此,CPU(10B)的指定经过时间的测量的开始时间晚于CPU(10A)的指定经过时间的测量的开始时间。步骤S11中的操作与步骤S10的操作相同,并且省略其描述。注意,在发起CPU(10B)的操作期间的诊断之前,第一测试控制电路(100)或CPU(10B)控制选择电路(501)以选择要测试的CPU(10B)。当CPU(10B)的诊断结果正常时,系统控制电路(15)重启CPU(10B)(S418)。在重启之后,CPU(10B)恢复暂停的处理(S419)。
接下来,当经过指定时间(S423:是)时,CPU(10C)进行自诊断(S12)。因此,CPU(10C)的指定经过时间的测量的开始时间晚于CPU(10B)的指定经过时间的测量的开始时间。步骤S12中的操作与步骤S10的操作相同,并且省略其描述。注意,在发起CPU(10C)的操作期间的诊断之前,第一测试控制电路(100)或CPU(10C)控制选择电路(501)以选择要测试的CPU(10C)。当CPU(10C)的诊断结果正常时,系统控制电路(15)重启CPU(10C)(S421)。在重启之后,CPU(10C)恢复暂停的处理(S422)。
接下来,当经过指定时间(S426:是)时,CPU(10D)进行自诊断(S13)。因此,CPU(10D)的指定经过时间的测量的开始时间晚于CPU(10C)的指定经过时间的测量的开始时间。步骤S13中的操作与步骤S10的操作相同,并且省略其描述。注意,在发起CPU(10D)的操作期间的诊断之前,第一测试控制电路(100)或CPU(10D)控制选择电路(501)以选择要测试的CPU(10D)。当CPU(10D)的诊断结果正常时,系统控制电路(15)重启CPU(10D)(S424)。在重启之后,CPU(10D)恢复暂停的处理(S425)。
当从比较电路(209)或定时器(205)通知每个自诊断的错误时,系统控制电路(15)迅速执行用于停止系统的处理,并由此停止系统(S427)。
作为在彼此不一致的定时下定期执行CPU(10A至10D)中的每个CPU的自诊断(启动时的诊断)的方法,可以采用任何方法。例如,可以以规则的间隔从定时器向CPU(10A)通过中断的通知,并且CPU(10A)可以响应于来自定时器的中断而执行自诊断。然后,在重启后恢复操作时,CPU(10A至10C)中的每一个CPU可以向CPU(10B至10D)中的每个CPU通过CPU中断的通知,以接下来执行自诊断,并且CPU(10B至10D)中的每个CPU可以响应于CPU中断而执行自诊断。另一方面,可以在自诊断(启动时的诊断)不一致时的定时下、定期地从分别对应于CPU(10A至10D)多个定时器向CPU(10A至10D)中的每个CPU提供中断的通知,并且CPU(10A至10D)中的每个CPU可以响应于来自定时器的中断来执行自诊断。
[特征与效果]
第七实施例示出了其中在具有多个CPU的半导体装置(1G)中检测LF和SPF的配置,并且第一测试控制装置(3)、第二测试控制装置(4)和公共结果确定装置(5)在多个CPU之间被共用。具体地说,第一测试控制装置(3)和第二测试控制装置(4)以指定的顺序执行多个CPU(10A至10D)中的每一个CPU的扫描测试。从而可以减小电路面积。此外,还获得了第一实施例的特征和效果,并且由于用于诊断的CPU的数量不随着要安装的CPU的数量而增加,所以因为CPU数量增加、第七实施例的面积和功率降低效果变得更高。
<第八实施例>
下面描述第八实施例。在第八实施例的以下描述中,与上述第一实施例相同的元件用相同的附图标记等表示,并且适当地省略对其的说明。
[配置]
[整体配置]
以下参照图15说明根据第八实施例的半导体装置(1H)的配置。图15是表示根据第八实施例的半导体装置(1H)的配置的框图。如图15所示,半导体装置(1G)与根据第一实施例的半导体装置(1A)的不同之处在于,它包括多个CPU(10A、10B、10C、10D)、多个第二测试控制电路(200A至200D)、多个模式生成电路(201A至201D)、多个结果压缩电路(207A至207D)以及多个选择电路(300A至300D)。此外,半导体装置(1G)与根据第一实施例的半导体装置(1A)不同之处在于,它还包括与门(500)、选择电路(501)、选择电路(502)和与门(503)。
CPU(10A至10D)中的每个CPU与根据第一实施例的CPU(10)相同,并且省略其描述。具体地,半导体装置(1H)采用其上安装有相同结构的多个CPU的多处理器配置。
第二测试控制电路(200A至200D)中的每一个电路与根据第一实施例的第二测试控制电路(200)相同,并且省略其描述。具体地,半导体装置(1H)采用其上安装有相同结构的多个CPU的多处理器配置。
模式生成电路(201A至201D)中的每个电路与根据第一实施例的模式生成电路(201)相同,省略其说明。第二结果压缩电路(207A至207D)中的每个电路与根据第一实施例的第二结果压缩电路(207)相同,省略其说明。选择电路(300A至300D)中的每个电路与根据第一实施例的选择电路(300)相同,并且省略其描述。
与门500计算从多个第二测试控制电路(200A至200D)分别输出的发起通知信号的与运算,并将作为计算结果的信号作为发起通知信号输出到定时器(205)。此外,与门504计算从多个第二测试控制电路(200A至200D)分别输出的终止通知信号的与运算,并将作为计算结果的信号作为终止通知信号输出到定时器(205)。
在第八实施例中,与第七实施例不同,从CPU(10A至10D)输出的测试结果不通过选择电路(501)分别输入到第二结果压缩电路(207A至207D)。因此,根据第八实施例的选择电路(501)与根据第七实施例的选择电路(501)的不同之处在于,它不向第二结果压缩电路(207A至207D)输出测试结果,而是向第一结果压缩电路(206)输出测试结果。因此,在发起启动时的诊断时不需要选择电路(501)的控制。
选择电路(502)选择性地将从多个结果压缩电路(207A至207D)中的任一个电路输出的测试结果输出到选择电路(301)。
[第一测试控制装置(3)]
第一测试控制电路(100)通过系统总线(13)连接到CPU(10A至10D)中的每个CPU。第一测试控制电路(100)响应于来自CPU(10A)的请求而执行CPU(10A)的扫描测试,响应于来自CPU(10B)的请求而执行CPU(10B)的扫描测试,响应于来自CPU(10C)的请求而执行CPU(10C)的扫描测试,并且响应于来自CPU(10D)的请求而执行CPU(10D)的扫描测试。
CPU(10A至10D)中的每个CPU通过选择电路(300A至300D)连接到模式输入电路(101)和每个模式产生电路(201A至201D)。具体地说,从模式生成电路(201A至201D)输出的测试模式通过选择电路(300A至300D)分别输入到CPU(10A至10D)。
模式输入电路(101)将测试模式输出到所有选择电路(300A至300D)中的每一个电路。从模式输入电路(101)输出的测试模式通过每个选择电路(300A至300D)输入到所有CPU(10A至10D)。
当执行扫描测试时,第一测试控制电路(100)使要分别输出到CPU(10A至10D)的扫描使能信号中的、要输出到待测试的CPU的扫描使能信号生效,并且持续地使要输出到其它CPU的扫描使能信号无效。因此,就像在第七实施例中一样,可以仅对待测试的CPU执行扫描测试,并且不待测试的CPU可以继续正常操作。
[第二测试控制装置(4)]
第二测试控制电路(200A至200D)连接到系统控制电路(15)。第二测试控制电路(200A)响应于来自系统控制电路(15)的请求执行CPU(10A)的扫描测试。第二测试控制电路(200B)响应于来自系统控制电路(15)的请求执行CPU(10B)的扫描测试。第二测试控制电路(200C)响应于来自系统控制电路(15)的请求执行CPU(10C)的扫描测试。第二测试控制电路(200D)响应于来自系统控制电路(15)的请求执行CPU(10D)的扫描测试。
第二结果压缩电路(207A至207D)分别连接到CPU(10A至10D)。与根据第一实施例的第二结果压缩电路(207)一样,第二结果压缩电路(207A)压缩从CPU(10A)的扫描链输出的测试结果。与根据第一实施例的第二结果压缩电路(207)一样,第二结果压缩电路(207B)压缩从CPU(10B)的扫描链输出的测试结果。与根据第一实施例的第二结果压缩电路(207)一样,第二结果压缩电路(207C)压缩从CPU(10C)的扫描链输出的测试结果。与根据第一实施例的第二结果压缩电路(207)一样,第二结果压缩电路(207D)压缩从CPU(10D)的扫描链输出的测试结果。
[公共结果确定装置(5)]
与门(500)计算分别从第二测试控制电路(200A至200D)输出的发起通知信号的与运算,并将作为计算结果的发起通知信号输出到定时器(205)。定时器205由此发起从所有第二测试控制电路(200A至200D)输出发起通知信号的时间起的经过时间的测量。
此外,与门(503)计算分别从第二测试控制电路(200A至200D)输出的终止通知信号的与运算,并将作为计算结果的终止通知信号输出到定时器(205)。因此,当所有第二测试控制电路(200A至200D)输出终止通知信号时,定时器(205)终止对经过时间的测量。
[操作]
下面参考图16和图17描述根据第八实施例的半导体装置(1H)的自诊断期间的操作。图16和图17是表示根据第八实施例的半导体装置(1H)的自诊断期间的操作的流程图。
在图16和图17中,操作事件通过箭头连接,事件根据箭头的定向按时间顺序执行。分支箭头表示处理的并行执行。注意,菱形事件表示条件分支。在菱形操作事件中,向下箭头基本上表示当事件结果正常时的下一处理,并且向右箭头基本上指示当事件的结果异常时的下一处理。参照图15所示的半导体装置(1H)的示例和图16和图17所示的操作流程,对根据第八实施例的操作进行说明。
[整体操作流程]
当半导体装置(1H)通电并且第二测试控制装置(4)和公共结果确定装置(5)的重置被取消时,半导体装置(1H)首先进行用于检测LF的诊断。为了检测LF,使用多个第二测试控制装置(4)和公共结果确定装置(5),并且除了测试结果的确定外,并行地执行每个CPU(10A至10D)的启动时的诊断。当未检测到LF时,半导体装置(1H)开始正常操作。
此外,在正常操作期间,半导体装置(1H)暂停CPU(10A至10D)中的任何一个CPU的处理,并且在以规则间隔暂停处理的CPU中进行用于检测SPF的操作期间的诊断。当未检测到SPF时,半导体装置(1H)允许执行启动时的诊断的CPU恢复正常操作。注意,用于检测SPF的诊断操作以指定的顺序在每个CPU(10A至10D)上执行,并且不在两个或更多个CPU上同时执行。
[启动时的诊断(LF检测流程)]
当发起启动时的诊断时,系统控制电路(15)进行比较电路(209)的诊断(S501)。系统控制电路(15)使诊断发起信号生效,所述诊断发起信号提供用于发起比较电路(209)的诊断的指令,并将其输出到第二测试控制电路(200A至200D)。响应于提供用于发起比较电路(209)的诊断的指令的诊断发起信号的生效,第二测试控制电路(200A至200D)发起比较电路(209)的诊断。该步骤S501的操作与第一实施例的变形例中说明的图4的步骤S112的操作本相同,省略其说明。
此外,系统控制电路(15)可以将生效的诊断发起信号输出到第二测试控制电路(200A至200D)中的任何一个电路,并且执行与该第二测试控制电路相对应的CPU(10A至10D)之一的扫描测试,并由此对比较电路进行诊断(209)。此外,如第一实施例的修改示例所述,系统控制电路(15)可以控制比较电路(209)仅进行不同值的比较,而不执行扫描测试。
然后,系统控制电路(15)使诊断发起信号生效并将其输出到第二测试控制电路(200A至200D),该诊断发起信号提供用于发起CPU(10A至10D)中的每个CPU的诊断的指令。响应于提供用于发起CPU(10A至10D)中的每个CPU的诊断的指令的诊断发起信号的生效,第二测试控制电路(200A至200D)中的每一个电路发起CPU(10A至10D)中的每个CPU的诊断(S502、S503、S504、S505)。步骤S502、S503、S504、S505中的具体操作与第一实施例中的图3的步骤S101中的操作相同,并且省略其描述。
然而,在第八实施例中,多个模式生成电路(201A至201D)分别将测试模式并行地输入到多个CPU(10A至10D)中。此外,第二结果压缩电路(207A至207D)分别从多个CPU(10A至10D)的扫描链中获取测试结果,并将其压缩。
在发起CPU(10A至10D)中的每个CPU的诊断之前,与第一实施例中的图3的步骤S102同样,第二测试控制电路(200A至200D)中的每一个电路启动定时器(205)(S506)。根据定时器(205)的确定结果的具体确定和通知与第一实施例中的图3的步骤S102相同,并且省略其描述。然而,注意,在第八实施例中,与第一实施例不同,定时器(205)发起在从所有第二测试控制电路(200A至200D)输出诊断开始信号时的经过时间的测量,如上所述。
在第二结果压缩电路(207A至207D)压缩所有扫描结果之后,按照CPU(10A)、CPU(10B)、CPU(10C)和CPU(10D)的顺序依次进行关于测试结果的确定。
首先,第二测试控制电路(200A)或第二结果压缩电路(207A)控制选择电路(502)选择第二结果压缩电路(207A)。对应于CPU(10A)的第二结果压缩电路(207A)通过选择电路(502)将压缩的测试结果逐位地串行输出到递归压缩电路(208)。与未被确定测试结果的CPU(10B至10D)相对应的其它第二结果压缩电路(207B至207D)停止,在其中保持有经压缩的测试结果。递归压缩电路(208)重新压缩来自第二结果压缩电路(207A)的CPU(10A)的测试结果。比较电路(209)对由递归压缩电路(208)压缩的测试结果进行确定(S507)。注意,步骤S507中的具体操作与第一实施例中的图3的步骤S104相同,并且省略其描述。这同样适用于后述的CPU(10B至10D)的操作。
当作为CPU(10A)的诊断结果从比较电路(209)提供错误通知时(S507:异常),系统控制电路(15)迅速执行用于停止系统的处理,并由此停止系统(S527)。换句话说,系统控制电路(15)禁止半导体装置(1H)的启动。这同样适用于后述的CPU(10B至10D)上的操作。
接下来,第二测试控制电路(200B)或第二结果压缩电路(207B)控制选择电路(502)以选择第二结果压缩电路(207B)。对应于CPU(10B)的第二结果压缩电路(207B)通过选择电路(502)将经压缩的测试结果逐位地串行输出到递归压缩电路(208)。与未被确定测试结果的CPU(10C、10D)相对应的其他第二结果压缩电路(207C、207D)停止,在其中保持了经压缩的测试结果。递归压缩电路(208)重新压缩来自第二结果压缩电路(207B)的CPU(10B)的测试结果。比较电路(209)对由递归压缩电路(208)压缩的测试结果进行确定(S508)。
然后,第二测试控制电路(200C)或第二结果压缩电路(207C)控制选择电路(502)选择第二结果压缩电路(207C)。对应于CPU(10C)的第二结果压缩电路(207C)通过选择电路(502)将压缩的测试结果逐位地串行输出到递归压缩电路(208)。对应于没有确定测试结果的CPU(10D)的其他第二结果压缩电路(207D)停止,在其中保持了经压缩的测试结果。递归压缩电路(208)重新压缩来自第二结果压缩电路(207C)的CPU(10C)的测试结果。比较电路(209)对由递归压缩电路(208)压缩的测试结果进行确定(S509)。
之后,第二测试控制电路(200D)或第二结果压缩电路(207D)控制选择电路(502)以选择第二结果压缩电路(207D)。对应于CPU(10D)的第二结果压缩电路(207D)通过选择电路(502)将压缩的测试结果逐位地串行输出到递归压缩电路(208)。递归压缩电路(208)重新压缩来自第二结果压缩电路(207D)的CPU(10D)的测试结果。比较电路209对由递归压缩电路(208)压缩的测试结果进行确定(S510)。
[启动期间的诊断(SPF检测流程)]
当所有CPU(10A至10D)的诊断结果正常时,系统控制电路(15)执行步骤S511至S527和S20至S23的操作。注意,步骤S511至S527和S20至S23中的操作与第七实施例中的步骤S411至S427和S10至S13中的操作相同,并且省略其描述。
[特征与效果]
在第八实施例中,为每个CPU设置执行用于检测LF的扫描测试的装置(第二测试控制装置(4)),这与第七实施例不同。具体地,多个第二测试控制装置中的每一个装置彼此并行地执行在启动时的诊断中的扫描测试。因此,可以在多个CPU中同时执行LF的检测,从而减少启动时的诊断所需的时间。
虽然在上文中描述了本发明的实施例,但是本发明不限于上述实施例,并且在不脱离本发明的范围的情况下可以进行各种改变和修改。
注意,尽管在第七实施例和第八实施例中描述了将多处理器中的多个CPU用作多个待测试电路的示例,但是本发明不限于此。可以使用多核处理器中的多核。换句话说,可以使用各种运算电路作为待测试电路。
此外,虽然在第七所述和第八实施例中描述了在两个或更多个CPU上不同时执行启动时的诊断的示例,但是本发明不限于此。可以在两个或更多个(例如,两个或三个)CPU上同时执行启动时的诊断。然而,优选地,如上所述,不在两个或更多个CPU上同时执行启动时的诊断,从而降低了在启动时的诊断期间的系统性能的劣化。
此外,虽然在第三实施例中描述了以下例子:其中在半导体装置(1C)的启动后,仅在半导体装置(1C)的启动期间未执行启动时的诊断的待测试电路(50、60)上进行启动时的诊断,但是本发明不限于此。例如,也可以在半导体装置(1C)的启动后,在半导体装置(1C)的启动期间已经执行启动时的诊断的待测试电路(40)上进行启动时的诊断。例如,在终止待测试电路(40)的启动时的诊断之后,系统控制电路(15)使用于第二测试控制装置(52)的诊断发起信号无效。然后,在半导体装置(1C)的启动之后,待测试电路(40)可以通过系统总线(13)将生效的诊断发起信号输出到对应于包括其自身的待测试电路(40、50、60)的每个第二测试控制装置(42、52、62)。
附图标记列表
1、1A、1B、1C、1D、1E、1F、1G、1H 半导体装置
2、40、50、60 待测试电路
3、41、51、61 第一测试控制装置
4、42、52、62 第二测试控制装置
5、43、53、63 公共结果确定装置
10、10A、10B、10C、10D CPU
11 内部存储器
12 外部I/F
13 系统总线
14 外部存储器
15 系统控制电路
16、17 切断电路
20 操作诊断装置
44、54、64、500 与门
45、55、65 或门
70 测试目标设置电路
100 第一测试控制电路
101 模式输入电路
102 第一结果确定电路
103 第一预期值存储电路
104 第一定时器
200、200A、200B、200C、200D 第二测试控制电路
201、201A、201B、201C、201D 模式生成电路
202 第二结果确定电路
203 第二预期值存储电路
204 第二定时器
205 定时器
206 第一结果压缩电路
207、207A、207B、207C、207D 第二结果压缩电路
208 递归压缩电路
209 比较电路
203 第二预期值存储电路
300、300A、300B、300C、300D、301、302、401、402、501、502 选择电路
400 ROM
600 测试控制电路
601 模式输入电路
602 结果确定电路
603 预期值存储电路

Claims (14)

1.一种半导体装置,所述半导体装置执行第一扫描测试和第二扫描测试,包括:
待测试电路,具有扫描链和用于提供用以执行所述第一扫描测试的指令的功能;和
第一测试控制装置和第二测试控制装置,通过使用所述扫描链分别执行所述待测试电路的所述第一扫描测试和所述第二扫描测试,其中
在所述半导体装置的启动时,所述第二测试控制装置通过使用测试模式来执行所述待测试电路的第二扫描测试,所述测试模式通过使用伪随机数生成,
在执行所述第二扫描测试以及完成所述半导体装置的所述启动后,所述待测试电路向所述第一测试控制装置提供用以执行所述第一扫描测试的指令,以及
所述第一测试控制装置响应于来自所述待测试电路的指令执行所述待测试电路的所述第一扫描测试。
2.根据权利要求1所述的半导体装置,其中
在所述半导体装置的启动时,所述第二测试控制装置通过生成所述测试模式并将所述测试模式输入到所述扫描链中,来执行所述第二扫描测试,所述测试模式通过使用伪随机数生成,以及
在执行所述第二扫描测试以及完成所述半导体装置的所述启动之后,所述第一测试控制装置通过从连接到所述半导体装置的外部存储电路获取测试模式并将所获取的测试模式输入到所述扫描链中,来执行所述第一扫描测试。
3.根据权利要求2所述的半导体装置,还包括:
结果确定装置,所述结果确定装置通过使用第一预期值和第二预期值,确定通过所述第一扫描测试和所述第二扫描测试中的每一个扫描测试而从所述待测试电路获取的第一测试结果和第二测试结果。
4.根据权利要求1所述的半导体装置,还包括:
定时器,测量所述第一扫描测试和所述第二扫描测试中的每一个扫描测试的执行时间,并且当测量的所述执行时间超过指定的阈值时通知错误,其中
所述第一测试控制装置和所述第二测试控制装置中的每一个装置当发起所述待测试电路的所述第一扫描测试和所述第二扫描测试中的每一个扫描测试时向所述定时器提供指令以开始所述执行时间的测量,并且当所述待测试电路的所述第一扫描测试和所述第二扫描测试中的每一个扫描测试结束时向所述定时器提供指令以结束所述执行时间的测量。
5.根据权利要求3所述的半导体装置,还包括:
第一预期值存储单元,存储所述第一预期值,所述第一预期值是通过所述第一扫描测试从所述待测试电路获取的所述第一测试结果的预期值;
第二预期值存储单元,存储所述第二预期值,所述第二预期值是通过所述第二扫描测试从所述待测试电路获取的所述第二测试结果的预期值;
结果确定装置,
将通过所述第二扫描测试从所述待测试电路获取的所述第二测试结果与所述第二预期值进行比较,并且当它们匹配时确定结果是正常的,当它们不匹配时确定结果是错误的;以及
将通过所述第一扫描测试从所述待测试电路获取的所述第一测试结果与所述第一预期值进行比较,并且当它们匹配时确定结果是正常的,当它们不匹配时确定结果是错误的;和
系统控制电路,根据所述结果确定装置的确定结果来控制所述半导体装置,其中
所述系统控制电路使得所述结果确定装置在执行所述第二扫描测试之前将所述第二测试结果与和所述第二预期值不同的值进行比较,并且当确定所述值匹配时停止所述半导体装置的操作。
6.根据权利要求1所述的半导体装置,包括:
多个待测试电路;和
多个第二测试控制装置,执行所述多个待测试电路中的每一个待测试电路的所述第二扫描测试,其中
在所述半导体装置的启动时,所述多个第二测试控制装置中的每一个装置执行所述第二扫描测试,
在执行所述多个待测试电路中的每一个待测试电路的所述第二扫描测试以及完成所述半导体装置的所述启动之后,所述第一测试控制装置执行所述第一扫描测试,
所述半导体装置还包括:测试目标设定电路,存储测试目标值,所述测试目标值表示所述多个待测试电路中的每一个待测试电路是否是所述半导体装置的启动时的所述第二扫描测试的目标,以及
所述多个第二测试控制装置中的每一个装置根据所述测试目标值执行所述第二扫描测试。
7.根据权利要求6所述的半导体装置,其中
所述多个待测试电路中的每一个待测试电路在所述第二扫描测试被执行之后启动,并且执行包括提供所述第一扫描测试的指令的处理,
通过所述测试目标值被指明为所述第二扫描测试的目标的待测试电路向如下第二测试控制装置提供用于执行所述第二扫描测试的指令,所述第二测试控制装置对应于未通过所述测试目标值被指明为所述第二扫描测试的目标的待测试电路之中的指定的待测试电路。
8.根据权利要求1所述的半导体装置,其中除了对所述待测试电路的扫描测试之外,所述第二测试控制装置还执行对所述第一测试控制装置的扫描测试。
9.根据权利要求1所述的半导体装置,包括:
多个待测试电路,其中
所述第一测试控制装置和所述第二测试控制装置以指定的顺序执行所述多个待测试电路中的每一个待测试电路的所述第一扫描测试和所述第二扫描测试。
10.根据权利要求1所述的半导体装置,包括:
多个待测试电路;和
多个第二测试控制装置,执行所述多个待测试电路中的每一个待测试电路的所述第二扫描测试,其中
在所述半导体装置的启动时,所述多个第二测试控制装置中的每一个装置执行所述第二扫描测试,
在执行所述多个待测试电路中的每一个待测试电路的所述第二扫描测试以及完成所述半导体装置的所述启动之后,所述第一测试控制装置执行所述第一扫描测试,以及
所述多个第二测试控制装置中的每一个装置彼此并行地执行所述第二扫描测试。
11.根据权利要求3所述的半导体装置,其中所述结果确定装置:
将所述第一测试结果与所述第一预期值进行比较,由此实现对在完成所述半导体装置的所述启动之后对所述待测试电路的操作的故障的检测;以及
将所述第二测试结果与所述第二预期值进行比较,由此实现对所述待测试电路的所述功能的故障的检测,用于向所述第一测试控制装置提供用以执行所述第一扫描测试的指令。
12.根据权利要求1所述的半导体装置,其中所述待测试电路向所述第一测试控制装置提供用以执行所述第一扫描测试的指令,然后转变到停止状态。
13.根据权利要求1所述的半导体装置,还包括:系统总线;以及切断电路,被连接在所述待测试电路与所述系统总线之间,其中
在所述第二扫描测试被执行时,所述第二测试控制装置控制所述切断电路以切断在所述待测试电路与所述系统总线之间传送的信号。
14.一种在半导体装置中执行的诊断测试方法,所述半导体装置包括:待测试电路,具有扫描链和用于提供用以执行第一扫描测试的指令的功能;以及第一测试控制装置和第二测试控制装置,通过使用所述扫描链分别执行所述待测试电路的所述第一扫描测试和第二扫描测试,所述诊断测试方法包括:
在所述半导体装置的启动时,由所述第二测试控制装置通过使用测试模式来执行所述待测试电路的所述第二扫描测试,所述测试模式通过使用伪随机数生成;
在执行所述第二扫描测试以及完成所述半导体装置的所述启动之后,由所述待测试电路向所述第一测试控制装置提供用以执行所述第一扫描测试的指令;和
由所述第一测试控制装置响应于来自所述待测试电路的指令来执行所述待测试电路的所述第一扫描测试。
CN201580078737.8A 2015-06-18 2015-06-18 半导体装置和诊断测试方法 Active CN107430167B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/003047 WO2016203505A1 (ja) 2015-06-18 2015-06-18 半導体装置及び診断テスト方法

Publications (2)

Publication Number Publication Date
CN107430167A CN107430167A (zh) 2017-12-01
CN107430167B true CN107430167B (zh) 2021-02-02

Family

ID=57546429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580078737.8A Active CN107430167B (zh) 2015-06-18 2015-06-18 半导体装置和诊断测试方法

Country Status (7)

Country Link
US (1) US10281525B2 (zh)
EP (1) EP3312623B1 (zh)
JP (1) JP6462870B2 (zh)
KR (1) KR20180019505A (zh)
CN (1) CN107430167B (zh)
TW (1) TW201715245A (zh)
WO (1) WO2016203505A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003153B2 (en) * 2017-11-17 2021-05-11 Intel Corporation Safety operation configuration for computer assisted vehicle
US10620266B2 (en) * 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
TWI697773B (zh) * 2019-01-09 2020-07-01 瑞昱半導體股份有限公司 電路測試系統及電路測試方法
KR102176964B1 (ko) * 2019-05-13 2020-11-11 하이윈 테크놀로지스 코포레이션 시스템 기능 시험 장치
US10877700B1 (en) * 2019-08-16 2020-12-29 Silicon Motion, Inc. Flash memory controller and method capable of efficiently reporting debug information to host device
JP7150676B2 (ja) * 2019-09-02 2022-10-11 株式会社東芝 半導体集積回路及びそのテスト方法
JP7269896B2 (ja) * 2020-02-17 2023-05-09 ルネサスエレクトロニクス株式会社 故障診断装置および故障診断方法
TWI719841B (zh) * 2020-02-25 2021-02-21 世界先進積體電路股份有限公司 測試電路及電子裝置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0318777A (ja) * 1989-06-16 1991-01-28 Hitachi Ltd スキヤン回路の故障診断方法
JPH05313935A (ja) 1992-05-06 1993-11-26 Hokuriku Nippon Denki Software Kk 情報処理装置の診断回路
TW307927B (zh) * 1994-08-29 1997-06-11 Matsushita Electric Ind Co Ltd
JPH11101859A (ja) * 1997-09-29 1999-04-13 Matsushita Electric Ind Co Ltd 半導体装置
JP2002189063A (ja) * 2000-12-22 2002-07-05 Hitachi Ltd 半導体装置
JP2003068865A (ja) * 2001-08-30 2003-03-07 Sony Corp 半導体デバイスの自己診断方法および装置
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
DE10334801B3 (de) * 2003-07-30 2005-01-27 Infineon Technologies Ag Halbleiterschaltung und Verfahren zum Testen, Überwachen und applikationsnahen Einstellen einer Halbleiterschaltung
JP3859647B2 (ja) * 2004-01-16 2006-12-20 松下電器産業株式会社 半導体集積回路のテスト方法および半導体集積回路
JP2006073917A (ja) 2004-09-06 2006-03-16 Nec Electronics Corp 集積回路
JP2006303326A (ja) * 2005-04-22 2006-11-02 Toshiba Corp 半導体装置およびそのテスト方法
US7469372B2 (en) * 2005-05-13 2008-12-23 Texas Instruments Incorporated Scan sequenced power-on initialization
US7301836B1 (en) * 2005-10-25 2007-11-27 Altera Corporation Feature control circuitry for testing integrated circuits
JP2008267999A (ja) 2007-04-20 2008-11-06 Hitachi Ltd 制御中に自己診断できるプログラム可能な制御装置
US20090063921A1 (en) 2007-08-28 2009-03-05 Anthony Gus Aipperspach Staggered LBIST Clock Sequence for Noise (di/dt) Amelioration
JP5017058B2 (ja) * 2007-10-26 2012-09-05 株式会社日立製作所 半導体集積回路装置
JP2011094986A (ja) * 2009-10-27 2011-05-12 Renesas Electronics Corp 半導体集積回路、半導体集積回路設計方法、スキャンテストパタン生成方法及びそのプログラム
JP5313935B2 (ja) * 2010-01-21 2013-10-09 三菱電機株式会社 回転電機の固定子の製造方法および回転電機の固定子
CN103576076B (zh) * 2012-07-27 2019-02-01 恩智浦美国有限公司 用于执行扫描测试的系统和方法
JP6107519B2 (ja) * 2013-07-31 2017-04-05 富士通セミコンダクター株式会社 半導体装置及びその試験方法
JP6496562B2 (ja) * 2014-04-11 2019-04-03 ルネサスエレクトロニクス株式会社 半導体装置、診断テスト方法及び診断テスト回路
CN107430166B (zh) * 2015-04-16 2020-01-10 瑞萨电子株式会社 半导体器件及扫描测试方法
JP6438353B2 (ja) * 2015-05-27 2018-12-12 ルネサスエレクトロニクス株式会社 半導体装置及び診断テスト方法

Also Published As

Publication number Publication date
EP3312623A4 (en) 2019-01-23
EP3312623A1 (en) 2018-04-25
JP6462870B2 (ja) 2019-01-30
CN107430167A (zh) 2017-12-01
KR20180019505A (ko) 2018-02-26
TW201715245A (zh) 2017-05-01
EP3312623B1 (en) 2022-04-13
US20180180672A1 (en) 2018-06-28
JPWO2016203505A1 (ja) 2017-09-28
WO2016203505A1 (ja) 2016-12-22
US10281525B2 (en) 2019-05-07

Similar Documents

Publication Publication Date Title
CN107430167B (zh) 半导体装置和诊断测试方法
US10042791B2 (en) Abnormal interrupt request processing
US8799713B2 (en) Interruptible non-destructive run-time built-in self-test for field testing
CN107589825B (zh) 看门狗电路、功率ic和看门狗监视系统
US9234941B2 (en) Electronic control unit having integrated circuit element and standalone test unit for integrated circuit element
KR100296984B1 (ko) 전자제어장치용감시시스템
JP2013061863A (ja) 電子制御装置
EP3460632B1 (en) Microcontroller and control method of the same
US20170249224A1 (en) Semiconductor device
US10802929B2 (en) Parallel processing system runtime state reload
CN115904793A (zh) 一种基于多核异构系统的内存转存方法、系统及芯片
EP3933420B1 (en) System and method for testing critical components on system-on-chip
US8742779B2 (en) Semiconductor device and abnormality prediction method thereof
US20190285696A1 (en) Semiconductor device and failure diagnosis method
US10514970B2 (en) Method of ensuring operation of calculator
US10008285B2 (en) Semiconductor device
JP2008267999A (ja) 制御中に自己診断できるプログラム可能な制御装置
CN112424753A (zh) 多核系统
US11619668B2 (en) Integrated circuit with self-test circuit, method for operating an integrated circuit with self-test circuit, multi-core processor device and method for operating a multi-core processor device
JP6588068B2 (ja) マイクロコンピュータ
JP2020030714A (ja) 自己診断装置、半導体装置及び自己診断方法
KR102483013B1 (ko) 차량용 전원 불량 점검 장치 및 방법
JP2021099674A (ja) 信号処理回路及び信号処理回路の故障診断方法
JP2003256037A (ja) プラント制御装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant