KR20230068957A - System on chip for perporming scan test, and design method therefor - Google Patents

System on chip for perporming scan test, and design method therefor Download PDF

Info

Publication number
KR20230068957A
KR20230068957A KR1020220033736A KR20220033736A KR20230068957A KR 20230068957 A KR20230068957 A KR 20230068957A KR 1020220033736 A KR1020220033736 A KR 1020220033736A KR 20220033736 A KR20220033736 A KR 20220033736A KR 20230068957 A KR20230068957 A KR 20230068957A
Authority
KR
South Korea
Prior art keywords
data
scan
test
flip
flop
Prior art date
Application number
KR1020220033736A
Other languages
Korean (ko)
Inventor
손우현
배기석
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/859,870 priority Critical patent/US11940494B2/en
Publication of KR20230068957A publication Critical patent/KR20230068957A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/333Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
    • 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/318583Design for test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

A system on chip (SoC), according to the present invention, comprises: an OTP memory storing secured data; an OTP controller containing at least one shadow register which reads the secured data from the OTP memory and stores the secured data; a power management unit which receives an operation mode signal from an external device and outputs test mode information indicating whether an operation mode is a test mode according to the operation mode signal and a test validation signal corresponding to the secured data; and a test circuit which receives the test mode information from the power management unit, test data from the external device, and outputs a scan mode signal and a test mode signal according to the test data and a test inactivating signal. The test inactivating signal corresponds to development status data indicating a chip development status in the secured data. Accordingly, the present invention can provide an SoC improving the availability of a scan test.

Description

스캔 테스트를 수행하는 시스템 온 칩, 및 그것을 설계하는 방법{SYSTEM ON CHIP FOR PERPORMING SCAN TEST, AND DESIGN METHOD THEREFOR}System on chip performing scan test, and method of designing it

본 발명은 스캔 테스트를 수행하는 시스템 온 칩, 및 그것을 설계하는 방법에 관한 것이다.The present invention relates to a system on a chip that performs a scan test, and a method for designing the same.

일반적으로, SoC(System on Chip)은 여러 기능을 가지는 시스템이 하나의 반도체 칩으로 구현되는 것을 의미한다. SoC에 포함된 논리 회로들의 테스트를 위해 테스트를 위한 설계(DFT; Design For Test) 기법이 이용되고 있다. DFT 기법 중 스캔 테스트(scan test)는 입력된 스캔 패턴 데이터를 기반으로 출력되는 데이터를 확인하여 논리 회로를 테스트하는 기술이다. 스캔 테스트를 기반으로 논리 회로의 고착 고장(stuck fault), 천이지연 고장(transition delay fault) 등이 판별될 수 있다.In general, SoC (System on Chip) means that a system having several functions is implemented as a single semiconductor chip. A design for test (DFT) technique is used to test logic circuits included in the SoC. Among the DFT techniques, a scan test is a technique for testing a logic circuit by checking output data based on input scan pattern data. Based on the scan test, a stuck fault, a transition delay fault, and the like of the logic circuit may be determined.

본 발명의 목적은 스캔 테스트의 가용성(availability)을 향상시키는 시스템 온 칩, 및 그것을 설계하는 방법을 제공하는 데 있다.An object of the present invention is to provide a system on a chip that improves the availability of a scan test, and a method for designing the same.

본 발명의 목적은 DFT(Design for Test) 검증 성능을 향상시키는 시스템 온 칩, 및 그것을 설계하는 방법을 제공하는 데 있다.An object of the present invention is to provide a system-on-chip that improves DFT (Design for Test) verification performance, and a method for designing the same.

본 발명의 실시 예에 따른 시스템 온 칩은, 보안 데이터를 저장하는 OTP 메모리; 상기 OTP 메모리로부터 상기 보안 데이터를 읽고, 상기 보안 데이터를 저장하는 적어도 하나의 새도우 레지스터를 포함하는 OTP 제어기; 외부 장치로부터 동작 모드 신호를 수신하고, 상기 동작 모드 신호와 상기 보안 데이터에 대응하는 테스트 유효 신호에 따라 동작 모드가 테스트 모드인 지를 지시하는 테스트 모드 정보를 출력하는 전력 관리 유닛; 및 상기 전력 관리 유닛으로부터 상기 테스트 모드 정보를 수신하고, 상기 외부 장치로부터 테스트 데이터 수신하고, 상기 테스트 데이터 및 테스트 비활성화 신호에 따라 스캔 모드 신호 및 테스트 모드 신호를 출력하는 테스트 회로를 포함하고, 상기 테스트 비활성화 신호는 상기 보안 데이터 중에서 칩 개발 상태를 지시하는 개발 상태 데이터에 대응하는 것을 특징으로 한다.A system on a chip according to an embodiment of the present invention includes an OTP memory for storing security data; an OTP controller including at least one shadow register for reading the security data from the OTP memory and storing the security data; a power management unit that receives an operation mode signal from an external device and outputs test mode information indicating whether an operation mode is a test mode according to the operation mode signal and a test valid signal corresponding to the secure data; and a test circuit that receives the test mode information from the power management unit, receives test data from the external device, and outputs a scan mode signal and a test mode signal according to the test data and a test inactivation signal. The deactivation signal is characterized in that it corresponds to development state data indicating a chip development state among the security data.

본 발명의 다른 실시 예에 따른 시스템 온 칩은, 제 1 조합 논리; 제 2 조합 논리; 제 3 조합 논리; 상기 제 1 조합 논리와 상기 제 2 조합 논리 사이에 연결된 제 1 스캔 플립플롭들; 상기 제 2 조합 논리와 상기 제 3 조합 논리 사이에 연결된 제 2 스캔 플립플롭들; 상기 제 2 조합 논리의 출력 데이터를 수신하고, 상기 출력 데이터를 상기 제 3 조합 논리로 전달하는 스캔 제어 플립플롭; 스캔 데이터를 수신하고, 상기 제 1 스캔 플립플롭들과 상기 제 2 스캔 플립플롭들로 구성된 스캔 체인; 및 스캔 모드 신호에 응답하여 상기 스캔 체인의 출력 신호와 상기 제 3 조합 논리의 출력 신호 중에서 어느 하나를 출력하는 멀티플렉서를 포함하고, 상기 스캔 제어 플립플롭은 스캔 모드시 상기 출력 데이터가 스캔 동작에 영향을 주지 않도록 설계되는 것을 특징으로 한다.A system on a chip according to another embodiment of the present invention includes a first combinational logic; second combinatorial logic; third combinatorial logic; first scan flip-flops coupled between the first combinational logic and the second combinational logic; second scan flip-flops connected between the second combinational logic and the third combinational logic; a scan control flip-flop that receives output data of the second combinational logic and transfers the output data to the third combinational logic; a scan chain configured to receive scan data and to include the first scan flip-flops and the second scan flip-flops; and a multiplexer outputting one of an output signal of the scan chain and an output signal of the third combinational logic in response to a scan mode signal, wherein the scan control flip-flop affects a scan operation when the output data is in the scan mode. It is characterized in that it is designed not to give.

본 발명의 실시 예에 따른 시스템 온 칩의 설계 방법은, 사양에서 OTP(One Time Programming) 데이터를 정의하는 단계; 상기 OTP 데이터가 테스트 혹은 디버깅 접근하는데 영향을 주는 지 판별하는 단계; 및 상기 OTP 데이터가 상기 테스트 혹은 디버깅 접근에 영향을 줄 때, 상기 OTP 데이터를 저장하는데 스캔 제어 플립플롭들을 이용하여 새도우 레지스터를 설계하는 단계를 포함하고, 상기 스캔 제어 플립플롭들의 각각은 스캔 모드시 출력 데이터가 스캔 동작에 영향을 주지 않도록 설계되는 것을 특징으로 한다.A method for designing a system on a chip according to an embodiment of the present invention includes defining One Time Programming (OTP) data in a specification; Determining whether the OTP data has an effect on testing or debugging access; and designing a shadow register using scan control flip-flops to store the OTP data when the OTP data affects the test or debugging access, each of the scan control flip-flops in a scan mode. It is characterized in that the output data is designed not to affect the scan operation.

본 발명의 실시 예에 따른 시스템 온 칩, 및 그것을 설계하는 방법은, 스캔 모드에서 특정 레지스터의 값을 유지시킴으로써, 테스트의 가용성을 향상시킬 수 있다.A system on a chip and a method for designing the system according to an embodiment of the present invention can improve test usability by maintaining a value of a specific register in a scan mode.

본 발명의 실시 예에 따른 시스템 온 칩, 및 그것을 설계하는 방법은, 스캔 모드에서 특정 레지스터의 값을 유지시킴으로써, DFT 검증 성능을 향상시킬 수 있다.A system-on-chip and a method for designing the system according to an embodiment of the present invention can improve DFT verification performance by maintaining a value of a specific register in a scan mode.

이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다.
도 1은 일반적인 시스템 온 칩의 스캔 체인 회로를 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 시스템 온 칩(100)을 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 OTP 제어기(120)를 예시적으로 보여주는 도면이다.
도 4은 본 발명의 실시 예에 따른 스캔 제어 플립플롭을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 스캔 제어 플립플롭을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 스캔 체인 회로를 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 OTP 제어기를 설계하는 방법을 예시적으로 보여주는 흐름도이다.
도 8은 본 발명의 실시 예에 따른 EDA를 구동하는 컴퓨팅 장치를 보여주는 블록도이다.
도 9는 본 발명의 실시 예에 따른 컴퓨팅 시스템(1000)을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 차량용 제어 시스템(2000)을 예시적으로 보여주는 블록도이다.
The accompanying drawings are provided to aid understanding of the present embodiment, and provide examples along with detailed descriptions.
1 is a diagram showing a scan chain circuit of a general system-on-chip by way of example.
2 is a diagram showing a system on chip 100 according to an embodiment of the present invention.
3 is a diagram showing an OTP controller 120 according to an embodiment of the present invention by way of example.
4 is a diagram exemplarily showing a scan control flip-flop according to an embodiment of the present invention.
5 is a diagram exemplarily showing a scan control flip-flop according to another embodiment of the present invention.
6 is a diagram exemplarily showing a scan chain circuit according to an embodiment of the present invention.
7 is a flowchart exemplarily showing a method of designing an OTP controller according to an embodiment of the present invention.
8 is a block diagram showing a computing device driving an EDA according to an embodiment of the present invention.
9 is a diagram showing a computing system 1000 according to an embodiment of the present invention by way of example.
10 is a block diagram showing a vehicle control system 2000 according to an exemplary embodiment of the present invention.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시 할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.In the following, the content of the present invention will be described clearly and in detail to the extent that a person skilled in the art can easily practice using the drawings.

일반적으로 SoC(System on Chip, 시스템 온 칩)는 내부에서 이용되는 값을 안전하게 저장하기 위하여 OTP(One Time Programmable) 메모리를 포함하고 있다. OTP 메모리에 저장되는 보안 데이터는 부팅을 위한 보안키, 센서(sensor)의 값의 보정을 위한 트림(trim) 정보, 메모리 복구(repair) 시스템을 위한 정보, 개발 상태 데이터 등을 포함하고 있다. 여기서 개발 상태 데이터는 SoC의 개발 상태, 예를 들어, 개발 단계, 테스트 단계, 양산 단계를 구분하는데 이용된다. SoC는 동작 모드 전환을 위해 개발 상태 데이터를 이용할 수 있다. 일반적으로, SoC의 동작 모드는 기능(function) 모드와 테스트 모드로 구분된다. 여기서 테스트 모드는 DFT(Design For Test)를 위해 이용된다. 보안(Secure) DFT를 위해서 OTP 메모리의 데이터가 실제로 로드(load)된 후, 동작 모드 전환이 이루어져야 한다. 이러한 동작 모드 전환은 OTP 제어기로부터 출력되는 유효(valid) 신호로 판단될 수 있다. 한편, 스캔(scan) 테스트 시, 개발 상태 데이터가 흔들림으로써, 의도하지 않은 모드로 전환되고, 이에 따라, 테스트 효율이 저하될 수 있다.In general, a System on Chip (SoC) includes a One Time Programmable (OTP) memory to safely store values used therein. The security data stored in the OTP memory includes a security key for booting, trim information for sensor value correction, information for a memory repair system, development status data, and the like. Here, the development state data is used to classify the development state of the SoC, for example, a development stage, a test stage, and a mass production stage. The SoC can use development state data to switch operating modes. In general, the operation mode of SoC is divided into a function mode and a test mode. Here, the test mode is used for DFT (Design For Test). For secure DFT, operation mode conversion must be performed after data in the OTP memory is actually loaded. Such operation mode conversion may be determined as a valid signal output from the OTP controller. On the other hand, during a scan test, when the development state data is shaken, it is switched to an unintended mode, and thus test efficiency may be lowered.

도 1은 일반적인 시스템 온 칩의 스캔 체인 회로를 예시적으로 보여주는 도면이다. 도 1을 참조하면, 디자인을 합성(Synthesis)할 때, 영향을 줄 수 있는 플립플롭은 스캔 체인에서 제외시키고 있다. 하지만, 스캔 테스트의 '업데이트(update)'과정에서 조합 논리(combinational logic)에 의해 여전히 해당 플립플롭의 데이터가 흔들릴 수 있다. 일반적으로, 소프트웨어 상에서 OTP 메모리의 데이터를 읽고 쓰는 과정이 상당히 오래 걸린다. 이 때문에, SoC를 부팅(booting)할 때, OTP 데이터를 새도우 레지스터(shadow register)에 복사(sensing)하는 과정이 수행된다. 이러한 새도우 레지스터의 데이터는 SoC의 동작(부팅 관련 동작, 보안 관련 동작, 복구 관련 동작 등)에 이용된다.1 is a diagram showing a scan chain circuit of a general system-on-chip by way of example. Referring to FIG. 1, when synthesizing a design, flip-flops that may have an effect are excluded from the scan chain. However, the data of the flip-flop may still be shaken by combinational logic during the 'update' process of the scan test. In general, the process of reading and writing data in the OTP memory in software takes quite a long time. For this reason, when booting the SoC, a process of copying OTP data to a shadow register (sensing) is performed. The data of these shadow registers are used for SoC operations (boot-related operations, security-related operations, recovery-related operations, etc.).

IEEE 1149.1 등 DFT(Design for Test)를 위한 스킴이 강화됨에 따라, 플립플롭 및 게이트(AND, OR, XOR 등)의 결함 유무를 테스트하는 스캔 테스트가 필연적으로 요구되고 있다. 먼저, 모든 플립플롭을 체인으로 연결함으로써 첫 입력 단에 랜덤(random) 데이터를 인가한 후, 출력 단에서 인가된 데이터를 추출함으로써 데이터를 비교하는 방식으로 플립플롭에 대한 테스트가 진행된다. 연결된 스캔 체인에 데이터를 먼저 인가한 후, 스캔 체인을 해제하고 기능 모드로 동작(update)함으로써, 게이트가 설계자가 의도한 로직(logic)으로 동작하는 지가 확인된다.As schemes for DFT (Design for Test), such as IEEE 1149.1, are strengthened, a scan test for testing defects in flip-flops and gates (AND, OR, XOR, etc.) is inevitably required. First, a flip-flop test is performed by connecting all flip-flops in a chain, applying random data to the first input terminal, and then extracting data applied from the output terminal to compare the data. After data is first applied to the connected scan chain, the scan chain is released and operated in a functional mode (update), thereby confirming whether the gate operates according to the logic intended by the designer.

OTP의 새도우 레지스터는 다수의 플립플롭으로 구성되고 있다. 이 때문에 스캔 테스트가 필연적으로 수행되고 있다. 하지만, 새도우 레지스터 중 특정 레지스터(개발 상태를 구분하기 위해 이용되는 데이터를 저장하는 레지스터)는 스캔 체인에 연결되지 않도록 해야 한다. 이는 랜덤 데이터를 이용하여 플립플롭을 테스트하기 때문에 개발 단계임에도 불구하고, 양산용으로 인식하여 테스트가 불가능하도록 설정할 수 있기 때문이다. 또한, 스캔 체인 뿐만 아니라 게이트를 테스트할 때도, 조합 논리에 의해 특정 레지스터가 의도하지 않는 데이터로 덮어써지는 문제가 발생할 수 있다. 이러한 문제들은 DFT 검증 성능을 저하시키고, 보안 홀(security hole)과 같은 문제로 이어질 수 있다. 이는 DFT 검증을 어렵게 만들고, 보안이 취약하게 하는 잠재적 요소가 되고 있다. 이러한 문제를 해결하고자, 일반적으로 스캔 체인에서 해당 플립플롭을 제외하기 위해 기능 ECO(Engineering Change Order)를 진행하고 있다. 하지만, SCAN 캡쳐(capture) 동작에서 데이터가 흔들리지 않도록 고정시키는 벡터만을 이용함으로써, 테스트 범위(coverage)가 현저하게 줄어들 수 있다.The shadow register of OTP is composed of a number of flip-flops. For this reason, scan tests are inevitably performed. However, among the shadow registers, certain registers (registers that store data used to classify the development status) should not be connected to the scan chain. This is because the flip-flop is tested using random data, so even though it is in the development stage, it can be set to make testing impossible by recognizing it for mass production. Also, when testing a gate as well as a scan chain, a problem in which a specific register is overwritten with unintended data may occur due to combinational logic. These problems can degrade DFT verification performance and lead to problems such as security holes. This makes DFT verification difficult and becomes a potential factor that makes security weak. To solve this problem, a function ECO (Engineering Change Order) is usually performed to exclude the corresponding flip-flop from the scan chain. However, the test coverage can be remarkably reduced by using only the vector for fixing the data so that the data is not shaken in the SCAN capture operation.

본 발명은 DFT 검증 성능/테스트 가용성을 향상시키는 시스템 온 칩, 그것을 갖는 전자 장치 및 그것의 동작 방법을 개시한다. 특히, 본 발명의 실시 예에 따른 시스템 온 칩은 테스트 동작시 테스트에 영향을 줄 수 있는 플립플롭의 데이터가 흔들리지 않도록 구현(설계)될 수 있다. 예를 들어, 본 발명의 시스템 온 칩은, 피드백 루프(feedback loop) 플립플롭 혹은 게이팅 클록(gating clock) 플립플롭 등을 이용함으로써, 스캔 테스트 동작시 조합 논리(combinational logic)에 의해 특정 레지스터(예를 들어, 새도우 레지스터)의 데이터가 업데이트 되지 않도록 구현될 수 있다. 또한, 본 발명의 실시 예에 따른 시스템 온 칩은 디자인을 합성할 때, 테스트에 영향을 줄 수 있는 플립플롭이 스캔 체인에 연결되지 않도록 설계할 수 있다.The present invention discloses a system on a chip that improves DFT verification performance/test usability, an electronic device having the same, and a method of operating the same. In particular, the system-on-chip according to an embodiment of the present invention may be implemented (designed) so that flip-flop data, which may affect a test, is not shaken during a test operation. For example, the system-on-chip of the present invention uses a feedback loop flip-flop or a gating clock flip-flop, and the like, so that a specific register (eg, a combinational logic) is used during a scan test operation. For example, it may be implemented so that data in a shadow register) is not updated. In addition, the system-on-chip according to an embodiment of the present invention may be designed so that a flip-flop that may affect a test is not connected to a scan chain when a design is synthesized.

본 발명의 실시 예에 따른 시스템 온 칩은, 스캔 테스트 중 '업데이트' 항목(combinational logic test)에 의해 특정 데이터가 업데이트되지 않게 함으로써 안정적인 테스트를 가능하게 한다. 또한, 본 발명의 실시 예에 따른 시스템 온 칩은 스캔 테스트 중 '쉬프트(shifting)' 항목에 의해 특정 플립플롭의 데이터가 업데이트되지 않도록 함으로써 안정적인 테스트를 가능하게 한다.The system-on-a-chip according to an embodiment of the present invention enables a stable test by preventing specific data from being updated by an 'update' item (combinational logic test) during a scan test. In addition, the system-on-chip according to an embodiment of the present invention enables a stable test by preventing data of a specific flip-flop from being updated by a 'shifting' item during a scan test.

본 발명의 실시 예에 따른 시스템 온 칩, 및 그것을 설계하는 방법은, DFT(Design for Test)/디버깅(debugging) 요소에 영향을 주는 OTP 데이터의 경우, 스캔 테스트에 제외시킴으로써 의도하지 않은 문제를 발생시키지 않도록 관리하고, 또한, 스캔 체인에 조합 논리의 동작으로 인해 특정 데이터가 업데이트되지 않도록 보안 DFT 제어를 수행하도록 구현될 수 있다.A system-on-chip according to an embodiment of the present invention and a method for designing the same cause an unintended problem by excluding OTP data affecting a design for test (DFT)/debugging element from a scan test. In addition, it can be implemented to perform secure DFT control so that specific data is not updated due to the operation of combinatorial logic in the scan chain.

도 2는 본 발명의 실시 예에 따른 시스템 온 칩(100)을 보여주는 도면이다. 도 2를 참조하면, 시스템 온 칩(100)은 OTP 메모리(110), OTP 제어기(120), 전원 관리 유닛(130, PMU) 및 테스트 회로(140, JTAG TOP)를 포함할 수 있다.2 is a diagram showing a system on chip 100 according to an embodiment of the present invention. Referring to FIG. 2 , the system on chip 100 may include an OTP memory 110, an OTP controller 120, a power management unit 130 (PMU), and a test circuit 140 (JTAG TOP).

OTP 메모리(110)는 보안 데이터를 저장하도록 구현될 수 있다. 여기서 보안 데이터는 부팅키, 트림 정보, 복구 정보, 혹은 개발 상태 데이터를 포함할 수 있다. OTP 메모리(110)는 워드라인들과 비트라인들에 연결된 복수의 메모리 셀들을 포함할 수 있다. 여기서 복수의 메모리 셀들은 전원이 차단되어도 프로그램된 데이터를 손실하지 않고, 다시 프로그램 될 수 없는 비가역적(irreversible) 특성을 가질 수 있다. 예를 들어, 메모리 셀들의 각각은 퓨즈(fuse) 혹은 안티퓨즈(antifuse)로 구현될 수 있다.OTP memory 110 may be implemented to store secure data. Here, security data may include a booting key, trim information, recovery information, or development state data. The OTP memory 110 may include a plurality of memory cells connected to word lines and bit lines. Here, the plurality of memory cells may have irreversible characteristics in which programmed data is not lost and cannot be programmed again even if power is cut off. For example, each of the memory cells may be implemented as a fuse or an antifuse.

OTP 제어기(120)는 OTP 메모리(110)를 제어하도록 구현될 수 있다. OTP 제어기(120)는 적어도 하나의 새도우 레지스터(122)를 포함할 수 있다. 보안 DFT를 구성하는 데이터는 OTP 제어기(120)의 새도우 레지스터(122)에 로드 될 수 있다. 스캔 테스트 시, OTP 제어기(120)는 DFT 환경이 비활성화 되지 않도록, 새도우 레지스터(122)의 데이터가 토글 되지 않는 스캔 제어 플립플롭(124)로 구현될 수 있다. 예를 들어, 새도우 레지스터(122)의 데이터는 클록 게이팅 혹은 피드백 루프를 이용하여 제어될 수 있다.The OTP controller 120 may be implemented to control the OTP memory 110 . OTP controller 120 may include at least one shadow register 122 . Data constituting the secure DFT may be loaded into the shadow register 122 of the OTP controller 120. During the scan test, the OTP controller 120 may be implemented as a scan control flip-flop 124 in which data of the shadow register 122 is not toggled so that the DFT environment is not deactivated. For example, data in the shadow register 122 may be controlled using clock gating or a feedback loop.

실시 예에 있어서, 정상 모드에서 클록 게이팅 혹은 피드백 루프 없이 OTP 메모리(110)의 life-cycle 데이터에 따라 DFT/Debug 접근이 제어될 수 있다. 정상 모드와 테스트 모드를 구분하기 위해, OTP메모리(110)로부터 출력된 데이터가 유효하다는 것을 지시하는 유효 신호(JTAG_VALID)를 받아 테스트 모드로 전환이 가능하다.In an embodiment, DFT/Debug access may be controlled according to life-cycle data of the OTP memory 110 without clock gating or a feedback loop in normal mode. In order to distinguish the normal mode from the test mode, it is possible to switch to the test mode by receiving a valid signal (JTAG_VALID) indicating that data output from the OTP memory 110 is valid.

또한, OTP 제어기(120)는 OTP 메모리(110)로부터 보안 데이터를 읽을 수 있다. 예를 들어, OTP 제어기(120)는 JTAG(DFT)/디버깅에 관련된 보안 데이터를 읽으면 유효 신호(JTAG_VALID)를 출력하도록 구현될 수 있다.Also, the OTP controller 120 may read security data from the OTP memory 110. For example, the OTP controller 120 may be implemented to output a valid signal (JTAG_VALID) when security data related to JTAG (DFT)/debugging is read.

전력 관리 유닛(130)은 외부 장치로부터 전원을 공급 받고, SoC(100)의 내부 전원 공급하도록 구현될 수 있다. 또한, 전력 관리 유닛(130)은 외부 장치로부터 동작 모드 신호(XOM) 및 리셋 신호(XnRESET)를 수신하고, OTP 제어기(120)의 새도우 레지스터(122)로부터 테스트 유효 신호(JTAG_VALID)를 수신하고, 테스트 모드 정보를 출력할 수 있다.The power management unit 130 may receive power from an external device and supply internal power to the SoC 100 . In addition, the power management unit 130 receives an operation mode signal (XOM) and a reset signal (XnRESET) from an external device, receives a test valid signal (JTAG_VALID) from the shadow register 122 of the OTP controller 120, Test mode information can be output.

실시 예에 있어서, DFT를 위한 시퀀스는 다음과 같다. 전력 관리 유닛(130)은 외부 입력인 동작 모드 신호(XOM)을 이용해 테스트 모드를 위한 값을 수신할 수 있다. 전력 관리 유닛(130)의 OM(Operation Mode) 디코더(131)는 모드 신호(XOM)와 리셋 신호(XnRESET)를 수신하고, 수신된 모드 신호(XOM)를 해석하여 테스트 모드(TEST_MODE)를 위한 준비가 되었음을 확인할 수 있다. 전력 관린 유닛(130)은 OM 디코더(131)의 출력 신호와 새도우 레지스터(122)로부터 테스트 유효 신호(JTAG_VALID)를 AND 연산하고, 테스트 모드 정보를 출력하는 논리 회로(132)를 포함할 수 있다.In an embodiment, the sequence for DFT is as follows. The power management unit 130 may receive a value for the test mode using the operation mode signal XOM, which is an external input. The OM (Operation Mode) decoder 131 of the power management unit 130 receives the mode signal XOM and the reset signal XnRESET, interprets the received mode signal XOM, and prepares for the test mode TEST_MODE. can confirm that it has been The power management unit 130 may include a logic circuit 132 that performs an AND operation on the output signal of the OM decoder 131 and the test valid signal JTAG_VALID from the shadow register 122 and outputs test mode information.

또한, 전력 관리 유닛(130)의 AND 연산 회로(132)는 OTP 제어기(120)로부터 전달받은 유효 신호(JTAG_VALID)와 OM 디코더(131)로부터 전달받은 신호를 'AND'연산함으로써 동작 모드가 테스트 모드로 전환되었음을 출력할 수 있다.In addition, the AND operation circuit 132 of the power management unit 130 performs an 'AND' operation on the valid signal (JTAG_VALID) received from the OTP controller 120 and the signal received from the OM decoder 131, so that the operation mode is the test mode. It can be output that it has been converted to .

테스트 회로(JTAG TOP 모듈, 140)는 JTAG MUX(141)를 이용하여 외부 JTAG 인터페이스로부터 테스트 데이터를 수신할 수 있다. 또한, 테스트 회로(140)는 수신된 데이터에 따라 각 테스트 모드를 결정할 수 있다. 예를 들어, 테스트 회로(140)는 전력 관리 유닛(130)로부터 테스트 모드 정보를 수신하고, OTP 제어기(120)의 새도우 레지스터(122)로부터 테스트 비활성화 신호(JTAG_DISABLE)를 수신하고, JTAG 인터페이스로부터 테스트 데이터를 수신하고, 스캔 모드 신호(SCAN_MODE) 및 테스트 모드 신호(TEST_MODE)를 출력할 수 있다. 여기서 스캔 모드 신호(SCAN_MODE)는 스캔 동작을 지시하는 값을 포함하고, 테스트 모드 신호(TEST_MODE)는 테스트 동작을 지시하는 값을 포함한다.The test circuit (JTAG TOP module 140) may receive test data from an external JTAG interface using the JTAG MUX 141. Also, the test circuit 140 may determine each test mode according to the received data. For example, the test circuit 140 receives test mode information from the power management unit 130, receives a test disable signal (JTAG_DISABLE) from the shadow register 122 of the OTP controller 120, and tests from the JTAG interface. Data may be received, and a scan mode signal (SCAN_MODE) and a test mode signal (TEST_MODE) may be output. Here, the scan mode signal SCAN_MODE includes a value indicative of a scan operation, and the test mode signal TEST_MODE includes a value indicative of a test operation.

일반적으로, OTP 메모리에 저장된 테스트 비활성화 신호(JTAG_DISABLE)과 같은 보안 데이터는 SoC의 개발 상태를 구분할 수 있다. 개발 단계에서는 시스템 온 칩의 디버깅을 위해 테스트 모드가 존재한다. 실제 양산 단계에서는 테스트 모드로의 전환이 불가능하도록 설정될 수 있다. 테스트 모드에서는 SoC의 내부 데이터를 가공할 수 있다. 이는 보안과 관련된 핵심 데이터를 읽어볼 수 있기 때문이다. 이러한 테스트 항목 중에서, SoC를 구성하는 요소인 플립플롭과 게이트를 테스트하는 스캔 테스트가 있다. 랜덤 데이터를 이용하여 SoC를 테스트하는데, 이 때 테스트 비활성화 신호(JTAG_DISABLE)을 저장하는 플립플롭이 개발 단계임에도 불구하고 '1'로 바뀔 수 있다. 이에 스캔 체인이 해제될 수 있다. 이는 회로를 테스트할 수 없게 한다. 이를 방지하기 위해, 본 발명의 실시 예에 따른 OTP 제어기(120)는 새도우 레지스터(122)에서 관련 데이터를 저장하고 있는 플립플롭을 피드백 플립플롭으로 대체하거나, 클록 게이팅을 이용하는 보안 DFT 제어 회로, 즉, 스캔 제어 플립플롭(124)으로 구현될 수 있다.In general, security data such as the test disable signal (JTAG_DISABLE) stored in the OTP memory can distinguish the development status of the SoC. In the development stage, a test mode exists for system-on-chip debugging. In the actual mass production stage, conversion to the test mode may be impossible. In the test mode, the internal data of the SoC can be processed. This is because key data related to security can be read. Among these test items, there is a scan test that tests flip-flops and gates, which are elements that make up the SoC. The SoC is tested using random data, and at this time, the flip-flop storing the test disable signal (JTAG_DISABLE) may change to '1' even though it is in the development stage. As a result, the scan chain may be released. This makes the circuit untestable. In order to prevent this, the OTP controller 120 according to an embodiment of the present invention replaces the flip-flop storing related data in the shadow register 122 with a feedback flip-flop, or a secure DFT control circuit using clock gating, that is, , can be implemented with the scan control flip-flop 124.

