KR940009697B1 - Copy prevention circuit of fpga - Google Patents

Copy prevention circuit of fpga Download PDF

Info

Publication number
KR940009697B1
KR940009697B1 KR1019920000176A KR920000176A KR940009697B1 KR 940009697 B1 KR940009697 B1 KR 940009697B1 KR 1019920000176 A KR1019920000176 A KR 1019920000176A KR 920000176 A KR920000176 A KR 920000176A KR 940009697 B1 KR940009697 B1 KR 940009697B1
Authority
KR
South Korea
Prior art keywords
fpga
output
state machine
circuit
external
Prior art date
Application number
KR1019920000176A
Other languages
Korean (ko)
Other versions
KR930016834A (en
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 KR1019920000176A priority Critical patent/KR940009697B1/en
Publication of KR930016834A publication Critical patent/KR930016834A/en
Application granted granted Critical
Publication of KR940009697B1 publication Critical patent/KR940009697B1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)

Abstract

The circuit comprises an external state machine (2) for providing a series of password sequence according to random input data which is programmed on the copy prevented PAL or GAL devices, an internal state machine (2') which is formed in FPGA (1) at the initial routine and produces the same password as external state machine (2), a state comparator which is formed in FPGA (1) at the initial routine for comparing the output of the internal and external state machines and enabling the output as long as both of the output are the same.

Description

FPGA의 복사방지회로FPGA copy protection circuit

제 1 도는 본 발명에 의한 FPGA의 복사방지회로 블록도.1 is a block diagram of a copy protection circuit of an FPGA according to the present invention.

제 2 도는 제 1 도에 따른 실시예를 보인 상세 회로도.2 is a detailed circuit diagram showing an embodiment according to FIG.

제 3a 도 내지 제 3h 도는 본 발명에 따른 FPGA의 복사방지회로의 동작타이밍도.3a to 3h are operation timing diagrams of the copy protection circuit of the FPGA according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

1: FPGA 2 : 외부 스테이트머신1: FPGA 2: External State Machine

2' : 내부 스테이트머신 3 : 스테이트 비교기2 ': internal state machine 3: state comparator

FD1-FD4 : 플립플롭 NOT1, NOT2 : 낫게이트FD1-FD4: flip-flop NOT1, NOT2: natgate

AND1, AND2 : 앤드게이트AND1, AND2: AND gate

XOR1, XOR11-XOR13 : 익스클루시브 오아게이트XOR1, XOR11-XOR13: Exclusive Oagate

VIS1,VIS2 : FPGA의 메인 회로부 출력 so1so2 : 스테이트머신의 출력VIS1, VIS2: FPGA main circuit output so1so2: State machine output

A12,A3,A5 : 스테이트머신의 입력(시스템콘트롤러의 출력어드레스)A12, A3, A5: state machine input (output controller output)

본 발명은 FPGA(Field Programmable Gate Arrary; 이하 'FPGA'라 약칭함) 복사방지회로에 관한 것으로, 특히 PAL이나 GAL 소자로 외부 스테이트머신(State Machine) 구성하고, 동일구성의 내부 스테이트머신을 FPGA에 구성하여 FPGA 내부에서 두 스테이트머신의 출력이 동일한 경우에만 FPGA의 메인 회로부의 출력이 외부로 출력될수 있도록 함으로써, 복사를 방지토록한 FPGA의 복사방지회로에 관한 것이다.The present invention relates to an FPGA (Field Programmable Gate Arrary) (hereinafter referred to as "FPGA") copy protection circuit, and in particular, an external state machine is configured with a PAL or GAL element, and the internal state machine of the same configuration is connected to the FPGA. The present invention relates to a copy protection circuit of an FPGA that prevents copying by allowing the output of the main circuit part of the FPGA to be output to the outside only when the outputs of the two state machines are identical within the FPGA.

일반적으로, FPGA는, SRAM(Static Random Access Memory)과 유사한 성질을 가지고, PAL(Programmable Arrary Logic)이나, GAL(Generic Arrary Logic)과 같이 프로그램에 의해서 일정한 내부회로를 구성할수 있는 것으로서, 전원을 가할때마다 외부에서 매번 초기화 데이타를 입력시켜 주는 초기화 작업을 행함으로써, FPGA의 내부에 일정한 로직회로가 구성되게 하는 소자이다.In general, FPGAs have properties similar to static random access memory (SRAM), and can be configured to program internal circuits by program such as PAL (Programmable Arrary Logic) or GAL (Generic Arrary Logic). It is a device that allows a certain logic circuit to be configured inside the FPGA by performing initialization by inputting initialization data every time from the outside.

즉, SRAM은 데이타를 저장하여 두고 그 데이타를 반복해서 읽어서 이용할수 있되, 전원이 오프되면, 저장되어 있던 데이타가 모두 지워지는 성질을 가진 메모리이며, PAL이나, GAL은 프로그램에 의해 특정한 회로를 설계하여 롬(ROM)을 굽는 것과 같은 방식으로 전용프로그래머에 프로그램하여 반영구적으로 기억시켜둔 것으로서, 전원이 오프되어도 회로가 지워지지 않는다.In other words, SRAM can store data and read and use the data repeatedly. However, when the power is turned off, all the stored data will be erased. PAL or GAL can design a specific circuit by a program. In this way, the ROM is programmed and stored semi-permanently in a dedicated program in the same way as the ROM is burned. The circuit is not erased even when the power is turned off.

그러므로, 특정한 회로를 시스템에 맞추어서 설계할 경우에 상기한 PAL과 GAL을 이용하고 있으나, PAL이나 GAL은 내부 회로를 형성시키기 위해서 전용의 프로그래머를 사용하여 회로를 설계하여 구워야만 이용할수 있기 때문에 전용프로그래머와 같은 장비가 필요하고, 대량 생산이 아닌 경우에는 PAL 및 GAL을 설계하여 굽는것이 생산성 및 효율이 떨어져 원가가 상승되는 요인이 되고, 쉽게 설계변경을 할수 없는등 문제점이 있었다.Therefore, PAL and GAL are used when designing a specific circuit according to the system. However, PAL or GAL can be used only by designing and baking a circuit using a dedicated programmer to form an internal circuit. If the equipment is required, such as mass production, designing and baking PAL and GAL is a factor that increases cost due to low productivity and efficiency, there is a problem that can not easily change the design.

따라서, 상기와 같은 PAL과 GAL의 단점을 보완하여 손쉽게 내부회로를 프로그램으로 설계할수 있고, 회로를 쉽게 변경시킬수 있도록한 FPGA가 개발되었으며, 그 FPGA는, 프로그램에 의해 원하는 내부 회로를 설계하고, 그 설계된 회로가 전원이 온되면 FPGA의 내부회로로서 형성되도록 하는 초기화 루틴을 외부의 시스템 콘트롤러에 기억시켜 두고, 전원이 온되는 시점에서 상기한 시스템 콘트롤러에서 초기화 루틴에 의해 초기화 데이타를 상기한 FPGA에 인가시킴으로써, 그 FPGA에 미리 설계된 내부회로가 형성되도록 한다.Therefore, FPGAs have been developed that can easily design internal circuits and easily change circuits by supplementing the disadvantages of PAL and GAL as described above. An initialization routine is stored in an external system controller so that the designed circuit is formed as an internal circuit of the FPGA when the power is turned on, and the initialization data is applied to the FPGA by the initialization routine at the system controller when the power is turned on. This allows a predesigned internal circuit to be formed in the FPGA.

이에 따라 FPGA는 시스템 설계자가 프로그램에 의해 내부회로를 설계하여 굽는 과정을 거치지 않고 초기화 루틴만을 거치게 하여 FPGA의 내부회로를 형성시킬수 있으므로, 간편하게 이용할수 있고, 한두개의 소수를 제작할때 매우 유리하고, 시스템을 설계하여 시험 가동중에 버그나 에러등이 발견되면 손쉽게 회로를 변경시킬수 있어서 매우 신속하게 대처할수 있는등 여러가지 장점이 있어서 그 활용범위가 확대되고 있다.Therefore, FPGA can be used easily because it allows system designers to design internal circuits by program and go through initialization routines without going through the process of baking, so it is easy to use, and it is very advantageous when making one or two primes. If a bug or an error is found during the test run, the circuit can be easily changed and coped very quickly.

그런데, FPGA는 내부회로를 형성시키는 방법이 초기화 루틴에 의해 초기화 데이타를 입력시킴으로써, FPGA 내부회로가 형성되도록 되어 있으므로, 시스템 콘트롤러에서 FPGA에 출력시키는 초기화 데이타만 알게되면, 동종의 FPGA를 이용하여 동일한 내부회로를 구성시킬수 있게 된다.However, since the FPGA internal circuit is formed by inputting initialization data by the initialization routine in the FPGA, the method of forming the internal circuit is realized. When the controller recognizes only the initialization data output to the FPGA, the same type of FPGA is used. Internal circuits can be configured.

그러므로, 시스템 콘트롤러의 초기화 루틴은 소프트웨어적으로 손쉽게 복사가 가능하고, 그 복사된 초기화 루틴을 이용하여 동종의 FPGA에 초기화 데이타를 입력시키면 동일한 내부회로가 형성되므로, 간단한 방법으로 FPGA의 내부회로가 복사되는 단점이 있었다.Therefore, the initialization routine of the system controller can be easily copied in software, and the same internal circuit is formed by inputting the initialization data into the same type of FPGA using the copied initialization routine. Therefore, the internal circuit of the FPGA is copied in a simple manner. There was a disadvantage.

즉, FPGA를 이용한 회로가 시스템의 키포인트가 되는 경우가 많은데, 이러한 시스템의 키포인트인 FPGA의 내부회로가 복사된다면 애써서 개발한 시스템이 다른 사람에 의해 너무 쉽게 복사될 수 있는 우려가 있는 것이다.In other words, the circuit using the FPGA is often the key point of the system. If the internal circuit of the FPGA, which is the key point of the system, is copied, the developed system may be too easily copied by others.

본 발명은 상기한 문제점을 감안하여 FPGA의 초기화 루틴을 복사하였다 하더라도 외부 스테이트머신의 회로를 모르면 이용할수 없도록 하여, FPGA의 복사를 방지할수 있도록 한 스테이트머신을 이용한 FPGA의 복사방지회로를 제공함에 목적이 있다.SUMMARY OF THE INVENTION In view of the above problems, an object of the present invention is to provide a copy protection circuit of an FPGA using a state machine that prevents the copying of an FPGA, even if the initialization routine of the FPGA is copied without knowing the circuit of the external state machine. There is this.

본 발명의 목적은, PAL이나, GAL등을 이용하여 입력 데이타에 따른 시퀸스를 출력하도록 회로가 설계되어진 FPGA의 외부 스테이트머신과, 상기 외부 스테이트머신과 동일한 입력데이타에 의해 시퀸스를 출력하도록 FPGA의 초기화 루틴에 의해 상기 외부 스테이트머신과 동일한 회로로 FPGA의 내부에 형성되는 내부 스테이트머신과, 상기 외부 스테이트머신과 내부 스테이트머신의 시퀸스 출력을 비교하여 서로 같은 경우에만 FPGA의 초기화 루틴에 의해 그 FPGA에 형성되는 메인 FPGA 회로의 출력을 FPGA의 외부로 출력가능하게 하고, 서로 다른 경우에는 FPGA 메인 회로의 출력이 외부로 출력되지 못하도록 차단하도록 상기 FPGA의 초기화 루틴에 의해 FPGA의 내부에 형성되는 스테이트 비교기로 FPGA 복사방지회로를 구성함으로써, 달성되는 것이다.An object of the present invention is to initialize an FPGA to output a sequence by an external state machine of an FPGA whose circuit is designed to output a sequence according to input data using a PAL or a GAL, and the same input data as the external state machine. The internal state machine formed inside the FPGA by the same circuit as the external state machine by the routine and the sequence outputs of the external state machine and the internal state machine are compared with each other and formed in the FPGA by the initialization routine of the FPGA only when they are the same. The FPGA is a state comparator formed inside the FPGA by the initialization routine of the FPGA to enable the output of the main FPGA circuit to be output to the outside of the FPGA, and in other cases to block the output of the FPGA main circuit from being output to the outside. By constructing a copy protection circuit, this is achieved.

이와 같은 본 발명에 의하며, FPGA의 초기화 루틴을 복사하고 동일 종류의 FPGA를 이용한다 하더라도 외부 스테이트머신에 설계된 회로를 알지 못하면, FPGA의 메인 회로의 출력이 외부로 출력되는 것이 방지되므로, 복사가 무의미해져 이용할수 없게 되어 복사를 방지할수 있게 되는 것이다.According to the present invention, even if the initialization routine of the FPGA is copied and the same type of FPGA is used, if the circuit designed for the external state machine is not known, the output of the FPGA main circuit is prevented from being output to the outside, so the copying becomes meaningless. You can't use it to prevent copying.

이하, 본 발명에 의한 실시예를 첨부된 도면을 참조해서 상세히 설명하면 다음과 같다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

제 1 도는 본 발명에 의한 스테이트머신을 이용한 FPGA 복사방지회로의 블럭도로서, 이에 도시된 바와 같이 FPGA(1)의 외부와 내부에 각기 하나씩 2개의 스테이트머신(2)(2')을 구성하되, 각 스테이트머신(2)(2')은 그 회로 구성이 완전히 동일하고, XOR 게이트들과 플립플롭들로 구성되어 동일한 클럭에 동기화 되도록 구성하며, FPGA(1)의 내부에 상기 외부, 내부 스테이트머신(2)(2')의 출력을 비교하여 동일한 경우에만 FPGA(1)의 내부에 구성되는 메인회로(4)의 출력을 외부로 출력되게 제어하는 스테이트 비교기(3)를 구성한다.1 is a block diagram of an FPGA copy protection circuit using a state machine according to the present invention. As shown in FIG. 1, two state machines 2 and 2 ', respectively, are formed inside and outside the FPGA 1. Each state machine (2) (2 ') is completely identical in circuit configuration and composed of XOR gates and flip-flops to be synchronized to the same clock, and the external and internal states inside the FPGA (1). The state comparator 3 which controls the output of the main circuit 4 comprised in the inside of the FPGA 1 to be output to the outside only by comparing the output of the machine 2 (2 ') is the same.

여기서, 스테이트머신이란, 디지탈 시켄셜(Sequential)회로에 주어진 각종 입력에 의하여 한정된 상태(state) 사이를 천이하는 장치를 의미하고, 특히 스테이트란 특정 순간에 플립플롭등의 메모리 소자에 저장되는 이진(binary)데이타로서 회로의 과거, 현재 및 미래에 관한 모든 것을 포함하는 데이타이다. 즉, 본 명세서의 스테이트머신이란 디지탈논리이론에서 다루어지는 스테이트머신과 동일한 의미이다.Here, a state machine means a device that transitions between states defined by various inputs given to a digital sequential circuit, and in particular, a state means a binary (stored in a memory element such as a flip-flop at a specific moment). binary) Data that contains everything about the past, present, and future of a circuit. That is, the state machine of the present specification has the same meaning as the state machine which is dealt with in the digital logic theory.

이러한 스테이트머신의 예로써 업-다운 카운터(up-down counter)를 들 수 있다.An example of such a state machine is an up-down counter.

본 발명에 이용되는 상기 FPGA(1)의 외부 스테이트머신(2)은 전용프로그래머를 사용하여 만든 것이며, XOR 게이트들과 플립플롭들의 조합으로 이루어진 회로는, 임의의 입력데이타에 의거하여 시퀀스를 출력할수 있도록 구성한 것으로 입력데이타에 의해 출력데이타를 짐직할 수 없는 암호 스퀀스를 출력할 수 있도록 회로를 구성하면 된다.The external state machine 2 of the FPGA 1 used in the present invention is made using a dedicated programmer, and a circuit composed of a combination of XOR gates and flip-flops can output a sequence based on arbitrary input data. The circuit can be configured to output a cipher sequence whose input data cannot bear the output data.

또한, FPGA(1)의 내부에 형성되는 내부 스테이트머신(2')은, 그 FPGA(1)의 초기화 루틴에 의해 상기 한 외부 스테이트머신(2)의 회로와 완전히 동일한 구성의 회로가 형성되도록 FPGA(1)의 초기화 루틴을 프로그래밍시켜 설계한 것이며, 상기한 외부 스테이트머신(2)의 입력과 동일한 임의의 입력데이타에 의거하여 동일한 암호 시켄스 출력이 발생된다.In addition, the internal state machine 2 'formed inside the FPGA 1 is configured such that a circuit having the same configuration as that of the external state machine 2 is formed by the initialization routine of the FPGA 1. Designed by programming the initialization routine of (1), the same cipher sequence output is generated on the basis of arbitrary input data identical to the input of the external state machine 2 described above.

그리고, 상기 FPGA(1)는 상기한 내부 스테이트머신(2')과 스테이트 비교기(3)가 초기화 루틴에 의해 형성됨과 아울러 원래 FPGA(1)를 이용하여 설계하고자 하는 메인회로부가 초기화 루틴에 의해 FPGA(1)의 내부에 함께 형성되어지도록 하는 초기화 루틴을 시스템 콘트롤러에 프로그래밍 시켜서 구성한다.In the FPGA 1, the internal state machine 2 'and the state comparator 3 are formed by an initialization routine, and the main circuit unit originally designed to be designed using the FPGA 1 is formed by an initialization routine. The initialization routine to be formed together in (1) is programmed by the system controller.

또한, 상기 FPGA(1)의 내부에 형성되는 스테이트 비교기(3)도 FPGA(1)의 초기화 루틴을 프로그래밍시켜 설계한 것으로서, 이는 두입럭을 비교하여 같을때와 다를때에 서로 반대되는 제어를 할 수 있도록 구성되어야 하고, 그 실시예로서, 외부 스테이트머신(2)과 내부 스테이트머신(2')의 출력(so1)(so2)을 입력으로 인가받아 같을때에만 저전위신호를 출력하는 익스클루시브 오아게이트(XOR1)와, 상기 두 스테이트머신(2)(2')의 공통 클럭신호(CLOCK)을 반전시키는 낫(NOT)게이트 (NOT1)와, 그 낫게이트(NOT1)의 출력신호를 클럭신호(C)로 인가받고 상기 익스클루시브 오아게이트(XOR1)의 출력신호를 데이타입럭(D)으로 인가받아 클럭의 라이징 에지에 동기되는 제1디-플립플롭(FD3)과, 그 디플립플롭(FD3)의 출력신호를 클럭신호(C)로 인가받고 하이신호(전원전압 Vcc)를 데이타입력(D)으로 인가받는 제2디-플립플롭(FD4)과, 그 제2디-플립플롭(FD4)의 출력신호를 반전시키는 낫게이트(NOT2)와, 그 낫게이트(NOT2)의 출력을 일측입력으로 공통 인가받고 타측입력으로 FPGA(1)의 메인 회로부의 출력신호(VIS1)(VIS2)를 인가받아 그메인 회로부의 출력신호(VIS1)(VIS2)가 FPGA(1)의 외부로 출력되는 것을 제어하는 앤드게이트(AND1)(AND2)로 구성된다.In addition, the state comparator 3 formed inside the FPGA 1 is also designed by programming the initialization routine of the FPGA 1, which compares the two inputs to control opposite to each other when they are the same. Exclusive to the embodiment, it is an exclusive that outputs a low potential signal only when the output (so1) (so2) of the external state machine (2) and the internal state machine (2 ') is applied as an input. The NOT gate NOT1 for inverting the OR gate XOR1, the common clock signal CLOCK of the two state machines 2 and 2 ', and the output signal of the NOT gate NOT1 are clock signals. A first de-flip-flop FD3 and a de-flip-flop, which is applied to (C) and is supplied with the output signal of the exclusive oragate XOR1 to the data input D and synchronized to the rising edge of the clock. The output signal of (FD3) is applied as the clock signal (C) and the high signal (power supply voltage Vcc) The second di-flip flop FD4 applied by the force D, the nat gate NOT2 for inverting the output signal of the second di-flip flop FD4, and the output of the nat gate NOT2. Common input is applied to one input and output signals VIS1 and VIS2 of the main circuit section of the FPGA 1 are applied to the other input and output signals VIS1 and VIS2 of the main circuit section are output to the outside of the FPGA 1. It consists of an AND gate AND1 (AND2) for controlling this.

제 2 도는 제 1 도의 스테이트머신 구성을 예시한 상세회로도로서 이에 도시된 바와 같이 외부 스테이트머신(2)과 내부 스테이트머신(2')은 입력데이타(A12)(A2)(A3)와 시스템 클럭신호(CLOCK)를 공유하는 동일한 구성으로서, 제1입력(A12)과 스테이트머신(2)의 출력을 두입력으로 하는 익스클루시브 오아게이트(XOR11)와, 그 익스클루시브 오아게이트(XOR11)의 출력신호와 제2입력(A3)을 두입력으로 하는 익스클루시브 오아게이트(XOR12), 그 익스클루시브 오아게이트(XOR12)의 출력을 데이타입력(D)으로 인가받고, 시스템 플럭신호(CLOCK)를 클럭신호(C)로 인가받는 플립플롭(FD1), 그 플립플롭(FD1)의 출력신호와 제3입력(A5)을 두입력으로 하는 익스클루시브 오아게이트(XOR13), 그 익스클루시브 오아게이트(XOR13)의 출력을 데이타입력(D)으로 인가받고, 상기 시스템 클럭신고(C)를 틀럭신호로 인가받는 플립플롭(FD2)으로 구성된다.FIG. 2 is a detailed circuit diagram illustrating the state machine configuration of FIG. 1. As shown therein, the external state machine 2 and the internal state machine 2 'include input data A12 (A2) (A3) and a system clock signal. As an identical configuration sharing (CLOCK), an exclusive oragate XOR11 having two inputs of the first input A12 and the output of the state machine 2, and an output of the exclusive oragate XOR11 thereof. The output of the exclusive or gate XOR12, which has a signal and the second input A3 as two inputs, and the output of the exclusive or gate XOR12 are applied to the data input D, and the system clock signal CLOCK is received. The flip-flop FD1 applied as the clock signal C, the exclusive orifice XOR13 having the output signal of the flip-flop FD1 and the third input A5 as two inputs, and the exclusive oragate thereof The output of (XOR13) is applied to the data input (D), and the system clock report (C) is received. It consists of a flip-flop (FD2) is applied as a clock signal.

본 발명의 실시예에 사용된 모든 디플립플롭(FD1-FD4)은 초기상태(initial state)가 로우(LOW : 논리적0) 출력상태임을 전제로 하고, 클럭신호의 상승에지에서 동작됨을 전제로 한다.All of the deflip-flops FD1 to FD4 used in the embodiment of the present invention are assumed to operate at the rising edge of the clock signal on the assumption that the initial state is a low (logical) output state. .

또, 시스템 클럭신호(CLOCK)는 본 발명에 의해 FPGA(1)가 설치된 시스템의 클럭신호이고, 제 2 도에 도시된 바와 같이 각부를 동기시킨다.The system clock signal CLOCK is a clock signal of the system in which the FPGA 1 is installed according to the present invention, and the respective parts are synchronized as shown in FIG.

또, 두 스테이트머신(2)(2')의 입력데이타(A12)(A3)(A5)는, 상기 시스템의 어드레스신호의 일부로서, 어드레스번호나, 그 어드레스의 순서등은 별 의미가 없고, 다만 일련의 암호 시퀀스를 출력하도록 공급되는 소정의 기준신호의 예로써 사용된 것이며, 외부 스테이트머신(2)과 내부 스테이트머신(2')이 일치되게 연결시키면 되는 것이고, 익스클루시브 오아게이트와 디플립플롭을 추가시켜 어드레스를 추가 연결시킬 수도 있다.The input data A12, A3 and A5 of the two state machines 2, 2 'are part of the address signal of the system, and the address number and the order of the addresses have no meaning. However, it is used as an example of a predetermined reference signal supplied to output a series of cipher sequences, and the external state machine 2 and the internal state machine 2 'need to be connected in the same manner. Additional flip-flops can also be used to further link addresses.

이와 같이 구성된 본 발명에 의한 실시예의 작용을 설명하면 다음과 같다.Referring to the operation of the embodiment according to the present invention configured as described above are as follows.

먼저, PAL이나 GAL 소자등에 입력데이타에 의거하여 시퀀스 출력이 되는 회로를 설계하여 외부 스테이트머신(2)으로 굽는다.First, a circuit that produces a sequence output based on input data in a PAL or GAL element or the like is designed and baked by the external state machine 2.

그리고, FPGA(1)를 설계할때에 초기화 루틴에 의해 FPGA(1)의 메인회로부와, 상기한 외부 스테이트머신(2)과 완전히 동일한 구성을 가지는 내부 스테이트머신(2')과, 스테이트 비교기(3)과 함께 FPGA(1) 내부에 형성되도록 전용의 프로그래머를 사용하여 프로그래밍하여 설계한다.When the FPGA 1 is designed, an initialization routine is used to initialize the main circuit section of the FPGA 1, the internal state machine 2 'and the state comparator having the same configuration as the external state machine 2 described above. 3) program with a dedicated programmer to design inside the FPGA (1).

이후, 외부 스테이트머신(2)과 내부 스테이트머신(2')이 입력데이타(A12)(A3)(A5)를 공유하고, 시스템 클러(CLOCK)을 공유하도록 배선한다.Thereafter, the external state machine 2 and the internal state machine 2 'share the input data A12 (A3) and A5, and wire to share the system clock (CLOCK).

이와 같은 복사방지회로를 가장 FPGA를 시스템에 설치한 후에 시스템의 전원이 온되면, 시스템 콘트롤러에서 FPGA(1)를 초기화시키게 되고, 그 최기화 루틴에 의해 FPGA(1)내에는 외부 스테이트머신(2)과 회로가 완전히 동일한 내부 스테이트머신(2')과, 스테이트 비교기(3) 및 원래 FPGA를 이용하고자 하는 메인 회로부가 형성된다.When the system is powered on after the copy protection circuit is most installed in the system, the system controller initializes the FPGA 1, and by the initialization routine, the external state machine 2 ) And an internal state machine 2 ', which is exactly the same as the circuit, and a state comparator 3 and a main circuit portion intended to use the original FPGA.

이후, 시스템이 작동되어 어드레스(A12)(A3)(A5)가 스테이트머신(2)(2')에 입력되면, 외부 스테이트머신(2)과 내부 스테이트머신(2')에서는 동일한 시퀀스 데이타가 출력된다. 여기서, 그 두 스테이트머신(2)(2')의 내부회로는, 설계자가 임의로 설계한 것으로서 입력신호에 의거하여 시퀀스 출력만 발생되면되고, 회로가 서로 동일하다면 동일한 출력이 발생되는 것이 당연하므로, 상세한 동작 타이밍의 설명은 생략한다.Thereafter, when the system is operated and the addresses A12, A3, and A5 are input to the state machine 2, 2 ', the same sequence data is output from the outer state machine 2 and the inner state machine 2'. do. Here, since the internal circuits of the two state machines (2) and (2 ') are designed by the designer arbitrarily, only the sequence output is generated based on the input signal, and it is natural that the same output is generated if the circuits are the same. The detailed description of the operation timing is omitted.

제 3a 도에 도시된 바와 같이 시스템 클럭신호(CLOCK)가 입력되고, 제 3b 도 및 제 3c 도에 도시된 바와 같이 두 스테이트머신(2)(2')에서 출력(so1)(so2)이 발생되면, 스테이트 비교기(3)에서는 두 입력이 같을때에는 메인 회로부의 출력(VIS1)(VIS2)이 FPGA(1)의 외부출력로 출력되게 하고, 같지 않을때는 외부출력이 되지 않도록 제어한다.As shown in FIG. 3a, the system clock signal CLOCK is input, and as shown in FIGS. 3b and 3c, the outputs so1 and so2 are generated at the two state machines 2 and 2 '. When the two inputs are the same, the state comparator 3 controls the outputs VIS1 and VIS2 of the main circuit unit to be output to the external output of the FPGA 1, and when they are not the same, the state comparator 3 controls the external output.

먼저, 두 스테이트머신(2)(2')의 출력(so1)(so2)이 서로 같을 경우에는 (제 3 도에서 t1 구간)익스클루시브 오아게이트(XOR1)에서는 저전위신호가 출력되고, 제1플립플롭(FD3)에서는 입력데이타(D)가 상기 익스클루시브 오아게이트(XOR1)로부터 출력된 저전위신호이므로, 낫게이트(NOT1)를 통해 입력된 제 3d 도에 도시된 바와 같은 클럭신호와는 무관하게 제 3f 도에 도시된 바와 같이 계속해서 저전위신호가 출력되고, 그 제1플립플롭(FD3)의 출력을 클럭신호로 인가받는 제2플립플롭(FD4)은 제 3g 도에 도시된 바와 같이 계속해서 초기상태인 저전위신호가 출력되며, 그 제2플립플롭(FD4)의 저전위신호가 낫게이트(NOT2)를 통해서 고전위신호로 반전되어 앤드게이트(AND1)(AND2)의 일측 입력으로 각기 인가된다.First, when the outputs so1 and so2 of the two state machines 2 and 2 'are equal to each other (section t1 in FIG. 3), the low potential signal is output from the exclusive oragate XOR1. In one flip-flop FD3, since the input data D is the low potential signal output from the exclusive oragate XOR1, the clock signal as shown in FIG. Regardless of this, as shown in FIG. 3F, the low potential signal is continuously output, and the second flip-flop FD4 receiving the output of the first flip-flop FD3 as a clock signal is shown in FIG. 3G. As described above, the low potential signal which is in an initial state is outputted, and the low potential signal of the second flip-flop FD4 is inverted into a high potential signal through the knock gate NOT2, and one side of the AND gate AND1 ANDAND2. Each is applied as an input.

따라서, 그 앤드게이트(AND1)(AND2)는 FPGA의 메인 회로부에서 출력된 메인 출력데이타(VIS1)(VIS2)를 외부출력으로 전달시킬수 있게 된다.Therefore, the AND gate AND1 AND2 can transfer the main output data VIS1 VIS2 output from the FPGA main circuit portion to an external output.

그러나, 두 스테이트머신(2)(2')의 출력(so1)(so2)이 제 3 도의 t1 구간 후단에서 제 3b 도 및 제 3c 도에 도시된 바와 같이 서로 같지 않은 경우가 발생되면, 익스클루시브 오아게이트(XOR1)에서는 두입력이 서로 같지 않으므로, 제 3e 도에 도시된 바와 같이 고전위 펄스신호가 출력되고, 그 익스클루시브 오아게이트(XOR1)로부터 고전위 신호를 입력데이타(D)로 인가받고 낫게이트(NOT1)를 통해 클럭신호를 인가받는 제1플립플롭(FD3)에서는, 제 3f 도에 도시된 바와 같이 시스템 클럭(CLOCK)이 반전된 클럭신호의 상승에지에 동기되어 고정위 펄스가 출력되며, 그 제1플립플롭(FD3)의 출력을 클럭신호로 인가받는 제2플립플롭(FD4)은 제1플립플롭(FD3)의 상승에지 출력에 동기되어 제 3g 도에 도시된 바와 같이 초기상태가 반전되어 하이 입력신호(Vcc)에 의거한 고전위신호가 출력되어 유지되고, 그 제2플립플롭(FD4)의 고전위신호가 낫게이트(NOT2)를 통해서 저전위신호로 반전되어 앤드게이트(AND1)(AND2)에 각기 인가된다.However, if the outputs so1 and so2 of the two state machines 2 and 2 'do not coincide with each other as shown in FIGS. 3b and 3c at the end of the t1 section in FIG. Since the two inputs are not equal to each other in the sheave oar gate XOR1, as shown in FIG. 3e, a high potential pulse signal is output, and the high potential signal is inputted from the exclusive oragate XOR1 to the input data D. In the first flip-flop FD3 receiving the clock signal through the knock gate NOT1, as shown in FIG. 3F, the system clock CLOCK is synchronized with the rising edge of the inverted clock signal to generate a fixed-position pulse. Is outputted, and the second flip-flop FD4 receiving the output of the first flip-flop FD3 as a clock signal is synchronized with the rising edge output of the first flip-flop FD3 as shown in FIG. 3G. The initial state is reversed and the high potential signal based on the high input signal (Vcc) And kept force, the second is a high potential signal of the flip-flop (FD4) is inverted into a low potential signal through the gate (NOT2) sickle are respectively applied to the AND gate (AND1) (AND2).

따라서, 그 앤드게이트(AND1)(AND2)들은 타측입력에 무관하게 항상 저전위신호만 출력되므로, FPGA(1)의 메인 회로부에서 출력되는 데이타(VIS1)(VIS2)들을 차단시키는 작용을 하게 되므로, FPGA(1)의 외부출력은 항상 저전위신호가 되어 FPGA(1)의 내부 메인회로부를 이용할수 없게 되는 것이다.Therefore, since the AND gates AND1 AND2 always output the low potential signal irrespective of the other input, the AND gate AND1 AND2 serves to block the data VIS1 and VIS2 output from the main circuit of the FPGA 1. The external output of the FPGA 1 will always be a low potential signal, making the internal main circuitry of the FPGA 1 unusable.

여기서, 제 3 도에 도시된 스테이트 비교기(3)의 동작 타이밍은 이상적인 (ideal) 소자를 가정한 경우로 실제로는 각 구성소자의 지연(propagation delay)으로 인하여 두 스테이트머신(2)(2')을 동일하게 구성하여도 두 출력(so1)(so2)이 서로 완벽하게 동일할수 없다. 이에 따라 익스클루시브 오아게이트(XOR1)의 출력이 바운싱(bouncing)되는 경우가 발생된다. 그러므로, 익스클루시브 오아게이트(XOR1)의 출력을 제2플립플롭(FD4)의 클럭입력으로 직접 연결시키면 출력이 불안정해질 수 있으므로, 이러한 현상을 방지하기 위해서 시스템 클럭(CLOCK)을 반전시켜 반클럭 지연시키는 낫게이트(NOT1)와 제1디플립플롭(FD3)을 삽입하여 익스클루시브 오아게이트(XOR1)의 출력이 안정화된 (stable)후에 제2플립플롭(FD4)가 동작되도록 하였다.Here, the operation timing of the state comparator 3 shown in FIG. 3 assumes an ideal device, and in reality, due to the propagation delay of each component, the two state machines 2 and 2 'are used. Even if the same configuration of the two outputs (so1) (so2) can not be exactly the same as each other. As a result, the output of the exclusive oragate XOR1 may be bouncing. Therefore, if the output of the exclusive oragate XOR1 is directly connected to the clock input of the second flip-flop FD4, the output may become unstable. Thus, the system clock CLOCK is inverted to prevent this phenomenon. The delayed knock gate NOT1 and the first deflected flop FD3 were inserted to operate the second flip-flop FD4 after the output of the exclusive oar gate XOR1 was stabilized.

또한, 스테이트 비교기(3)의 실시예에서는 메인 회로부의 출력이 두 출력(VIS1)(VIS2)인 것을 예로 하여 두개의 앤드게이트(AND1)(AND2)를 사용하였으나, 메인 회로부의 출력이 3개 이상일때는 이에 맞추어서 앤드게이트를 3개이상 구성한다.In addition, in the embodiment of the state comparator 3, the two AND gates AND1 ANDAND2 are used as an example in which the outputs of the main circuit unit are two outputs VIS1 and VIS2, but the outputs of the main circuit unit are three or more. In this case, three or more end gates are configured accordingly.

이와 같은 본 발명에 의하면, 외부 스테이트머신(2)와 내부 스테이트머신(2')의 회로가 서로 동일하로 입력데이타(A12)(A4)(A5)및 시스템 클럭신호(CLOCK)를 공유하는 경우에는 외부 스테이트머신(2)과 내부 스테이트머신(2')에서 동일한 시켄스의 출력(so1)(so2)이 발생되므로, 스테이트 비교기(3)에서는 FPAG(1)의 메인회로부에서 발생되는 출력(VIS1)(VIS2)을 외부출럭으로 출력할수 있게 한다.According to the present invention as described above, when the circuits of the external state machine 2 and the internal state machine 2 'share the same input data A12, A4, A5 and system clock signal CLOCK. Since the output of the same sequence (so1) (so2) of the same sequence is generated in the external state machine (2) and the internal state machine (2 '), in the state comparator 3, the output (VIS1) generated in the main circuit portion of the FPAG ( VIS2) can be output to external truck.

그렇지만, FPAG(1)의 초기화루틴을 복사하여 그 복사된 프로그램에 의해 그 FPAG(1)에 내부 스테이트머신(2')과 스테이트 비교기(3) 및 메인 내부회로부를 가진 FPAG로 초기화시킨다 하더라도, 외부스테이트머신(2)이 동일하지 않다면, 두 스테이크머신(2)(2')의 출력이 서로 달라져서 스테이트 비교비(3)의 작용으로 FPAG(1)의 메인 출력은 차단되어 이용할 수 없게 된다.However, even if the initialization routine of the FPAG 1 is copied and initialized by the copied program to the FPAG 1 having the internal state machine 2 ', the state comparator 3 and the main internal circuit part, If the state machines 2 are not identical, the outputs of the two stake machines 2, 2 'are different from each other, and the main output of the FPAG 1 is blocked and cannot be used due to the action of the state comparison ratio 3.

즉, 외부 스테이트머신(2)은 PAL이나 GAL등을 이용하여 특정한 회로를 출력하여 롬 라이트방식으로 구워서 만든 것으로서, 그 PAL이나 GAL 소자의 복사방지를 위한 안전퓨즈를 끊어둠으로써, 내부회로를 복사할 수 없게 되고, FPGA(1)의 초기화 루틴을 복사하였다 하더라도, 외부 스테이트머신(2)을 복사할 수 없기 때문에 FPGA(1)의 내부 스테이트 비교기(3)가 초기화 루틴에 의해 형성되면서 자동으로 FPGA의 외부 출력을 차단해 주므로 복사방지효과를 얻을 수 있게 된다.That is, the external state machine 2 is made by outputting a specific circuit using PAL or GAL and baking it by the ROM light method. The internal circuit is copied by cutting off the safety fuse for copy protection of the PAL or GAL element. Since the external state machine 2 cannot be copied even if the initialization routine of the FPGA 1 is copied, the internal state comparator 3 of the FPGA 1 is automatically formed by the initialization routine, thereby automatically creating the FPGA. It cuts off the external output of the product, so that the copy protection effect can be obtained.

따라서, 외부 스테이트머신(2)의 회로가 동일구성을 가지는 FPGA(1)의 내부 스테이트머신(2')과 FPGA(1)의 스테이트 비교기(3)는 회로구성을 전혀 변경시키지 않고서 FPGA(1)의 메인 회로부만을 설계 변경할 수 있으므로, 시스템을 설계하여 시운전등에서 쉽게 FPGA의 메인 회로를 변경 설계할수 있어서, FPGA가 가지는 장점인 설계변경이 용이하고, 응용하기가 편리한점등을 그대로 살릴수 있고, 이에 덧붙여 FPGA의 메인 회로부의 복사를 방지할 수 있게 된다.Therefore, the internal state machine 2 'of the FPGA 1, in which the circuits of the external state machine 2 have the same configuration, and the state comparator 3 of the FPGA 1, do not change the circuit configuration at all. Since only the main circuit part of the circuit can be designed and changed, the main circuit of the FPGA can be easily changed and designed by designing the system and commissioning, so that the design, which is an advantage of the FPGA, can be easily changed and it is easy to apply. It is possible to prevent the copying of the main circuit part of the circuit.

이상에서 상세히 설명한 바와 같이 통상의 FPGA를 이용한 회로는 그 FPGA의 초기화 루틴을 복사함으로써, 쉽게 FPGA내의 회로가 복사되어 도용되는 문제점이 있었으나, 본 발명에 의하면 초기화 루틴이 복사된다 하더라도 외부 스테이트머신을 복사할수 없기 때문에 FPGA의 내부회로를 도용당하지 않게되어 시스템 전체가 간단히 복사되는 문제점을 방지할수 있는 효과가 있다.As described in detail above, a circuit using a conventional FPGA has a problem in that a circuit in the FPGA is easily copied and stolen by copying the initialization routine of the FPGA. However, according to the present invention, an external state machine is copied even if the initialization routine is copied. This prevents the FPGA's internal circuits from being stolen, preventing the system from simply copying the entire system.

Claims (1)

임의의 입력데이타를 입력받아 일련의 암호 시퀀스를 출력하는 회로를 복사가 방지된 PAL이나 GAL소자에 전용의 프로그래머를 사용하여 프로그래밍하여 FPGA(1)의 외부에 설치하는 외부 스테이트머신(2)과, 상기 FPGA(1)의 초기화 루틴에 의해 상기 외부 스테이트머신(2)과 동일한 회로로 그 FPGA(1)의 내부에 형성되어, 상기 외부 스테이트머신(2)과 동일한 입력데이타에 의해 동일한 암호 시퀀스를 출력하는 내부 스테이트머신(2')과, 상기 FPGA(1)의 초기화 루틴에 의해 그 FPGA(1)의 내부에 형성되어, 상기 외부 스테이트머신(2)과 내부 스테이트머신(2')의 시퀀스 출력을 비교하여 서로 같은 경우에만 그 FPGA(1) 내부에 형성되는 FPGA 메인회로의 출력이 FPGA(1)의 외부로 출력될수 있게 하고, 두 스테이트머신(2)(2')의 출력이 서로 다른 경우에는 상기 FPGA메인회로의 출력이 FPGA(1)의 외부로 출력되지 못하게 제어하는 스테이트 비교기(3)로 구성된 것을 특징으로 하는 FPGA의 복사방지회로.An external state machine (2) for programming a circuit for outputting a series of cipher sequences by receiving arbitrary input data using a programmer dedicated to copy-protected PAL or GAL elements and installing them outside the FPGA (1); The same routine as the external state machine 2 is formed inside the FPGA 1 by the initialization routine of the FPGA 1, and the same encryption sequence is output by the same input data as the external state machine 2; The internal state machine 2 'and the initialization routine of the FPGA 1 are formed inside the FPGA 1 to output the sequence output of the external state machine 2 and the internal state machine 2'. In comparison, the output of the FPGA main circuit formed inside the FPGA 1 can be output to the outside of the FPGA 1 only when the outputs of the two state machines 2 and 2 'are different. Output of the FPGA main circuit FPGA (1) consisting of a state that the comparator (3) for controlling let be output to an external copy of the FPGA circuit of the protection according to claim.
KR1019920000176A 1992-01-07 1992-01-07 Copy prevention circuit of fpga KR940009697B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920000176A KR940009697B1 (en) 1992-01-07 1992-01-07 Copy prevention circuit of fpga

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920000176A KR940009697B1 (en) 1992-01-07 1992-01-07 Copy prevention circuit of fpga

Publications (2)

Publication Number Publication Date
KR930016834A KR930016834A (en) 1993-08-30
KR940009697B1 true KR940009697B1 (en) 1994-10-15

Family

ID=19327670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920000176A KR940009697B1 (en) 1992-01-07 1992-01-07 Copy prevention circuit of fpga

Country Status (1)

Country Link
KR (1) KR940009697B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542191A (en) * 2010-12-31 2012-07-04 深圳市证通电子股份有限公司 RTL (register transfer level) IP (intellectual property) core protecting method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542191A (en) * 2010-12-31 2012-07-04 深圳市证通电子股份有限公司 RTL (register transfer level) IP (intellectual property) core protecting method
WO2012088856A1 (en) * 2010-12-31 2012-07-05 深圳市证通电子股份有限公司 Method for protecting rtl ip core

Also Published As

Publication number Publication date
KR930016834A (en) 1993-08-30

Similar Documents

Publication Publication Date Title
JP3539997B2 (en) Method for reducing the number of programmable architectural elements required to implement a look-up table with multiple inputs, and look-up table architecture
US6118869A (en) System and method for PLD bitstream encryption
KR940010679B1 (en) Integrated circuit with programmable logic circuit
US5192886A (en) Sub-nanosecond calibrated delay line structure
US7397690B2 (en) Multi-valued digital information retaining elements and memory devices
US20030163715A1 (en) Encryption for a stream file in an FPGA integrated circuit
US5432388A (en) Repeatedly programmable logic array using dynamic access memory
GB2221072A (en) Programmable sequential-code recognition circuit
EP0196084B1 (en) Sequential logic circuit
KR980004989A (en) Apparatus and method for data sensing of multi-bit memory cells
KR940009697B1 (en) Copy prevention circuit of fpga
KR940005696B1 (en) Rom device with security
EP0383952A1 (en) Constitution for expanding logic scale of a programmable logic array
KR19990017978A (en) Program data protection circuit of semiconductor memory device
Forrest ODE: output direct state machine encoding
KR19990002136A (en) Address transition detection circuit
US6848095B1 (en) Method of assigning logic functions to macrocells in a programmable logic device
KR0139335B1 (en) Random code generator
US6693453B1 (en) Re-programmable logic array
JP2006338671A (en) Circuit and method for completely shielding access to device requiring information protection
Nasrul Halim Password Designing Using Programmable Logic Device (PLD)
KR960004062B1 (en) Error data writing preventing apparatus and method
JPH03276754A (en) Semiconductor integrated circuit
KR19990080912A (en) Redundant fuse ROM read circuit of semiconductor memory
KR950010541Y1 (en) Pulse generating circuit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070928

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee