KR100186869B1 - 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론 - Google Patents

회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론 Download PDF

Info

Publication number
KR100186869B1
KR100186869B1 KR1019910005520A KR910005520A KR100186869B1 KR 100186869 B1 KR100186869 B1 KR 100186869B1 KR 1019910005520 A KR1019910005520 A KR 1019910005520A KR 910005520 A KR910005520 A KR 910005520A KR 100186869 B1 KR100186869 B1 KR 100186869B1
Authority
KR
South Korea
Prior art keywords
design
description
level
operational
timing
Prior art date
Application number
KR1019910005520A
Other languages
English (en)
Other versions
KR910018923A (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=24017652&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100186869(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ., 엘 에스 아이로 로직 코포레이션 filed Critical .
Publication of KR910018923A publication Critical patent/KR910018923A/ko
Application granted granted Critical
Publication of KR100186869B1 publication Critical patent/KR100186869B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31704Design for test; Design verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/33Design verification, e.g. functional simulation or model checking
    • 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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

고레벨 기술들과 명세들로부터 복합 디지탈 장치들의 구조적 기술들을 발생하기 위한 방법론이 개시되어 있다.
본 방법론은 원래의 고레벨 기술들의 의도에 내장된 의미론의 일관성을 매핑하고 집행하기 위한 체계적 기술(technique)을 이용한다.
설계활동은 본질적으로 설계표시들의 여러 레벨상에서 운영하는 일련의 변형(transformation)들이다. 각 레벨에서, 의도된 의미(의미론)와 형식적 소프트웨어조작들이 설계목표들을 만족하는 하드웨어를 기술하는 보다 자세한 레벨을 추출하기 위하여 포착된다.
본 방법론의 중요한 특징들은; 사용자개념, 의도, 명세, 기술들, 제약조건들 및 타협들을 포착하는것; 아키텍쳐 분할; 고레벨에서 감도분석; 추정을 싸이징하는것; 추정을 타이밍하는것; 아키텍처타협; 구현추정을 갖는 개념설계; 및 타이밍 클로져 들이다.
본 방법론은 논리합성전에 설계를 분할하고 평가하기 위하여 많은 실현된 설계들에 대한 모여진 데이타에 기초한 추정기를 사용하는 것을 포함한다.
구조적 기술로부터, 장치의 물리적구현이 쉽게 실현된다.

Description

회로와 시스템의 고레벨의 의미론적 명세들과 기술로부터 회로와 시스템의 실행가능한 저레벨의 구조적 기술과 정당한 물리적 구현들을 추론하는 방법론
제1도 내지 제7도는 본 발명의 방법론의 개략적 사시도이다.
제8도는 제1도 내지 제7도에 개시된 방법론을 구현하기 위한 전형적 소프트웨어도구의 블럭다이아그램이다.
제9도는 본 발명의 방법론의 블럭다이아그램이다.
제10도는 본 발명의 분석기의 일부분의 블럭다이아그램이다.
제11도는 분석기를 나타내는 블럭다이아그램이다.
제12도는 본 발명의 중요한 특징이 없는 일반화된 논리합성 방법론의 블럭다이아그램이다.
제13도 내지 제15도는 본 발명의 방법론을 이용하는 컴퓨터 시스템에 의해서 발생된 전형적인 스크리인 디스플레이다.
* 도면의 주요부분에 대한 부호의 설명
110 : 칩 112 : 메모리
114 : 데이타경로 116 : 메가셀, 메가기능
118 : 기능유닛 120 : 정규블록
122 : 랜덤논리 600 : 칩
602 : 메모리콤파일러 603 : 시높시스 라이브러리언어
604 : 게이트레벨최적화기(설계콤파일러) 606 : 롬, 램
608 : 메가셀, 메가기능 610 : 네트리스트
612 : 랜덤논리 702 : 타이밍/영역 제약요건
704, 708 : 구조적기술 706 : 역주석첨가
710 : 플로어 플래너 712 : 지연예측
800 : 공통설계환경 802 : 공통설계환경/시높시스
804 : 설계컴파일러 인터페이스 806 : 그래픽 사용자 인터페이스
808 : 지연평가기 810 : 모델러
812 : 역주석첨가기 814 : 분석기
816 : VHDL 예비합성분할기 818 : 라이브러리
820 : 메크로셀 모델발생기 822 : I/O 버퍼 모델발생기
824 : 메가셀 모델발생기 826 : 메가-기능지원
828 : VHDL 시뮬레이터 830 : 모듈러 설계환경
902 : VHDL 설계 904 : VHDL 컴파일러 및 시뮬레이터
906 : 테스트 벡터 908 : 설계분할기
910 : 임계링크 912 : 논리합성도구
914 : 라이브러리 916 : 네트리스트
918 : VHDL 컴파일러 및 시뮬레이터 920 : 물리적구현 시스템
922 : 작업장치 1002 : 설계기술
1004 : 분석기 1006 : 파스트리
1008 : 지식베이스 1010 : 시뮬레이션결과
1012 : 에러발생 1210 : 일반화된방법론
1212, 1214, 1216, 1218, 1220, 1222, 1224, 1226 : 블럭
(발명의 분야)
본 발명은 디지탈장치의 설계와 구현(implementation)을 위한 컴퓨터 보조 설계 도구와 기술(technique)에 관한 것이다.
(발명의 배경)
오늘날 최신기술의 설계기술, 논리합성은 실제로 물리적 추상화의 여러 레벨들 사이의 매핑(mapping)에 불과하다. 설계자동화에 있어서 가장 어려운 문제들 중 하나는 게이트레벨에서조차 타이밍 클로저(timing closure)를 효과적으로 얻는 것이 불가능하다는 것이다. 이런 문제때문에 설계자는 두 개의 설계, 즉 논리설계와 타이밍설계를 해야 한다. 그렇지 않으면, 설계자는 회로들을 알기쉽게 자세히 설계한다. 왜냐하면 가장 좋은 케이스 타이밍은 가장 나쁜 케이스 타이밍과 훨씬 다르기 때문이다. 다른 케이스에 있어서는, 설계자들은 구현과 타이밍사이의 모든 타협(tradeoff)을 평가할 수 있도록 장치 레이아웃(배치설계)의 조정을 요구한다.
ECAD 또는 전자 CAD 시스템이라 불리는 전자회로의 설계를 위한 현재의 컴퓨터 보조설계 시스템은 사용자에게 그래픽 디스플레이장치를 갖는 디지탈 컴퓨터에서 실행하는 소프트웨어도구의 세트를 제공함으로써 전자회로의 설계에 도움을 주고 있다. 전형적으로, 다섯개의 주요 소프트웨어 프로그램 기능이 ECAD 시스템에서 실행된다 : 즉 논리에디터, 논리컴파일러, 논리시뮬레이터, 논리검색기(logic verifier) 및 레이아웃 프로그램이 그것이다. 도식적 에디터 프로그램은 시스템의 사용자로 하여금 디스플레이 스크린을 이용하고, 처리과정 (이하 프로세서) 프로세서 처리과정에서 네트리스트(소자사이의 연결의 요약)을 생성하면서 구성도를 입력 및/또는 수정을 할 수 있게 한다. 논리컴파일러는 네트리스트를 입력으로서 받아들이고, 소자 데이타 베이스를 이용하여 레이아웃, 검증 및 시뮬레이션에 필요한 모든 정보를 포멧(들)이 이들 기능을 위하여 특별히 최적화된 회로도 오브젝트 파일 또는 파일들로 보낸다. 논리검색기는 서로 연결된 다중 출력들, 과부화된 신호 경로들등과 같은 설계에러들을 검사하고, 그러한 어떤 설계에러의 문제가 존재하면 에러표시를 생성한다. 논리시뮬레이터는 회로도 오브젝트 화일(들)과 시뮬레이션 모델들을 받아들이고, 화일 또는 사용자 입력의 형태로 제공되는 지시, 초기조건 및 신호에 영향을 미치는 시뮬레이션 결과를 생성한다. 레이아웃 프로그램은 반도체칩(또는 회로판)이 레이아웃되고 제조될 수 있는 데이타를 생성한다.
미합중국 캘리포니아 밀피타스에 있는 LSI 로직코오포레이션에 의해 제공된 모듈설계환경(MDE)는 UNIX 시스템을 운용하는 컴퓨터용 소프트웨어 도구이다. MDE는 많은 소프트웨어 프로그램중에서 특히 회로도 에디터(LSED) 및 시뮬레이터(LDS)를 포함하고 있으며, 앞서 언급한 타입의 상업적으로 이용가능한 도구의 한 예를 제공한다. 회로도 에디터, 회로도 컴파일러 및 회로도 시뮬레이터의 다른 예는 미합중국, 캘리포니아, 마운틴뷰에 있는 밸리드로직 시스템 인코포레이티드에 의해서 제조된 SCALD 스테이션에서 찾아볼 수 있다.
VHDL 또는 VHSIC(Very High Speed Integrated Circuit, 초고속 집적회로) 하드웨어 기술(記述)언어는 복합장치를 기술하기 위해 최근에 개발된 보다 높은 수준의 언어이다. VHDL 기술의 형태에는 이야기체의 규칙에 의해서 표현된 문맥-종속 구문론적 및 어의에 관한 필요수단과 더불어 문맥-독립구문의 수단에 의하여 기술되어 있다. VHDL는 IEEE 규격 VHDL 언어 참고 매뉴얼( IEEE 규격 1076-1987)에 의하여 기술되어 있고 이는 또한 MIL-STD-454, 규정 64로서 알려져 있다.
VHDL은 언어구성의 어의론 또는 목적이 명확하게 상세히 기재되어 있기 때문에 앞으로 설계명세서언어에 있어서 중요한 단계를 의미한다. 이론적으로, VHDL은 설계자의 의도된 시스템 또는 회로동작을 어의적용어로 명백하게 기술한다. 설계엔티티는 VHDL 에서 주요한 하드웨어 추상화이다. 이것은 내용이 분명하게 규정된 입력 및 출력을 갖는 하드웨어설계의 일부분을 의미하고 내용이 분명하게 규정된 기능을 설계한다. 설계엔티티는 전체 시스템, 서브-시스템, 판, 칩, 매크로-셀, 논리게이트 또는 그들사이의 추상화의 어느 레벨을 의미한다. 구성(Configuration)은 완전한 설계를 형성하기 위하여 어떻게 설계엔티티들을 조합하느냐를 기술하는데 이용될 수 있다.
VHDL은 하드웨어 아키텍쳐의 기술을 위한 세개의 별개 방식들을 지원한다. 이들중 첫번째의 것이 구조적인 기술로서 이 방식에서는 아키텍쳐가 상호 연결된 소자의 계층적 배열로서 표현된다. 두번재 방식은 데이터-플로우 기술로서 이 방식에서는 아키텍쳐가 각각이 게이트 신호의 제어를 받는 병행 레지스터 지정들의 세트로 분류된다. 이 기술은 레지스터 전송레벨(RTL)기술에서 구체화된 기술방식을 포함한다. 세번째 방식은 동작적인 기술로서 이 방식에서는 설계가 고레벨 프로그래밍언어와 유사한 연속 프로그램문장으로 기술된다. 이후로는 주로 동작적인 기술방식이 논의된다. 그러나 세개의 모든 방식들은 단일 아키텍쳐로 혼합될 수 있다.
프롤로그(prolog)와 같은 중간 규칙-베이스도구에 의하여 고레벨(예:VHDL)의 RTL 기술과 유사한 기술로 저레벨의 물리적으로 실행할 수 있는 기술을 유도하는 방법론이 여기에 개시되어 있다. 프롤로그는 술어놀리에 기초한 프로그램밍 언어이다. 이것은 수학적원리의 증명과 같이 지능 작업용으로 이용될 수 있다. 프롤로그 프로그램은 오브젝터 사이의 관계를 규정짓는 규칙의 집합이다. 프롤로그 규칙의 일반적인 형태는 어떤 조건들이 진실이면 명시된 목적이 진실한 호온(horn)절이다. 프롤로그 프로그램의 실행은 문제의 목적을 위한 증명의 발견, 단일화 및 분석의 사용을 포함한다. 본 발명에 이용된 프롤로그의 중요한 점은 미리 규정된 규칙들을 보통의 플롤로그절로 변환하는 용어전개이다.
(발명의 개시)
그러므로 본 발명의 목적은 회로 또는 시스템의 동작적인 기술로부터 정당한 구조적인 기술을 유도하는 방법론을 제공하고 그에 따라서 설계자로 하여금 보다 높은 레벨의 추상적 개념에서 보다 크고, 보다 복잡한 회로 및 시스템을 갖고 작업할 수 있게 하는 것이다.
본 발명의 다른 목적은 회로 및 시스템의 동작적 기술(description)들을 물리적 구현(implementation)으로 자동적으로 해석하는 기술(technique)를 제공하는 것이다.
본 발명의 다른 목적은 설계정당화의 수준을 구조적(네트리스트)레벨로부터 동작적인 레벨로 향상시키는 것이다.
본 발명의 다른 목적은 보다 표준화된 설계환경을 제공하고, 그에 따라 여러가지의 설계 플랫폼들 사이에 교차 트레이닝에 대한 요구를 경감하고 자원들을 더욱 합성화 및 검사능력쪽으로 지향되도록 하게 하는 것이다.
본 발명에 따르면, 설계자들로 하여금 고수준 컴퓨터언어을 이용하는 동작지향적인 기술로부터 회로 또는 시스템(이하 장치라 함)의 구조적인 기술 및 물리적 구현을 창조하고 정당화하는 것이 가능하게 하기 위한 소프트웨어도구로 작동되는 전자 CAD 시스템이 제공된다. 그 방법론은 다음 스텝으로 이루어져 있다. 첫째, 설계자는 VHDL과 같은 고수준언어로 장치의 원하는 동작을 상세히 기술한다. 기술은 고수준 타이밍목적을 포함한다.
다음에, 설계의 VHDL의 동작적 기술로 시작하는 동작적 시뮬레이션 스텝에서, 설계자는 원하는 동작이 얻어질때까지 시뮬레이션과 설계변경을 반복한다.
다음에, 분할작업 스텝에서 설계는 아키텍쳐블럭의 수로 분할된다. 이 스텝은 설계동작을 구현하는 아키텍처범위의 설계공간을 찾는 효과적인 스텝이다. 물리적 설계시스템과의 연결은 가능한 아키텍쳐범위를 고수준 타이밍과 영역(크기) 목표를 만족하는 범위로 제한함으로써 고수준의 타이밍 크로저(closure)를 가능하게 한다. 물리적 설계시스템과의 연결은 개념적 레벨과 물리적 레벨사이의 브리지(bridge)를 의미하기 때문에 이 스텝은 가장 중요한 스텝이다. 이 스텝의 두번째 기능은 여러가지 아키텍쳐블럭들을 적절한 합성프로그램으로 유도하는 것이다.
다음에, 논리합성 스텝에 있어서, 다수의 별개의 프로그램들이 분할스텝에서 식별된 여러가지 아키텍쳐 블럭들을 효과적으로 합성하기 위해서 이용되어진다. 고도의 정규구조들 또는 널리 이해된 기능을 갖는 이들 블럭들은 특수한 합성도구(예 : 메모리 또는 기능컴파일러)로 유도된다. 렌덤 또는 구조적이지 못한 논리를 갖는 이들 블럭들은 더 일반적인 논리합성 프롤그램으로 유도된다. 이 스텝의 출력은 설계의 네트리스트이다.
다음에, 물리적 시뮬레이션 스텝에 있어서, 게이트-레벨 설계기술이 그 결과를 초기동작적 시뮬레이션의 결과와 비교하면서 시뮬레이트되어 진다. 이것은 회로구현이 의도된대로 동작하고, 타이밍 목표가 획득되는 검사를 제공한다.
선택적으로, 설계는 전기용량부하와 진동과 같은 다른 물리적 설계한계를 넘지않도록 하기 위해서 역으로 주석이 첨가된다.
마지막으로, 설계는 ASIC(응용특수집적회로) 장치의 경우와 같이 설계의 물리적 구현을 조절하는 현존하는 소프트웨어 시스템으로 입력된다.
본 발명의 중요한 특징은 모든 톱 다운 설계접근방식에 있어서 전술한 것이 설계실현이 추상화개념 레벨을 통하여 이루어지는 아키텍쳐 세분의 프로세서라는 점이다. VHDL의 특성과 개시된 방법론은 이 프로세서가 보다 높은 레벨에 두는 목적 및 의미를 상실하지 않고 행해지는 것을 가능하게 한다. 이것이 프로세서를 지동화하는데 중요한 점이다. 본 발명의 다른 중요한 특징은 분할스텝 또는 분할기가 설계를 고레벨 타이밍목표들을 만족하는 가능한 아키텍쳐범위내로 제한하기 위하여 칩 평면도로부터 얻으 고레벨 타이밍정보를 효과적으로 이용한다는 것이다. 이들 제한은 프로세서를 특수 물리적 구체화로 집중하게 하는데 중요한 것이다.
본 발명의 다른 중요한 특징은 이 방법론이 설계자동화에 있어서 가장 어려운 문제중 하나를 해결하면서, 즉 종래에 설계자로 하여금 두개의 설계, 논리설계와 타이밍설계를 창작하도록 하게 하는 게이트레벨에 있어서 타이밍 클로저를 효과적으로 얻는 것이 불가능하던 문제를, 실제 레이아웃으로 가는일 없이 타이밍 클로저를 할 수 있게 한다는 점이다. 본 명세서에 개시된 방법론을 이용하여, 타이밍 클로저가 평면도화 레벨 레이아웃으로부터 타이밍 데이타를 얻고 이 데이타를 VHDL 동작기술의 I/O(입력/출력) 포트로 연결하는 역주석첨가의 방식을 이용함으로써 얻어진다.
본 발명의 한 특징에 따르면, 장치의 동작(VHDL) 기술이 한개 또는 그 이상의 의미적 규칙들을 동작적 기술의 기초가 되는 각각의 구문적 규칙에 부가함으로써 해석된다. 이것은 구문속성츄리(syntax attributed tree)를 이용하여(프롤로그에 의한 것과 같이) 달성된다.
본 발명은 전체 시스템으로부터, 서브-시스템, 판(예;멀티-칩모듈), 칩, 매크로셀 및 이들 특수한 레벨들 사이에 있는 장치에 걸친, 넓은 범위의 장치의 설계에 유용하다.
본 발명의 다른 목적특징 및 이점들은 다음에 기술한 것으로부터 명백하게 될것이다.
[발명의 상세한 설명]
(서 두)
현대의 디지탈 시스템에 있어서, 70,000 또는 그 이상의 논리게이트를 통합하는 설계는 흔하지 않는 것은 아니다. 또한 현대의 아날로그 전자시스템에 있어서, 특히 설계되어지는 기능이 집적회로로 통합되도록 의도되는 시스템에 있어서 수백개의 트랜지스터와 다른 전자장치를 포함하는 설계를 하게되는 경우는 흔하지 않는 것은 아니다. 이들 설계들은 그 복잡성때문에 이것이 전체로서 시뮬레이트되어지기 전에 작은 부품으로 설계되어지는 회로의 빈번한 시뮬레이션을 필요로 한다. 이것은 회로의 작은부분에서의 에러들이 쉽게 검출되기 때문에 필요하다. 한편, 전체회로가 시뮬레이트되어질때 다른 에러들을 매스크(mask)하는 복합에러들이 발생할 수 있다. 또한 최근 문제점으로 되고 있는 회로의 복잡성은 회로의 작은부분 에러들을 인식하는 것을 어렵게 만들고 있다.
종래기술에 있어서는, 일반적인 ECAD(전자 CAD)상의 전자회로를 설계하는 절차는 몇개의 별개의 스텝으로 행해진다. 회로의 개략적인 다이아그램은 회로소자와 그 상호연결상태의 디지탈 표시를 만드는 개략적 에디터의 사용과 상호유기적으로 관계를 맺는다. 그리고 ECAD 시스템의 사용자는 회로의 시뮬레이션모델에 적용되도록 실제 입력값을 표시하는 입력자극체(벡터들)의 리스트를 작성한다. 다음에 이 표시는 회로도 컴파일러에 의해 컴파일되고 시뮬레이션에 가장 적합한 형태로 번역된다. 다음에 이 새롭게 번역된 회로의 표시가 적용된 동일입력을 실제 회로의 응답과 유사한 수치적 출력을 만드는 시뮬레이터에 의해서 동작된다. 다음에 이 출력은 통상적으로 그래프형태로 사용자에게 나타난다. 시뮬레이션 결과를 고찰함으로써 사용자는 표시된 회로가 구성될때 바르게 수행될것인가를 판단할 수 있다. 그렇지 않으면, 사용자는 회로도 에디터를 이용하여 회로의 회로도를 재에디트, 재컴파일 재시뮬레이트할 수 있다. 이 프로세서는 사용자가 회로설계가 옳바르다고 만족할때까지 반복적으로 행해진다.
ECAD 시스템의 회로도 에디터는 일반적으로 그래프/문자 디스플레이장치(이하 디스플레이 스크린 이라 함)에 그래프로 디스플레이 되어지고 컴퓨터에 연결될 많은 회로소자로부터 사용자로 하여금 선택하게 할 수 있는 대화식 소프트웨어 도구이다. 이들 디스플레이된 소자들은 마우스, 트랙볼, 조이스틱, 그래픽 테블릭, 또는 디스플레이 스크린상의 좌표와 소프트웨어 도구로의 명령을 엔터하는데 이용되는 키이보드와 같은 지정도구인 위치입력장치를 경유한 컴퓨터와의 내부작용을 통하여 사용자에 의해서 디스플레이 스크린상에 그려진 와이어를 표시하는 라인에 의해서 상호 연결된다. 회로소자들과 그들을 상호연결하는 와이어들은 디스플레이 스크린상에서 전체적으로 또는 부분적으로 관찰되는 회로도 다이아그램을 형성한다. 회로도 다이아그램이 디스플레이 스크린상에 구성될때, 컴퓨터는 메모리 또는 마그네틱 디스크드라이브와 같은 대용량 기억장치인 기억매체에 이들 소자들을 표시한다. 그룹으로서 받아들어진 표시들은 회로도 에디터에 의해 해석된 표준화된 형태로 사용자에 의해서 기록된 회로도의 수치적 표시를 형성한다. 일반적으로, 이 형태는 회로도 정보의 엔트리와 변형을 위해서 최적화되어 있다.
흔히, 회로도 에디터는 계층적 설계를 제공하고, 그럼으로써 이미 작성되고 기억된 회로도는 다른 회로에 있는 매크로-레벨 구성요소로서 소환되고 관찰되고 이용되어질 수 있다. 그러한 매크로-레벨 구성요소들의 여러개가 하나의 고레벨 회로도 다이아그램에 포함될 수 있다. 회로도 에디터는 매크로-레벨 구성요소를 효과적으로 복사하는 데이터 구조를 작성한다. 고레벨 회로도는 또한 매크로-레벨 구성요소로써 고레벨 회로도 다이아그램들 등으로 짜넣을수 있다.
제 12 도는 일반화된 설계방법론(1210)을 나타내고 있다. 여기에 포함된 기술들은 어느 적절한 컴퓨터 시스템(도시되지 않음)에서도 운용될 수 있는 소프트웨어 블럭의 슈트(suite)의 용어로 되어 있음을 이해해야 한다.
설계자는 VHDL과 같은 고레벨 컴퓨터언어로 회로의 원하는 동작의 동작적 기술을 공식화함으로써 회로(또는 시스템)을 설계하기 시작한다. 이것이 원하는 동작을 기술하는 예시적 고레벨 코드를 보여주는 블럭(1212)로 나타나 있다.
다음에 설계자는 메모리와 레지스터들과 같은 미리 설계되어 있는 기능적 블럭들에 의하여 회로의 레지스터 트랜스퍼 레벨(RTL) 기술로써 설계를 재공식화 한다. 이것은 블럭(1214)로 나타내어 진다. 그 결과로서 얻어지는 RTL 기술은 이것이 원래의 동작적 기술과 확실히 같게하기 위하여 블럭(1216)으로 시뮬레이트된다. 그 점에서, 설계는 합성할 수 있는 부품(조합논리, 레지스터 및 플립플롭) 및 합성할 수 없는 부품(미리 설계되어진 블럭)으로 이루어진다.
다음에, 논리는 반복적으로 이용될 수 있는 통상의 용어를 발견함으로써 블럭(1218)에서 최소화되고 블럭(1210)에서 기술을 특수 테크놀러지(예:CMDS)로 맵(map)한다. 또한 합성할 수 없는 부품들은 블럭(1222)에서 컴파일된다.
전술한 스텝(1212) 내지 (1222)들을 이것이 종속적인 테크놀러지인 범위까지 스텝(1222)를 제외하고 모두 독립적인 테크놀러지들이다. 최소한의 합성할 수 있는 부품들의 설계가 게이트 레벨 네트리스트(1226)을 만들기 위해서 블럭(1224)에서 최적화되어 진다. 블럭(1218) 내지 (1222)는 전형적인 논리합성도구를 의미한다.
엄격히 말해서, RTL 기술이 만들어진 후의 스텝들만이 논리합성의 구성요소가되고, 동작적 기술을 RTL 기술로 재공식화 하는 그러한 상향식 접근방식은 원래의 동작적 기술의 목적으로 하는 많은 것을 무의미하게 하고 상실하게 하는 경향이 있을뿐만 아니라 노동력 집중화 및 에러발생가능성을 높게 한다.
다음에 기재된 본 발명에 따르면, 동작접합성은 동작적 기술과, 유효 게이트레벨 네트리스트를 고레벨 동작기술로부터 자동적으로 생산해내는 RTL 기술사이의 간격을 이어줄 것이다. 어떤 면에서는, 동작적(예, VHDL) 기술과 RTL 회로기술은 모두 그들의 게이트 레벨표시를 처리하지 않기 때문에 고레벨기술로 간주될 수 있다. 동작적 기술과 RTL 기술의 차이점은 주로 그들의 상세히 기술하는 구조의 양과, 할당 또는, 결과로서 일어나는 게이트-레벨 구현에 이용되어질 구조적 구성요소의 정의에 있다. 동작적 기술들은 특수 구조적 구성요소(예:메모리, 기능블럭 등)이 이용되어야 하는 것의 이슈를 어드레서하지 않는다. RTL 기술에 있어서, 구조적 구성요소들은 명백하게 식별되며, 이 기술과 그 결과로 일어나는 게이트-레벨 구현사이에는 직접적인 매핑이 있다.
동작적 기술과 RTL 기술을 합성하는 능력은 구조적 내용에 있어서 이 차이에 의해서 크게 영향을 받는다. RTL 합성(저레벨 합성)은 비교적 잘 연구되고 많이 구현된 기술이다. RTL 기술을 게이트 레벨구현에 합성시키는 능력은 잘 확립되어 있다.
본 발명은 구조적 내용이 거의 없는 또는 없는 동작적 기술을 상당한 구조적 내용이 있는 RTL 레벨기술로 매핑하기 위한 방법론을 개시하고 있다. 이것은 많은 양이지만 전부는 아닌 톱-다운설계 방법론이다.
엄격한 톱-다운 설계방법론에서 부족한 것은 설계되어지는 모듈(회로, 기능적 블럭등)의 저레벨 물리적 정보의 상세한 지식의 사용이다. 전형적으로 선택 및 모듈의 배치에 관한 결정은 동작적 합성이 완전하고 RTL 구조가 구현을 위해 선택될때까지 연기된다. 그 이유는 일반적으로 구조적 정보는 동작적레벨에서 이용될 수 없고 따라서 시스템이 영역과 같은 척도와 설계공간을 탐색하는 동안의 지연을 이용할 수 없기 때문이다. 레이아웃, 모듈크기 및 상호 연결과 같은 상세한 것들은 RTL 설계공간의 형상에 큰 효과를 미칠 수 있다.
추후설명에 의해서 명백한 바와 같이, 설계를 고레벨(동작적 기술)에서 아키텍쳐 블럭으로 분할하는 작업은 동작적 기술레벨에서 그러한 구조적 정보를 제공하기 위한 매개물을 창작하고, 그럼으로써 저레벨 물리적 인자들을 평가하는 능력을 첨가한다. 또한 분할작업은 설계자가 설계를 개선하기 위해서 연산자 레벨 병렬계산과 프로세서 레벨 동시발생과 같은 다른 수단을 찾는데에 도움을 준다.
(제 1 내지 8 도)
ASIC 설계의 내용에 기재된 본 발명의 실시예를 설명하면 다음과 같다.
(제 1 도)
제 1 도는 합성에 있어서 게이트 어레이와 표준셀들을 커버하는 ASIC 칩(110)을 단순화시킨 것이다. 일반적으로, ASIC칩은 도면에 도시된 여러가지의 모든 기능적 엔티티들 또는 몇개의 기능적 엔티티들로 이루어진다. 더구나 도면은 이들 블럭들의 합성/컴파일화 및 최적화를 위한 수단을 기재하고 있다. 칩의 I/O 버퍼 및 주변장치들은 도면에 기재되어 있지 않다. 비록 합성도구들이 I/O 버퍼들을 처리하는 것을 의미하는 것은 아니나, 최적화 환경에서 그들 타이밍기술은 칩의 핵심부품의 최적화에 유익할 수 있다. 전형적인 칩(110)은 다음의 주요한 기능블럭들을 포함하고 있다. 즉 메모리(112), 데이타통로(114), 메가셀 및 메가기능(116), 그리고 가산기와 디코더들과 같은 정규블럭(120)과 렌덤논리(112)를 포함하는 기능유닛(118) 등이다.
메모리블럭(112)는 효율적인 테크놀러지-종속빌딩블럭을 시용하는 메모리 컴파일러에 의해서 발생된다. 메모리 컴파일러의 출력은 원시 트랜지스터들의 네트리스트이다.
데이타 경로블럭(114)은 HDL(하드웨어 정의언어)로 동작적 기술을 제공함으로써 발생된다. 데이타 경로는 일반적인 목적의 합성프로그램 또는 전문화된 데이타 경로 컴파일러를 통하여 합성될 수 있다. 합성프로그램/컴파일러의 출력은 ASIC 매크로셀들을 사용하는 설계의 구조적 기술이다.
메가 셀 및 메가기능블록(116)은 최적실행을 위해서 이미 설계되어 있는 미리설계된 빌딩블럭 라이브러리들로부터 선택되어진다.
정규기능유닛(120)은 가산기, 디코더 및 다중화기와 같은 정규블럭들을 사용하여 발생된다. 이들 블럭들은 또한 필요하다면 최적화될 수 있다.
렌덤 논리블럭(122)들은 렌덤논리, 글루우(glue)논리 및 상태콘트롤러를 포함한다. 이들 유닛들의 기술은 부울방정식, 진리표, 데이타 플로우 및 HDL 기술로 제공된다. 칩의 이 부품들은 다른 부품의 둘레에 설계되어 진다. 이 기능유닛은 기능유닛들의 보다 작은 부분으로 분할되고 프로세서는 반복적으로 되풀이된다. 원자적 특징은 기능적으로 쉽게 입증할 수 있는 기능유닛들이다. 일반적인 목적의 합성/최적화도구가 이들 기능 유닛들을 만들고, 상세한 규제에 따른 유닛들과 메모리, 정규블럭들 및 데이타 경로들에 의해서 가해진 유닛들을 최적화 하는데 이용된다.
(제 2도 내지 제 5 도)
제 2 도 내지 제 5 도는 어떤 특별한 설계형태 또는 기술과 무관한 합성설계 방법론을 기재하고 있다. 이 방법론의 여러 스텝(블럭)들은 동그라미가 되어 있는 번호 1-18 에 의해서 표시되고 그것은 다음과 같다.
스텝 1 은 설계명세이다. 이것은 시스템(장치)명세로 구성되고 보조시스템소자의 기능적 명세, 타이밍명세 및 I/O 요구, 파워, 팩키지 및 인터페이스요구들을 포함할 수 있다.
스텝 2 는 설계기술이다. 이것은 설계와 모든 이의 보조 시스템 소자들의 기능적 기술이다. 이 기술은 VHDL 과 같은 고레벨 기술언어로 이상적으로 주어진다. 설계의 성격에 따라서, 설계는 완전히 동작적 레벨이 있을 수도 있고, 또는 RTL 기술과 혼합이 될 수도 있다.
스텝 3 은 분할작업이다. 설계의 동작적 기술이 주어지면, 분할작업(분할기)가 설계를 모든 합성, 분석 및 검색작업을 더 처리하기 쉽게하는 분리된 모듈로 분할한다. 그렇게 함에 있어서, 분할기는 설계를 최적으로 분할하기 위하여 패키징, I/O 용량 및 다른 종속되는 정보를 포함하는 테크놀러지 화일(file)(추후설명되어 있음)을 참고로 한다. 설계의 기능적인 분할 이외에도, 분할기는 설계자가(예를 들어, 영역과 속도에 의해서) 설계를 최적화시키는 최적 아키텍쳐를 선택하는 데에 도움을 줄수 있다(CAE 시스템의 스크린 디스플레이를 표시한 제 13 내지 15 도 참조).
스텝 4 는 모듈기술이다. 세 개의 모듈이 도시되어 있지만, 더 많은 모듈이 포함될 수 있다. 이것이 HDL(하드웨어 정의언어) 기술에 의한 분할된 설계의 RTL 기술이다. 각 모듈은 그 모듈의 정의구역에만 관련된 타이밍과 영역한계들(이들은 설계기술로부터 자동적으로 유도되지 않는다)의 세트와 동반한다.
스텝 5 는 구성이다. 구성은 분할의 반대로서 분할된 설계의 검사 및 검색을 용이하게 한다. 분할된 설계는 이 스텝에서 재구성되고, 이 스텝의 최종생성물은 전체설계의 RTL 기술이다.
스텝 6 은 기능검색(동작적)이다. 동작적 레벨에서의 검색이 2 단계에서 즉, 설계가 개발되는 과정과 분할스텝 후에 행해진다. 전자는 설계의 고레벨기술이 의도된 기능의 정확성에 대해서 검색되는 소스 코드 디버깅(source code debugging)이다. 후자는 분할작업 동안에 이루어진 아키텍쳐결정을 검색하고, 전체설계의 기능과 성능에 그들의 영향을 검사하는 것이다.
제 2 도에 도시된 스텝들에 대한 상기 설명에서, 여러가지 루프들이 형성된다는 사실은 알 수 있을 것이다. 고레벨루프는 설계레벨(스텝 2)를 디버그하기 위한 동작적 검색(스텝 6)으로 이루어져 있다. 저레벨루프는 분할된(스텝 3)설계와 구성된(스텝5)설계의 동작적 검색(스텝 6)으로 이루어져 있다. 분할하는 프로세서는 사용자 대화에 의해서 안내되며, 테크놀러지, 패키징, I/O 용량, 그리고 유사한 장치에 대한 경험을 바탕으로 개발된 제안된 장치에 관한 다른 정보와 같은 물리적 구현인자에 의해서 행해진다.
스텝 7 은 이것은 분할자에 의해서 생산되거나 설계자에 의해서 독립적으로 개발된 기능 엔티티의 기술이다. 이것은 다음 포멧 즉 HDL, 진리표, 방정식 또는 테트리스트 중 어느 하나에 바람직하게 주어진다. 이 예에서 사용된 바와 같이, 모듈은 3000 셀 보다 적은 복잡성을 갖는 기능블럭이다(이것은 I/O 패드를 갖는 칩이 아니다).
스텝 8 은 합성이다. 모듈기술(스텝 7)과 타켓트 테크놀러지 라이브러리가 주어지면, 설계는 타켓트 테크놀러지를 맵핑되어진다. 합성프로세서는 통상적으로 논리최적화의 몇개의 형태를 포함하고 있다. 이것이 모듈(장치)의 기능을 규정하는 논리표시를 처리하는 작업이다. 최소화는 중복을 제거하고 논리의 중간레벨(예; 부울표시의 재구성)을 첨가하거나 제거함으로써 행해진다.
스텝 9 는 구조적 기술이다. 이것은 합성도구에 의해서 만들어진 모듈의 게이트 레벨, 테크놀러지-종속적 기술이다. 이것은 통상적으로 장치가 자동적으로 물리적으로 창작될 수 있는 네트리스트의 형태로 주어진다.
스텝 10 은 기능검색(구조적)이다. 이것은 의도된 기능에 대한 모듈의 정확성을 검색하기 위하여 행해진다. 이것은 동작적 레벨(스텝 6)에서 기능검색이 실행되지 않았을 경우에만 요구된다. 합성도구에 의해서 발생된 회로는 주어진 모듈기술에(기능적으로) 따른다고 가정한다. 불일치의 경우에는 모듈시술은 톱 레벨, 즉 설계기술(스텝 2)에서 변형(디버그)되어질 필요가 있다. 이것은 설계와 모든 그 보조시스템 소자들의 완전함을 보존하기 위해서 필요하다.
스텝 11 은 타이밍/영역제약조건을 처리한다. 이들은 최적화 프로세서를 변경(customize)하는데 필요하다. 최적화는 통상적으로 영역과 속도(타이밍) 제약조건에 의해서 행해진다. 이것들은 도구가 개개 또는 집단의 게이트상에서 기본면적대(versus) 속도타협을 행하도록 지시하거나, 또는 드라이브 용량과 같은 다른 제한인자와 결합하여 포괄적인 영역과 속도 최적화를 행하도록 지시한다. 제약조건, 구성의 풍부한 세트는 중요한 설계최적화에 요구되어지고, 본 발명의 방법론에 제공된다. 타이밍 제약조건은 다음과 같은 것, 즉 최대상승/하강지연, 준비 및 유지검사, 클럭의 파장 및 네트당 최대트랜지션 시간들을 포함할 수 있다. 타이밍 제약조건은 또한 모듈의 입력에서의 시그날 휨, 모듈출력의 구동용량 등과 같은 경제조건들도 그러한 데이타가 이용가능할 때는 포함할 수 있다.
스텝 12 는 최적화이다. 설계 제약인자와 모듈의 구조적 기술이 주어지면, 최적화 프로세서는 그 영역 및 타이밍 특성이 명세된 제약조건에 따르도록 모듈을 수정하는 시도를 한다. 설계의 성격과 제약조건의 강도에 따라서, 몇개 또는 모든 최적화 목표가 달성될 것이다. 경계조건들을 이용할 수 없을 때는, 최적화는 모든 모듈의 최소화를 목표로하는 일반적인 목적이 될 수도 있다. 경계조건으로, 목적물이 모든 고레벨 모듈이 명세된 타이밍 요구조건에 맞도록 각 모듈을 최적화해야 한다.
스텝(블럭) 13 은 최적화 프로세서 후 모듈의 구조적 기술을 발생하는 것을 나타내고 있다.
스텝 14 는 타이밍 검색과 분석이다. 이것은 최적화 프로세서(스텝 12)의 효과를 검사하고 그 전역 영향(global impact)를 검사하는 프로세서이다. 정적타이밍 분석기와 게이트 레벨 시뮬레이터와 같은 도구가 이용된다. 최적화된 모듈(스텝 13)이 모든 타이밍과 영역 요구조건을 만족하지 않으면, 타협이 이 시점에서 이루어져야 한다. 그러면 제약조건은 이들 타협을 반영하기 위하여 변형되며, 최적화프로세서(스텝 12)는 반복되어 진다.
스텝 15 는 모듈의 최적화된 구조적 기술(스텝 13)으로부터 얻어진 고레벨 모듈을 나타내고 있다. 고레벨 모듈은 한 개 또는 그 이상의 서브-모듈로 이루어져 있다. 각각의 서브-모듈은 그 자체의 정의구역에서 최적화되어 있다. 고레벨 모듈은 서브-모듈들의 사이의 대화와 관계를 기술하고 있다. 계층적으로 적용하면, 타켓트 장치 그 자체가 고레벨 모듈로서 간주된다.
스텝 16 은 타이밍 시뮬레이션, 검색 및 분석이다. 이 단계에서는 최적화된 모듈들이 구성(조립)되어 있고(스텝 5 참조) 고레벨 모듈 또는 타켓트 장치의 의도된 기능을 구현한다. 좀더 정확한 분석을 위해서, 와이어지연을 평가하기 위해서 평면도 또는 배치와 루팅프로그램을 사용하는 것이 필요하다. 그리고 와이어지연은 시뮬레이션 전에 설계데이타 베이스로 역으로 주석첨가되어 진다. 모듈의 종합적인 타이밍 특성이 명세된 요구조건을 만족하지 않는다면, 서브-모듈들의 타이밍 제약조건들이 변경되고 최적화가 행해진다.
스텝 17 은 선택적인 지연 역 주석첨가(Delay Back Anmotation DBA) 이다. 인터-블럭 와이어 지연은 서브-모듈의 플로우-플래닝 이후에만 더 정확하게 평가될 수 있다. 더 정확한 블럭간, 블럭내부간 지연은 배치와 루팅단계 이후에 결정되어진다. 이들 도구들을 사용하여, 와이어지연들은 더 정확하게 평가될 수 있다. 지연들은 게이트 레벨 최적기에 의하여 사용되도록(스텝 12) 역 주석첨가되어질 수 있다.
스텝 18 은 전역 제약조건들을 나타내고 있다. 실행된 분석의 결과를 이용하여, 서브-모듈들의 타이밍/영역제약조건들을 반영하기 위하여 변형되어 진다. 그리고는 새로운 제약조건을 갖는 서브-모듈들이 다시 최적화되어 진다.
(제 6 도)
제 6 도는 예시적인 합성 및 최적화 도구의 이용과, 이들 도구와 설계컴파일러 사이의 설계데이타의 교환을 위한 추상화 레벨을 도시하고 있다. 각각의 도구는 예시적 ASIC 칩 600 의 한 개 또는 그 이상의 주요기능블럭의 합성 또는 컴파일을 어드레스 한다. 이들 도구의 이용과 설계컴파일러와의 대화는 특히 관심이 있는 것이다.
메모리 컴파일러(Mem Comp)(602)는 메모리 메가-셀들을 위한 고레벨 명세서를 받아들이고 시뮬레이션, 테스팅 및 레이아웃을 위하여 논리 및 레이아웃 화일들을 생산한다. 그 목적은 정확한 타이밍 기술을 갖는 설계컴파일러(최적기)(604)를 제공하고 메모리 블럭을 위한 용량정보를 구동하는 것이다. Mem Comp 은 고밀도 또는 저파워의 RAM 또는 ROM 블럭(606)들을 합성한다. 추후 명백하게 되는 바와 같이, 주위논리는 메모리 블럭과 관련하여 최적화된다. Mem Comp(602)에 의해 생성된 메모리 블럭은 설계컴파일러(604)에 의해 직접 판독될 수 없는 내부 매크로셀, 즉 원시적 트랜지스터의 네트리스트와 동일한 포멧으로 제공된다. 그러므로 두개의 가능한 중간스텝 중 한 스텝이 요구된다. 1) (도시되어있지 않음) Mem Comp 에 의해 발생된 데이타 시트는 메모리 블럭의 타이밍 블럭을 수동으로 추출하기 위하여 이용된다. 이것은 기본적으로 세트 로드, 세트 드라이브 및 세트 도착 제약조건들의 세트를 한정하고 그들을 최적화 프로세서의 시작단계에서 주위논리의 관련핀들과 연결하는 것을 포함한다. 2) 메모리 모델러(제 8 도 참조)는 시높시스(synopsys) 라이브러리언어(SLL; 엘 에스 아이 로직 코포레이션으로부터 입수가능)로 모델(603)을 발생하는데 이용된다. 메모리 모델러는 메모리 기술을 판독하고 메모리 블럭의 완전한 타이밍 기술을 발생하다. 이것은 모든 준비 및 유지값과 타이밍 아크와 I/O핀 특성을 포함한다. 이 작업은 합성라이브러리모델(SLM; 엘 에스 아이 로직 코포레이션으로부터 입수가능) 발생기의 것과 유사하다.
메가-셀과 메가-함수(608)은 합성 라이브러리에 있는 매크로-셀과 유사한 기본빌딩블럭으로서 취급되어진다. 양자는 일반적으로 최적성능을 위하여 사전에 개발되어지며 따라서 어떤 최적화도 이들 블럭들에 대해서 요구되지 않는다. 그것들은 주위블럭들이 최적화될 수 있도록 타이밍 정보를 제공하기 위하여 단순히 설계컴파일러(604)로 제공된다. 메가-셀들은 매크로-셀과 동일한 방법, 즉 시높시스(SLL) 라이브러리 포멧을 이용함으로써 모델화된다. 메가-함수들은 시높시스 데이타 베이스(SDB) 포멧에 있는 설계컴파일러로 포트되어진다.(네트리스트 배면(610)은 주요 설계표시 매개체로서 이용된다). 일반적으로, 메가-함수들은 업계표준함수들을 모델화하고, 그럼으로써 설계자에게 일반적이고 검증된 표준빌딩블럭들을 제공한다. 특정한 고도로 전문화된 사용자 한정 메가-함수들의 경우에는 설계컴파일러에서의 적절한 용량을 확실히 하는 것이 필요하다.
렌덤논리(612), 다시 말하면 전술한 도구 및 라이브러리들을 이용하여 합성되지 않는 나머지 모듈들은 속도 및 영역에 대한 설계를 최적화하는 일반적인 논리합성도구(614)에 의하여 합성된다. 이것은 방정식, 진리표, 네트리스트 및/ 또는 VHDL 포멧에 있는 계층적, 조합적 및 연속적인 설계기술을 받아들인다. 최적화 프로세서는 목표들을 명세함으로써 유도된다. 최적화 프로세서는 타이밍 제약조건으로서 나타난다. 최적화 프로세서는 타협평가를 만들고 명세된 제약조건들을 위한 설계의 가장 가능한 게이트 레벨 구현을 생산한다.
설계 컴파일러(604)는 합성과 제약조건이 드라이브된 최적화를 위한 환경을 제공하기 때문에, 이것은 종합적인 합성기/최적기로서 이용될 수 있다. 다른 도구들에 의해서 창작된 블럭들은 이들 블럭들로부터의 타이밍 정보가 주위논리를 합성하고 최적화하는데 이용될 수 있는 설계컴파일러로 설치될 수 있다. 예를들면, 드라이브 용량과 메모리 블럭의 출력의 오용을 알면, 글루우논리의 정확한 최적화가 가능하다.
일단 메모리 블럭들이 합성되고, 적절한 메가-셀과 메가-함수들이 선택되면, 설계의 나머지가 설계컴파일러에 의해서 합성될 수 있다. 그러면 최적화가 사용자가 한정한 제약조건들(사용자 인터페이스; 제 8 도 참조)와 존재하는 블럭들에 의해서 지시된 제약조건들에 따라서 행해진다. 이것은 반복적인 프로세서이다. 제약조건들은 원하는 타이밍 및 영역요구조건들이 얻어질 때까지 세분될 필요가 있다.
(제 7 도)
제 7 도는 합성설계 프레임워크를 도시하고 있다. 개시된 프레임워크의 목적은 합성 및 최적화 도구세트를 위한 단일화된 전위를 제공하고; 명세된 합성도구를 주요합성 및 최적화도구인 설계컴파일러와 통합시킴으로써 통합된 합성환경을 제공하고; 연속적이고 조합적인 설계의 제약조건이 드라이브된 게이트 레벨 최적화의 용량을 제공하고; 필요한 타이밍/영역타협평가를 더 정확한 와이어 지연에 근거하도록 하기 위해서 모듈러 설계환경(MDE; 추후기재되어 있음, 엘 에스 아이 로직 코오포레이션으로부터 입수가능) 으로부터 설계컴파일러로 와이어지연의 역 주석첨가를 제공하고; 설계컴파일러, 다른 합성도구 및 MDE 사이의 데이타 플로우를 조절하기 위하여 합성도구와 MDE 모듈 사이의 윈도우방식의 그래픽 인터페이스를 제공하고; VHDL 디버깅과 전위합성형식 VHDL 에 VHDL 예비합성 분할능력을 제공하는 것이다.
일반적으로, 제 7 도에 도시된 설계플레임워크는 전술한 설계방법론으로부터 당연히 얻어진다. 방법론은 다음의 중요한 스텝들을 포함하고 있다.
- 설계를 메모리 블럭들, 메가-함수들, 메가-셀들 및 렌덤논리로 분할하는 스텝.
- LSI의 칩 사이저(Chip sizer)(제 8 도 참조)와 같은 레이아웃 도구를 사용하여 영역 핀과 패드의 수 및 다른 인자들의 함수인, 요구되는 다이 싸이쯔를 얻는 스텝;
- 사용될 메가-셀과 메가-함수를 선택하고 설계컴파일러를 위하여 셀들을 특징지우는 스텝
- 메모리 블럭들을 발생하고 설계컴파일러를 위해서 그들을 특징지우는 스텝
- 렌덤로직을 보다 작은 기능유닛으로 분할하는 스텝
- 설계컴파일러를 이용하여 상향식방법으로, 즉 저레벨 기능유닛으로 시작하고; 기능검색도구 또는 시뮬레이터를 이용하여 블럭의 기능을 검색하고; 영역을 위한 설계 도는 몇개나 모든 선택된 경로의 타이밍을 위한 설계를 일반적 용어로 최적화하고; 고레벨 기능블럭들을 부과하고, 기능블럭이 현존하는 빌딩블럭(예, 메모리, 메가-셀, 메가-함수)와 인터페이스할 때 빌딩블럭에 부과된 타이밍/영역제약조건(702)에 따라 기능유닛(그리고 모든 또는 몇개의 그 저레벨유닛)들을 최적화하고; 이 스텝들을 모든 기능유닛들이 구조적기술(704)에 합성될 때까지 반복하여 나머지 블럭들을 합성하는 스텝 그 결과로서 얻는 구조적기술(704)는(타이밍/영역제약조건의) 구조적기술(708)로서 도시된 루프에 있는 설계컴파일러에 역 주석 첨가되어진다.
- 보다 큰 기능유닛에 대해서, 플로오 플래너(floor planner)(710)이 배치 및 보다 정확한 와이어 지연예측(712)을 위해서 이용되고, 이 정보를 갖고 플로오 플래너에 제공된 보다 정확한 블럭싸이즈를 이용하여 저레벨 기능유닛의 내부와이어 지연을 재평가하고, 이들 지연들을 설계컴파일러로 역 주석 첨가하여 보다 의미있는 내부타이밍 최적화를 제공하고, 그리고/또는 인터-블럭버스들과 와이어들의 와이어 지연을 이용하여 타이밍 최적화를 위한 적절한 경계제약조건들을 추출하는, 즉 제약조건구성을 통해서 인터-블럭지연을 명세하는 스텝, 그리고
-I/O 버퍼들의 타이밍 지연과 드라이브 능력들을 타이밍 제약조건들로 통합하는 스텝(I/O 버퍼들은 설계사이클에서 가능한한 빨리 선택되어야 한다.)
(제 8 도)
제 8 도는 본 발명의 방법론을 구현하기 위한 예시적인 도구들(이들 중 많은 것들은(개개유닛으로서) 상업적으로 이용할 수 있다)를 도시하는 설계프레임워크의 개략도이다. 여기서 본 발명의 방법론은 본 명세서에 기재된 것과 같은 많은 별개의 소프트웨어 도구를 증가시키고, 그렇지 않으면 단지 이들 도구들을 결합하는 것 만으로는 이용할 수 없는, 동작적 합성의 문맥에서 크게 증가된 기능성을 제공한다는 사실을 알아두는 것이 중요하다.
추후 공통설계환경(CD-Design Environment, CDE) 800으로 명명된 설계프레임워크는 두 부분, 즉 온라인 설계도구와 오프라인 설계도구로 나누어진다. 온라인 설계도구들은 설계프로세서 동안에 사용자에 의해서 직접 또는 간접적으로 이용되어지는 프로그램으로서 여러가지 설계목적을 처리하는데에 비교적 일반화 되어있다. 오프라인 설계도구들은 설계컴파일러를 위한 다양한 빌딩블럭들의 라이브러리와 모델들을 발생하는 프로그램으로서 매우 특수한 것이다.
CDE/SY로 호칭되는 온라인 도구들의 첫번째 그룹(802)은 공통설계환경의 동적구성부품의 요소가 되고 다음을 포함하고있다.
설계컴파일러 인터페이스(804)(두 부품으로 도시되어 있음)는 MDE와 설계컴파일러(604) 사이의 데이타 플로우와 대화를 제어한다. 이것은 사용자가 한 환경으로부터 다른 환경으로 설계의 프로세스를 따르고, 스크립트 쉘(script shell)과 명령라인을 경우하여 MDE 프로그램과 상호작용하는 것을 가능하게 한다.
설계컴파일러와의 상호작용은 디씨(dc)-쉘 스크립트와 제약조건 화일을 통하여 이루어진다.
그래픽 사용자 인터페이스(그래픽 UI)(806)은 설계자의 개재를 요구하지 않는 설계플로우의 그들 스텝들을 발췌하고; 합성프레임웨크에 의해 윤곽이 나타난 설계프로세서의 여러단계를 통하여 설계자를 도와주고 안내하고; 그리고 최적화를 위한 제약조건 화일의 구성에 있어서 설계자를 도와줌으로써, CDE 와 사용자 대화를 용이하게 한다.
블럭 레벨 지연 평가기(808)는 블럭안과 주위에 있는 버퍼들을 배치시킴으로써 최적기로 하여금 보정하게 하고 설계전반에 걸쳐 고파워 게이트를 사용하게 하고, 특히 작은기능블록에 적용될 수 있는 페시미스틱 와이어 지연을 갖는 최적화도구를 제공한다. 블럭 레벨 지연 평가기를 사용하는 이점은 설계의 예비배치 및 예비레이아웃단계에서, 합성 및 분석도구는 와이어 지연을 팬-아웃(fan-out)의 기능으로만 간주한다는 점이다. 이것은 비록 분석을 위해서는 좋은 평가가 될 수 있으나 최적화 프로세서에 대한 바람직하지 않은 부수적 효과를 갖고 있다. 보통, 본 방법론에서는 최적화가 몇천개의 게이트 보다 적은 기능블럭상에서 행해지나,(팬-아웃에 기초를 둔)대부분의 현존하는 와이어 지연 알고리즘은 훨씬 크고, 다이-싸이즈된 블록쪽으로 맞물린다. 그러므로 블럭레벨 지연 평가기는 시스템을 통하여 조정되어지는 블럭 싸이즈를 위한 와이어 지연의 더욱 이상적인 평가를 제공하고, 설계컴파일러에 의해서 이용될 적절한 테이블(와이어 로딩)을 제공한다.
메모리 모델러(810)은 Mem Comp(602)에 의해서 창작된 메모리 블럭의 네트리스트를 판독하고, 설계컴파일러에 의해서 이용될 타이밍 모델(SLL 에서)을 발생한다. 그 목적은 메모리 블럭에 관한 정확한 타이밍 정보를 갖는 설계컴파일러를 제공하는 것이다. 이것은 구동능력, 전기용량부하 그리고 메모리 I/O 의 준비 및 유지시간이 주위논리를 위한 몇개의 제약조건들을 자동적으로 한정함에 따라 최적화프로세서에 도움을 줄 것이다.
지연 역 주석첨가기(Delay Back Annotator, DBA)(812)는 플로오 플래닝단계 후에 동작되며 보다 정확한 와이어 지연을 최적화 데이타 베이스로 제공한다. DBA는 두 개의 별개의 목적을 위해서 이용된다. 즉, 1) 가장 늦은(그리고 가장 유효한) 지연값을 이용하면서, 재최적화되어질 블럭에 대한 와이어 지연을 역 주석 첨가하기 위하여, 그리고 2) 최적화되고 설계제약조건을 만족하는 블럭에 대하여 와이어 지연을 역 주석 첨가하고, 그럼으로써 주위블럭들이 보다 좋게 최적화될 수 있도록 블록의 정확한 모델링에 대한 가장 늦은 지연값을 제공하기 위해서 이용된다.
VHDL 분석기(814)는 소스코드(VHDL) 디버킹을 제공하고 VHDL 기술의 기능적검색에 도움을 준다. VHDL 분석기는 제 10 도와 제 11 도에서 좀 더 상세하게 논의되어 있다.
VHDL 예비합성분할기(816)은 동작적기술(VHDL 코드)를 모듈 및 서브모듈들의 RTL 기술로 분할된다. 분할작업동안에, 적절한 아키텍쳐결정들이 시간/영역분석에 기초가 되어진다.
CDE의 오프라인 부분은 SLL(시높시스 라이브러리 언어) 또는 SDB(시높시스 데이타 베이스) 포멧으로된 라이브러리(818)들의 집합이다. SLL은 셀 또는 모듈의 모델링을 위한 전용언어로서 합성 및 타이밍(정적)분석에 가장 적절하다. SDB(엘 에스아이 로직코퍼레이션으로부터 입수가능)은 설계 컴파일러의 데이타베이스로서 부울방정식, 진리표 및 네트리스트를 포함하는 다수의 포멧에 설계기술을 포함할 수 있다.
매크로-셀 모델발생기(820)은 MDE 라이브러리로부터 매크로셀들의 구조적 기술을 판독하고 SLL로 적절한 모델을 발생한다. 순차적 셀들의 동작은 모델발생기에 의해서 모델화 되어지고, 이어서 설계 컴파일러에 의해서 조정되어진다.
I/O 버퍼 모델발생기(822)는 CDE 환경에서 통상의 매크로셀로서 모델화되는 타이밍 및 드라이브 능력정보를 I/O 버퍼들상에 제공한다. 그들로부터 얻어진 데이타는 칩내부의 논리의 최적화를 위해서 이용된다. 최적기(설계 컴파일러 604)는 I/O 버퍼를 조정하는 것을 기대할 수 없다. 모델발생기는 n 셀(여기서 n은 모든 버퍼의 가능한 구성들의 숫자이다.)로서 모델화되는 구성할 수 있는 버퍼들을 취급할 수 있다.
메가-셀 모델발생기(824)는 목적들이 일반적으로 동일하다는 점에서 CDE의 온라인부분에 있는 메모리 모델러와 유사하다. 그러나, 메가-셀들이 정적이고 한 설계에서 다른 설계로 변화하지 않기 때문에 이 모델링은 합성메가-셀 라이브러리를 창작하기 위하여 미리 행해질 수 있다.
메가-기능지원(826)은 설계컴파일러에 메가-기능에 관한 타이밍정보를 제공한다. 이것은, 드라이브능력, 전기용량로드와 메가-기능의 경로지연이 주위논리에 대해서 몇 개의 제약조건을 한정하기 때문에, 최적화 프로세서에 도움을 준다. 메가-기능들은 사용자 견지로부터 보편 본질적으로 블랙박스이다. 그러므로, 설계컴파일러는 사용자가 메가-기능들을 관찰하고 변경하는 것을 방지하기 위하여 구성된다.
설계컴파일러의 여러가지 기능들이 블럭(604)에 도시되어 있고, (앞에서 논의된 동작적 및 구조적 검색을 위한) VHDL 시뮬레이터가(828)에 도시되어 있다.
LSI 로직의 모듈러 설계환경(830)내에 있는 상업적으로 이용가능한 실례가 되는(Chipsizer, MemComp, LCMP, LLINK, LVER, LDED, LCAP, LSIM, LBOND 및 LPACE)가 도시되어 있다. 일반적으로 이들 도구들은 칩(구조적) 레벨에서 디지탈 논리를 컴파일하고, 링크하고, 시뮬레이트하고 검색하는 프로그램세트를 구성되어 있다. 다른 상업적으로 이용가능한 프로그램들이 유사한 기능을 수행하기 위하여 이 레벨에서 이용될 수 있다.
(제 9 도)
제 9 도는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 방법을 쉽게 구현할 수 있도록 된, 본 발명의 방법론의 더 일반적인 배열을 도시하고 있다.
개념적인 레벨에서, 타겟트장치의 동작적인 기술(902)는 VHDL과 같은 고레벨 언어로 공식화되어 있다. 동작적 기술은 설계기술을 검색하기 위하여 테스트벡터(906)을 이용하여 VHDL 컴파일러 및 시뮬레이터(904)에서 컴파일되고 시뮬레이트되어진다. 동작적으로 검색된 설계는 설계분할기(908)에서 전술한 바와 같이 적절한 아키텍쳐블럭으로 분할된다. 분할은 임계치 싸이즈(영역) 제약조건들(즉, 플로오플래닝)과 임계치 타이밍(속도) 정보(즉, 역주석첨가)를 통합하면서, 타겟트장치의 물리적 구현에 임계링크(910)을 제공한다.
구조적 레벨에서, 분할된 설계는 구조적 및 비구조적논리(기능블럭들)을 공식화하는 논리합성도구(912)에 제공된다. 기능블럭에 관한 추가적인 정보는 라이브러리(914)로부터 얻어진다. 중요하게, 분할기(908)를 통하여 도입된 타이밍/영역제약조건들은 논리합성단계에서 내장된다. 논리합성기(912)의 출력은 테스트벡터(906)들과, 라이브러리(914)들에 포함된 블럭들에 미리 규정된 정보를 이용하여 컴파일되고 재시뮬레이트(918), (904)되어지는 VHDL과 같은 타켓트장치를 위한 네트리스트(916)이다. 필요하다면, 최신의 타이밍/영역제약조건이 분할기(908)를 통하여 역제공되고 타켓트장치는 원하는 목표들을 만족하기 위하여 (912)에서 재합성된다. 이 프로세서를 반복적으로 되풀이함으로써, 타켓트장치의 동작적 및 구조적 기술들이 설계기준들을 만족시키고 그리고/또는 수정하기 위하여 원만하게 조정될 수 있다.
개념적(동작적) 및 구조적 레벨에서, 타켓트장치의 설계는 독립적인 테크놀러지(실리콘)이다.
유효한, 검색된 네트리스트가 기술된 후에, 타켓트장치의 구조적 기술은 작업장치(922)를 만들기 위하여 LSI 로직의 MDE와 같은 적절한 실리콘 컴파일러(물리적 구현시스템) (920)에 제공된다. 이 단계에서, 요구되는 도구는 종속적인 테크놀러지(실리콘)이다.
(제 10 도와 제 11 도)
제 10 도와 제 11 도는 고레벨 하드웨어 기술언어(HDL)로 하드웨어기술을 시뮬레이트하기 위한 계층적 지식베이스 접근방식을 도시하고 있다. 이 접근방식에서, 지식베이스는 하드웨어기술의 각 기능블럭에 대응하게 구성된다. 기술에서 여러블럭들 사이의 계층적 관계는 이들 블럭들에 대응하는 지식 베이스에 매핑되어 진다. 그렇게 형성된 계층적 지식베이스는 하드웨어기술을 시뮬레이트하기 위해서 이용된다. HDL로 기술된 디지털회로(장치)의 시뮬레이션과 검색에의 전술한 접근방식과는 달리, 중간번역스텝이 요구되지 않는다.
종래에는, 인공지능기술이 과도한 논리시뮬레이션의 조합적 전개의 문제를 어드레스하기 위하여 디지탈 하드웨어의 형식적 검색과 혼성시뮬레이션에 이용되어 왔다. 한 접근방식에, 설계의 구조적 및 동작적 기술들은 우선 프롤로그(Prolog)에 있는 일차원의 절들로 번역된다. 프롤로그 데이타베이스에 가정된 이 절들의 세트는 평면 지식베이스로서 간주될 수 있다. 설계에서의 계층은 지식베이스에 있는 가정들 사이의 적절한 관계에 의하여 암시적으로 실시된다. 그리고 이론 검증기가 데이타 베이스에 의해서 나타난 설계를 형식적으로 검색하기 위하여 구조적 명세와 동작적 기술사이의 동등성을 확립하는데에 이용된다. 이 접근방식은 설계의 HDL 기술을 일차원절로 번역하고 종합적 계층적 시스템에 대해서 관리하는데 어려움이 있는 대용량의 지식베이스를 유지해야 하는 문제점을 갖고 있다. 다른 접근방식에서, 혼성 시뮬레이션이 디지탈 설계를 검색하는데 이용된다. 설계는 프롤로그와 같은 일차원 언어로 기능 모듈들이 상호 연결로서 기술된다. 설계는 저레벨이 부울게이트인 계층적인 것이다. 그리고 이것은 수치적 및 기호적 입력시그날 값으로 시뮬레이트 되어진다. 이것은 다시 종합적인 계층 설계에 대한 대규모의 프롤로그 기술을 유지해야 하는 결점을 갖고 있다.
본 발명의 방법론은 중간번역스텝을 통하지 않고, 설계의 프롤로그 기술을 유지할 필요가 없기 때문에 전술한 접근방식과 다르다. 일반적으로 본 발명의 방법론에는 3개의 스텝이 있다.
- 분석, 여기서는 입력기술이 구문론적이고 의미론적인 정확성을 위해서 분석되고, 파스트리(parsetree)가 형성된다. 파스트리에 있는 각각의 노드는 의미론적 규칙과 관련이 있다.
- 계층적 지식베이스의 구성, 여기서는 파스트리와 관련된 의미론적 규칙들이 기술들의 각 블럭에 대한 지식베이스를 구성하는데 이용되고, 지식베이스들 사이의 계층적 관계들은 의미론적 규칙으로부터 추출된다. 지식베이스들은 단순한 가정들과 소스기술에 존재하는 기능과 절차들을 계산하기 위한 방법들을 포함하고 있다. 또한 여타의 설계기구를 위한 기초를 만든다.
- 시뮬레이션, 여기서는 지식베이스에 포함된 이들의 단순한 가정과 계산방법들을 이용하여, 출력 신호치들이 주어진 세트의 입력신호치들에 대해서 계산되어진다. 입력 자극체는 기호적 표시 또는 수치적 값일 수 있다.
제 10 도는 설계기술들을 시뮬레이트함에 있어서의 스텝을 도시하고 있다. 형식적, 고레벨언어로 쓰여진 설계기술(1002)로 시작하여, 기술은 예를 들면 파스트리(1006)을 형성하는 특정절 번역문법(DCTG)를 이용하여 분석(1004) 된다. 파스트리에서는, 의미론적 규칙이 각각의 노드에 부가된다. 형식적(고레벨) 언어에 대한 각각의 구문론적 규칙은 한개 또는 그 이상의 규칙들과 연결된다. 바람직하게는, 두개의 의미론적 규칙들이 각 구문론적 규칙들과 연결되는데, 한개의 의미론적 규칙은 기술의 의미론적 기술을 검색하는데 이용되고, 다른 한개의 의미론적 규칙은 기술을 시뮬레이트하는데 이용된다. 각각의 규칙은 한개의 의미론적 부분과 한개의 구문론적 부분을 갖는다. 의미론적 부분은 두개의 속성(attributes) 즉 검사의미론과 실행(execute)를 갖고 있다. 의미론적 규칙들은 이들 속성이 어떻게 계산되고 어떻게 검색되는지를 명세한다. 이 기술(技術)을 이용하면, 기술(記述)을 분석하고 실행하는 중간번역스텝들을 거치는 것이 필요없게 된다. 물론, 분석 및 실행의 방법들은 언어의 구문론적 규칙들과 관련하여 상세히 기재된다.
주어진 기술의 성공적인 분석(parse) 후에는, 형성된 파스트리에 있는 각각의 노드가 언어의 DCTG 규칙에 명세된 특성들과 연결된다. 한개의 노드에 부가된 속성의 계산은 노드와 연결된 서브-트리의 순환 트랜스버설일 수 있다. 의미론적 분석을 위해서, 한개의 의미론적 속성이 언어의 어느 의미론이 규칙에 위반되고 에러메세지(제 11 도의 1012 참조)가 발생되는지를 검색한다. 이들 위반들은 동일범위내의 목적들의 재정의와 절차에 대한 부정확한 인자형태를 포함한다. 오직 정확한 기술만이 계층적 지식베이스(1008)를 분석한다. 따라서 기술의 분석은 이것이 HDL 기술의 구문론과 의미론에 부합되고, 유효한 계층적 지식베이스의 구성으로 안내하는 것을 확실하게 한다.
설게기술에서의 계층은 두종류의 것일수 있다. 하나는 설계엔티티(구성소자, 프로세서, 기능, 아키텍쳐, 구성)가 몇개의 다른 설계 엔티티들로 구성된 구조적 설계기술에 의하여 부가된다. 다른 하나는 언어의 유효범위와 가시성 규칙들과 관련한다. 지식베이스(1008)가 형성된다. 즉 입력 HDL 기술의 구문론적이고 의미론적인 분석후에 각 설계 엔티티에 대한 하나의 지식베이스가 형성된다. 각 지식베이스는 모든 정적선언들과, 신호의 부족한 값, 변수들, 설계 엔티티에 대응하는 시뮬레이션에 필요한 데이타구조에 상응하는 유닛절들의 세트를 갖는다. 지식베이스들 사이의 계층적 관계는 HDL의 DCTG 규칙을 이용하여 설계기술을 분석하는 동안에 자동적으로 추출된다. 이것은 하드웨어설계기술에서의 계층의 직접 매핑과 대응한다. 계층적 지식베이스에 대한 필요성은 또한 분석되어지는 형식적 언어의 유효범위와 가시성 때문에 발생한다. 유효범위와 가시성 규칙들은 또한 설계 엔티티 지식베이스들 사이의 관계들을 결정하는데 이용된다. 계층적 지식베이스(1008)은 설계의 시뮬레이트할 수 있는 모델을 작성한다. (앞에서 논의된) 합성 및 분할도구와 같은 다른 설계도구들도 또한 설계정보를 추출하기 위하여 지식베이스들을 이용한다.
종래에는, 번역과 컴파일을 함에 있어서, 형식적 언어의 규칙들의 유효범위와 가시성 때문에 모든 식별자에 한개의 명칭이 부여되었다. 그러나, 시뮬레이션의 경우에는 기술(description)이 직접적으로 실행되어질때, 이 기술(technique)이 가능한것이 아니다.
지식베이스에 포함된 기술은 하드웨어설계의 추상화의 여러가지 레벨등, 즉 동작적, RTL 및 게이트레벨기술들을 포함할 수 있다. 시뮬레이션은 모든 기능들의 실행, 절차 및 드라이버들상에 처리과정을 발생하기 위한 프로세서들을 포함한다. 드라이버는 신호지정문에 나타나는 모든 신호와 연결되고 일련의 처리과정들 (각 처리과정은 값/시간의 쌍이다)에 의해서 표현된다. 처리과정이 발행하고, 일정한 제약조건들에 따라 그것들을 정열하고, 일정시간에서 그것들을 스케줄링하는 것은 시뮬레이션에 있어서 매우 중요하다. 시뮬레이션을 위한 입력 테드트벡터들은 입력신호가 나타나는 설계엔티티에 대응하는 지식베이스에 나타난다. 테스트벡터들은 기호적 표시이거나 수치적 값들이다. DCTG 규칙들이 다시 지식베이스에 저장된 시뮬레이션 데이타 구조들에 적용되고, 두번째 의미론적 속성 실행이 계산된다. 이 의미론적 규칙들의 세트는 시뮬레이션엔진을 구성한다. 이것은 산술식의 값계산, 부울방정식, 기호표시, 시간표시, 연속 및 병행문장의 실행, 그리고 처리과정의 발생을 포함한다. 계산(computation)은 계층적 관계와 관련하여 언어의 시뮬레이션 의미론에 의하여 정렬된다. 모든 드라이버에 대한 처리과정이 발생한 후, 그들은 시간, 동기성 및 동시성과 관련하여 정렬된다. 시뮬레이션 시간이 진행됨에 따라, 드라이버들은 관련된 신호들의 값을 갱신한다. 이것은 일정한 프로세서들을 불러일으키는 것을 유발하는 신호를 발생하는 사건을 유발하고, 그로인하여 더 많은 사건을 일으킨다. 다음 스텝은 신호들에 대한 사건들을 스케쥴링하는 것이다. 이것은 정렬하는 사건들을 고찰하고, 스케쥴링된 사건의 시간, 신호 및 값을 발생하는 스케쥴러에 의해서 취급된다. 마지막 스텝은 적절한 시간에 값을 신호에 지정하는 것이다.
소스기술에서의 다중신호 지정때문에 다중 드라이버가 있는 일이 생길 수 있다. 동일 신호에 대해서는 다중 드라이버들이 동일시간에 값을 지정하려고 할 것이다. 그러한 경우는 신호와 관련된 해상기능에 의해서 해상되고, 해상된 값이 신호에 지정된다. 이것이 시뮬레이션결과(1010)에서, 설계기술에 존재하는 모든 신호의 최종적인 해상된 값들을 주는 단위절들로 연결된다.
제 11 도는 구성된 지식베이스에 있는 객체들 사이의 정확한 관계를 규정하고, 동작적으로 명세된 설계들의 정확한 구조적 표현으로 수렴하고, 그리고 좋은 스타일의 VHDL 코드를 정확한 구조적 표현으로 연결되도록 하기 위한, 전술한 규칙들 형태의 개략도이다.
프롤로그는 기재된 방법론을 구현하기 위한 유용한 도구를 제공하고 있다. DCTG와 같은 프롤로그는 의미론적 규칙들을 하드웨어기술언더(예:VHDL)의 구문론적 규칙들과 관련시키는데 유용하고, 프롤로그에 포함된 추론엔진은 지식베이스에 있는 여러가지 엔티티들 사이의 상호관계의 추출을 취급하는 것을 용이하게 한다.
전술한 계층적 지식베이스는 대규모 하드웨어설계의 계층적 성격을 유지하는데 도움을 주고 대규모 하드웨어설계들을 중간번역 스텝들을 거치지 않고서도 직접 시뮬레이트되는 것을 가능하게 한다. 지식베이스는 앞서 언급된 도구와 같은 다른 도구들에 의해서도 이용될 수 있다.
제 10 도와 제 11 도와 관련하여 기재된 분석기/해석기의 실행가능한 리스트가 여기에 첨부되었다.
(제 13 도 내지 제 15 도)
제 13 도 내지 제 15 도는 그들이 사용자에게 제공될, 본 발명의 방법론의 대표적 스크린 디스플레이다. 주로 제 13 도의 디스플레이가 논의되어진다.
제 13 도의 디스플레이의 왼쪽하부 윈도우에 사용자에 의해서 창작된 카운터의 VHDL 기술이 도시되어 있다. (while × a loop ...) 그 때 사용자는 오퍼랜드(변수)를 제공함으로써 기술을 확실하고 정확하게 하기 위해서, 고레벨로 코드를 시뮬레이트 한다.
그러면 시스템은 카운터를 실현하는데 요구되는 동작의 배열과 기능블럭들의 병렬 또는 직렬구성과 관련되는 데이타 플로우을 생산하고, 그 결과를 그래픽 그리고/또는 문자 형식으로 사용자에게 제공한다. 이 예에서는, 7개의 설계선택들이 왼쪽 상부 윈도우에 디스플레이 되어 있다. (설계: [U] ...) 표시를 위해서 사용자에 의해 선택된 이들 설계선택들 중 하나가 상부 오른쪽에(상호 연결된 원형 및 사각형 원선) 디스플레이되어 있다. 오른쪽 하부 윈도우에는 설계를 구현하는데 요구되어지고 독립적 테크놀러지인 추정된 영역이 디스플레이되어 있다. 또한 상부 왼쪽 윈도우에는 여러개의 설계선택들에 의해서 소모되는 기능유닛(레지스터, 먹스)들의 추정된 수가 디스플레이 되어 있다. 이것은 모두 설계공간을 탐색하는 것과 관련이 있는 것으로서, 사용자에게 싸이즈, 속도, 성능, 테크놀러지 및 파워의 항으로 선정된 설계를 선택하기 위한 감도분석을 수행하는 것을 가능하게 한다.(제 15 도의 상부 왼쪽 윈도우에는 8.1, 11.1등이 표시된 특이한 기능블럭에 대한 싸이즈 추정값이 도시되어 있다.) 상기의 모든것은 아키텍쳐레벨에서 대화함으로써 사용자가 지적타협을 실행가능한 설계로 인도하게 하는 것이 가능하게 하기 위해서 어느 합성보다도 먼저 행해진다.
분할함으로써, 정확한 타이밍 추정값이 전술한 바와 같이 추출된다(스크린 디스플레이에는 도시되어 있지 않음)
[요약]
방법론은 복합디지탈시스템의 구현에 대하여 기재되어 있다. 본 방법론의 방법은
a) 구현이 요구되는 디지탈 하드웨어의 명세 및 기술의 의미론적 포착을 위한 메카니즘;
b) 양호하게 표준화된 의미론을 갖는 VHDL 또는 VHDL 중간포멧)과 같은 명세언어로 구체화된 하드웨어기술;
c) b)의 의미론적 형식적포착을 위해서 전개된 명확한 절문법(Extended Definite Claccse Grammar ; EDCG)와 같은 적절한 소프트웨어 언어의 이용;
d) 의미론의 직접실행과 a)와 b)에 기재된 하드웨어의 동작의 직접실행;
e) 프롤로그와 그 술어논리 형식론과 같은 번역스텝없이 a)의 기술에 포함된 의도의 실행(디지탈 하드웨어의 지식표시는 술어논리에 의해 제공된 내장, EDCG의 의미론적 기술, 프롤로그와 VHDL 언어에 의해서 얻어진다):
f) 타협 디스플레이에 대한 하드웨어기능블럭의 최적화된 버전을 생산하고, 하드웨어자원(싸이즈), 속도 및 파워를 추정하기 위해 예측하고, 설계표현의 한 레벨로부터 다른 레벨로 매핑하기 위한 시스템 레벨분할;
g) (의미론, 구조, 동작, 논리 및 기능의) 분할된 하드웨어의 여러 레벨들 사이의 동형구조;
h) a) 내지 f)에 포함된 의미론과 의도로부터 직접 저레벨 구조적 논리기술로의 하드웨어 합성;
i) a) 내재 f)의 타이밍 목표들 사이의 클로저를 위한 방법론;
j) 그리고 a), d), e) 및 f)에 대한 지식을 디스플레이 하기 위한 방법;
을 포함하고 있다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 지금까지의 설명에 기초하여 본 발명을 용이하게 구현할 수 있을 것이다. 전술한 실시예는 예시적이고, 널리 알려진 논리합성도구에 의해서 설명된 것으로서, 특히 설계되어지는 장치의 RTL 기술로부터 구조적 표시와 물리적 구현을 추출하기 위한 것이다. 다른 구현들을 이용될 수 있는 특이한 테크놀러지와 논리합성도구에 의해서 충분히 드라이브될 것이다.

Claims (23)

  1. 회로 또는 장치의 고레벨의 동작지향성 기술로부터 구조적 기술을 작성하고 정당화하는 방법으로서
    고레벨 타이밍 목표들을 포함하는 회로 또는 장치의 원하는 동작에 대한 설계를 고레벨의 동작 지향성 언어로 명세하는 스텝;
    원하는 동작이 이루어질 때까지 동작적 레벨에서 설계를 반복적으로 시뮬레이트하고 변경하는것;
    설계를 아키텍쳐블럭의 수로 분할하는 스텝;
    아키텍쳐선택들을 고레벨 타이밍 목표들을 만족하는 것들로 제약하는 스텝; 그리고
    여러 아키텍쳐블럭들을 논리합성 프로그램으로 전달하고, 그럼으로써 설계의 네트리스트 또는 게이트 레벨 기술을 제공하는 스텝으로 이루어진 것을 특징으로 하는 방법
  2. 제 1 항에 있어서, 극히 정규적인 구조들 또는 잘 알려진 기능들이 특수한 논리합성프로그램들(예, 메모리 또는 기능컴파일러들)로 전달되고;
    랜덤 또는 비구조적인 논리를 갖는 아키텍쳐블럭들이 보다 일반적인 논리합성프로그램들로 전달되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 추가적으로 게이트 레벨 설계기술을 시뮬레이트하는 것; 그리고 회로구현을 의도된데로 동작하고 타이밍 목표들을 얻는 것을 확실하게 하기 위해서 게이트 레벨 시뮬레이션의 결과를 동작적 시뮬레이션으로부터 얻은 결과와 비교하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서, 추가적으로 전기용량 부하와 같은 다른 물리적 설계제한들이 초과되지 않는 것을 확실하게 하기 위해서 설계를 역 주석 첨가하는 것을 특징으로 하는 방법.
  5. 제 3 항에 있어서, 추가적으로 설계의 물리적 구현을 작성하기 위하여 설계의 네트리스트 또는 게이트 레벨 기술을 시스템에 입력하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 추가적으로 레지스터 트랜스퍼 레벨에서 설계를 기술하는, 동작적 기술과 네트리스트 기술 사이의 중간스텝을 포함하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 동작적 기술에서의 의도와 의미가 네트리스트 또는 게이트 레벨 기술에 유지되는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서, 추가적으로, 분할스텝에서, 설계를 고레벨 타이밍 목표들을 만족하는 가능한 아키텍쳐 선택들로 제한하기 위해서 알려진 칩 플로오 플랜 인자들로부터 추출된 고레벨 타이밍 정보를 제공하고, 그럼으로써 프로세서가 특수한 물리적 구체화로 수렴하는 것을 가능하게 하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서, 추가적으로, 타이밍 데이타를 플로오 플랜 인자들로부터 추출하는 것과; 그리고 이 데이타를 고레벨 동작적 기술의 I/O 포트들로 연결하는 것을 포함하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어, 장치의 고레벨 동작적 기술이 VHDL로 설명되어 있는 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서, 추가적으로, 한 개 또는 그 이상의 의미론적 규칙들을 동작적 기술을 뒷받침하는 각각의 구문론적 규칙들로 부가함으로써 장치의 동작적 기술을 해석하는 것을 포함하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서, 해석이 구문 속성을 이용함으로써 달성되는 것을 특징으로 하는 방법.
  13. 시스템의 동작적 기술로부터 시스템의 구조적 기술을 추출하는 방법으로서,
    a) 고레벨의 동작 지향성 언어로 시스템에 대한 동작적설계를 명세하는 스텝;
    b) 시스템의 설계의 기능기술을 고레벨언어로 기술하는 스텝;
    c) 기능기술을 아키텍쳐블록의 수로 분할하는 스텝;
    d) 설계에 대한 아키텍쳐선택들을 원하는 동작을 만족하는 선택들로 제약하는 스텝; 그리고
    e) 아키텍쳐상으로 제약된 설계를 시스템의 구조적 기술로 매핑하는 스텝
    으로 이루어진 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서, 추가적으로, 스텝(b)와 (c) 사이에서, 의도된 기능의 정확성을 위해서 고레벨언어로 검색하는 것과, 필요하다면 반복적으로 시뮬레이트하고 변경하는 것을 포함하는 것을 특징으로 하는 방법.
  15. 제 13 항에 있어서, 추가적으로, 스텝(d)와 (e) 사이에서, 시스템의 구조적 기술로서 아키텍쳐 선택들을 작성하는 것과; 그리고
    분할과정에서 만들어진 아키텍쳐 결정들을 검색하는 것을 포함하는 것을 특징으로 하는 방버.
  16. 제 13 항에 있어서, 추가적, 스텝(e) 이후에 시스템의 구조적 기술의 정확성을 검색하는 것을 포함하는 것을 특징으로 하는 방법.
  17. 동작지향성기술로부터 장치의 구조적 기술을 작성하고 정당화하는 방법으로서,
    고레벨의 동작지향성언어로 장치의 원하는 동작에 대한 동작적기술을 명세하는 스텝;
    원하는 동작이 얻어질때까지 동작적기술을 반복적으로 시뮬레이트하고 변경하는 스텝;
    동작적기술을 아키텍쳐 블럭들로 분할하는 스텝;
    저레벨기술로 아키텍쳐 블록들의 구조적 기술을 합성하는 스텝; 그리고
    구조적기술의 기능을 시뮬레이트하는 스텝으로 이루어진 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서, 장치가 회로 또는 시스템인 것을 특징으로 하는 방법.
  19. 제 17 항에 있어서, 장치가 설계 엔티티인 것과; 그리고 설계엔티티가 전체시스템; 서브-시스템; 판, 칩, 매크로-셀, 논리게이트, 또는 그 사이의 추상화의 어느 레벨인 것을 특징으로 하는 방법.
  20. 제 17 항에 있어서, 추가적으로, 구조적 기술을 구현하는 것을 포함하는 것을 특징으로 하는 방법.
  21. 디지탈장치의 설계를 분할하는 방법으로서, 설계를 기능블럭들로 분할하는 스텝;
    분할된 설계를 일반적으로 레이아웃하는 스텝;
    기능적 블럭들의 일부분에 대해서 현존하는 설계들을 선택하는 스텝;
    기능적 블럭들의 다른 부분을 발생하는 스텝;
    기능적 블럭들의 다른 부분을 보다 작은 기능적 유닛으로 분할하는 스텝;
    기능적 블럭들의 나머지 부분을 합성하는 스텝;
    기능적 블럭들과 유닛들의 구조적 기술을 발생한는 스텝;
    기능적 블럭들과 유닛들 사이의 지연들을 예측하는 스텝으로 이루어진 것을 특징으로 하는 방법.
  22. 제 21 항에 있어서, 추가적으로 타이밍 최적화를 제공하기 위하여 지연들을 역주석첨가하는 것을 포함하는 방법.
  23. 제 21 항에 있어서, 추가적으로 타이밍 최적화를 위한 경계제약조건을 추출하기 위하여 지연들을 이용하는 것을 포함하는 것을 특징으로 하는 방법.
KR1019910005520A 1990-04-06 1991-04-06 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론 KR100186869B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/507,201 US5222030A (en) 1990-04-06 1990-04-06 Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof
US507,201 1990-04-06

Publications (2)

Publication Number Publication Date
KR910018923A KR910018923A (ko) 1991-11-30
KR100186869B1 true KR100186869B1 (ko) 1999-05-15

Family

ID=24017652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910005520A KR100186869B1 (ko) 1990-04-06 1991-04-06 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론

Country Status (4)

Country Link
US (3) US5222030A (ko)
EP (1) EP0463301A3 (ko)
JP (1) JP3118592B2 (ko)
KR (1) KR100186869B1 (ko)

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377123A (en) * 1992-06-08 1994-12-27 Hyman; Edward Programmable logic device
US5572708A (en) * 1989-02-28 1996-11-05 Nec Corporation Hardware simulator capable of dealing with a description of a functional level
US5598344A (en) * 1990-04-06 1997-01-28 Lsi Logic Corporation Method and system for creating, validating, and scaling structural description of electronic device
US5870308A (en) * 1990-04-06 1999-02-09 Lsi Logic Corporation Method and system for creating and validating low-level description of electronic design
US5553002A (en) * 1990-04-06 1996-09-03 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface
US5572436A (en) * 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design
US5222030A (en) * 1990-04-06 1993-06-22 Lsi Logic Corporation Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof
US5623418A (en) * 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5572437A (en) * 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5541849A (en) * 1990-04-06 1996-07-30 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5867399A (en) * 1990-04-06 1999-02-02 Lsi Logic Corporation System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US5544066A (en) * 1990-04-06 1996-08-06 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of low-level design constraints
US5544067A (en) * 1990-04-06 1996-08-06 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
JPH04216175A (ja) * 1990-12-17 1992-08-06 Mitsubishi Electric Corp 半導体集積回路のモジュールセル生成装置
US5530841A (en) * 1990-12-21 1996-06-25 Synopsys, Inc. Method for converting a hardware independent user description of a logic circuit into hardware components
US5471398A (en) * 1991-07-01 1995-11-28 Texas Instruments Incorporated MTOL software tool for converting an RTL behavioral model into layout information comprising bounding boxes and an associated interconnect netlist
JP2760682B2 (ja) * 1991-09-30 1998-06-04 株式会社東芝 ハードウェアの設計支援システム
US5491640A (en) * 1992-05-01 1996-02-13 Vlsi Technology, Inc. Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication
US5526517A (en) * 1992-05-15 1996-06-11 Lsi Logic Corporation Concurrently operating design tools in an electronic computer aided design system
US5692233A (en) * 1992-05-28 1997-11-25 Financial Engineering Associates, Inc. Integrated system and method for analyzing derivative securities
JPH07501906A (ja) * 1992-06-02 1995-02-23 アジレント・テクノロジーズ・インク マルチレベル相互接続技術のためのコンピュータ支援設計方法及び装置
US5532934A (en) * 1992-07-17 1996-07-02 Lsi Logic Corporation Floorplanning technique using multi-partitioning based on a partition cost factor for non-square shaped partitions
DE4227809A1 (de) * 1992-08-21 1994-02-24 Siemens Ag Verfahren zur Erzeugung einer aus Schaltkreisen bestehenden Schaltung mit Hilfe eines Rechners
JP2739013B2 (ja) * 1992-09-01 1998-04-08 三菱電機株式会社 論理合成装置
US5671415A (en) * 1992-12-07 1997-09-23 The Dow Chemical Company System and method for facilitating software development
US5416719A (en) * 1992-12-17 1995-05-16 Vlsi Technology, Inc. Computerized generation of truth tables for sequential and combinatorial cells
WO1994015311A1 (en) * 1992-12-28 1994-07-07 Xilinx, Inc. Method for entering state flow diagrams using schematic editor programs
US5617327A (en) * 1993-07-30 1997-04-01 Xilinx, Inc. Method for entering state flow diagrams using schematic editor programs
US5455775A (en) * 1993-01-25 1995-10-03 International Business Machines Corporation Computer design system for mapping a logical hierarchy into a physical hierarchy
US5915115A (en) * 1993-02-11 1999-06-22 Talati; Kirit K. Control system and method for direct execution of software application information models without code generation
US5903470A (en) * 1993-02-17 1999-05-11 Matsushita Electric Industrial Co., Ltd. Method and apparatus for automatically designing logic circuit, and multiplier
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
JP2500433B2 (ja) * 1993-04-07 1996-05-29 日本電気株式会社 論理回路の遅延時間検証装置
US5535223A (en) * 1993-05-28 1996-07-09 Sun Microsystems, Inc. Method and apparatus for the verification and testing of electrical circuits
US5581473A (en) * 1993-06-30 1996-12-03 Sun Microsystems, Inc. Method and apparatus for managing timing requirement specifications and confirmations and generating timing models and constraints for a VLSI circuit
US5487018A (en) * 1993-08-13 1996-01-23 Vlsi Technology, Inc. Electronic design automation apparatus and method utilizing a physical information database
US5461573A (en) * 1993-09-20 1995-10-24 Nec Usa, Inc. VLSI circuits designed for testability and methods for producing them
CA2126265A1 (en) * 1993-09-27 1995-03-28 Michael Robert Cantone System for synthesizing field programmable gate array implementations from high level circuit descriptions
US5548539A (en) * 1993-11-05 1996-08-20 Analogy, Inc. Analysis mechanism for system performance simulator
EP0654745A3 (en) * 1993-11-18 1997-03-05 At & T Corp Graphic display system for routing and distributing circuits during layout.
JP2758817B2 (ja) * 1993-12-13 1998-05-28 日本電気株式会社 論理回路実現性判定システム
US5517432A (en) * 1994-01-31 1996-05-14 Sony Corporation Of Japan Finite state machine transition analyzer
JP3182036B2 (ja) * 1994-02-16 2001-07-03 松下電器産業株式会社 論理合成方法及び論理合成装置
US6044211A (en) * 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5493508A (en) * 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems
DE69520706T2 (de) 1994-06-03 2001-08-02 Hyundai Electronics America Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter
US5619621A (en) * 1994-07-15 1997-04-08 Storage Technology Corporation Diagnostic expert system for hierarchically decomposed knowledge domains
US5864165A (en) * 1994-11-02 1999-01-26 Lsi Logic Corporation Triangular semiconductor NAND gate
US6407434B1 (en) 1994-11-02 2002-06-18 Lsi Logic Corporation Hexagonal architecture
US6097073A (en) * 1994-11-02 2000-08-01 Lsi Logic Corporation Triangular semiconductor or gate
US5808330A (en) * 1994-11-02 1998-09-15 Lsi Logic Corporation Polydirectional non-orthoginal three layer interconnect architecture
US5777360A (en) * 1994-11-02 1998-07-07 Lsi Logic Corporation Hexagonal field programmable gate array architecture
US5822214A (en) * 1994-11-02 1998-10-13 Lsi Logic Corporation CAD for hexagonal architecture
US5789770A (en) * 1994-11-02 1998-08-04 Lsi Logic Corporation Hexagonal architecture with triangular shaped cells
US5811863A (en) * 1994-11-02 1998-09-22 Lsi Logic Corporation Transistors having dynamically adjustable characteristics
US5834821A (en) * 1994-11-02 1998-11-10 Lsi Logic Corporation Triangular semiconductor "AND" gate device
US5742086A (en) * 1994-11-02 1998-04-21 Lsi Logic Corporation Hexagonal DRAM array
US5801422A (en) * 1994-11-02 1998-09-01 Lsi Logic Corporation Hexagonal SRAM architecture
US5872380A (en) * 1994-11-02 1999-02-16 Lsi Logic Corporation Hexagonal sense cell architecture
US5973376A (en) * 1994-11-02 1999-10-26 Lsi Logic Corporation Architecture having diamond shaped or parallelogram shaped cells
US5889329A (en) * 1994-11-02 1999-03-30 Lsi Logic Corporation Tri-directional interconnect architecture for SRAM
US5689432A (en) * 1995-01-17 1997-11-18 Motorola, Inc. Integrated circuit design and manufacturing method and an apparatus for designing an integrated circuit in accordance with the method
US5619418A (en) * 1995-02-16 1997-04-08 Motorola, Inc. Logic gate size optimization process for an integrated circuit whereby circuit speed is improved while circuit area is optimized
US6345378B1 (en) * 1995-03-23 2002-02-05 Lsi Logic Corporation Synthesis shell generation and use in ASIC design
JP3351651B2 (ja) * 1995-04-07 2002-12-03 富士通株式会社 会話型回路設計装置
US5724504A (en) * 1995-06-01 1998-03-03 International Business Machines Corporation Method for measuring architectural test coverage for design verification and building conformal test
US6053948A (en) * 1995-06-07 2000-04-25 Synopsys, Inc. Method and apparatus using a memory model
US5727187A (en) * 1995-08-31 1998-03-10 Unisys Corporation Method of using logical names in post-synthesis electronic design automation systems
US5862361A (en) * 1995-09-07 1999-01-19 C.A.E. Plus, Inc. Sliced synchronous simulation engine for high speed simulation of integrated circuit behavior
US5784593A (en) * 1995-09-29 1998-07-21 Synopsys, Inc. Simulator including process levelization
US5809283A (en) * 1995-09-29 1998-09-15 Synopsys, Inc. Simulator for simulating systems including mixed triggers
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
US5808896A (en) 1996-06-10 1998-09-15 Micron Technology, Inc. Method and system for creating a netlist allowing current measurement through a sub-circuit
US5875115A (en) 1996-08-06 1999-02-23 Micron Technology, Inc. System and method for scoping global nets in a flat netlist
US5901064A (en) * 1996-08-06 1999-05-04 Micron Technology, Inc. System and method for scoping global nets in a hierarchical netlist
US6151568A (en) * 1996-09-13 2000-11-21 Sente, Inc. Power estimation software system
US6014510A (en) * 1996-11-27 2000-01-11 International Business Machines Corporation Method for performing timing analysis of a clock circuit
US6185723B1 (en) 1996-11-27 2001-02-06 International Business Machines Corporation Method for performing timing analysis of a clock-shaping circuit
US5930148A (en) * 1996-12-16 1999-07-27 International Business Machines Corporation Method and system for verifying a digital circuit design including dynamic circuit cells that utilize diverse circuit techniques
JPH10189746A (ja) * 1996-12-27 1998-07-21 Oki Electric Ind Co Ltd Lsi論理回路の配線レイアウト方法
US5946475A (en) * 1997-01-21 1999-08-31 International Business Machines Corporation Method for performing transistor-level static timing analysis of a logic circuit
US5883814A (en) * 1997-03-13 1999-03-16 International Business Machines Corporation System-on-chip layout compilation
US6557157B1 (en) * 1997-04-10 2003-04-29 Boethel Andreas Frank Method for designing complex digital and integrated circuits as well as a circuit structure
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US6009249A (en) * 1997-06-13 1999-12-28 Micron Technology, Inc. Automated load determination for partitioned simulation
US6135647A (en) * 1997-10-23 2000-10-24 Lsi Logic Corporation System and method for representing a system level RTL design using HDL independent objects and translation to synthesizable RTL code
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
US6099580A (en) * 1998-02-11 2000-08-08 Monterey Design Systems, Inc. Method for providing performance-driven logic optimization in an integrated circuit layout design
US6292931B1 (en) 1998-02-20 2001-09-18 Lsi Logic Corporation RTL analysis tool
US6289498B1 (en) * 1998-02-20 2001-09-11 Lsi Logic Corporation VDHL/Verilog expertise and gate synthesis automation system
US6836877B1 (en) * 1998-02-20 2004-12-28 Lsi Logic Corporation Automatic synthesis script generation for synopsys design compiler
US6378123B1 (en) * 1998-02-20 2002-04-23 Lsi Logic Corporation Method of handling macro components in circuit design synthesis
US6421818B1 (en) * 1998-02-20 2002-07-16 Lsi Logic Corporation Efficient top-down characterization method
US6321295B1 (en) 1998-03-19 2001-11-20 Insilicon Corporation System and method for selective transfer of application data between storage devices of a computer system through utilization of dynamic memory allocation
US6185518B1 (en) * 1998-03-23 2001-02-06 Sun Microsystems, Inc. Method and system for logic design constraint generation
US6917909B1 (en) * 1998-05-18 2005-07-12 Lev A. Markov Facilitating guidance provision for an architectural exploration based design creation process
US6305006B1 (en) * 1998-05-18 2001-10-16 Mentor Graphics Corporation Generating candidate architectures for an architectural exploration based electronic design creation process
US6314552B1 (en) 1998-05-18 2001-11-06 Lev A. Markov Electronic design creation through architectural exploration
US8543372B1 (en) 1998-05-18 2013-09-24 Dennis S. Fernandez System design rights management
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
US6240376B1 (en) * 1998-07-24 2001-05-29 Mentor Graphics Corporation Method and apparatus for gate-level simulation of synthesized register transfer level designs with source-level debugging
GB2348970B (en) * 1998-12-29 2003-10-22 Sgs Thomson Microelectronics Maintenance of a system model
WO2000049496A1 (en) * 1999-02-15 2000-08-24 Koninklijke Philips Electronics N.V. Data processor with a configurable functional unit and method using such a data processor
US6577992B1 (en) 1999-05-07 2003-06-10 Nassda Corporation Transistor level circuit simulator using hierarchical data
US6519754B1 (en) * 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US6516453B1 (en) * 1999-05-26 2003-02-04 Get2Chip Method for timing analysis during automatic scheduling of operations in the high-level synthesis of digital systems
US6425109B1 (en) 1999-07-23 2002-07-23 International Business Machines Corporation High level automatic core configuration
US6993740B1 (en) * 2000-04-03 2006-01-31 International Business Machines Corporation Methods and arrangements for automatically interconnecting cores in systems-on-chip
EP1179790A1 (en) * 2000-08-08 2002-02-13 Stratus Research and Development Limited Electronic circuit design
JP3420195B2 (ja) * 2000-09-26 2003-06-23 エヌイーシーマイクロシステム株式会社 クロック配線の設計方法
WO2002033597A1 (fr) * 2000-10-18 2002-04-25 Advantest Corporation Appareil et procede de support de conception d'un dispositif electronique, procede de fabrication d'un tel dispositif, et programme correspondant
US6557153B1 (en) * 2000-11-15 2003-04-29 Reshape, Inc. Method and system for implementing a user interface for performing physical design operations on an integrated circuit netlist
JP4015807B2 (ja) * 2000-11-28 2007-11-28 Necエレクトロニクス株式会社 タイミングドリブンレイアウト手法
US7302670B2 (en) * 2000-12-21 2007-11-27 Bryan Darrell Bowyer Interactive interface resource allocation in a behavioral synthesis tool
US6591399B1 (en) * 2000-12-28 2003-07-08 Nortel Networks Limited Technique for facilitating circuitry design
DE10118470A1 (de) * 2001-04-12 2002-10-24 Siemens Ag Objektbearbeitungssystem mit einem Objektmodell
US6910199B2 (en) * 2001-04-23 2005-06-21 Telairity Semiconductor, Inc. Circuit group design methodologies
JP4683762B2 (ja) * 2001-05-10 2011-05-18 ルネサスエレクトロニクス株式会社 半導体装置設計方法、半導体装置設計用プログラム、半導体装置設計装置
JP3953756B2 (ja) * 2001-07-12 2007-08-08 富士通株式会社 タイミングバジェット設計方法
US6564365B1 (en) * 2001-08-03 2003-05-13 Hewlett-Packard Development Company, L.P. Method of simultaneously displaying schematic and timing data
US7006961B2 (en) * 2001-08-13 2006-02-28 The Boeing Company Marker argumentation for an integrated circuit design tool and file structure
US6633182B2 (en) 2001-09-05 2003-10-14 Carnegie Mellon University Programmable gate array based on configurable metal interconnect vias
US6999910B2 (en) * 2001-11-20 2006-02-14 Lsi Logic Corporation Method and apparatus for implementing a metamethodology
WO2003063949A2 (en) * 2002-02-01 2003-08-07 The Cleveland Clinic Foundation Adjustable simulation device and method of using same
US7143023B2 (en) * 2002-03-01 2006-11-28 Signal Integrity Software, Inc. System and method of describing signal transfers and using same to automate the simulation and analysis of a circuit or system design
AU2003224667A1 (en) * 2002-03-08 2003-09-22 Mentor Graphics Corporation Array transformation in a behavioral synthesis tool
US6906978B2 (en) * 2002-03-19 2005-06-14 Intel Corporation Flexible integrated memory
US6993733B2 (en) * 2002-04-09 2006-01-31 Atrenta, Inc. Apparatus and method for handling of multi-level circuit design data
US6898767B2 (en) * 2002-05-09 2005-05-24 Lsi Logic Corporation Method and apparatus for custom design in a standard cell design environment
US7024636B2 (en) * 2002-11-20 2006-04-04 Lsi Logic Corporation Chip management system
US7337100B1 (en) * 2003-06-12 2008-02-26 Altera Corporation Physical resynthesis of a logic design
US20050114818A1 (en) * 2003-11-21 2005-05-26 Lsi Logic Corporation Chip design command processor
KR101145972B1 (ko) * 2004-06-23 2012-05-22 시옵티컬 인코포레이티드 모놀리식 실리콘 기반 광전자 회로의 설계, 시뮬레이션, 및검증에 대한 집적 접근
US7735050B2 (en) 2006-02-09 2010-06-08 Henry Yu Managing and controlling the use of hardware resources on integrated circuits
JP5114877B2 (ja) 2006-06-27 2013-01-09 富士通株式会社 設計データ作成方法、設計データ作成装置および設計データ作成プログラム
US7587688B1 (en) * 2006-08-24 2009-09-08 Altera Corporation User-directed timing-driven synthesis
US8326592B2 (en) * 2007-12-21 2012-12-04 Cadence Design Systems, Inc. Method and system for verifying electronic designs having software components
US20090210289A1 (en) * 2008-02-20 2009-08-20 Microsoft Corporation Pre-Linguistic Product Evaluation Techniques
US8898618B2 (en) * 2009-03-26 2014-11-25 Altera Corporation Interactive simplification of schematic diagram of integrated circuit design
US8241209B2 (en) * 2009-06-05 2012-08-14 Ethicon Endo-Surgery, Inc. Active seal components
US8225269B2 (en) * 2009-10-30 2012-07-17 Synopsys, Inc. Technique for generating an analysis equation
US8484588B2 (en) * 2010-07-13 2013-07-09 Algo to Chip Corporation System, architecture and micro-architecture (SAMA) representation of an integrated circuit
US8527257B2 (en) * 2011-07-01 2013-09-03 Fujitsu Limited Transition-based macro-models for analog simulation
US8903698B2 (en) 2012-05-15 2014-12-02 Fujitsu Limited Generating behavioral models for analog circuits
US9269273B1 (en) * 2012-07-30 2016-02-23 Weongozi Inc. Systems, methods and computer program products for building a database associating n-grams with cognitive motivation orientations
US8863058B2 (en) 2012-09-24 2014-10-14 Atrenta, Inc. Characterization based buffering and sizing for system performance optimization
US8875087B1 (en) * 2012-09-30 2014-10-28 Cadence Design Systems, Inc. Method and system for automated script generation for EDA tools
US20140100837A1 (en) * 2012-10-08 2014-04-10 Stefan Heinen Integration verification system
US10346573B1 (en) * 2015-09-30 2019-07-09 Cadence Design Systems, Inc. Method and system for performing incremental post layout simulation with layout edits
CN114444419B (zh) * 2022-04-11 2022-12-13 奇捷科技(深圳)有限公司 一种芯片新版本电路的生成方法、设备和存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
UST940020I4 (en) * 1974-04-17 1975-11-04 Automatic circuit generation process and apparatus
UST940008I4 (en) * 1974-05-17 1975-11-04 Automated logic mapping system
US4353117A (en) * 1979-12-28 1982-10-05 Chevron Research Company Method of diagnosing errors off-line in pipe specification files of a computer-aided graphics system
US4587625A (en) * 1983-07-05 1986-05-06 Motorola Inc. Processor for simulating digital structures
EP0138535A3 (en) * 1983-10-13 1987-01-28 British Telecommunications Plc Visual display logic simulation system
US4813013A (en) * 1984-03-01 1989-03-14 The Cadware Group, Ltd. Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons
US4703435A (en) * 1984-07-16 1987-10-27 International Business Machines Corporation Logic Synthesizer
US4635208A (en) * 1985-01-18 1987-01-06 Hewlett-Packard Company Computer-aided design of systems
US4697241A (en) * 1985-03-01 1987-09-29 Simulog, Inc. Hardware logic simulator
JPH0638266B2 (ja) * 1985-03-18 1994-05-18 株式会社日立製作所 設計支援方法及びその装置
JPH0679319B2 (ja) * 1985-04-10 1994-10-05 株式会社日立製作所 配置更新方法
JPS62159278A (ja) * 1986-01-08 1987-07-15 Hitachi Ltd 自動論理設計システム
US4831543A (en) * 1986-02-21 1989-05-16 Harris Semiconductor (Patents) Inc. Hierarchical net list derivation system
US5034899A (en) * 1986-07-07 1991-07-23 Bbc Brown Boveri Ag Software tool for automatically generating a functional-diagram graphic
EP0271596B1 (en) * 1986-12-17 1995-05-17 International Business Machines Corporation VLSI-chip design and manufacturing process
US4827427A (en) * 1987-03-05 1989-05-02 Hyduke Stanley M Instantaneous incremental compiler for producing logic circuit designs
US4908772A (en) * 1987-03-30 1990-03-13 Bell Telephone Laboratories Integrated circuits with component placement by rectilinear partitioning
US4918614A (en) * 1987-06-02 1990-04-17 Lsi Logic Corporation Hierarchical floorplanner
US5146583A (en) * 1987-09-25 1992-09-08 Matsushita Electric Industrial Co., Ltd. Logic design system for creating circuit configuration by generating parse tree from hardware description language and optimizing text level redundancy thereof
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4922432A (en) * 1988-01-13 1990-05-01 International Chip Corporation Knowledge based method and apparatus for designing integrated circuits using functional specifications
US5005136A (en) * 1988-02-16 1991-04-02 U.S. Philips Corporation Silicon-compiler method and arrangement
US4970664A (en) * 1988-06-10 1990-11-13 Kaiser Richard R Critical path analyzer with path context window
US4965741A (en) * 1988-10-17 1990-10-23 Ncr Corporation Method for providing an improved human user interface to a knowledge based system
US4967367A (en) * 1988-11-21 1990-10-30 Vlsi Technology, Inc. Synthetic netlist system and method
JPH0797378B2 (ja) * 1989-02-21 1995-10-18 日本電気株式会社 回路図発生方式
US5111413A (en) * 1989-03-24 1992-05-05 Vantage Analysis Systems, Inc. Computer-aided engineering
US5164911A (en) * 1989-12-15 1992-11-17 Hewlett-Packard Company Schematic capture method having different model couplers for model types for changing the definition of the schematic based upon model type selection
US5084824A (en) * 1990-03-29 1992-01-28 National Semiconductor Corporation Simulation model generation from a physical data base of a combinatorial circuit
US5299137A (en) * 1990-04-05 1994-03-29 Vlsi Technology, Inc. Behavioral synthesis of circuits including high impedance buffers
US5222030A (en) * 1990-04-06 1993-06-22 Lsi Logic Corporation Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof
US5258919A (en) * 1990-06-28 1993-11-02 National Semiconductor Corporation Structured logic design method using figures of merit and a flowchart methodology
US5388196A (en) * 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database

Also Published As

Publication number Publication date
EP0463301A3 (en) 1994-06-22
US5880971A (en) 1999-03-09
US5526277A (en) 1996-06-11
EP0463301A2 (en) 1992-01-02
US5222030A (en) 1993-06-22
JPH04288680A (ja) 1992-10-13
JP3118592B2 (ja) 2000-12-18
KR910018923A (ko) 1991-11-30

Similar Documents

Publication Publication Date Title
KR100186869B1 (ko) 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론
US5870308A (en) Method and system for creating and validating low-level description of electronic design
US5541849A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5553002A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface
US5572436A (en) Method and system for creating and validating low level description of electronic design
US5557531A (en) Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US5598344A (en) Method and system for creating, validating, and scaling structural description of electronic device
US5544066A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of low-level design constraints
US5933356A (en) Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5493508A (en) Specification and design of complex digital systems
US6470482B1 (en) Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US5555201A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US5867399A (en) System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
US5623418A (en) System and method for creating and validating structural description of electronic system
US6289498B1 (en) VDHL/Verilog expertise and gate synthesis automation system
US6295636B1 (en) RTL analysis for improved logic synthesis
US6421818B1 (en) Efficient top-down characterization method
US6205572B1 (en) Buffering tree analysis in mapped design
US6173435B1 (en) Internal clock handling in synthesis script
Brodersen Anatomy of a silicon compiler
US7788625B1 (en) Method and apparatus for precharacterizing systems for use in system level design of integrated circuits
US6192504B1 (en) Methods and systems for functionally describing a digital hardware design and for converting a functional specification of same into a netlist
US6289491B1 (en) Netlist analysis tool by degree of conformity
Newton et al. Computer-aided design for VLSI circuits
De Micheli Performance-oriented synthesis of large-scale domino CMOS circuits

Legal Events

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

Payment date: 20101221

Year of fee payment: 13

EXPY Expiration of term