일반적으로 OTP 메모리는 개발 단계(Life-cycle)를 나타내는 데이터를 저장하고 있다. 제품의 부팅 단계에서 OTP 데이터는 새도우 레지스터(shadow register)로 로딩된다. 스캔 테스트 시, 새도우 레지스터의 데이터가 토글(toggle)될 가능성이 있다. 이는 DFT/Debug 기능을 off 시킬 수 있다.In general, OTP memory stores data representing development stages (Life-cycle). In the booting phase of the product, OTP data is loaded into the shadow register. During the scan test, there is a possibility that the data of the shadow register may be toggled. This can turn off the DFT/Debug function.

본 발명의 실시 예에 따른 시스템 온 칩(100)은 제품의 개발 단계 별로 DFT/Debug 관련 기능을 on/off 하거나 단계별로 제어하는 스캔 제어 플립플롭(124)을 구비함으로써, 테스트 동작의 가용성을 향상시킬 수 있다. 또한, 본 발명의 실시 예에 따른 시스템 온 칩(100)은 OTP 제어기(120)에서 클록 게이팅 방식 혹은 피드백 루프 방식을 이용하여 새도우 레지스터의 보안 데이터를 고정할 수 있다. The system-on-chip 100 according to an embodiment of the present invention improves the usability of test operations by providing a scan control flip-flop 124 that turns on/off or controls DFT/Debug-related functions for each stage of product development. can make it In addition, the system-on-a-chip 100 according to an embodiment of the present invention may fix security data of a shadow register by using a clock gating method or a feedback loop method in the OTP controller 120 .

도 3은 본 발명의 실시 예에 따른 OTP 제어기(120)를 예시적으로 보여주는 도면이다. 도 3을 참조하면, OTP 제어기(120)는 기능 레지스터(121) 및 새도우 레지스터(122)를 포함할 수 있다.3 is a diagram showing an OTP controller 120 according to an embodiment of the present invention by way of example. Referring to FIG. 3 , the OTP controller 120 may include a function register 121 and a shadow register 122 .

기능 레지스터(121)는 OTP 제어기(120)의 기능을 수행하기 위한 데이터를 저장하는 적어도 하나의 플립플롭을 포함할 수 있다.The function register 121 may include at least one flip-flop that stores data for performing a function of the OTP controller 120 .

새도우 레지스터(122)는 트림 정보를 저장하는 적어도 하나의 플립플롭(123) 및 DFT 정보를 저장하는 적어도 하나의 스캔 제어 플립플롭(124)을 포함할 수 있다.The shadow register 122 may include at least one flip-flop 123 that stores trim information and at least one scan control flip-flop 124 that stores DFT information.

도 3에 도시된 바와 같이, OTP 제어기(120)는 새도우 레지스터(122)에서, DFT(Debug) 접근에 영향을 줄 수 있는 데이터의 경우 스캔 제어 플립플롭(124)을 적용하여 구현될 수 있다. 일반적인 OTP 제어기는 조합 논리(combinational logic_ 사이에 플립플롭만 존재한다. 이에 스캔 테스트 시, 조합 논리에 의해 데이터가 업데이트되면 플립플롭의 데이터도 업데이트가 될 수 있다. 반면에, 본 발명의 실시 예에 따른 OTP 제어기(120)는 조합 논리에 의해 데이터가 업데이트 되지 않는 스캔 제어 플립플롭으로 구현된 새도우 레지스터(122, 도 1 참조)를 포함할 수 있다.As shown in FIG. 3 , the OTP controller 120 may be implemented by applying a scan control flip-flop 124 in the shadow register 122 to data that may affect DFT (Debug) access. In a typical OTP controller, only flip-flops exist between combinational logics. Accordingly, during a scan test, when data is updated by the combinational logic, the data of the flip-flops may also be updated. On the other hand, in the embodiment of the present invention The OTP controller 120 according to the above may include a shadow register 122 (see FIG. 1) implemented as a scan control flip-flop whose data is not updated by combinatorial logic.

도 4은 본 발명의 실시 예에 따른 스캔 제어 플립플롭을 예시적으로 보여주는 도면이다. 도 4를 참조하면, 스캔 제어 플립플롭(400)은 플립플롭(410) 및 멀티플렉서(420)를 포함할 수 있다. 실시 예에 있어서, 스캔 제어 플립플롭(400)은 제 1 조합 논리(401)의 출력을 수신하고, 제 2 조합 논리(402)에 입력을 전송할 수 있다. 플립플롭(410)의 앞 단에 2 x 1 멀티플렉서(420)를 배치함으로써, 스캔 체인 이외의 모드로 동작할 시 조합 논리(401)에 의한 영향을 받도록 할 수 있다. 스캔 체인으로 동작할 시, 플립플롭(410)의 출력을 입력에 연결시킴으로써 피드백 루프(feedback loop)가 형성될 수 있다. 이로써, 플립플롭(410)의 현재 데이터가 유지될 수 있다. 결과적으로, 플립플롭(410)의 데이터가 임의로 업데이트되지 않게 된다.4 is a diagram exemplarily showing a scan control flip-flop according to an embodiment of the present invention. Referring to FIG. 4 , the scan control flip-flop 400 may include a flip-flop 410 and a multiplexer 420 . In an embodiment, the scan control flip-flop 400 may receive an output of the first combinational logic 401 and transmit an input to the second combinational logic 402 . By placing the 2x1 multiplexer 420 in front of the flip-flop 410, it is possible to be affected by the combinational logic 401 when operating in a mode other than the scan chain. When operating as a scan chain, a feedback loop may be formed by connecting the output of the flip-flop 410 to the input. As a result, current data of the flip-flop 410 may be maintained. As a result, the data of flip-flop 410 is not arbitrarily updated.

도 5는 본 발명의 다른 실시 예에 따른 스캔 제어 플립플롭을 예시적으로 보여주는 도면이다. 도 5를 참조하면, 스캔 제어 플립플롭(500)은 플립플롭(510), 및 AND 게이트 회로(520)를 포함할 수 있다.5 is a diagram exemplarily showing a scan control flip-flop according to another embodiment of the present invention. Referring to FIG. 5 , the scan control flip-flop 500 may include a flip-flop 510 and an AND gate circuit 520 .

도 5에 도시된 바와 같이, 플립플롭(510)에 인가되는 클록단에 AND 게이트 회로(520)를 배치함으로써, 스캔 체인 이외의 모드로 동작할 시 공통의 클록 신호가 이용될 수 있다. 또한, 스캔 체인으로 동작할 시 클록 신호를 게이팅(gating)함으로써, 플립플롭(510)의 현재 데이터가 유지될 수 있다. 즉, 스캔 체인시, 플립플롭(510)에 데이터가 임의로 업데이트되지 않게 된다.As shown in FIG. 5 , by disposing the AND gate circuit 520 at the clock terminal applied to the flip-flop 510, a common clock signal can be used when operating in a mode other than the scan chain. In addition, current data of the flip-flop 510 may be maintained by gating a clock signal when operating as a scan chain. That is, during the scan chain, data in the flip-flop 510 is not arbitrarily updated.

도 6은 본 발명의 실시 예에 따른 스캔 체인 회로를 예시적으로 보여주는 도면이다. 도 6을 참조하면, 스캔 체인 회로는 제 1 조합 논리(601), 제 2 조합 논리(602), 제 3 조합 논리(603), 스캔 플립플롭(SFF)들, 스캔 제어 플립플롭(610) 및 멀티플렉서(620)를 포함할 수 있다.6 is a diagram exemplarily showing a scan chain circuit according to an embodiment of the present invention. Referring to FIG. 6, the scan chain circuit includes a first combinational logic 601, a second combinational logic 602, a third combinational logic 603, scan flip-flops (SFFs), scan control flip-flops 610, and A multiplexer 620 may be included.

스캔 플립플롭(SFF)들 스캔 체인을 형성하는 제 1 스캔 플립플롭들과 제 2 스캔 플립플롭들을 포함할 수 있다. 여기서 제 1 스캔 플립플롭들은 제 1 조합 논리(601)와 제 2 조합 논리(602) 사이에 연결될 수 있다. 또한 제 2 스캔 플립플롭들은 제 2 조합 논리(603)와 제 3 조합 논리(603) 사이에 연결될 수 있다. 여기서 스캔 체인은 스캔 동작시 스캔 데이터를 수신하고, 대응하는 데이터를 출력할 수 있다.The scan flip-flops (SFFs) may include first scan flip-flops and second scan flip-flops forming a scan chain. Here, the first scan flip-flops may be connected between the first combinational logic 601 and the second combinational logic 602 . Also, the second scan flip-flops may be connected between the second combinational logic 603 and the third combinational logic 603 . Here, the scan chain may receive scan data during a scan operation and output corresponding data.

스캔 제어 플립플롭(610)은 제 2 조합 논리(602)의 출력 데이터를 수신하고, 제 3 조합 논리(603)로 출력 데이터를 전달하도록 구현될 수 있다. 스캔 제어 플립플롭(610)은 도 6에 도시된 바와 같이, 스캔 체인에서 제외될 수 있다. 실시 예에 있어서, 스캔 제어 플립플롭(610)은 도 2 내지 도 6에서 설명된 바와 같이, 스캔 모드시 조합 논리의 출력 데이터가 스캔 동작에 영향을 주지 않도록 설계될 수 있다.The scan control flip-flop 610 may be implemented to receive output data of the second combinational logic 602 and pass the output data to the third combinational logic 603 . The scan control flip-flop 610 can be excluded from the scan chain as shown in FIG. 6 . In an embodiment, as described in FIGS. 2 to 6 , the scan control flip-flop 610 may be designed so that output data of combinational logic does not affect a scan operation in a scan mode.

멀티플렉서(620)는 스캔 모드 신호(SCAN_MODE)에 응답하여 스캔 체인의 출력 신호와 제 3 조합 논리(603)의 출력 신호 중에서 어느 하나를 출력하도록 구현될 수 있다.The multiplexer 620 may be implemented to output one of the output signal of the scan chain and the output signal of the third combinational logic 603 in response to the scan mode signal SCAN_MODE.

도 6에 도시된 바와 같이, 테스트에 영향을 줄 수 있는 플립플롭의 경우 기존과 같이 스캔 체인에서 제외시킬 수 있다. 또한, 피드백 루프를 이용하는 플립플롭(610)으로 대체함으로써, 안정적인 테스트가 가능하다.As shown in FIG. 6, in the case of a flip-flop that may affect the test, it can be excluded from the scan chain as before. In addition, by replacing the flip-flop 610 using a feedback loop, a stable test is possible.

도 7은 본 발명의 실시 예에 따른 OTP 제어기를 설계하는 방법을 예시적으로 보여주는 흐름도이다. 도 7을 참조하면, OTP 제어기를 설계하는 방법은 다음과 같이 진행될 수 있다. OTP 메모리(110, 도 2 참조)에 저장될 데이터의 사양이 정의될 수 있다(S110). 해당 데이터가 JTAG/Debug 접근에 영향을 주는 지가 판별될 수 있다(S120). 만일, 해당 데이터가 JTAG/Debug 접근에 영향을 주는 데이터일 때, 새도우 레지스터(122, 도 2 참조)는 스캔 제어 플립플롭들(124, 도 2 참조)을 이용하여 설계될 수 있다(S130). 반면에, 해당 데이터가 JTAG/Debug 접근에 영향을 주지 않는 데이터일 때, 새도우 레지스터(122)는 플립플롭들에 의해 설계될 수 있다(S135). 상술 된 과정을 반복함으로써, OTP 제어기(120, 도 2 참조)가 설계될 수 있다.7 is a flowchart exemplarily showing a method of designing an OTP controller according to an embodiment of the present invention. Referring to FIG. 7 , a method of designing an OTP controller may proceed as follows. Specifications of data to be stored in the OTP memory (110, see FIG. 2) may be defined (S110). It can be determined whether the corresponding data affects JTAG/Debug access (S120). If the corresponding data is data affecting JTAG/Debug access, the shadow register 122 (see FIG. 2) may be designed using scan control flip-flops 124 (see FIG. 2) (S130). On the other hand, when the corresponding data is data that does not affect JTAG/Debug access, the shadow register 122 may be designed by flip-flops (S135). By repeating the above process, the OTP controller (120, see FIG. 2) can be designed.

실시 예에 있어서, 스캔 제어 플립플롭들(124)은 스캔 체인에서 제외시킬 수 있다. 실시 예에 있어서, 스캔 제어 플립플롭들(124)의 각각은, 도 4에 도시된 피드백 루프 플립플롭(400)으로 구현되거나, 도 5에 도시된 게이팅 클록 플립플롭(500)으로 구현될 수 있다.In an embodiment, the scan control flip-flops 124 may be excluded from the scan chain. In an embodiment, each of the scan control flip-flops 124 may be implemented as a feedback loop flip-flop 400 shown in FIG. 4 or a gating clock flip-flop 500 shown in FIG. 5 . .

일반적인 디지털 하드웨어 설계는, 사양(specification)에 따라 RTL(Register Transfer Level) 설계를 진행하고, 넷리스트 설계를 진행하고, 레이아웃 설계를 진행하고, 레이아웃 데이터를 이용하여 칩을 제조하고, 제조된 칩에 대한 테스트를 진행하고 있다. 일반적으로 사양(specification)은 하드웨어의 각 기능들에 대한 요구 사항을 기술하고 있다. 사양에서 설명된 기능은 Verilog 와 같은 HDL(Hardware Description Language) 혹은 VHDL(Very High-Speed Integrated Circuit Hardware Description Language)을 이용하여 기술된다. RTL(Register Transfer Level) 설계 단계에서, 모듈성과 유연성을 갖춘 하드웨어 구성 요소들이 설계 될 수 있다. 구성 요소들의 각각은 전압 및 환경 요인과 관련된 타이밍 제약 사항이 갖는 기술 라이브러리(description library)에 연결된다. 넷리스트 설계 단계에서, RTL 설계와 넷리스트 설계에 대한 등가성(equivalence)을 검증 함으로써, 설계된 기능이 합성(synthesis)에 의해 수정되지 않음이 검증된다. 또한, STA(Static Timing Analysis)를 이용하여, 구성 요소 간의 타이밍이 검증된다. 기술 라이브러리의 각 구성 요소는 레이어들(예, 실리콘 기반 반도체)을 사용하여 설명되는 아날로그 모델에 매핑 된다. 이 후에, 모든 구성 요소들이 사전에 결정된 영역에 배치되고, 금속 레이어에 라우팅(상호 연결)된다. 레이아웃 설계 단계에서, 레이아웃 대 회로도(LVS) 검증을 통하여 전체 레이아웃이 넷리스트 설계와 비교된다. 또한, DRC(Design Rule Check)를 통하여 설계된 레이아웃이 제조 가능한 지가 검증된다. 이후에 설계된 레이아웃, 즉 레이아웃 데이터에 따라 칩이 제조된다. 이후에, 테스트가 진행된다. 한편, 커스텀(custom) 설계는 게이트 단위 회로 완성 이후에 유사한 프로세스에 따라 진행될 수 있다. 컴퓨팅 장치를 이용하여 메모리 장치의 HLD(High Level Design)가 수행 될 수 있다. HLD에 의해서 설계된 회로는 RTL 코딩이나 시뮬레이션에 의해 보다 구체적으로 표현 될 수 있다. RTL 코딩에 의해서 생성되는 코드는 넷리스트로 변환되어, 전체 반도체 메모리로 배치 및 합성 될 수 있다. 합성된 스키매틱(schematic) 회로는 시뮬레이션 툴(tool)에 의해서 검증되고, 검증 결과에 따라 조정 과정이 동반될 수 있다.General digital hardware design proceeds with RTL (Register Transfer Level) design according to specifications, proceeds with netlist design, proceeds with layout design, manufactures chips using layout data, and testing is in progress. In general, a specification describes requirements for each function of hardware. The functions described in the specification are described using HDL (Hardware Description Language) such as Verilog or VHDL (Very High-Speed Integrated Circuit Hardware Description Language). In the register transfer level (RTL) design stage, hardware components with modularity and flexibility can be designed. Each of the components is linked to a description library with timing constraints related to voltage and environmental factors. In the netlist design stage, by verifying the equivalence of the RTL design and the netlist design, it is verified that the designed function is not modified by synthesis. In addition, timing between components is verified using Static Timing Analysis (STA). Each component of the technology library is mapped to an analog model described using layers (eg, silicon-based semiconductors). After this, all components are placed in a predetermined area and routed (interconnected) to the metal layer. In the layout design stage, the entire layout is compared to the netlist design through layout-to-schematic (LVS) verification. In addition, it is verified whether the designed layout can be manufactured through DRC (Design Rule Check). Then, a chip is manufactured according to the designed layout, i.e., layout data. After that, the test proceeds. On the other hand, a custom design may proceed according to a similar process after gate unit circuit completion. A high level design (HLD) of a memory device may be performed using a computing device. A circuit designed by HLD can be expressed more concretely by RTL coding or simulation. Codes generated by RTL coding can be converted into a netlist and arranged and synthesized into an entire semiconductor memory. The synthesized schematic circuit is verified by a simulation tool, and an adjustment process may be accompanied according to the verification result.

일반적으로, 전자 설계 자동화(Electronic Design Automation; EDA)는 전자 소자를 설계하기 위하여 설계자/제조자가 사용 가능한 소프트웨어 애플리케이션이다. 많은 소프트웨어 애플리케이션이 집적 회로 혹은 반도체 기판 상의 제조 전에 전자 소자를 설계하고, 시뮬레이션하고, 분석하고, 검증하기 위하여 사용 가능하다.Generally, Electronic Design Automation (EDA) is a software application available to designers/manufacturers to design electronic devices. Many software applications are available for designing, simulating, analyzing and verifying electronic devices prior to fabrication on integrated circuits or semiconductor substrates.

도 8은 본 발명의 실시 예에 따른 EDA를 구동하는 컴퓨팅 장치를 보여주는 블록도이다. 도 8를 참조하면, 컴퓨팅 장치(800)는 적어도 하나의 프로세서(810), 워킹 메모리(820), 입출력 장치(830), 및 저장 장치(840)를 포함할 수 있다. 여기서, 컴퓨팅 장치(800)은 설계하기 위한 전용 장치로 제공 될 수 있다. 컴퓨팅 장치(800)은 다양한 설계 및 검증 시뮬레이션 프로그램을 구동하도록 구성될 수 있다.8 is a block diagram showing a computing device driving an EDA according to an embodiment of the present invention. Referring to FIG. 8 , a computing device 800 may include at least one processor 810, a working memory 820, an input/output device 830, and a storage device 840. Here, the computing device 800 may be provided as a dedicated device for designing. Computing device 800 may be configured to run various design and verification simulation programs.

프로세서(810)는 컴퓨팅 장치(800)에서 수행 될 소프트웨어를 실행하도록 구현될 수 있다. 프로세서(810)는 워킹 메모리(820)에 로드 되는 운영 체제(OS)를 실행할 수 있다. 프로세서(810)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들을 실행할 수 있다. 실시 예에 있어서, 프로세서(810)는 EDA 툴을 실행할 수 있다. 여기서 EDA 툴은 RTL 합성 툴, 배치 툴, 클록 트리 합성 툴, 라우팅 툴, 검증 툴, 넷리스트 시뮬레이션 툴 혹은 CDC 툴을 포함할 수 있다. 특히, EDA 툴은 도 2 내지 도 7에서 설명된 보안 DFT 제어(스캔 제어 플립플롭) 알고리즘을 포함할 수 있다.The processor 810 may be implemented to execute software to be executed on the computing device 800 . The processor 810 may execute an operating system (OS) loaded into the working memory 820 . The processor 810 may execute various application programs to be driven based on an operating system (OS). In an embodiment, the processor 810 may execute an EDA tool. Here, EDA tools may include RTL synthesis tools, batch tools, clock tree synthesis tools, routing tools, verification tools, netlist simulation tools, or CDC tools. In particular, the EDA tool may include the secure DFT control (scan control flip-flop) algorithm described in FIGS. 2-7.

워킹 메모리(820)는 운영 체제(OS)나 응용 프로그램들을 로딩할 수 있다. 컴퓨팅 장치(800)의 부팅 시에 저장 장치(840)에 저장된 OS 이미지가 부팅 시퀀스에 따라 워킹 메모리(820)로 로딩 될 수 있다. 운영 체제(OS)에 의해서 컴퓨팅 장치(800)의 제반 입출력 동작들이 지원 될 수 있다. 또한, EDA 툴(822)은 저장 장치(840)로부터 워킹 메모리(820)로 로딩될 수 있다.The working memory 820 may load an operating system (OS) or application programs. When the computing device 800 boots, the OS image stored in the storage device 840 may be loaded into the working memory 820 according to a booting sequence. All input/output operations of the computing device 800 may be supported by an operating system (OS). Additionally, the EDA tool 822 may be loaded into the working memory 820 from the storage device 840 .

또한, 워킹 메모리(820)는 SRAM (static random access memory), 혹은 DRAM (dynamic random access memory)과 같은 휘발성 메모리를 포함할 수 있다. 한편, 워킹 메모리(820)는 이에 한정되지 않으며, PRAM (phase-change RAM), MRAM (magnetic RAM), ReRAM (resistance RAM), FRAM(ferroelectric RAM), 플래시 메모리와 같은 비휘발성 메모리를 포함할 수 있다.Also, the working memory 820 may include volatile memory such as static random access memory (SRAM) or dynamic random access memory (DRAM). Meanwhile, the working memory 820 is not limited thereto, and may include non-volatile memory such as phase-change RAM (PRAM), magnetic RAM (MRAM), resistance RAM (ReRAM), ferroelectric RAM (FRAM), and flash memory. there is.

입출력 장치(830)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어하도록 구현될 수 있다, 예를 들어, 입출력 장치(830)는 키보드나 모니터를 구비하여 설계자로부터 정보를 입력 받을 수 있다. 입출력 장치(830)를 사용하여 설계자는 조정된 동작 특성을 요구하는 반도체 영역이나 데이터 경로들에 대한 정보를 입력 받을 수 있다. 그리고 입출력 장치(830)를 통해서 시뮬레이션 툴 및 CDSC 툴의 처리 과정 및 처리 결과를 표시하도록 출력할 수 있다.The input/output device 830 may be implemented to control user input and output from user interface devices. For example, the input/output device 830 may receive information from a designer using a keyboard or a monitor. Using the input/output device 830, a designer may receive information about semiconductor regions or data paths requiring adjusted operating characteristics. In addition, through the input/output device 830, processing processes and processing results of the simulation tool and the CDSC tool may be output so as to be displayed.

저장 장치(840)는 컴퓨팅 장치(800)의 저장 매체(storage medium)로서 제공될 수 있다. 저장 장치(840)는 응용 프로그램들(AP), 운영 체제 이미지, 및 각종 데이터를 저장 할 수 있다. 저장 장치(840)는 메모리 카드(MMC; multimedia card), eMMC(embedded MMC), SD(secure digital), MicroSD 등)나 하드디스크 드라이브(hard disk drive; HDD)로 제공될 수 있다. 저장 장치(840)는 대용량 저장 기능을 기지는 낸드형 플래시 메모리를 포함할 수 있다. 혹은 저장 장치(840)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 비휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다.The storage device 840 may be provided as a storage medium of the computing device 800 . The storage device 840 may store application programs (AP), operating system images, and various data. The storage device 840 may be provided as a memory card (multimedia card (MMC), embedded MMC (eMMC), secure digital (SD), MicroSD, etc.) or a hard disk drive (HDD). The storage device 840 may include a NAND-type flash memory having a mass storage function. Alternatively, the storage device 840 may include a next-generation non-volatile memory such as PRAM, MRAM, ReRAM, FRAM, or NOR flash memory.

