KR20030054307A - 레지스터 전송레벨 코드의 생성방법 - Google Patents

레지스터 전송레벨 코드의 생성방법 Download PDF

Info

Publication number
KR20030054307A
KR20030054307A KR1020010084448A KR20010084448A KR20030054307A KR 20030054307 A KR20030054307 A KR 20030054307A KR 1020010084448 A KR1020010084448 A KR 1020010084448A KR 20010084448 A KR20010084448 A KR 20010084448A KR 20030054307 A KR20030054307 A KR 20030054307A
Authority
KR
South Korea
Prior art keywords
register transfer
transfer level
logic circuit
equivalent
level code
Prior art date
Application number
KR1020010084448A
Other languages
English (en)
Other versions
KR100429573B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=19717548&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20030054307(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 주식회사 하이닉스반도체 filed Critical 주식회사 하이닉스반도체
Priority to KR10-2001-0084448A priority Critical patent/KR100429573B1/ko
Priority to US10/227,165 priority patent/US6698001B2/en
Publication of KR20030054307A publication Critical patent/KR20030054307A/ko
Application granted granted Critical
Publication of KR100429573B1 publication Critical patent/KR100429573B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

본 발명은 레지스터 전송레벨의 코드를 생성하는 방법에 관한 것으로, 이를 위한 본 발명은, 공정조건을 고려하지 않는 일반화된 레지스터 전송레벨 코드를 생성하는 단계; 상기 일반화된 레지스터 전송레벨의 코드를 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드로 분리하는 단계; 상기 분리된 조합 논리 회로와 순차 논리 회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 단계; 및 상기 등가의 레지스터 전송레벨의 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 단계를 포함하여 이루어진다.

Description

레지스터 전송레벨 코드의 생성방법{Method for creating Register transfer level code}
본 발명은 VLSI(Very large scale integrated circuit)의 설계를 위한 레지스터 전송 레벨(Register Transfer Level, 이하 "RTL"이라 한다) 코드의 생성 방법에 관한 것이다.
잘 알려진 바와 같이, VLSI를 설계하는 기술의 발전은 많은 수의 로직을 단일 칩(Chip)에 집적하는 것을 가능하게 하고 있다.
이러한 고집적 회로를 구성하는 로직의 갯수가 점차로 증가함에 따라 프로그래머가 일일이 해당 로직을 설계하는 것이 어려워지고 있으며, 단시간에 많은 로직을 집적화시 각각의 로직간의 시간 지연과 그로 인한 타이밍 오류가 발생하여 제품의 신뢰성을 떨어뜨리게 된다.
따라서, 상기한 바와 같은 문제를 해결하기 위하여 상기 시간 지연과 타이밍 문제가 검증된 코어 로직, 즉 일반적으로 IP(Intellegent Property)라 불리는 코어(core) 로직을 이용하는 방법이 제시되었는 바, 특정한 공정 조건에서 그 성능이 검증된 로직을 사용하여 상기 시간 지연과 타이밍 문제를 해결하였다.
그러나, 상기 코어 로직은 특정한 공정조건 하에서만 그 성능이 입증된 것으로 게이트 레벨(gate level)이나 회로 레벨(circuit level)로 구성되므로 차후 더 미세한 공정조건이 주어지거나 다른 공정조건에서 사용해야 할 경우에는 변화된 공정조건에 맞도록 재 구성해야 하며, 집적회로를 구성하는 로직의 갯수가 많을수록 재 구성에 많은 시간을 필요로 한다.
이러한 문제점을 해결하고자 상기 VLSI를 구성하는 각각의 로직을 공정 조건변경이 가능한 RTL 코드로 표현하는 방법이 제시된 바 있으나, 이 역시 VLSI를 구성하는 로직의 숫자가 많아질수록 RTL 코드의 길이가 길어지게 되어 인식성이 떨어지게 되며, 상기 인식성이 떨어진 각각의 RTL 코드에 내재된 공정 조건을 모두 바꾸기 위하여 많은 시간 지연이 따르는 바, 코어 로직을 사용하는데 비하여 큰 효과를 기대하기 어려운 문제점이 있다.
이를 도 1을 참조하여 상세히 설명하면 다음과 같다.
도 1은 종래의 RTL 코드 생성 방법을 설명하기 위한 일반적인 회로도를 도시한 것이다.
도 1을 참조하면, 논리곱 게이트(10, 20), 논리합 게이트(30), D-플립플롭(40) 및 삼상 버퍼(50)로 이루어진 회로가 도시되어 있다.
이를 종래의 RTL로 표현하면, 상기 논리곱 게이트(10)는 아래의 표 1의 (a)와 같이 표현되어 논리곱 게이트(10)는 특정한 공정조건에서 검증된 논리곱 게이트 "AND02D1"을 사용하되, A, B가 입력단자가 되고 E가 출력단자가 됨을 나타내며, 상기 논리곱 게이트(20)는 아래의 표 1의 (b)와 같이 표현되어 논리곱 게이트(20)는 특정한 공정조건에서 검증된 논리곱 게이트 "AND02D2"를 사용하되, C, D가 입력단자가 되고 F가 출력단자가 됨을 나타낸다.
여기서, 표 1의 "and2_0", "and2_1"은 인스턴스(instance)라 하여 각각의 논리곱 게이트를 구별하는 표시가 된다.
즉, 상기 인스턴스에 의하여 VLSI를 설계하는 툴은 첫번째 논리곱 게이트(and2_0)와 두번째 논리곱 게이트(and2_1)를 구별하게 된다.
이어서, 상기 D-플립플롭(40)은 아래의 표 1의 (c)와 같이 표현되어, 상기 표 1의 (c)에 기재된 바와 같이, "CLK1"이라는 클럭에 동기하여 입력(D)을 정출력 단자(D_L1)로 출력하는 것을 나타내며,
상기 논리합 게이트(30)는 VLSI를 설계하는 툴에 이미 검증된 "OR02D2" 디바이스를 사용하여 E, F가 입력단자가 되고 "O1_T"가 출력단자가 됨을 나타내며,
상기 삼상 버퍼(50)는 아래의 표 1의 (e)와 같이 표현되어 "O1_0E"를 입력단자로 하고 "O1_T"를 출력단자로 하며, "O1" 단자에 인가되는 신호에 의해 제어되어 출력됨을 나타낸다.
(a) AND02D1 and2_0(.A1(A), .A2(B), .Z(E));(b) AND02D2 and2_1(.A1(C), .A2(D), .Z(F));(c) DFF dff_0(.clk(CLK1), .D(D), .Q(D_L1));(d) OR02D1 or2_0 (.A1(E), .A2(F), .ZN(O1_T);(e) TRB1 trb1_1(.OE(O1_OE), .I(O1_T), .(O1));
여기서, 상기 각각의 논리회로를 기술하는 문법은 VLSI를 기술하는 툴과 상기 툴의 버전(version)에 따라 서로 다를 수 있다.
상기한 바와 같이, 종래에는 논리곱 게이트(10, 20) 및 논리합 게이트(30)의 타이밍과 시간지연을 고려하여 RTL 코드를 구성하고, D-플립플롭(40) 및삼상버퍼(50)는 논리회로를 구성하는 모든 논리 소자(10 ∼ 50)를 하드웨어로 구현하기 위하여 컴파일(compile)시 별도로 지연시간, 타이밍 및 공정 조건을 주어야 한다.
만일, 상기 VLSI를 기술하는 툴에 의하여 표현된 집적회로의 메탈라인의 폭, 디바이스의 전류용량 및 구동능력과 같은 공정조건이 달라지게 되면 VLSI를 레지스터 전송 레벨로 기술한 RTL 코드(Code)중 조합 논리회로인 논리곱 게이트(10, 20) 와 논리합 게이트(30)를 모두 바꾸어 주어야 한다.
따라서, 현재의 VLSI가 수십만개 이상의 코어 로직, 즉 다수의 순차 및 조합 논리회로로 집적되어 있는 바, 공정 조건 변화에 따라 RTL 코드를 재 구성해야 하므로 엄청난 시간의 손실을 초래하게 된다.
또한, 종래의 레지스터 전송 레벨로 수십만 게이트(gate)이상의 VLSI를 설계시, RTL 코드의 길이가 매우 길어지므로 상기 RTL 코드에 내재된 공정 조건을 일일이 바꾸는 작업에 많은 시간이 소요되며, 오류가 발견되어 이를 수정해야 할때 프로그래머가 인식하기가 매우 곤란하였다.
본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 제안된 것으로, 공정조건이 변화하더라도 기존의 코어 로직으로 부터 쉽게 RTL 코드를 생성할 수 있으면서도 인식성이 좋고, 새로운 집적회로를 설계시 공정조건에 영향을 거의 받지 않는 RTL 코드 생성 방법을 제공함에 그 목적이 있다.
도 1은 종래의 레지스터 전송 레벨로 기술되는 집적회로를 도시한 도면.
도 2는 본 발명을 설명하기 위한 로직 모델을 도시한 도면.
도 3은 본 발명에 따른 레지스터 전송 레벨의 코드 생성 방법을 설명하기 위한 흐름도.
도 4a 및 4g는 본 발명에 따른 레지스터 전송 레벨의 코드 생성 방법을 적용하기 위한 일반적인 회로도와 그에 따른 RTL 코드를 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명
RTL : 레지스터 전송 레벨
IP : Intllectual Property : 기존에 잘 설계되고 검증된 로직
S/B : 순차 회로블럭 C/B : 조합 회로블럭
상기한 문제점을 해결하기 위한 본 발명은, 공정조건을 고려하지 않는 일반화된 레지스터 전송레벨 코드를 생성하는 단계; 상기 일반화된 레지스터 전송레벨의 코드를 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드로 분리하는 단계; 상기 분리된 조합 논리 회로와 순차 논리 회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 단계; 및 상기 등가의 레지스터 전송레벨의 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 단계를 포함하여 이루어진다.
또한, 본 발명의 다른 레지스터 전송레벨 코드의 생성방법은, 삼상 버퍼를 포함하는 논리회로의 레지스터 전송레벨 코드 생성 방법에 있어서, 상기 논리회로에 대하여 공정조건을 고려하지 않는, 일반화된 레지스터 전송레벨 코드를 생성하는 단계; 상기 일반화된 레지스터 전송레벨 코드를 조합 논리회로와 순차 논리회로로 분리하되, 상기 삼상 버퍼를 순차논리 회로에 포함시키는 단계; 상기 분리된 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 단계; 및 상기 등가의 레지스터 전송레벨 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 단계를 포함하여 이루어진다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 2는 본 발명을 설명하기 위한 로직 모델을 도시한 것으로, 도면 부호 C/B는 조합 회로 블럭(Combinatinal circuit block)을 나타내고 도면 부호 S/B는 순차 논리 회로 블럭(Sequential circuit block)을 각각 나타낸다.
도 2에 도시된 로직 모델과 같이, 전체 회로내의 모든 셀들은 조합 회로 블럭과 순차 회로 블럭으로 구분하여 간략화 할 수 있다.
도 2의 로직 모델의 입출력 관계를 살펴보면, 조합 회로 블럭(C/B)의 입력신호가 될 수 있는것은 기준모듈(refrence module, 도면에는 도시되지 않음)의 출력신호(Rin2), 순차 회로 블럭(S/B)의 출력신호가 가능하며, 출력 신호가 될 수 있는것은 순차 회로블럭(S/B)의 입력신호와 기준모듈의 입력신호(Rout2)가 가능하다.
한편, 순차 회로블럭(S/B)의 입력신호가 될 수 있는것은 기준모듈의 출력신호(Rin1)와 조합 회로블럭(C/S)의 출력신호, 그리고 순차 회로블럭(S/B)의 출력신호가 가능하며, 순차 회로블럭(S/B)의 출력신호가 될 수 있는것은 조합 회로블럭(C/S)의 입력신호와 순차회로 블럭(S/B)의 입력신호, 그리고 기준모듈의 입력신호(Rout1)가 가능하다.
상기한 논리 모델에 근거하여 본 발명을 상세히 설명하고자 한다.
도 3은 본 발명에 따른 레지스터 전송 레벨의 코드 생성 방법을 설명하기 위한 흐름도를 도시한 것이다.
도 3을 참조하면, 공정조건을 고려하지 않는 일반화된 레지스터 전송레벨 코드를 생성하는 단계(100)와, 상기 일반화된 레지스터 전송레벨의 코드를 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드로 분리하는 단계(200)와, 상기 분리된 조합 논리 회로와 순차 논리 회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 단계(300) 및 상기 등가의 레지스터 전송레벨의 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 단계(400)를 포함하여 이루어진다.
그리고, 상기 분리된 조합 논리 회로와 순차 논리 회로를 각각 하나의 등가 로직으로 변환하는 단계(300)는, 상기 일반화된 조합 논리회로와 순차 논리회로를 출력과 입력과의 관계에 따른 등가의 산술식으로 변환하는 단계(310)와, 상기 변환된 등가의 산술식을 연속 대입하여 각각 하나의 산술식으로 변환하는 단계(320) 및 상기 등가의 산술식으로 변환된 순차 논리회로의 레지스터 전송레벨 코드를 인간의 문장 형태에 가까운 절차 대입문으로 변환하는 단계(330)를 포함하여 이루어진다.
상기 본 발명의 RTL 코드의 생성 방법을 도 4a 및 도 4g를 참조하여 상세히 설명하면 다음과 같다.
도 4a 및 4g는 본 발명에 따른 RTL 코드 생성 방법을 설명하기 위한 일반적인 회로도와 그에 따른 RTL 코드를 도시한 것이며, 상기 도면 중 도 4g는 도 1에 도시된 회로를 통상적인 레지스터 전송 레벨로 표현한 것을 나타낸다.
여기서, 상기 도 4a 및 도 4g에 사용된 도면 부호중 도 1에 도시된 종래기술과 동일한 도면 부호는 그대로 사용하기로 한다.
종래에는, 다음과 같이 조합 논리회로(10, 20, 30)를 RTL로 표현하였다.
논리곱 게이트(10)는 "AND02D1 and2_0(.A1(A), .A2(B), .Z(E));",
논리곱 게이트(20)는 "AND02D2 and2_1(.A1(C), .A2(D), .Z(F));",
논리합 게이트(30)는 "OR02D1 or2_0 (.A1(E), A2(F), ZN(O1_T);",
D-플립플롭(40)은 "DFF dff_0(.clk(CLK1), .D(D), .Q(D_L1));",
삼상 버퍼(50)는 "TRB1 trb1_1(.OE(O1_OE), .I(O1_T), .O(O1));"로 표현된다.
여기서, 상기 논리곱 게이트(10)를 표현한 RTL 코드에서 "AND02D1"을 모듈(module)이라 하고 "and2_0"을 인스턴스(instance)라 하며, 이를 간단히 설명하면 다음과 같다.
상기 모듈은 논리기능과 입력단자의 갯수 및 구동능력을 나타낸다.
예컨데, 상기 논리곱 게이트(10)의 모듈에서 AND는 논리곱을 나타내고, 02는 입력단자가 2개임을 나타내고, D1은 논리곱 게이트의 공정특성(예컨데 구동능력)에 따라 부여된 번호이다.
또한 상기 인스턴스는 동일한 모듈이 다수개가 사용될시, 각각의 모듈을 구분하기 위한 것이다.
상기한 논리회로(10 ∼ 50)는 종래의 VLSI 툴에 의해 기술된 것으로, VLSI 툴과 그 툴의 버전에 따라 조금씩 표현 방법이 다를 수 있다.
상기 도 4a에 도시된 통상적인 RTL 코드와 대비하여 본 발명에 따른 코드 생성방법을 도 4b 내지 도 4g를 참조하여 설명하면 다음과 같다.
먼저, 도 4b에 도시된 바와 같이, 모든 논리회로(10, 20, 30, 40, 50)의 입력 및 출력 신호를 일반화 시킨다.
여기서, D-플립플롭(40)과 삼상버퍼(50)는 종래와 동일하게 기술되어 있되, 논리곱 게이트(10, 20)와 논리합 게이트(30)는 공정조건을 포함하지 않고 일반화 되었음을 주목하여야 한다.
즉, 논리곱 게이트(10)는 "AND02 and2_0(.I1(A), .I2(B), .O1(E));"로 기술하고,
논리곱 게이트(20)는 "AND02 and2_1(.I1(C), .I2(D), .O1(F));"로 기술하며,
논리합 게이트(30)는 "OR02 or2_0(.I1(C), .I2(D), .O1(F));"로 기술한다.
논리곱 게이트(10)가 종래에는 "AND02D1"로 기술되어 두개의 입력단자를 갖는 논리곱 게이트중 구동능력, 전류 용량, 메탈라인의 폭과 같은 특정한 특성에 따라 각기 다른 기호(D1)를 갖는데 반하여 본 발명에서는 상기 특성을 나타내는 기호(D1)를 생략하고 단지 2개의 입력단자를 갖는 논리곱 게이트(AND02)로 표현한다.
또한, 입력단자를 ".I1 및 .I2", 출력단자를 ".O1"와 같이 논리곱 게이트와 논리합 게이트에서 일치시켜 표현하도록 한다.
이어서, 도 4c에 도시된 바와 같이, 조합 논리회로(10, 20, 30)와 순차 논리회로(40, 50)를 각각 구별하여, 순차 논리회로와 조합 논리회로를 각각 구분하여 모은다.
현실적으로, 상당수의 VLSI 소자가 내부에 다수개의 삼상 버퍼를 내장하고 있으며, 지금까지는 순차 논리회로나 조합 논리회로에 포함되어 있지 않았으나, 본 발명에서는 삼상 버퍼를 순차 논리회로에 포함시킴으로서 VLSI를 구성하는 모든 요소에 대하여 순차 논리회로나 조합 논리회로중 하나로 매핑할 수 있도록 한다.
이어서, 도 4d에 도시된 바와 같이, 각각의 조합 논리회로(10, 20, 30)를 출력과 입력과의 관계에 따른 등가의 산술식으로 변환하도록 한다.
상기 일반화된 논리곱 게이트(10)는, "assign E= A & B;"로 기술하고,
상기 일반화된 논리곱 게이트(20)는, "assign F= C & D_L1;"로 기술하고,
상기 일반화된 논리합 게이트(30)는, "assign O1_T= E | F;"로 기술한다.
즉, 상기 일반화된 논리곱 게이트(10)는 A와 B를 입력으로 하여 논리곱된 출력(E)을 생성하고,
상기 일반화된 논리곱 게이트(20)는 C와 D_1을 입력으로 하여 논리곱된 출력(F)을 생성하고,
상기 일반화된 논리합 게이트(30)는 E와 F를 입력으로 하여 논리합된 출력(O1_T)을 생성함을 나타낸다.
즉, 상기한 바와 같이, 각각의 조합 논리회로(10, 20, 30)는 입력과 출력에 따른 산술식으로 표현된다.
이어서 상기 등가의 산술식으로 표현된 상기 논리조합 회로와 순차논리 회로의 RTL 코드를 각각 하나의 산술식으로 표현한다.
도 4e 및 도 4f가 이에 해당하며, 이는 상기 도 3에 도시된 조합 논리회로와 순차 논리회로를 출력과 입력과의 관계에 따른 등가의 산술식으로 변환하는 단계(310) 내지 상기 등가의 산술식으로 변환된 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드를 인간의 문장 형태에 가까운 절차 대입문으로 변환하는단계(330)에 해당된다.
도 4e에 도시된 바와 같이, 각각의 출력(E, F, O1_T)을 조합 논리회로의 최종 출력(O1_T)과 입력(A, B, C, D_L1) 과의 관계만으로 될때까지 연속 대입하여 하나의 등가 산술식으로 바꾼다.
즉, 상기 논리곱 게이트(10)의 출력이 "A & B"로 표현되고 상기 논리곱 게이트(20)의 출력이 "C & D_1"로 표현되며, 상기 논리합 게이트(30)는 상기 논리곱 게이트(10)와 논리곱 게이트(20)의 출력을 논리합 하므로, 상기 논리합 게이트(30)의 출력(O1_T)은 "O1_T = (A & B) | (C & D_L1)"과 같이 나타낼 수 있다.
따라서, 상기 도 4a에서와 같이 조합 논리회로(10, 20, 30)를 각각 레지시터 전송 레벨로 표현하던 것을 하나의 문장으로 통합함으로서 레지스터 전송 레벨로 표현된 코드가 파악하기 용이한, 즉 인식성이 용이한 레지스터 전송 레벨의 코드가 된다.
이어서, 도 4f에 도시된 바와 같이, 순차 논리회로(40, 50)도 인식성을 높이기 위하여 절차 대입문(procedural assignment statement)으로 변환한다.
상기 절차 대입문으로 변환하는 것은 인간의 문장 표현에 더 가까운 표현법으로 변환한다는 것을 의미한다.
예컨데, 상기 D-플립플롭(40)은 종래에 "DFF dff_0(.clk(CLK1), .D(D), .Q(D_L1));"으로 표현되었으나, 본 발명에서는 "always(posedge CLK1) if(CLK1)D_L1 <=D;" 와 같이 표현하도록 한다.
상기 문장은, CLK1이 posedge(positive edge)일때만 "D"라 명명된 입력을"D_L1"이라는 이름으로 출력함을 의미한다.
마지막으로, 도 4g에 도시된 바와 같이, 각각 하나의 산술식으로 표현된 상기 조합 논리회로식과 순차 논리회로식을 하나로 통합하여 저장한다.
상술한 바와 같이, 본 발명의 RTL 코드(도 4g)는 어떠한 조건(예컨데 구동능력, 전류용량, 메탈라인의 폭 등등)도 포함하고 있지 않으며, 도 4a에 도시된 종래의 RTL 코드에 비하여 인식성이 향상 되었음을 볼 수 있다.
즉, 본 발명의 RTL 코드는 공정조건에 영향을 거의 받지 않도록 기술되며, 특정한 공정조건이 필요한 경우 상기 하나로 통합된 RTL 코드에 공정 특성을 부여하여 사용하도록 한다.
따라서, 종래에 특정한 공정조건에 최적화된 게이트 레벨 또는 회로 레벨로 기술된 코어 로직이 공정조건 변화시에 많은 시간을 낭비하였으나 본 발명의 RTL 코드 생성법은 이러한 공정변화에 영향을 적게 받는다.
상기한 RTL 코드의 생성방법은 베릴로그의 메뉴얼(Verilog/XL refrence manual, Cadence design system)에 기재된 형식을 따른 것이나, 본 발명을 설명하기 위한 기술 형식에 불과한 것으로 본 발명은 이 형식으로 제한 되지는 않으며, 하드웨어를 RTL 코드의 형식으로 기술하는 다른 VLSI툴에서도 적용 가능하다.
이상에서 설명한 바와 같이 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명이 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함이 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.
본 발명은 RTL 코드를 생성시, 생성된 레지스터 전송레벨의 코드가 공정조건에 의한 영향을 거의 받지 않으며, 생성된 레지스터 전송레벨의 코드의 길이가 짧고 인식성이 좋은 특징이 있다.

Claims (8)

  1. 공정조건을 고려하지 않는 일반화된 레지스터 전송레벨 코드를 생성하는 단계;
    상기 일반화된 레지스터 전송레벨의 코드를 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드로 분리하는 단계;
    상기 분리된 조합 논리 회로와 순차 논리 회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 단계; 및
    상기 등가의 레지스터 전송레벨의 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 단계를 포함하여 이루어지는 레지스터 전송레벨 코드의 생성방법.
  2. 제 1 항에 있어서,
    상기 분리된 조합 논리 회로와 순차 논리 회로를 각각 하나의 등가 로직으로 변환하는 단계는,
    상기 일반화된 조합 논리회로와 순차 논리회로를 출력과 입력과의 관계에 따른 등가의 산술식으로 변환하는 단계;
    상기 변환된 등가의 산술식을 연속 대입하여 각각 하나의 산술식으로 변환하는 단계; 및
    상기 등가의 산술식으로 변환된 순차 논리회로의 레지스터 전송레벨 코드를 인간의 문장 형태에 가까운 절차 대입문으로 변환하는 단계를 포함하여 이루어지는 것을 특징으로 하는 레지스터 전송레벨 코드의 생성 방법.
  3. 제 1 항에 있어서,
    상기 조합 논리회로와 순차 논리회로를 일반화 시키는 단계에 있어서,
    동일한 논리 기능을 가지는 로직의 기호와, 상기 조합 논리회로의 입력과 출력을 나타내는 기호를 일치시키는 것을 특징으로 하는 레지스터 전송레벨 코드의 생성방법.
  4. 삼상 버퍼를 포함하는 논리회로의 레지스터 전송레벨 코드 생성 방법에 있어서,
    상기 논리회로에 대하여 공정조건을 고려하지 않는, 일반화된 레지스터 전송레벨 코드를 생성하는 단계;
    상기 일반화된 레지스터 전송레벨 코드를 조합 논리회로와 순차 논리회로로 분리하되, 상기 삼상 버퍼를 순차논리 회로에 포함시키는 단계;
    상기 분리된 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 단계; 및
    상기 등가의 레지스터 전송레벨 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 단계
    를 포함하여 이루어지는 레지스터 전송레벨 코드의 생성방법.
  5. 제 4 항에 있어서,
    상기 등가 레지스터 전송레벨 코드로 변환하는 단계는,
    상기 일반화된 조합 논리회로와 상기 삼상 버퍼를 포함하는 순차 논리회로의 레지스터 전송레벨 코드를 출력과 입력과의 관계에 따른 등가의 산술식으로 변환하는 단계;
    상기 변환된 등가의 산술식을 연속 대입하여 각각 하나의 산술식으로 변환하는 단계; 및
    상기 등가의 산술식으로 변환된 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드를 인간의 문장 형태에 가까운 절차 대입문으로 변환하는 단계를 포함하여 이루어지는 것을 특징으로 하는 레지스터 전송레벨 코드의 생성 방법.
  6. 제 1 항 또는 제 4 항 중 어느 한항에 있어서,
    상기 일반화된 레지스터 전송레벨 코드를 생성하는 단계는,
    상기 논리회로를 구성하는 적어도 하나의 디바이스 중 동일한 논리 기능을가지는 로직의 기호 및 상기 조합 논리회로의 입력과 출력을 나타내는 기호를 일치시키는 것을 특징으로 하는 레지스터 전송레벨 코드의 생성방법.
  7. 레지스터 전송레벨 코드 생성을 위하여 대용량 프로세서를 구비한 시스템에,
    레지스터 전송 레벨로 기술된 조합 논리회로와 순차 논리회로의 코드를 각각 일반화 시키는 기능;
    상기 일반화된 조합 논리회로와 순차 논리회로의 레지스터 전송레벨의 코드를 분리하는 기능;
    상기 분리된 조합 논리 회로와 순차 논리 회로의 레지스터 전송레벨의 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 기능; 및
    상기 등가의 레지스터 전송레벨의 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 기능
    을 실현시키기 위한 프로그램을 기록한, 컴퓨터로 읽을 수 있는 기록 매체.
  8. 삼상 버퍼를 포함하는 논리회로의 레지스터 전송레벨 코드 생성을 위한 대용량 프로세서를 구비한 시스템에,
    상기 논리회로레 대하여 공정 조건을 고려하지 않는 일반화된 레지스터 전송레벨 코드를 생성하는 기능;
    상기 일반화된 레지스터 전송레벨 코드를 조합 논리회로와 순차 논리회로로 분리하되, 상기 삼상 버퍼를 순차 논리회로에 포함시키는 기능;
    상기 분리된 조합 논리회로와 순차 논리회로의 레지스터 전송레벨 코드를 각각 하나의 등가 레지스터 전송레벨 코드로 변환하는 기능; 및
    상기 등가의 레지스터 전송레벨 코드로 변환된 순차 논리회로와 조합 논리회로의 등가 레지스터 전송레벨 코드를 하나로 단일화 하는 기능
    을 실행시키기 위한 프로그램을 기록한, 컴퓨터로 읽을 수 있는 기록매체.
KR10-2001-0084448A 2001-12-24 2001-12-24 레지스터 전송레벨 코드의 생성방법 KR100429573B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0084448A KR100429573B1 (ko) 2001-12-24 2001-12-24 레지스터 전송레벨 코드의 생성방법
US10/227,165 US6698001B2 (en) 2001-12-24 2002-08-23 Method for generating register transfer level code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0084448A KR100429573B1 (ko) 2001-12-24 2001-12-24 레지스터 전송레벨 코드의 생성방법

Publications (2)

Publication Number Publication Date
KR20030054307A true KR20030054307A (ko) 2003-07-02
KR100429573B1 KR100429573B1 (ko) 2004-05-03

Family

ID=19717548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0084448A KR100429573B1 (ko) 2001-12-24 2001-12-24 레지스터 전송레벨 코드의 생성방법

Country Status (2)

Country Link
US (1) US6698001B2 (ko)
KR (1) KR100429573B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139235A (ko) * 2018-04-05 2020-12-11 이메지네이션 테크놀로지스 리미티드 데이터 변환 파이프라인용 하드웨어 설계 검증

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10152213B4 (de) * 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
US8418119B2 (en) 2011-05-10 2013-04-09 International Business Machines Corporation Logical circuit netlist reduction and model simplification using simulation results containing symbolic values
US8443314B1 (en) 2012-02-23 2013-05-14 International Business Machines Corporation Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
US10540468B1 (en) 2018-07-11 2020-01-21 International Business Machines Corporation Verification complexity reduction via range-preserving input-to-constant conversion

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537580A (en) * 1994-12-21 1996-07-16 Vlsi Technology, Inc. Integrated circuit fabrication using state machine extraction from behavioral hardware description language
JP2954894B2 (ja) * 1996-12-13 1999-09-27 株式会社半導体理工学研究センター 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置
US6145117A (en) * 1998-01-30 2000-11-07 Tera Systems Incorporated Creating optimized physical implementations from high-level descriptions of electronic design using placement based information
US6336087B2 (en) * 1998-07-24 2002-01-01 Luc M. Burgun Method and apparatus for gate-level simulation of synthesized register transfer level design with source-level debugging
KR100326238B1 (ko) * 1998-12-22 2002-05-09 박종섭 레지스터전송수준코드의생성방법
US6832361B2 (en) * 2001-05-21 2004-12-14 International Business Machines Corporation System and method for analyzing power distribution using static timing analysis
JP2003108619A (ja) * 2001-09-27 2003-04-11 Toshiba Corp 半導体集積回路の設計方法および設計プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139235A (ko) * 2018-04-05 2020-12-11 이메지네이션 테크놀로지스 리미티드 데이터 변환 파이프라인용 하드웨어 설계 검증

Also Published As

Publication number Publication date
KR100429573B1 (ko) 2004-05-03
US20030121009A1 (en) 2003-06-26
US6698001B2 (en) 2004-02-24

Similar Documents

Publication Publication Date Title
EP2891053B1 (en) Results generation for state machine engines
US6578187B2 (en) Digital circuit design method using programming language
US7769569B2 (en) Method and system for designing a structural level description of an electronic circuit
KR102165134B1 (ko) 상태 기계 엔진에서 상태 벡터 데이터를 사용하기 위한 방법들 및 시스템들
KR20140104991A (ko) 상태 기계에서의 데이터 분석을 위한 방법들 및 시스템들
US7484187B2 (en) Clock-gating through data independent logic
JP2009517764A (ja) 階層的soc設計でマージするタイミング規制
US6658630B1 (en) Method to translate UDPs using gate primitives
US7441212B1 (en) State machine recognition and optimization
KR100429573B1 (ko) 레지스터 전송레벨 코드의 생성방법
CN110442929A (zh) 一种基于perl实现芯片系统顶层自动例化的方法
JPH10134091A (ja) 論理エミュレーションの最適化回路生成法
US7603635B2 (en) Asynchronous, multi-rail digital circuit with gating and gated sub-circuits and method for designing the same
US8443314B1 (en) Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
JP5265318B2 (ja) 論理検証装置
US7982502B2 (en) Asynchronous circuit representation of synchronous circuit with asynchronous inputs
Semba et al. RTL conversion method from pipelined synchronous RTL models into asynchronous ones
KR100326238B1 (ko) 레지스터전송수준코드의생성방법
CN217213701U (zh) 用于多时钟切换的电路、fpga和电子设备
US10331835B2 (en) ASIC design methodology for converting RTL HDL to a light netlist
WO2014141457A1 (ja) 異なる言語間のコード変換方法、コード変換プログラムおよびコード変換装置
JP5587459B2 (ja) 論理検証装置
JP3209162B2 (ja) 半導体集積回路及びその設計方法
Muscato et al. Locally clocked microprocessor
De Gloria et al. Delay insensitive micro-pipelined combinational logic

Legal Events

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

Payment date: 20120329

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 16