시스템 버스(801)는 컴퓨팅 장치(800)의 내부에서 네트워크를 제공할 수 있다. 시스템 버스(801)를 통해서 적어도 하나의 프로세서(810), 워킹 메모리(820), 입출력 장치(850), 및 저장 장치(840)가 전기적으로 연결되고, 상호 데이터를 교환할 수 있다.The system bus 801 may provide a network within the computing device 800 . At least one processor 810, a working memory 820, an input/output device 850, and a storage device 840 are electrically connected through the system bus 801 and may exchange data with each other.

본 발명의 실시 예에 따른 SoC의 설계에서 전자 설계 자동화를 위한 컴퓨터 프로그램 제품은, OTP 제어기를 설계할 때, 스캔 테스트 동작에 영향을 주는 데이터의 경우 스캔 체인에서 제외시키거나, 해당 데이터를 출력하는 플립플롭을 안전화시키도록 Secure DFT 제어 알고리즘을 구비할 수 있다.The computer program product for automating electronic design in SoC design according to an embodiment of the present invention, when designing an OTP controller, excludes data affecting scan test operation from the scan chain or outputs the corresponding data. A Secure DFT control algorithm may be provided to secure the flip-flop.

본 발명의 실시 예에 따른 SoC의 OTP 제어기의 설계 방법은, 스캔 제어 회로 설계로 효율적인 DFT 제어 가능하도록 한다. 본 발명의 설계 방식은 DFT 항목 중 스캔 테스트에서 피드백 루프 플립플롭 혹은 게이팅 클록 플립플롭을 이용함으로써, 안정적인 테스트를 가능하게 한다. 또한, 실제로 모드 전환과 관련된 OTP 데이터를 감지했는지 판단하기 위해, 유효 신호(JTAG_VALID)를 이용함으로써 OTP 데이터를 모두 읽지 않고도 안전하고 빠른 테스트 모드 전환이 가능하다. 이에 SoC 개발 속도가 단축될 수 있다. 게다가, DFT(Debug)에 영향을 주는 플립플롭은 스캔 테스트 시 발견하기 힘든 잠재적 위험 요소로, RTL(Register Transfer Level) 수준에서 이를 고려하여 설계함으로써, 위험 요소를 사전에 줄일 수 있다.A method for designing an OTP controller of an SoC according to an embodiment of the present invention enables efficient DFT control by designing a scan control circuit. The design method of the present invention enables a stable test by using a feedback loop flip-flop or a gating clock flip-flop in a scan test among DFT items. In addition, safe and fast test mode conversion is possible without reading all OTP data by using a valid signal (JTAG_VALID) to determine whether OTP data related to mode conversion has actually been detected. As a result, the speed of SoC development can be shortened. In addition, the flip-flop that affects DFT (Debug) is a potential risk factor that is difficult to detect during scan testing, and the risk factor can be reduced in advance by designing with this in mind at the RTL (Register Transfer Level) level.

한편, 본 발명의 실시 예에 따른 SoC는 컴퓨팅 시스템에 적용 가능하다. Meanwhile, the SoC according to an embodiment of the present invention can be applied to a computing system.

도 9는 본 발명의 실시 예에 따른 컴퓨팅 시스템(1000)을 예시적으로 보여주는 도면이다. 도 9을 참조하면, 컴퓨팅 시스템(1000)은 메인 프로세서(main processor; 1100), 메모리(1200a, 1200b) 및 저장 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(2410), 사용자 입력 장치(user input device)(2420), 센서(2430), 통신 장치(2440), 디스플레이(2450), 스피커(2460), 전력 공급 장치(power supplying device)(2470) 및 연결 인터페이스(connecting interface)(2480) 중 하나 이상을 포함할 수 있다.9 is a diagram showing a computing system 1000 according to an embodiment of the present invention by way of example. Referring to FIG. 9 , the computing system 1000 may include a main processor 1100, memories 1200a and 1200b, and storage devices 1300a and 1300b, and additionally includes an image capturing device. 2410, user input device 2420, sensor 2430, communication device 2440, display 2450, speaker 2460, power supplying device 2470 and connections It may include one or more of the connecting interfaces 2480.

메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 혹은 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다. 메인 프로세서(1100)는 도 1 내지 도 8에 설명된 스캔 제어 플립플롭으로 구현된 OTP 제어기를 포함할 수 있다.The main processor 1100 may control the overall operation of the system 1000, and more specifically, the operation of other components constituting the system 1000. The main processor 1100 may be implemented as a general-purpose processor, a dedicated processor, or an application processor. The main processor 1100 may include an OTP controller implemented with the scan control flip-flop described in FIGS. 1 to 8 .

메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 혹은 저장 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시 예에 있어서, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator) 블록(1130)을 더 포함할 수 있다. 이와 같은 가속기 블록(1130)은 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 혹은 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.The main processor 1100 may include one or more CPU cores 1110 and may further include a controller 1120 for controlling the memories 1200a and 1200b or the storage devices 1300a and 1300b. In an embodiment, the main processor 1100 may further include an accelerator block 1130 that is a dedicated circuit for high-speed data operation such as artificial intelligence (AI) data operation. Such an accelerator block 1130 may include a graphics processing unit (GPU), a neural processing unit (NPU), or a data processing unit (DPU), and is physically independent from other components of the main processor 1100. It may be implemented as a chip of.

메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 혹은 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 혹은 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.The memories 1200a and 1200b may be used as main memory devices of the system 1000 and may include volatile memories such as SRAM or DRAM, but may also include non-volatile memories such as flash memory, PRAM, or RRAM. The memories 1200a and 1200b may also be implemented in the same package as the main processor 1100 .

저장 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 저장 장치(1300a, 1300b)는 저장 컨트롤러(1310a, 1310b)와, 저장 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성(non-volatile memory, NVM) 저장(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 2D(2-dimensional) 구조 혹은 3D(7-dimensional) 구조의 V-NAND 플래시 메모리를 포함할 수 있으나, PRAM 혹은 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. The storage devices 1300a and 1300b may function as non-volatile storage devices that store data regardless of whether or not power is supplied, and may have a relatively large storage capacity compared to the memories 1200a and 1200b. The storage devices 1300a and 1300b may include storage controllers 1310a and 1310b and non-volatile memory (NVM) storage 1320a and 1320b for storing data under the control of the storage controllers 1310a and 1310b. can The non-volatile memories 1320a and 1320b may include V-NAND flash memory of a 2-dimensional (2D) structure or a 7-dimensional (3D) structure, but may include other types of non-volatile memories such as PRAM or RRAM. may be

저장 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 저장 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(2480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 저장 장치(1300a, 1300b)는 UFS(universal flash storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.The storage devices 1300a and 1300b may be included in the system 1000 in a state physically separated from the main processor 1100 or may be implemented in the same package as the main processor 1100 . In addition, the storage devices 1300a and 1300b have a form such as a solid state device (SSD) or a memory card, so that other components of the system 1000 can be accessed through an interface such as a connection interface 2480 to be described later. It may also be coupled to be detachable with the . The storage devices 1300a and 1300b may be devices to which standard protocols such as universal flash storage (UFS), embedded multi-media card (eMMC), or non-volatile memory express (NVMe) are applied, but are not necessarily limited thereto. It's not.

촬영 장치(1410)는 정지 영상 혹은 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 혹은 웹캠(webcam) 등일 수 있다. 사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 혹은 마이크(microphone) 등일 수 있다. 센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 혹은 자이로스코프(gyroscope) 등일 수 있다. The photographing device 1410 may capture a still image or a moving image, and may be a camera, a camcorder, or a webcam. The user input device 1420 may receive various types of data input from a user of the system 1000, and may use a touch pad, a keypad, a keyboard, a mouse, or a microphone ( microphone), etc. The sensor 1430 can detect various types of physical quantities that can be acquired from the outside of the system 1000 and convert the detected physical quantities into electrical signals. Such a sensor 1430 may be a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, or a gyroscope.

통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(2440)는 안테나, 트랜시버(transceiver) 혹은 모뎀(MODEM) 등을 포함하여 구현될 수 있다. 디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다. 전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리 혹은 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.The communication device 1440 may transmit and receive signals with other devices outside the system 1000 according to various communication protocols. Such a communication device 2440 may be implemented by including an antenna, a transceiver, or a modem (MODEM). The display 1450 and the speaker 1460 may function as output devices that output visual information and auditory information to the user of the system 1000, respectively. The power supply device 1470 may appropriately convert power supplied from a battery built in the system 1000 or an external power source and supply the power to each component of the system 1000 .

연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000)과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(2480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.The connection interface 1480 may provide a connection between the system 1000 and an external device connected to the system 1000 and capable of exchanging data with the system 1000 . The connectivity interface 2480 includes Advanced Technology Attachment (ATA), Serial ATA (SATA), external SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCIe (PCI express), NVMe (NVM express), IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi-media card), eMMC (embedded multi-media card), UFS (Universal Flash Storage) ), embedded universal flash storage (eUFS), and compact flash (CF) card interface.

한편, SoC의 테스트 스킴이 중요해지는 만큼, automotive 제품들을 비롯하여 secure DFT가 강조되는 제품군에 해당 설계 방법이 적용될 수 있다.On the other hand, as the SoC test scheme becomes important, the design method can be applied to product groups emphasizing secure DFT, including automotive products.

도 10은 본 발명의 실시 예에 따른 차량용 제어 시스템(2000)을 예시적으로 보여주는 블록도이다. 도 10을 참조하면, 자율 주행을 위한 차량용 제어 시스템(2000)은 센서 정보 수집장치(2100), 네비게이션 정보 수집장치(2200), 자율 주행을 위한 전자 제어 유닛(2300, ECU), 중앙 처리 장치(2400) 및 메모리 장치(2500)를 포함할 수 있다. 또한, 자율 주행을 위한 전자 제어 유닛(2300)은 뉴럴 네트워크 장치(2310) 및 크립토 장치(2320)를 포함할 수 있다. 전자 제어 유닛(2300)은 도 1 내지 도 8에 설명된 바와 같이 보안 데이터를 저장하는 OTP 메모리 및 테스트/디버깅 동작에서 보안 데이터를 유지하는 스캔 제어 플립플롭으로 구현된 OTP 제어기를 포함할 수 있다.10 is a block diagram showing a vehicle control system 2000 according to an exemplary embodiment of the present invention. Referring to FIG. 10, the vehicle control system 2000 for autonomous driving includes a sensor information collection device 2100, a navigation information collection device 2200, an electronic control unit 2300 (ECU) for autonomous driving, a central processing unit ( 2400) and a memory device 2500. Also, the electronic control unit 2300 for autonomous driving may include a neural network device 2310 and a crypto device 2320. The electronic control unit 2300 may include an OTP controller implemented as an OTP memory for storing secure data and a scan control flip-flop for maintaining secure data in test/debugging operations as described in FIGS. 1 to 8 .

뉴럴 네트워크 장치(2310)는 각종 영상 정보 및 음성 정보를 이용한 뉴럴 네트워크 동작을 수행하고, 수행 결과를 기초로 영상 인식 결과 및 음성 인식 결과 등의 정보 신호를 발생할 수 있다. The neural network device 2310 may perform a neural network operation using various types of video information and audio information, and generate information signals such as video recognition results and voice recognition results based on the performance results.

센서 정보 수집장치(2100)는 카메라나 마이크 등의 각종 영상 정보 및 음성 정보를 수집할 수 있는 장치들을 포함하고, 이를 자율주행을 위한 전자 제어 유닛(2300)로 제공할 수 있다. 네비게이션 정보 수집장치(2200)는 자동차 운행과 관련된 각종 정보(예컨대, 위치 정보 등)를 자율 주행을 위한 전자 제어 유닛(2300)로 제공할 수 있다. 뉴럴 네트워크 장치(2310)는 센서 정보 수집장치(2100) 혹은 네비게이션 정보 수집장치(2200)로부터의 정보를 입력으로 하여, 다양한 종류의 뉴럴 네트워크 모델을 실행함으로써 정보 신호를 발생할 수 있다. 센서 정보 수집장치(2100)가 카메라나 마이크를 포함할 때, 자율 주행 모듈(2300)의 크립토 장치(2320)는 센서 정보 수집장치(2100)로부터의 음성 데이터나 이미지 데이터에 대한 보안 처리로써 암/복호화 동작 및 ECC 동작을 수행할 수 있다. 상술 된 바와 같이, 크립토 장치(2320)는 암호화 데이터, 메타 데이터/ECC 데이터를 메모리 장치(2500)에 저장할 수 있다.The sensor information collection device 2100 includes devices capable of collecting various kinds of video information and audio information, such as a camera or a microphone, and may provide them to the electronic control unit 2300 for autonomous driving. The navigation information collection device 2200 may provide various types of information (eg, location information) related to vehicle operation to the electronic control unit 2300 for autonomous driving. The neural network device 2310 may generate an information signal by executing various types of neural network models by taking information from the sensor information collection device 2100 or the navigation information collection device 2200 as an input. When the sensor information collection device 2100 includes a camera or a microphone, the crypto device 2320 of the autonomous driving module 2300 performs security processing on voice data or image data from the sensor information collection device 2100, and the A decoding operation and an ECC operation may be performed. As described above, the crypto device 2320 may store encrypted data and metadata/ECC data in the memory device 2500 .

한편, 도 10에서는 자율 주행 시스템에 본 발명의 실시 예가 적용된 예가 설명되고 있다. 하지만, 본 발명의 실시 예들은 IoT, 감시카메라, 등 카메라 센서에 보안 기능이 필요한 제품들에 적용이 가능하다.Meanwhile, in FIG. 10 , an example in which an embodiment of the present invention is applied to an autonomous driving system is described. However, embodiments of the present invention can be applied to products requiring a security function in a camera sensor, such as IoT, surveillance cameras, and the like.

제품의 개발 단계 별로 DFT/Debug 관련 기능을 제어하는 설계 방식은 custom SoC 고객들이 요구하는 필수 요소 제품의 assembly 단계를 외부 업체를 통해 진행하면서, 제품의 중요한 정보들이 SCAN을 통해 유출되지 않게 하기 위함 Secure DFT 구성을 위해 일반적으로 OTP가 이용된다. 이 데이터에 따라 DFT/Debug access가 제어된다. OTP Controller의 스캔 테스트 시, 관련 데이터가 의도하지 않은 값으로 toggle되어 테스트에 영향을 주지 않도록 제어한다. 제품의 동작 모드에 따라 secure DFT를 제어하는 방식의 차이가 존재한다. Normal Mode에서는 제품의 개발 단계에 따라 DFT/Debug 기능을 제어하기 위해 의도한 데이터를 OTP에 저장한다. 즉, clock gating, feedback loop 회로 없이 OTP 데이터에 따라 제어가 가능하다. SCAN Mode에서는 OTP 데이터를 읽은 후에 DFT/Debug 관련 기능이 enable인 경우에만 데이터를 유지하도록 한다. SCAN chain에서 제외하는 것뿐 아니라 clock gating 혹은 feedback loop의 추가 로직 설계로 스캔 테스트 시 데이터를 유지하도록 한다. OTP Controller를 이용하여 제품의 life-cycle에 따른 secure DFT를 설계함에 있어서 스캔 테스트에 영향을 주는 플립플롭의 경우 데이터를 유지하도록 OTP controller가 설계될 수 있다.The design method of controlling DFT/Debug-related functions for each product development stage is to prevent important information from being leaked through SCAN while the assembly stage of the essential element product required by custom SoC customers is carried out by an external company Secure For DFT configuration, OTP is generally used. DFT/Debug access is controlled according to this data. During the scan test of the OTP Controller, the related data is toggled to an unintended value and is controlled so that it does not affect the test. Depending on the operation mode of the product, there is a difference in the secure DFT control method. In normal mode, data intended to control the DFT/Debug function according to the development stage of the product is stored in the OTP. That is, control is possible according to OTP data without clock gating and feedback loop circuit. In SCAN Mode, after reading OTP data, data is maintained only when DFT/Debug related functions are enabled. In addition to excluding it from the SCAN chain, additional logic design of clock gating or feedback loop keeps data during scan test. In designing a secure DFT according to the life-cycle of a product using an OTP controller, the OTP controller can be designed to maintain data in the case of a flip-flop that affects the scan test.

한편, 상술된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용 할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함 할 것이다.On the other hand, the above-described content of the present invention is only specific embodiments for carrying out the invention. The present invention will include technical ideas, which are abstract and conceptual ideas that can be utilized as technology in the future, as well as concrete and practically usable means themselves.

100: 시스템 온 칩
110: OTP 메모리
120: OTP 제어기
122: 새도우 레지스터
124: 스캔 제어 플립플롭
130: 전력 관리 유닛
131: 동작 모드 디코더
140: 테스트 회로
100: system on chip
110: OTP memory
120: OTP controller
122: shadow register
124: scan control flip-flop
130: power management unit
131: operation mode decoder
140: test circuit

Claims (10)

보안 데이터를 저장하는 OTP(One Time Programming) 메모리;
상기 OTP 메모리로부터 상기 보안 데이터를 읽고, 상기 보안 데이터를 저장하는 적어도 하나의 새도우 레지스터를 포함하는 OTP 제어기;
외부 장치로부터 동작 모드 신호를 수신하고, 상기 동작 모드 신호와 상기 보안 데이터에 대응하는 테스트 유효 신호에 따라 동작 모드가 테스트 모드인 지를 지시하는 테스트 모드 정보를 출력하는 전력 관리 유닛; 및
상기 전력 관리 유닛으로부터 상기 테스트 모드 정보를 수신하고, 상기 외부 장치로부터 테스트 데이터 수신하고, 상기 테스트 데이터 및 테스트 비활성화 신호에 따라 스캔 모드 신호 및 테스트 모드 신호를 출력하는 테스트 회로를 포함하고,
상기 테스트 비활성화 신호는 상기 보안 데이터 중에서 칩 개발 상태를 지시하는 개발 상태 데이터에 대응하는 것을 특징으로 하는 시스템 온 칩.
OTP (One Time Programming) memory for storing security data;
an OTP controller including at least one shadow register for reading the security data from the OTP memory and storing the security data;
a power management unit that receives an operation mode signal from an external device and outputs test mode information indicating whether an operation mode is a test mode according to the operation mode signal and a test valid signal corresponding to the secure data; and
a test circuit that receives the test mode information from the power management unit, receives test data from the external device, and outputs a scan mode signal and a test mode signal according to the test data and a test inactivation signal;
Wherein the test deactivation signal corresponds to development state data indicating a chip development state among the security data.
제 1 항에 있어서,
상기 보안 데이터는 보안키, 트림 데이터, 복구 데이터 및 상기 개발 상태 데이터를 포함하는 것을 특징으로 하는 시스템 온 칩.
According to claim 1,
The system-on-a-chip, characterized in that the security data includes a security key, trim data, recovery data and the development state data.
제 1 항에 있어서,
상기 적어도 하나의 새도우 레지스터는 스캔 테스트에 영향을 주지 않는 데이터를 저장하는 적어도 하나의 스캔 제어 플립플롭을 포함하는 시스템 온 칩.
According to claim 1,
The at least one shadow register includes at least one scan control flip-flop for storing data that does not affect a scan test.
제 3 항에 있어서,
상기 적어도 하나의 스캔 제어 플립플롭은 피드백 루프 플립플롭으로 구현되는 것을 특징으로 하는 시스템 온 칩.
According to claim 3,
Wherein the at least one scan control flip-flop is implemented as a feedback loop flip-flop.
제 4 항에 있어서,
상기 피드백 루프 플립플롭은,
클록에 응답하여 상기 데이터를 출력하는 플립플롭; 및
스캔 모드 신호에 응답하여 조합 논리의 신호와 상기 플립플롭의 출력 신호 중에서 어느 하나를 출력하는 멀티플렉서를 포함하는 시스템 온 칩.
According to claim 4,
The feedback loop flip-flop,
a flip-flop outputting the data in response to a clock; and
A system-on-chip comprising a multiplexer that outputs one of a combinational logic signal and an output signal of the flip-flop in response to a scan mode signal.
제 3 항에 있어서,
상기 적어도 하나의 스캔 제어 플립플롭은 게이팅 클록 플립플롭으로 구현되는 것을 특징으로 하는 시스템 온 칩.
According to claim 3,
Wherein the at least one scan control flip-flop is implemented as a gating clock flip-flop.
제 6 항에 있어서,
상기 게이팅 클록 플립플롭은,
게이팅 클록에 응답하여 조합 논리의 출력 데이터를 출력하는 플립플롭; 및
스캔 모드 신호 및 클록을 수신하고, 상기 게이팅 클록을 출력하는 앤드 연산 회로를 포함하는 시스템 온 칩.
According to claim 6,
The gating clock flip-flop,
a flip-flop that outputs output data of combinational logic in response to a gating clock; and
and an AND operation circuit that receives a scan mode signal and a clock and outputs the gating clock.
제 1 항에 있어서,
상기 전력 관리 유닛은,
상기 동작 모드 신호 및 리셋 신호를 수신하고, 상기 동작 모드 신호에 대응하는 동작 모드를 결정하는 동작 모드 디코더; 및
상기 테스트 유효 신호 및 상기 동작 모드 디코더의 출력 신호를 앤드 연산함으로써 상기 테스트 모드 정보를 출력하는 연산 회로를 포함하는 시스템 온 칩.
According to claim 1,
The power management unit,
an operation mode decoder that receives the operation mode signal and the reset signal and determines an operation mode corresponding to the operation mode signal; and
and an arithmetic circuit outputting the test mode information by performing an AND operation on the test valid signal and the output signal of the operation mode decoder.
제 1 조합 논리;
제 2 조합 논리;
제 3 조합 논리;
상기 제 1 조합 논리와 상기 제 2 조합 논리 사이에 연결된 제 1 스캔 플립플롭들;
상기 제 2 조합 논리와 상기 제 3 조합 논리 사이에 연결된 제 2 스캔 플립플롭들;
상기 제 2 조합 논리의 출력 데이터를 수신하고, 상기 출력 데이터를 상기 제 3 조합 논리로 전달하는 스캔 제어 플립플롭;
스캔 데이터를 수신하고, 상기 제 1 스캔 플립플롭들과 상기 제 2 스캔 플립플롭들로 구성된 스캔 체인; 및
스캔 모드 신호에 응답하여 상기 스캔 체인의 출력 신호와 상기 제 3 조합 논리의 출력 신호 중에서 어느 하나를 출력하는 멀티플렉서를 포함하고,
상기 스캔 제어 플립플롭은 스캔 모드시 상기 출력 데이터가 스캔 동작에 영향을 주지 않도록 설계되는 것을 특징으로 하는 시스템 온 칩.
first combinatorial logic;
second combinatorial logic;
third combinatorial logic;
first scan flip-flops coupled between the first combinational logic and the second combinational logic;
second scan flip-flops connected between the second combinational logic and the third combinational logic;
a scan control flip-flop that receives output data of the second combinational logic and transfers the output data to the third combinational logic;
a scan chain configured to receive scan data and to include the first scan flip-flops and the second scan flip-flops; and
A multiplexer outputting one of an output signal of the scan chain and an output signal of the third combinational logic in response to a scan mode signal;
The system-on-chip, characterized in that the scan control flip-flop is designed so that the output data does not affect the scan operation in the scan mode.
시스템 온 칩의 설계 방법에 있어서,
사양에서 OTP(One Time Programming) 데이터를 정의하는 단계;
상기 OTP 데이터가 테스트 혹은 디버깅 접근하는데 영향을 주는 지 판별하는 단계; 및
상기 OTP 데이터가 상기 테스트 혹은 디버깅 접근에 영향을 줄 때, 상기 OTP 데이터를 저장하는데 스캔 제어 플립플롭들을 이용하여 새도우 레지스터를 설계하는 단계를 포함하고,
상기 스캔 제어 플립플롭들의 각각은 스캔 모드시 출력 데이터가 스캔 동작에 영향을 주지 않도록 설계되는 것을 특징으로 하는 방법.
In the system-on-chip design method,
Defining OTP (One Time Programming) data in the specification;
Determining whether the OTP data has an effect on testing or debugging access; and
designing a shadow register using scan control flip-flops to store the OTP data when the OTP data affects the test or debugging access;
Each of the scan control flip-flops is designed so that output data does not affect a scan operation in a scan mode.
KR1020220033736A 2021-11-11 2022-03-18 System on chip for perporming scan test, and design method therefor KR20230068957A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/859,870 US11940494B2 (en) 2021-11-11 2022-07-07 System on chip for performing scan test and method of designing the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210154762 2021-11-11
KR1020210154762 2021-11-11

Publications (1)

Publication Number Publication Date
KR20230068957A true KR20230068957A (en) 2023-05-18

Family

ID=86545361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220033736A KR20230068957A (en) 2021-11-11 2022-03-18 System on chip for perporming scan test, and design method therefor

Country Status (1)

Country Link
KR (1) KR20230068957A (en)

Similar Documents

Publication Publication Date Title
US11948652B2 (en) Formal verification tool to verify hardware design of memory unit
US5696694A (en) Method and apparatus for estimating internal power consumption of an electronic circuit represented as netlist
US7937256B2 (en) Systems and methods of efficient library characterization for integrated circuit cell libraries
KR101336516B1 (en) Method and program product for protecting information in eda tool design views
US10007748B2 (en) Safety features for high level design
US7735030B1 (en) Simulating restorable registers in power domain systems
US8413095B1 (en) Statistical single library including on chip variation for rapid timing and power analysis
US10235485B1 (en) Partial reconfiguration debugging using hybrid models
CN115587554B (en) ATPG library model generation system of combinational logic standard unit
KR20180112725A (en) Device and method for detecting points of failures
US7813908B2 (en) Clock control module simulator and method thereof
US10437946B1 (en) Using implemented core sources for simulation
US20160026742A1 (en) System-on-chip intellectual property block discovery
CN107784185B (en) Method and device for extracting pseudo path in gate-level netlist and terminal equipment
US8413102B2 (en) Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop
US10162917B1 (en) Method and system for implementing selective transformation for low power verification
US20120054701A1 (en) Optimal Correlated Array Abstraction
US9864830B1 (en) Method and apparatus for placement and routing of circuit designs
US8661302B2 (en) Enhanced debug/test capability to a core reset process
KR20230068957A (en) System on chip for perporming scan test, and design method therefor
US11940494B2 (en) System on chip for performing scan test and method of designing the same
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
Kafka et al. FPGA-based fault simulator
JP2021534427A (en) Digital circuit testing and analysis modules, systems and methods thereof
US20230106989A1 (en) Method of verifying semiconductor device, method of designing and manufacturing semiconductor device using the same, and system performing the same