KR0148405B1 - 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템 및 그 변환 방법 - Google Patents

필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템 및 그 변환 방법

Info

Publication number
KR0148405B1
KR0148405B1 KR1019940040739A KR19940040739A KR0148405B1 KR 0148405 B1 KR0148405 B1 KR 0148405B1 KR 1019940040739 A KR1019940040739 A KR 1019940040739A KR 19940040739 A KR19940040739 A KR 19940040739A KR 0148405 B1 KR0148405 B1 KR 0148405B1
Authority
KR
South Korea
Prior art keywords
mplc
implementation
substrate
clb
soft
Prior art date
Application number
KR1019940040739A
Other languages
English (en)
Other versions
KR950020224A (ko
Inventor
폴 포웰 게리
Original Assignee
엘리 웨이스
에이티 앤드 티 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘리 웨이스, 에이티 앤드 티 코포레이션 filed Critical 엘리 웨이스
Publication of KR950020224A publication Critical patent/KR950020224A/ko
Application granted granted Critical
Publication of KR0148405B1 publication Critical patent/KR0148405B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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/39Circuit design at the physical level

Landscapes

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

Abstract

본 발명의 방법 및 시스템에서는, FPGA 구현의 구성가능 논리 블럭, 신호 루팅 네트워크 및, 클럭 분포 트리가 마스크 프로그래머블 논리셀(MPLC) 기판에서 변환 처리가 완료된 이후에도 보존된다. MPLC 구현의 네트워크 레벨에서 MPLC 기판상에 대응하는 구조의 물리적 위치를 강제화함으로써, FPGA 구현중에 존재하는 관련 신호 및 클럭 지연이 MPLC 구현에서도 실질상 유지되고, 따라서 FPGA 구현과 MPLC 구현간에 기능적 등가가 보장된다.

Description

필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템 및 그 변환 방법
제1a 및 1b도는, 함께, 종래의 FPGA 소자를 사용하여 디지탈 논리 설계를 구현하는 방법에 있어서, 수행되는 단계를 도시하는 고레벨 흐름도.
제2도는 전형적인 FPGA 네트리스트의 단일 CLB 기재에 대한 XNF 스테이트먼트 세트.
제3도는 종래 기술을 사용하여 FPGA 구현을 MPGA 구현으로 변환하는 과정중에 수행되는 단계를 도시하는 고레벨 흐름도.
제4도는 제3도에서 설명된 종래 기술을 사용하여 FPGA 구현의 논리셀을 기능상 등가인 MPGA 구현의 논리셀로 매핑하는 공지된 과정을 나타내는 구성도.
제5도는 본 발명의 프로그램된 기구(machinery)의 성분을 나타내는 시스템 블럭도.
제6도는 프로그래머블 상호접속 스위치를 통해 상호접속된 입력 및 출력 인터페이스 블럭과 구성가능 논리 블럭을 도시하는, 전형적인 FPGA 소자의 구성도.
제7도는 제6도에 도시된 FPGA 소자에 대한(논리셀) 성분 위치 맵의 구성도.
제8도는 특정 디지탈 논리 설계의 FPGA 구현에 대한 FPGA 네트리스트의 요소를 도시하는 구성도.
제8a도는 전형적인 FPGA 네트리스트의 파일명 기재에 대한 XNF 스테이트먼트 세트.
제8b도는 전형적인 FPGA 네트리스트의 단일 CLB 기재에 대한 XNF 스테이트먼트 세트.
제8c도는 전형적인 FPGA 네트리스트의 단일 IOB 기재에 대한 XNF 스테이트먼트 세트.
제8d도는 전형적인 FPGA 네트리스트의 클럭 구동기 기재에 대한 XNF 스테이트먼트 세트.
제8e도는 본 발명의 예시적 실시예의 FPGA, MPGA 및 MPSC의 성분 리스트.
제9도는 금속단계까지 선처리된 MPGA 기판의 기하학적 평면도.
제10도는 특정 디지탈 논리 설계에 대한 FPGA 구현의 FPGA 네트리스트로부터 수정된 MPGA 네트리스트 기재를 산출하는 과정을 도시하는 구성도.
제11a도는 전형적인 MPGA 네트리스트의 파일명 기재에 대한 LSL 스테이트먼트 세트.
제11b도는 전형적인 MPGA 네트리스트의 단일 소프트-CLB 기재에 대한 LSL 스테이트먼트 세트.
제11c도는 전형적인 MPGA 네트리스트의 소프트-CLB 접속성 기재에 대한 LSL 스테이트먼트 세트.
제11d도는 전형적인 MPGA 네트리스트의 소프트-IOB 접속성 기재에 대한 LSL 스테이트먼트 세트.
제11e도는 전형적인 MPGA 네트리스트의 A-클럭 분포 트리 기재에 대한 LSL 스테이트먼트 세트.
제11f도는 전형적인 MPGA 네트리스트의 G-클럭 분포 트리 기재에 대한 LSL 스테이트먼트 세트.
제11g도는 전형적인 MPGA 네트리스트의 글로벌 리세트 분포 트리 기재에 대한 LSL 스테이트먼트 세트.
제11h도는 전형적인 MPGA 네트리스트의 CLB 로드 기재에 대한 LSL 스테이트먼트 세트.
제12도는 본 발명의 방법을 사용하여 FPGA 구현을 MPGA 구현으로 매핑하는 과정을 도시하는 구성도.
제13a 및 13b도는, 함께, 본 발명의 방법을 사용하여 FPGA 구현을 MPGA 구현으로 변환하는 과정에서 수행되는 단계를 도시하는 고레벨 흐름도.
* 도면의 주요부분에 대한 부호의 설명
2 : 워크스테이션 3 : 사진석판 마스크 생산 시스템
7 : MPGA 기판 10 : 중앙 처리 장치
11 : 기억장치 12 : RAM
13 : 데이타 기억 메모리 14 : 표시장치
15 : 문서 입력 소자 16 : 지정 및 선택 소자
17 : 인터페이스
[발명의 분야]
본 발명은 크게는 필드 프로그래머블 논리셀 구현(field-programmable logic cell implementations)을 마스크 프로그래머블 논리 셀 구현(mask-programmable logic cell implementations)으로 변환하는 방법 및 장치에 관한 것이다. 더 구체적으로, 본 발명은 필드 프로그래머블 게이트 어레이(FPGA : field-programmable gate array) 구현을 마스크 프로그래머블 게이트 어레이(MPGA : mask-programmable gate array) 구현으로 또는 마스크 프로그래머블 표준 셀(MPSC : mask-programmable standard cell) 구현으로 변환하는 개선된 방법 및 장치에 관한 것이다.
[종래 기술의 간단한 설명]
집적 회로(IC) 칩과 같은 전자 소자들은 현재 예컨대, 제조업, 산업, 과학, 국방, 오락 및 교육을 포함하여 인간의 노력이 필요한 다양한 분야에 사용된다. 실제로, 그런 소자들의 목적은 그들의 단자(즉, 핀)에 제공된 신호에 따라 다양한 기능을 수행하는 것이다.
설계의 측면에서, 각 소자는, 자신이 수행하는 함수, 즉, 입력 신호를 출력 신호에 관련시키는 것(즉, 매핑)에 의해 특징화된다. 디지탈 전자형 소자의 경우에, 입력 및 출력 신호는 이산(즉, 이진)값 또는 변수가 되어야 하고, 그 소자의 디지탈 입력과 출력 신호사이에 수행될 수 있는 매핑(즉, 함수)의 개수는 소자가 도달할 가능성이 있는 상태 및 소자가 겪게 될 상태 천이의 개수에 의해 제한된다. 소자의 디지탈 입력과 출력 변수 사이에 수행되는 다양한 매핑은 부울 대수(Boolean algebra)를 사용하여 보편적으로 설명되고, 종종 이런 매핑은 부울 함수로 언급된다. 부울 함수가 임의의 특정 디지탈 전자 설계로 물리적으로 구현 즉 실현되는 방식은 기본 부울 함수를 수행할 수 있는 논리 게이트와 같은 더 단순한 성분의 사용을 포함해야 한다. 보통, 결과 논리 회로는 카르노 맵(Karnaugh map), 진리표등의 종래의 대수 단순환 방법을 사용하므로써 단순화된다. 따라서, 그런 다수의 논리 게이트의 입력 및 출력을 조합하고 상호접속함으로써, 물리적으로 임의의 특정 디지탈 논리 설계가 실현될 수 있다.
일반적으로, 특정 디지탈 논리 설계를 구현하는데 사용되는 기초 기술은 디지탈 논리 설계의 입출력 함수를 실현하기 위한 조합 및 상호 접속용으로 사용될 논리 게이트의 형태를 결정한다. 따라서, 이론적으로는 특정 부울 표현의 세트에 의해 특징화되는 특정 디지탈 논리 설계를 구현하는 방법은 무수히 많다. 물론, 대부분의 경우에서 그 목적은 최소 개수의 논리 게이트를 사용하여 설계 함수를 실현하는 구현을 발견하는 것이다.
특정 디지탈 논리 설계의 완성에 있어서, 이용가능한 기술을 사용하여 디지탈 논리 설계를 물리적으로 구현하는 것이 필요하다. 최근의 필드 프로그래머블 게이트 어레이(FPGA) 소자는 위험성이 낮은 원형화(prototyping) 및 부피가 작은 생산 응용물을 초래한다는 점에서 많은 사람을 만족시켰다.
구조적으로, 각 필드 프로그래머블 게이트 어레이 소자는, 칩 패키지내에 포함된 실리콘 기판상에 실현된 다수의 기본 성분, 즉 : 칩 패키지 상의 핀 ; 기본 논리 동작을 수행하는 구성가능 논리 블럭(CLB : configurable logic blocks)의 어레이 ; 칩 패키지 상의 핀을 특정 CLB와 인터페이싱하는 입출력 인터페이스 블럭(IOB : input/output interface block)의 세트 및 ; CLB와 IOB간의 신호 루팅 기능을 수행하는 프로그래머블 상호접속 스위칭 게이트를 포함한다.
통상, 각 CLB 및 IOB는 그들의 입력과 출력사이에서 정의된 원하는 논리 함수를 실현하도록 선택적으로 구성될 수 있는 조합 순서 논리를 갖는다. 또한 각 CLB 및 IOB는 구현될 특정 논리 함수를 선택하는 역할을 하는 구성 프로그램을 저장하는 관련 랜덤 액세스 메모리(RAM)를 갖는다. 마찬가지로, 각 스위칭 게이트도 CLB 및 IOB의 입력과 출력 포트간의 신호 루팅을 달성하는 역할을 하는 디지탈 코드를 저장하는 관련 랜덤 액세스 메모리를 갖는다. 상호 접속 스위칭 게이트의 기능은 이 스위칭 게이트의 랜덤 액세스 메모리에 저장된 디지탈 코드에 의해 결정되는, CLB와 IOB간의 신호 제어 루팅을 용이하게 하는 것이다. FPGA 소자를 사용하여 특정 디지탈 논리 설계를 물리적으로 구현(즉, 실현)하기 위해, FPGA 소자의 실리콘 기판상의 사용된 CLB, IOB 및 스위칭 게이트 각각의 RAM 모두에 적절한 디지탈 코드를 프로그램해 넣을 필요가 있다.
하기에서는 종래의 FPGA 소자를 사용하여 디지탈 논리 설계를 구현하는 방법이 상세히 설명될 것이다.
제1a도의 블럭 A에 나타낸 것처럼, FPGA 구현 방법의 제1단계는 예컨대 이분야 기술에서 공지된 논리 합성(logic synthesis) 또는 회로도 캡쳐 기술(schematic capture techniques)을 사용하여 디지탈 논리 설계를 생성하는 것을 포함한다. 이 단계는 디지탈 논리 설계를 완전하게 나타내는 부울 논리식 세트를 제공한다.
제1a도의 블럭 B에 나타낸 것처럼, 이 방법의 제2단계는 컴퓨터를 사용하여 FPGA 구현에 대한 하드웨어 기재(description)를 산출하는 것을 포함한다. 이 부분처리(subprocess)에는 컴퓨터가 개발 프로그램을 구동하므로써 해석될 수 있는 고레벨 하드웨어 기재(description) 언어가 사용되어야 한다. xilinx 2000 및 3000 시리즈 FPGA 소자에 대해, FPGA 구현은 XNF(Xilinx Netlist File Format)에 의해 지정된 언어를 사용하여 표현된다. FPGA 구현에서 성분을 나타내는 기재 스테이트먼트 세트와 함께 고려되면, 원 네트리스트(netlist)로 언급된다. 특히, 원 네트리스트에서 각 CLB 및 IOB 기재는 논리 모델 기재(Logic Model Description)를 갖지 않고 각 CLB(즉, 부네트워크) 및 IOB내의 논리를 명시한다. XNF 하드웨어 기재 언어 및 LCA(Logic Cell Array) 라이브러리 구문은 california, San Jose 소재의 Xilinx, Inc.에 의한 LCA Xilinx Netlist Specification, Version 2.00 - 1/26/89 (69페이지)에 아주 상세히 기술되어 있으며, 이 자료는 기준에 의해 그대로 본원에 통합된다.
제1a도의 블럭 C에 나타낸 것처럼, 본 방법의 제3단계는 디지탈 논리 설계의 논리 그룹을 FPGA 소자의 CLB들에 맵시키기 위해 원 XNF 네트리스트 및 Xilinx로부터의 xnfmap 프로그램을 사용하는 것을 포함한다. 이 단계는 각 CLB 및 각 IOB에 대한 LCA(Logic Cell Array) 기재를 발생시킨다. 그런다음 64 CLB 기재, 60 IOB 기재, 신호 핀아웃 기재 및, 클럭 구동기 기재까지 포함할 수도 있는 LCA 기재를 산출하도록 Xilinx로부터의 map21ca 프로그램이 사용된다.
제1a도의 블럭 D에 나타낸 것처럼, 본 방법의 제4단계는 CLB 및 IOB 배치 명세 및 FPGA 구현에 대한 신호 루팅 정보를 포함하는 최종 FPGA 네트리스트로 LCA 기재를 번역하기 위해 xilinx로부터의 lca2xnf 프로그램을 사용하는 것을 포함한다. 전형적인 FPGA 네트리스트에서 CLB 기재를 실현하는 XNF 스테이트먼트의 세트는 제2도에 도시되어 있다.
그이후, 제1b도의 블럭 E에 나타낸 것처럼, 컴퓨터 시스템(2)은 FPGA 소자에 탑재된, CLB, IOB 및 신호 루팅 성분의 랜덤 액세스 메모리에 대한 구성 프로그램들(즉, 디지탈코드)을 발생하기 위해 최종 FPGA XNF 네트리스트를 사용하여 xilinx로부터의 makebits 프로그램을 실행한다. 근본적으로, CLB, IOB 및 상호접속 스위치의 기능은 이 프로그램들에 의해 제어된다. 이 프로그램은 외부 메모리에 저장된다. 파워-업 또는 명령시에, 블럭 F에 나타낸 것처럼, 이 디지탈 코드는 각각의 RAM 요소에 입력되어 FPGA 소자의 프로그래밍을 완성하고 따라서 물리적으로 디지탈 논리 설계를 실현한다.
특히, FPGA은 장점과 단점을 모두 갖는다. 예를들어, 테스트 벡터를 사용하여 프로그램된 FPGA 소자를 테스트한 후에, 원 디지탈 논리 설계를 수정하고 그런다음 그 소자에 적절히 재프로그램하는 것은 쉽고도 저가이다. 그러나, 통상 FPGA 구현은 높은 부분단가(piece-part cost)를 갖고, 원형화(prototyping) 및 작은 부피의 생산물에 적합한 반면, 큰 부피의 생산물에서는 너무 비싸지는 경우가 잦다. 따라서, 특정 디지탈 논리 설계에 대한 요구사항이 어떤 임계를 초과할 경우, 경제적인 고려로서, 다른 경제적으로 더 실행가능한 기술을 성공적인 디지탈 논리 설계의 구현에 사용할 것이 요구된다.
FPGA 구현의 기능화를 마스크 프로그래머블 게이트 어레이(MPGA) 소자와 같은 다른 디지탈 기술로 구현하는 처리는 보통 이행(migration) 또는 구현 변환(implementation conversion)으로 언급되며 최근에 주목되고 있다. 일반적으로, 변환 처리에서는 FPGA 소자내 입출력(I/O) 패드 및, 플립플롭과 같은 논리 요소를, MPGA 소자내 그들의 등가 구조에 매핑하고 그런다음 MPGA 라이브러리내에서 이용가능한 논리 요소를 사용하여 논리 요소를 재합성하는 것이 요구된다. 그러나, 변환 처리를 수행해야 할 경우는, 주로 그 FPGA 구현의 원 설계자들이 FPGA 구현을 마스크 프로그래머블 게이트 어레이(MPGA)나 마스크 프로그래머블 표준 셀(MPSC) 구현과 같은 다른 구현으로 변환(즉, 이행)하는데 도움을 주지 못하는 경우이다.
FPGA를 MPGA 구현으로 변환하려는 필요성에 응답하여 다수의 반자동화된 변환 처리가 개발되어 왔으며 현재 공업현장에서 사용되고 있다. 제3도에서는, FPGA 구현을 MPGA 구현으로 변환하는 공지된 방법이 도시되어 있다. 블럭 A에서 나타낸 것처럼, 이 방법의 제1단계는 FPGA 구현의 XNF 기재(제1도의 처리로 생성됨)를 FPGA 구현의 플랫(flat) XNF 기재로 변환하는 것을 포함한다. 이 단계의 목적은 FPGA 네트리스트에서 CLB 블럭에 의해 강제화되는 FPGA 구현에서의 모든 네트워크 레벨 제한을 제거하는 것이다. 플랫 네트리스트 기재의 결과, 게이트-레벨 논리 명세만이 제시된다. 이 플랫 기재에 따라, 이전에 FPGA 기재의 CLB내에 한정되었던 논리 게이트들이 이제 다른 논리 게이트들과 자유로이 재그룹화된 다음 MPGA 기판상에 재배치된다. 이 논리 게이트들의 실질적인 재그룹화 및 재배치되는 변환에 사용되고 있는 목표 기술(target technology)에 의해 결정된 구현 체계에 따라 결정될 것이다.
제3도의 블럭 B에 나타낸 것처럼, 본 방법의 제2단계는 플랫 FPGA 네트리스트를 다음 구현을 위해 필요한 MPGA 네트리스트로 변환하는 것을 포함한다. 블럭 C에 나타낸 것처럼, 본 발명은 MPGA 기하학적 데이타베이스를 산출하기 위해 MPGA 네트리스트 및 MPGA 라이브러리를 사용하는 것을 포함한다. 특히, 이 기하학적 데이타베이스는 MPGA 기판상에 합성 금속화 패턴을 형성하는 데에 요구되는 다수의 처리 마스크를 생성하는데 필요한 위치 및 루트 정보를 포함한다. 특히, 합성 금속화 패턴은 최종적으로 상기 소자를 프로그램하여 FPGA 구현 및 원 디지탈 논리 설계와 기능상 등가인 MPGA 구현을 실현한다. 블럭 D에서, 처리 마스크를 형성하기 위해 MPGA의 기하학적 데이타베이스가 사용된다. 블럭 E에 나타낸 마지막 단계는, MPGA 기판의 상호 접속 레벨에서 상기 금속화 패턴을 물리적으로 증착하여 MPGA 구현을 실현하기 위해, 형성된 처리 마스크를 사용하는 것을 포함한다.
FPGA 구현에서 MPGA 구현으로 변환하는 전술된 방법은 유용하다고 입증되었지만 다음의 자료들 : Electronic Design News, 1992년 6월 4일자, 107-116페이지에 실린 Charles H. Small에 의한 FPGA Conversion ; Electronic Engineering Times, 1992년 4월 27일자, 45 및 46페이지에 실린 Richard Goering에 의한 FPGA-to-ASIC move takes planning ; 1992년 8월자 ATT AIC Application Note : Softpath Migrations : Field Programmable Gate Array to Gate Array or Standard Cell에 상세히 설명된 바와 같은 다수의 심각한 문제점을 지니고 있다.
이런 문제점들은 상기 FPGA Conversion이란 자료에 가장 보편적으로 기술되어 있다. 첫번째 문제점은 FPGA 소자의 각 조합 논리 블럭이, 실질상 일정하고 에뮬레이트되고 있는 특정 함수와는 상관없는 고유한 시간 지연과 결합되었다는 사실에 관한 것이다. 두번째 문제점은, FPGA 소자에서 신호 루팅 동작을 수행하기 위해 요구되는 프로그래머블 상호접속점들 및 스위칭 게이트들이, 그 소자내에서 구현되고 있는 논리 함수들을 자주 변화시키거나 바꿀 수 있는 실질상의 신호 지연을 유발한다는 사실에 관한 것이다.
FPGA 소자에서 원하는 논리 함수들을 구현하는 경우, 전술된 문제점들은 FPGA 구현에서의 이런 시간 지연들을 모델링함으로써(즉, FPGA 네트리스트의 시간 지연 블럭들의 도입에 의해) 쉽게 조절된다. 특히 이런 지연 시간들은 네트리스트에 기재된 다양한 성분들을 실현하는 데 사용되는 스테이트먼트(statement)로 명료하게 표현된다.
그러나, 공지 기술의 방법을 사용하여 FPGA에서 MPGA로의 구현 변환을 수행할 경우, 제4도의 도면에 도시된 것처럼, 보통 FPGA 기판에서 MPGA 기판상으로 CLB 논리의 예기치못한 공간적 매핑이 존재한다. 결과적으로, 전술된 시간 지연 문제들은 해결이 불가능했으며, 사실상 기술 변환 처리중에 또다른 타이밍 문제들이 자주 발생된다.
따라서, 이 분야 기술에서는, FPGA 구현을, MPGA 구현 또는 MPSC 구현과 같은 마스크 프로그래머블 논리 셀 구현으로 변환함과 동시에 종래 기술 시스템 및 처리에 관련된 문제들을 극복하는 방법 및 장치를 제공하는 것이 절실히 요구된다.
[본 발명의 목적 및 개요]
따라서, 본 발명의 일차적인 목적은 FPGA 구현을, MPGA 또는 MPSC 구현과 같은 마스크 프로그래머블 논리셀로 변환함과 동시에 종래 기술 시스템 및 처리에 관련된 문제들을 방지할 수 있는 방법 및 시스템을 제공하는 것이다.
본 발명의 다른 목적은 변환 처리가 완료된 후 구성 가능한 논리 블럭, 네트워크-레벨 신호 경로 및, FPGA 구현의 클럭 분포 트리의 상대 물리적 위치가 마스크 프로그래머블 논리 셀(MPLC) 기판상에서 보존되는 변환 방법 및 시스템을 제공하는 것이다. MPLC 구현의 네트워크 레벨에서 MPLC 기판상의 대응하는 구조들의 물리적 위치를 강제화함으로써, FPGA 구현동안 나타나는 관련 신호 및 클럭 지연들이 MPLC 구현에서 유지되고, 그에 따라 FPGA와 MPLC 구현간에는 기능적인 등가가 보장된다.
본 발명의 또다른 목적은 본 발명의 방법을 수행하는 데 필요한, 논리 재합성과, 배치 및 루팅 툴(replacement and routing tools)을 제공하는 시스템을, 적절하게 프로그램된, 컴퓨터에 기준한 워크스테이션의 형태로 제공하는 것이다.
본 발명의 또 하나의 목적은 본 발명의 방법에 따라 제조된 반도체 칩상에 초대규모 집적(VLSI : very large scale integrated) 회로를 제공하는 것이다.
본 발명의 상기 및 다른 목적들은 하기에서 및 본 발명의 청구범위에서 명백해질 것이다.
본 발명의 목적을 더 완전하게 이해하기 위해서는 아래의 예시적인 실시예의 상세한 설명을 첨부된 도면을 참조하여 읽어야 한다.
이제 본 발명의 방법 및 기구(machinery)가 제5도 내지 제13B도를 참조하여 상세히 설명될 것이다.
일반적으로, 본 발명의 방법은 임의의 FPGA 구현을 예컨대 MPGA 또는 MPSC 구현과 같은 임의의 원하는 MPLC 구현으로 변환하는데에 사용될 수 있다. 단지 예시의 목적을 위해, 본 발명의 방법 및 기구는 원래 Xilinx 2000 series FPGA 소자, Xilinx 3000 series FPGA 소자 또는, ATT 3000 Series FPGA 소자중 어느 한 소자로 구현되었던 전형적인 디지탈 논리 설계와 연계하여 설명될 것이다. 본 발명의 첫번째 예시적인 실시예에서는, FPGA 구현을 ATT Series ATT656 MPGA Library를 사용하여 실현된 기능적으로 등가인 MPGA 구현으로 변환하는 방법이 사용된다. 본 발명의 두번째 예시적인 실시예에서는 FPGA 구현을 ATT Series HS900C Library를 사용하여 실현되는 기능상 등가인 MPSC 구현으로 변환하는 방법이 사용된다. 그러나 본 발명의 방법 및 기구는 FPGA 및 MPLC에 근거한 다른 유형의 소자들을 사용하여 실현될 수도 있다는 것이 이해되어야 한다.
제5도에 도시된 것처럼, 본 발명의 장치(1)는 다수의 집적된 부시스템(subsystem), 즉, 컴퓨터 워크스테이션(2), 사진석판 마스크 생산 시스템(3) 및, 금속층 증착 시스템(5)을 포함한다. 특히, 워크스테이션(2)의 주된 기능은 논리 합성 및 재합성, 성분 배치 및 루팅 및, 하기에 설명될 다른 기능들을 수행하는 것이다. 시스템(3)의 기능은 사진석판 마스크 작업(4)을 초래하는 것이다. 시스템(5)의 주된 기능은 MPGA 기판(및 MPSC 기판)(7)상에 금속 패턴(6)을 형성하기 위해 이 초래된 마스크를 사용하는 것이다.
하기에 사용될 때, 각 MPGA 기판은 금속단으로 선처리되었다고 간주한다. 이 금속 처리단에서, 각 논리 게이트의 위치는 선정되어 있고, MPGA 소자를 프로그램하는데 필요한 모든것은 기판상에 형성될 것이다. 즉, (ⅰ) 신호 루팅 목적을 위한 전기적 접속, (ⅱ) A-클럭 및 G-클럭 분포 트리와 글로벌 리세트 분포 트리를 위한 클럭 라인이 그 것이다. 종래의 금속 처리에 의해 이런 구조를 형성하려면, 먼저, 이 전기적 접속의 물리적 크기(즉, 면적) 및 위치와, 클럭 라인의 물리적 크기 및 위치를 MPGA 기판의 표면 상측에서 결정해야 한다. 하기에 설명되겠지만, 이런 필요한 정보는 궁극적으로 변환 처리의 완성에 의해 산출된다.
제5도에 도시된 것처럼, 워크스테이션(2)은 다수의 집적된 시스템 성분, 즉 : 하나이상의 중앙 처리 장치(10 ; 예컨대, 마이크로 프로세서) ; 운영체계 프로그램, 응용 프로그램 및, 본 발명의 다양한 개발 및 변환 프로그램(즉, 툴)을 저장하는 프로그램 메모리 기억 장치(11) ; 설계 및 변환 처리동안 사용되는 다양한 데이타 구조를 저장하는 랜덤 액세스 데이타 저장 메모리(RAM ; 12) ; LCA(즉, FPGA) 라이브러리, MPGA 라이브러리 및, MPGA 기하학적 데이타베이스의 성분들에 관한 정보를 저장하는 대용량형 데이타 기억 메모리(13) ; 가시 표시 스크린 또는 표면을 갖는 가시 표시 장치(14) ; 키보드 또는 다른 문서 입력 소자(15) ; 마우스나 트랙볼과 같은 지정 및 선택 소자(16) 및 ; 마스크 생성 및 금속 증착기(3 및 5)와 인터페이스하는 하나이상의 인터페이스(17)를 포함한다. 설명된 것처럼 이런 시스템 성분 각각은 이 분야 기술에서 공지된 형태로 하나이상의 시스템 버스(18)를 통해 프로세서(10)와 실시가능하도록 결합되어 있다. 양호한 실시예에서, 상기 운영체계는 UnixX-Windows로서, 프로세서가 두개 이상의 입출력 윈도우를 지원하는 것을 가능하게하고, 소자(16)를 지정 및 선택하고, 동작을 다중 태스크(task)한다. 그러나, 수용 가능한 결과를 산출하는 다른 적절한 운영 체계가 사용될 수도 있다고 간주된다.
제6도에 도시된 것처럼, 예시적 실시예의 FPGA 소자(20)는 실리콘 기판상에 형성된 CLB의 어레이를 포함한다. FPGA 소자의 칩 패키지상의 핀들과 선택된 CLB들의 입력 및 출력 포트사이에 접속을 제공하기 위해, IOB들의 링은 FPGA 기판상에서 CLB 어레이 근처에 형성된다. 예시적인 실시예에서, 각 CLB는 그 CLB와 관련된 RAM을 간단히 프로그램함으로써, 필요에 따라 선택적으로 형성될 수 있는 조합 및 순서 논리를 갖는다. 마찬가지로, 각 IOB는 그 IOB와 관련된 RAM을 간단히 프로그램함으로써 필요에 따라 선택적으로 형성될 수 있는 조합 및 순서 논리를 갖는다.
제7도에는 예시적 실시예의 FPGA 소자에 대한 논리 셀 맵이 도시되어 있다. 도시된 것처럼, 각 CLB는 AA, BD 등으로 나타낸 행 및 열 번지로 규정된, 실리콘 기판상의 특정 위치로 할당된다. 마찬가지로 IOB의 각 위치는 P21과 같은 핀 번호로 규정된 외곽 번지에 의해 구별된다.
제9도에는 금속단으로 선처리된 MPGA 기판의 평면내에 놓인 데카르트(x-y) 좌표 시스템이 도시되어 있다. 도시된 것처럼, MPGA 기판상의 각 논리셀(논리 게이트)의 물리적 위치는 x및 y값의 범위에 의해 규정된다. 보통, FPGA 구현에서 특정 CLB에 의해 수행되는 것과 등가인 논리 함수를 실현하기 위해 MPGA 기판상에 다수의 논리 게이트를 상호 접속할 필요가 있다. MPGA 구현에서, 이 논리 블럭은 FPGA 구현에서 대응하는 CLB가 그랬던 것과 같은 고정된 즉, 물리적으로 규정된 경계를 갖지는 않으며, 따라서, 이하 및 청구범위에서는 그것의 가상 특성을 나타내는 것으로서, 소프트(soft)-CLB로 언급될 것이다. 본 발명에 따라, 네트워크(즉, 상호접속) 레벨이 MPGA 구현에 대해 규정되고, MPGA 구현의 네트워크 레벨에서 물리적 경계가 존재하지 않는다 하더라도 FPGA 구현의 경우에서 처럼, 각 소프트-CLB는 네트워크(또는 상호접속) 레벨에서 선정된 입력 및 출력 포트를 갖는다. 본 발명의 방법을 실현하기 위해, 이 입력 및 출력 포트들은 제11C도에 도시된 바와 같이 MPGA 네트리스트의 소프트-CLB 접속성 기재에서 명시된다.
마찬가지로, MPGA 구현에서, IOB의 등가구조는, FPGA 구현에서 대응하는 IOB가 그랬던 것과 같은 고정된 즉, 물리적으로 규정된 경계를 갖지는 않는다. 따라서 MPGA 구현에서 IOB의 등가 구조는 그것의 의사 특성을 나타내는 것으로서, 소프트-IOB로 언급될 것이다. 따라서, FPGA 구현의 네트리스트에서의 각 IOB에 대해 MPGA 네트리스트에서는 소프트-IOB가 규정된다. 대부분의 구현에서, Soft-IOB는 I/O 패드에 의해 실현되고, 때때로 간단한 논리 레벨 구동기들로 실현된다. 또한, 조합 및/또는 순서 논리 함수들은 대부분의 응용에서 자주 요구되며 아울러 이런 함수화는 대부분의 MPGA 라이브러리(Libraries)에서 이용가능하다. MPGA 구현의 네트워크 또는 상호접속 레벨에서, 각 소프트-IOB는 본 발명의 방법을 실시하기 위해 선정된 입력 및 출력 포트들을 갖는다. 이 입력 및 출력 포트들은 제11D도에 도시된 것처럼, MPGA 네트리스트의 소프트-IOB 접속성 기재에서 명시된다.
제13a 및 13b도를 참조하여, 이제 본 발명의 변환 방법이 아주 상세히 설명될 것이다.
제13a도의 블럭 A에 나타낸 것처럼, 본 발명의 제1단계는, 변환될 FPGA 구현에 대한 최종 FPGA (XNF) 네트리스트를 산출하기 위해, 제1도의 블럭 A 내지 D에 도시된 단계들을 수행하는 것을 포함한다. 특히 이 FPGA 구현의 결과적인 네트리스트 기재는 FPGA 소자의 실리콘 기판상의 조합 논리 블럭(CLB : combinational logic blocks)의 물리적 위치에 관한 계층적 정보를 포함한다. 이 변환 처리단으로부터 산출된 대표적 FPGA 네트리스트는 제10도에 개략적으로 도시되어 있다.
제10도에 도시된 것처럼, FPGA 네트리스트는 다수의 성분 기재, 즉 : 파일 또는 회로명 ; FPGA 구현에 사용되는 각 CLB에 대한 CLB기재 ; FPGA 구현에 사용되는 상기 IOB에 대한 IOB 기재 ; FPGA 구현에 사용되는 클럭들에 대한 클럭 구동기 기재 및 ; 칩 패키지상의 핀들에 대한 신호 핀아웃 기재를 포함한다.
일반적으로, 각 CLB 기재는 다수의 정보성 항목, 즉 : CLB 명 ; 신호명(예 : IBLANE_1)에 의해 표현되는 CLB I/O 포트 기재 ; 제7도에 도시된 논리 셀 어레이 위치에 의해 표현되는 CLB 위치 기재(예 : AA) 및 ; CLB를 실현하는데에 사용되는 FPGA 라이브러리 성분을 기재하는 CLB 논리 모델 기재를 포함한다. 특히, 각 CLB에 대한 각 입력 포트의 기재는, CLB의 입력 포트와 CLB에 제공된 신호의 소스사이의 신호 루트부(signal route portion)에 관한 신호 루팅 지연 정보를 포함하는 신호 시간 지연 필드를 포함한다. 통상, 이 신호 루팅 지연 정보는 이 분야 기술에서 공지된 컴퓨터에 기준한 레이아웃 툴에 의해 생성되며, 이 분야 기술에서 공지된 식으로 진행되는 회로 설계 시뮬레이션중에 사용된다.
또한, 각 IOB 기재는 다수의 정보성 항목, 즉 : IOB 명 ; 핀 번호에 의해 표현되는 기판상의 IOB 위치 ; 신호명(예 : IBLANE_1)에 의해 표현되는 IOB I/O 포트 기재 및 ; FPGA 라이브러리 성분들에 의해 표현되는 IOB 논리 모델 기재를 포함한다. FPGA 구현의 네트워크 레벨에서, 논리의 각 개별적 그룹은 CLB 명(예 : IRELAY_1)에 의해 규정되고 FPGA XNF 네트리스트에 열거된 XNF 스테이트먼트의 세트에 의해 기재된다. 특히, 출력 구동기로서 형성되는 각 IOB의 각 입력 포트의 기재는 그 IOB와 IOB에 제공된 신호의 소스 사이의 신호 루트부에 관한 신호 루팅 지연 정보를 포함하는 신호 시간 지연 필드를 포함한다. 또한, 이 신호 루팅 지연 정보는 전술된 컴퓨터에 기준한 레이아웃 툴에 의해 생성되며, 역시 회로 설계 시뮬레이션중에 사용된다. 64개의 논리셀(Logic cell)을 갖는 ATT 3020 Series FPGA에 대해, 계층적 FPGA XNF 네트리스트는 64개까지의 CLB 기재, 60개의 IOB 기재, 클럭 구동기 기재 및, 신호 핀아웃 기재를 포함한다. 도시되지는 않았지만, XNF 스테이트먼트 세트들은, 제10도에 도시된 FPGA 네트리스트에서 명시된 기재 요소들 각각을 실현하는 데에 사용된다. 그런 스테이트먼트들의 XNF 포맷은 제8a도의 CLB 기재에서 예시된다.
제13a도의 블럭 B에 나타낸 것처럼, 본 발명의 다음 단계는, FPGA 네트리스트 기재의 CLB 명에 의해 규정된(즉, FPGA 구현의 CLB내에서 한정된) 논리의 각각의 개별적 그룹에 대해 논리 재합성을 국소적으로 수행하는 것을 포함한다. 임의의 종래 논리 합성 기술이 사용될 수도 있다. 이 단계는 제10도에 개략적으로 도시된 것처럼, FPGA XNF 네트리스트를 MPGA LSL 네트리스트로 번역하는 것으로 시작된다. ATT Series 3020 FPGA 소자(64개의 논리셀을 가짐)를 사용하는 FPGA 구현에 대해, 이 변환 처리 단계는 다수의 성분 기재, 즉 : FPGA 네트리스트에 대해 선택된 파일명에 대응하는 파일 또는 회로명 ; FPGA 구현에 사용된 각 CLB에 대한 소프트-CLB 기재 ; FPGA 구현에 사용된 각 IOB에 대한 소프트-IOB 기재 ; 전술된 소프트-CLB 접속성 기재 및 ; 전술된 Soft-IOB 접속성 기재를 포함하는 계측정 MPGA 네트리스트를 야기한다. 특히, 제10도의 MPGA 네트리스트에 도시된, A-클럭 신호 분포 트리 기재, G-클럭 신호 분포 트리 기재 및 글로벌 리세트 신호 분포 트리 기재(Global Reset Signal Distribution Tree description)는 종래 처리과정중의 이 단에서는 산출되지 않고, 아래에 기술될 단계 C동안 네트리스트에 수동으로 추가되어야 한다.
제10도에 도시된 것처럼, 각 소프트-CLB 기재는 다수의 정보성 항목, 즉 : 그 입력 및 출력 포트를 명시하는 소프트-CLB I/O 기재 ; FPGA 구현에서 대응하는 CLB의 위치와 동일한 소프트-CLB 명 및 ; 대응하는 CLB의 서브네트워크(subnetwork)를 포함하는 재합성된 논리 성분들을 명시하는 각 소프트-CLB에 대한 논리 기재 모델(Logic Description Model)을 포함한다. MPGA 네트리스트의 소프트-CLB 접속성 기재는 MPGA 구현의 네트워크 레벨에서 네트워크의 소프트-CLB들의 리스트 및 그 입력 및 출력 포트의 상호 접속에 대한 명세를 포함한다. 특히, 이 포트 상호접속은 신호명들(예 : 제11c도에 도시된 X00228X)에 의해 표현된다. 마찬가지로, MPGA 네트리스트의 소프트-IOB 접속성 기재는, MPGA 구현의 네트워크 레벨에서 네트워크의 소프트-IOB들의 리스트 및 그 입력 및 출력 포트들의 상호접속에 대한 명세를 포함한다. 이런 포트 상호접속 또한 제11D도에 도시된 신호에 의해 표현된다.
산출된 MPGA 네트리스트에서 이 기재들 각각을 실현하는 데에 사용된 논리적 시뮬레이션 언어(LSL : Logical Simulation Language) 스테이트먼트의 세트들은 제11a 내지 11d도에 나타나 있다.
CLB에 대해 도식적으로 도시된 제12도의 논리 재합성 단계동안 FPGA 네트리스트에서 CLB의 위치를 명시하는데에 사용되는 것과 동일한 XNF 코드가 MPGA 네트리스트에서 대응하는 소프트-CLB의 소프트-CLB 명을 명시하는데에 사용된다. (ⅰ) FPGA 네트리스트의 특정 CLB(즉, 서브네트워크)내에 포함된 논리 및 (ⅱ) MPGA 네트리스트의 대응하는 소프트-CLB내에 포함된 재합성된 논리를 공동 인덱스화 하는데에 동일 코드를 사용하므로써, 본 발명의 방법은 아래의 배치 및 루팅 단계동안 MPGA 구현에서 대응하는 논리 블럭이, 정확하게 식별되고 MPGA 기판상의 동일한 상대 위치에 물리적으로 배치되는 것을 보장한다. 제10도에 도시된 것처럼 특정 CLB에 대한 CLB 논리 모델 기재(CLB Logic Model Description)가 MPGA 기판상에 대응하는 소프트-CLB의 논리를 재합성하기 위해 사용된다.
제13a도의 블럭 C에 나타낸 것처럼, 본 발명 방법의 제3단계는, 본 발명에 따라 MPGA 구현을 수행하기 위해 필요한 특정 구조에 관련된 4개의 부가적인 정보 항목을 명시(즉, 열거)하기 위해, 상기 단계 B동안 산출된 계층적 MPGA 네트리스트를 수정하는 것을 포함한다. 제10도의 네트리스트에 도시된 것처럼, 이 부가적인 구조는 A-클럭 신호 분포 트리(A-CLK Signal Distrubution Tree), G-클럭 신호 분포 트리, 글로벌 리세트 신호 분포 트리(Global Reset Signal Distribution Tree) 및, MPGA 기판상에 생성될 CLB 클럭 로드(CLB Clock Loads)로 구별된다.
MPGA 네트리스트에 추가될 제1의 정보성 항목은 MPGA 기판상에서 실현될 A-클럭 신호 분포 트리(A-CLK Signal Distribution Tree)에 대한 LSL 네트리스트 스테이트먼트이다. 제11e도에 도시된 A-클럭 신호 분포 트리 기재를 실현하는 LSL 스테이트먼트에 나타낸 것처럼, A-클럭 신호 분포 트리의 각 열라인(columm line)은 MPGA 라이브러리에서 사용가능한 성분들(예 : F102)로부터 합성된 클럭 구동기를 갖는다. 대표적 실시예에서, 트리는 10열을 갖고 따라서 10개 클럭 구동기가 A-클럭 신호 분포 트리의 LSL 스테이트먼트에서 명시된다.
MPGA 네트리스트에 추가될 제2의 정보성 항목은 MPGA 기판상에서 실현될 G-클럭 신호 분포 트리에 대한 LSL 네트리스트 기재이다. 제11f도에 도시된 것처럼, G-클럭 신호 분포 트리의 각 열라인은 MPGA 라이브러리에서 사용가능한 성분들(예 : F102)로부터 합성된 클럭 구동기를 갖는다. 대표적 실시예에서, 트리는 10열이고 따라서 10개의 클럭 구동기가 G-클럭 신호 분포 트리의 LSL 스테이트먼트에 명시된다.
MPGA 네트리스트에 추가될 제3의 정보성 항목은 MPGA 기판상에 형성될 글로벌 리세트 신호 분포 트리(Global Reset Signal Distribution Tree)에 대한 LSL 네트리스트 기재이다. 제11g도에 도시된 것처럼, 글로벌 리세트 신호 분포 트리의 각 열 라인은 MPGA 라이브러리에서 사용가능한 성분들(예 : F102)로부터 합성된 클럭 구동기를 갖는다. 대표적 실시예에서, 트리는 10열이고 따라서 10개의 구동기가 글로벌 리세트 신호 분포 트리에 대한 LSL 스테이트먼트에 명시된다.
MPGA 네트리스트에 추가될 제4의 정보성 항목은 FPGA 네트리스트에 명시되지 않았던, 각 CLB에 대한 MPGA 기판상에 형성된 CLB 클럭 로드에 대한 LSL 기재이다. 제11h도에 도시된 것처럼, 이 소프트-CLB 로드 각각은 입력 및 출력 포트들 및, MPGA 구현의 네트워크(즉, 상호접속) 레벨에서 소프트-CLB들의 포트와 A-클럭 및/또는 G-클럭 분포 트리중 어느하나의 라인 사이의 상호접속을 명시하는 서브네트워크 기재를 갖는다. 각 소프트-CLB의 각 입력 포트는, 클럭 신호 루팅 네트워크에 도입된 논리 게이트, FPGA 구현에서 관련 클럭 구동기에 주어진(즉, 클럭 구동기에 의해 나타난) 임피던스와 실질상 동일한 임피던스(즉, 로드)에 의해 표현된다. 통상, 각 CLB 로드(Load)는, 이 분야 기재에서 공지된 분포(distributed)형 캐패시턴스 및/또는 저항 측정에 의해 명시된다. 하기에 더 자세히 설명되겠지만, 그런 임피던스 측정을 도입하는 목적은, FPGA 구현에서 클럭 신호 구동기에 의해 나타난 임피던스가 MPGA 구현에서 클럭 구동 신호 구동기에 의해 나타난 임피던스량과 실질상 동일하게 됨으로써, 구현들 간의 클럭 신호 스큐(skew)(및, 그에따른 논리 함수)의 보존을 보장하는 것이다. 특히, 각 CLB 로드는 MPGA 구현의 클럭 신호 루팅 네트워크에 원하는 로드를 도입하는 반면, CLB 로드는, FPGA 구현에서 대응하는 CLB가 FPGA 소자에 형성된(I/O) 신호 루팅 네트워크와 접속되지 않을 때, MPGA 구현의 상호접속 레벨에서 실현되는(I/O) 신호 루팅 네트워크를 통해 통과하는 (I/O) 신호에 임의의 로딩 효과를 제시하지 않는다.
상기 4개의 부분 단계에서의 방법의 결과로서, MPGA 구현에 대한 수정된 계층 MPGA 네트리스트가 초래된다. 특히, 결과적인 MPGA 네트리스트는, MPGA 라이브러리 성분들의 물리적 위치 또는, MPGA 네트리스트에 기재된 A-CLK, G-CLK 및 글로벌 리세트 신호 분포 트리의 물리적 루팅에 관한 정보를 포함하지 않는다.
제13b도의 블럭 D에 나타낸 것처럼, 본 발명의 방법에서의 다음 단계는, 기하학적 데이타베이스를 생성하기 위해, 위에서 산출된 수정된 계층 MPGA 네트리스트 및 MPGA 라이브러리를 사용하는 것을 포함한다. 이 기하학적 데이타베이스의 기능은, 제10도의 수정된 MPGA 네트리스트에 기재된 논리 게이트, 클럭 구동기, 클럭 라인 및, 소프트-CLB 로드를 포함하는 모든 라이브러리 성분들이 MPGA 기판상의 어디에서 물리적으로 실현되어야 하는지를 명시하는 것이다. 일반적으로 위치 및 루팅 정보를 생성하는 이 과정은, (ⅰ) 수정된 MPGA 네트리스트의 특정 성분 기재에 명시된 정보 및, (ⅱ) 제9도에 도시된 MPGA 기판상의 상기 각 성분의 정확한 물리적 위치를 계산하기 위한, MPGA 라이브러리에 명시된 특정 성분들에 관한 기하학적 정보를 사용하는 위치 및 루트(Place and Route) 프로그램에 의해 수행된다.
수정된 MPGA 네트리스트에 기재된 각 소프트-CLB 및 CLB 클럭 로드에 대해, 위치 및 루트 프로그램은 재합성된 조합 및/또는 순서 논리를 소프트-CLB내에서 실현하기 위해, 논리 게이트가 금속 패턴에 의해 상호 접속되어야 할 MPGA 기판상의 특정 면적(즉, 영역)을 명시하는 x 및 y 좌표(즉, 기하학적 데이타)의 범위를 산출한다. 이 좌표 데이타의 세트가 산정되는 과정에는, FPGA 기판의 행, 열 인덱스를 MPGA 기판상의 공간적으로 대응하는 x, y 좌표 세트에 매핑시키기 위해, CLB의 CLB 위치(예 : AA) 및 오프세트 파라미터가 사용된다. 이 일대일 좌표 변환 처리는 제12도에 개략적으로 도시되어 있으며, 각 소프트-CLB가, FPGA 기판상의 대응하는 CLB와 상대적으로 동일한 MPGA 기판상의 위치에 존재한다는 사실을 보장하는 데에 매우 중요하다. 이 매핑 조건은 MPGA 구현에서 초래되는 것과 동일한 클럭 신호 스큐(skew)는 FPGA 구현에서 초래되는 클럭 신호와 상대적으로 동일한 것이라는 사실을 보장하고, 따라서 MPGA 구현의 네트워크 레벨에서 재합성된 논리의 기능적 등가를 보장한다. MPGA 네트리스트의 소프트-CLB 접속성 기재에 기재된 각 소프트-IOB에 대해, 상기 프로그램은 MPGA 구현의 네트워크 레벨에서 소프트-CLB들의 입력 및 출력 포트들 간의 금속 상호접속의 물리적 위치를 규정하는 x, y 좌표의 범위를 생성한다. 이 좌표 데이타의 세트가 산정되는 과정에는, FPGA 기판의 외곽 부분상에서의 핀 번호를, MPGA 기판의 외곽 부분상에서 공간적으로 대응하는 x, y 좌표 세트에 매핑시키기 위해 IOB의 IOB 위치(예 : 핀번호 P21) 및 오프세트 파라미터가 사용된다. 이것은 제12도에 개략적으로 도시된 바와 같은 일대일 좌표 변환 처리이며, 각 소프트-IOB가 FPGA 기판상의 대응하는 IOB의 위치와 상대적으로 동일한 위치에 존재한다는 것을 보장하는 데 있어서 중요하다. 변환 처리내내 이 조건을 유지함으로써, MPGA 구현에 근거한 (I/O) 신호 지연이 FPGA 구현을 근거로 발생하는 (I/O) 신호 지연과 상대적으로 동일하다는 사실을 보장하는 것이 가능하다. A-클럭 신호 분포 트리 기재에서의 각 구동기에 대해, 위치 및 루트 프로그램은 클럭 구동기의 물리적 위치 및 그 클럭 구동기에서 MPGA 네트리스트에 기재된 소프트-CLB 및 CLB 로드 각각에 까지 뻗어있는 금속 클럭 분포 가지(metallic clock distribution branch)를 명시하는 x 및 y 좌표의 범위를 생성한다. 각 클럭 구동기 및 분포 가지에 대해 좌표 데이타 세트가 산정되는 과정에는 FPGA 기판상의 각 클럭 구동기의 위치를 MPGA 기판의 외곽부분상의 공간적으로 대응하는 x, y 좌표 세트에 매핑시키기 위해, 구동기 명 및 경험적으로 결정가능한 오프셋 파라미터가 사용된다. 이 과정에는 또한 FPGA 기판상의 또한 A-클럭 신호 분포 트리의 가지들의 위치를, MPGA 기판상의 공간적으로 대응하는 x, y 좌표 세트로 매핑시키기 위한 구동기명 및 오프셋 파라미터들이 사용된다. 이것 또한 일대일 좌표 변환 처리이며, 또한 각 클럭 구동기 및 관련 클럭 펄스 분포 가지가, FPGA 기판상의 대응하는 클럭 구동기 및 관련 클럭 펄스 분포 가지와 상대적으로 동일한 위치에 배치된다는 사실을 보장하는데 있어서 중요하다.
G-클럭 신호 분포 트리 기재의 각 구동기에 대해, 위치 및 루팅 프로그램은, 클럭 구동기의 물리적 위치 및, 그 클럭 구동기로부터 MPGA 네트리스트에 기재된 소프트-CLB 및 CLB 로드 각각에까지 뻗어있는 금속성 클럭 분포 가지를 명시하는 x 및 y 좌표의 범위를 생성한다. 각 클럭 구동기 및 분포 가지에 대해 좌표 데이타 세트가 산정되는 과정에는, FPGA 기판상의 각 클럭 구동기의 위치를, MPGA 기판의 외곽 부분상의 공간적으로 대응하는 x, y 좌표 세트로 매핑시키기 위해, 구동기명 및 경험적으로 결정할 수 있는 오프셋 파라미터가 사용된다. 또한 이 과정에는 G-클럭 신호 분포 트리의 가지 위치를, MPGA 기판상의 공간적으로 대응하는 x, y 좌표 세트에 매핑시키기 위한, 구동기명 및 오프셋 파라미터들이 사용된다. 이것 역시 일대일 좌표 변환 처리이며, 또한 클럭 구동기 및 관련 클럭 펄스 분포 가지 각각은 FPGA 기판상의 대응하는 클럭 구동기 및 관련 클럭 펄스 분포 가지와 상대적으로 동일한 MPGA 기판상의 위치에 배치된다는 사실을 보장하는데 있어서 중요하다. 변환 처리 전체를 통해 이 조건을 유지함으로써, MPGA 구현에서의 클럭 신호 지연이 FPGA 구현에서 발생하는 클럭 신호 지연과 상대적으로 동일하다는 것을 보장한다.
글로벌 리세트 신호 분포 트리 기재에서의 각 구동기에 대해, 위치 및 루트 프로그램은, 구동기의 물리적 위치 및, 그 구동기에서부터 MPGA 네트리스트에 기재된 소프트-CLB 및 CLB 로드 각각에까지 뻗어있는 금속성 클럭 분포 가지를 명시하는 x 및 y 좌표의 범위를 생성한다. 클럭 구동기 및 신호 분포 가지 각각에 대해 좌표 데이타 세트가 산정되는 과정에는 FPGA 기판상의 각 구동기의 위치를, MPGA 기판의 외곽 부분상의 공간적으로 대응하는 x, y 좌표 세트에 매핑시키기 위한, 구동기명 및 경험적으로 결정가능한 오프셋 파라미터가 사용된다. 또한 그 과정에는 FPGA 기판상의 글로벌 리세트 신호 분포 트리의 가지 위치를 MPGA 기판상의 공간적으로 대응하는 x, y 좌표 세트에 매핑시키기 위한, 구동기 명 및 오프셋 파라미터도 사용된다. 이것 역시 일대일 좌표 변환 처리이며, 또한 구동기 및 그 관련 신호 분포 가지 각각이, FPGA 기판상에 배치된 대응하는 구동기 및 관련 신호 분포 가지와 상대적으로 동일한 MPGA 기판상의 위치에 배치된다는 사실을 보장하는데 도움이 된다. 대부분의 글로벌 리세트 매커니즘은 동작에 있어서 비동기이기 때문에, 리세트 신호 스큐(skew)를, MPGA 구현의 클럭 신호에 필요한 것과 동일한 정도로 제어할 필요가 없다. 그러나, 본 발명에서 처럼 다수의 구동기와 함께 리세트 신호 분포 트리를 사용하는 것은, 공지 기술의 구현에 사용된 것으로서 단일 리세트 신호 구동기 및 랜덤 리세트 신호 루팅 네트워크를 사용하는 것보다 양호하다.
변환 처리내내 전술된 조건을 유지함으로써, MPGA 구현에서의 클럭 지연이 FPGA 구현에서 발생하는 클럭 지연과 상대적으로 동일한 것이라는 사실이 보장된다.
전술된 배치 및 루팅 단계중에 산출된 모든 좌표정보는 메모리(13)에 저장된 다수의 파일에 편제되어 기하학적 데이타베이스를 형성한다. 본질적으로, 이 데이타베이스는 선처리된 MPGA 기판상에 형성되어야 할 몇몇 금속 서브-패턴의 물리적 크기 및 위치를 정확히 명시하기에 충분한 좌표 데이타를 포함한다.
제13b도의 블럭 E에 나타낸 것처럼, 본 발명의 다음 단계는 블럭 D에서 산출된 기하학적 데이타베이스의 파일 내에 포함된 기하학적 정보를 시스템(3)에 제공하는 것을 포함한다. 그런 기하학적 정보를 사용함으로써, 시스템(3)은 선처리된 MPGA 기판의 상호접속 레벨에서 금속층을 형성하는데에 사용되는 다수의 사진석판 처리 마스크(4)를 생성한다. 결과적으로 이런 금속층들은 함께 수정된 MPGA 네트리스트에 기재된 논리 함수로 특징화되는 MPGA 구현을 산출하도록, 선처리된 MPGA 기판을 프로그램한다.
제13b도의 블럭 F에서, 본 발명의 방법의 마지막 단계는, 선처리된 MPGA 기판상에 금속층을 형성하기 위해 블럭 E에서 산출된 사진 석판 처리 마스크(들)(4)를 사용하는 시스템(5)를 포함한다. 전술된 것처럼, 재료를 처리하는 이 최종단은 기능상 MPGA 구현과 등가인 MPGA 구현을 초래한다.
본 발명은 전술된 방법을 다음과 같이 간단히 수정함으로써 FPGA 구현을 MPSC 구현으로 변환하는 데에도 사용될 수 있다.
제13a도의 블럭 B에서, 본 발명의 방법은 MPGA 라이브러리 대신 MPSC 라이브러리를 사용한다. 이 변형의 결과 MPSC 네트리스트는, MPGA 실시예에서와 실질상 동일한, 소프트-CLB 기재, 소프트-IOB 기재 및, 소프트-IOB 접속성 기재를 갖는다. 또한 이 MPSC 네트리스트는 네트워크 레벨에서의 포트 연결성 정보뿐만 아니라 MPSC 구현의 하나 이상의 서브네트워크 레벨에서의 포트 접속성 정보도 포함하는 소프트-CLB 접속성 기재를 포함한다. 제13a도의 블럭 C에서, MPSC 네트리스트는 전술된 방법으로 수정된다. 제13b도의 블럭 D에서 배치 및 루팅중에, 수정된 MPSC 네트리스트에 열거된 모든 구조들은 전술된 것과 실질상 동일한 방법으로 MPSC 기판상에 물리적으로 배치 또는 루트되어 MPSC 구현에 대한 기하학적 데이타베이스를 산출한다. 다음에 블럭 E에서, MPSC 구현의 선정된 네트워크 및 서브네트워크 레벨에 대한 처리 마스크의 세트들을 산출하기 위해 그 기하학적 데이타베이스가 사용된다. 블럭 F에서, 이 처리 마스크들은, FPGA 구현과 기능상 등가인 MPSC 구현을 물리적으로 실현하기에 충분한 MPSC 기판상에 혼합 금속층을 형성하는데에 사용된다.
본 발명의 방법 및 장치는 디지탈 논리 설계의 FPGA 구현을 상기 디지탈 논리 설계의 MPLC 구현으로 변환하는데에 가장 유용하다는 것이 제시되었다. 그러나 이 기술분야에서 통상의 기술을 가진자라면 쉽게 본 발명의 예시적 실시예에 다양한 수정을 가할 수 있을 것이라 인식된다. 그런 모든 수정 및 변형은 첨부된 특허청구범위에 의해 규정된 본 발명의 범주 및 정신내에 있는 것으로 간주된다.

Claims (20)

  1. 디지탈 논리 설계의 필드-프로그래머블 게이트 어레이(FPGA) 구현을 상기 디지탈 논리 설계의 마스크 프로그래머블 논리셀(MPLC) 구현으로 변환하는 방법에 있어서, (a) 상기 FPGA 구현을 달성하는 데에 사용되는, FPGA 라이브러리 및, 기판을 포함하는 패키지를 구비한 FPGA 소자를 선택하는 단계로서, 상기 기판에 각각이 상기 패키지상의 다수의 핀과 동작가능하도록 결합된 입력 및 출력 포트 및 거기에 포함된 프로그래머블 논리회로를 갖는 다수의 프로그래머블 입력 및 출력 인터페이스 블럭(IOBs)과, 각각이 입력 및 출력 포트와 거기에 포함된 프로그래머블 논리 회로를 갖는 다수의 프로그래머블 구성가능 논리 블럭(CLBs) 및, 제1의 신호 지연 세트를 갖는 상기 FPGA 소자내에 루팅 신호에 대한 제1신호 네트워크를 형성하도록 상기 CLB의 입력 및 출력 포트와 상기 IOB의 입력 및 출력 포트를 선택적으로 접속하는 다수의 프로그래머블 상호접속 스위치가 장착된 단계와 ; (b) 상기 FPGA 구현에 사용되는 상기 각 CLB에 대한 CLB 기재와, 상기 FPGA 구현에 사용되는 상기 각 IOB에 대한 IOB 기재 및, 상기 사용된 CLB와 상기 사용된 IOB의 입력 및 출력 포트간에 개설될 상호 접속을 명시하는 포트 접속성 명세를 포함하고, 상기 FPGA 소자내에 상기 제1신호 네트워크를 형성하기 위해, 상기 다수의 프로그래머블 상호접속 스위치에 의해 완성되는 상기 FPGA 구현에 대한 FPGA 네트리스트를 생성하는 단계와 ; (c) 상기 MPLC 구현을 달성하는 데에 사용되는 MPLC 라이브러리 및 MPLC 소자를 선택하는 단계로서, 상기 MPLC 소자는 적어도 하나의 상호접속 레벨과, 상기 MPLC 기판상에 다수의 소프트-CLB 및 다수의 소프트-IOB를 형성하도록 상기 적어도 하나의 상호접속 레벨에서 선택적으로 구성될 수 있는 논리셀의 어레이가 장착된 기판을 포함하는 패키지를 구비하는데, 여기서, 제2 신호 지연 세트를 갖는 상기 MPLC 소자내에 루팅 신호에 대한 제2 신호 네트워크로서 상기 제1 신호 네트워크에 물리적으로 대응하는 상기 제2 신호 네트워크를 형성하기 위해, 상기 MPGA 기판에 산정가능 기하의 금속층을 인가함으로써 상기 각 소프트-CLB 및 상기 각 소프트-IOB는 상기 적어도 하나의 상호접속 레벨에서 접속가능한 입력 및 출력 포트를 갖는 단계와 ; (d) 상기 MPLC 구현에 대한 MPLC 네트리스트를 생성하는 단계로서, 상기 MPLC 네트리스트가 상기 MPLC 기판상에 형성될 상기 각 소프트-CLB에 대한 소프트-CLB 기재와, 상기 MPLC 네트리스트에 명시된 상기 소프트-CLB의 입력 및 출력 포트의 접속성을 명시하는 소프트-CLB 접속성 기재와, 상기 MPLC 기판상에 형성될 상기 각 소프트-IOB에 대한 소프트-IOB 기재 및, 상기 MPLC 네트리스트에 명시된 상기 소프트-IOB의 입력 및 출력 포트의 접속성을 명시하는 소프트-IOB 접속성 기재를 구비하는 상기 MPLC 구현에 관한 계층 정보를 포함하는 단계 및 ; (e) 상기 MPLC 기판상의 상기 각 소프트-CLB 및 상기 각 소프트-IOB의 물리적 위치를 명시하는 기하학적 정보 및, 상기 FPGA 구현중에 존재하는 상대적 신호 지연이 상기 MPLC 구현에서도 실질상 유지됨으로써 상기 FPGA 구현과 상기 MPLC 구현간에 기능상 등가를 보장하도록, 상기 소프트-CLB 접속성 기재 및 상기 소프트-IOB 접속성 기재에 따라 상기 CLB 및 IOB의 입력 및 출력 포트를 상호접속하는 상기 MPLC 기판상의 신호 경로를 명시하는 기하학적 정보를 포함하는 기하학적 데이타베이스를 생성하기 위해 상기 수정된 MPLC 네트리스트 및 상기 MPLC 라이브러리를 사용하는 단계를 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  2. 제1항에 있어서, 단계(a)에서, 상기 선택된 FPGA 소자는 상기 CLB 및 IOB에 의해 사용되는 클럭 신호를 산출하는 클럭 신호 산출 수단 및, 상기 클럭 신호를 상기 CLB 및 IOB를 루팅하는 제1의 다수의 전도성 소자를 갖는 클럭 신호 분포 구조를 더 포함하고, 상기 단계(d) 이후에, 상기 MPLC 네트리스트에, 상기 MPLC 기판상의 상기 클럭 신호 산출 수단의 기재 및 상기 MPLC 기판상의 상기 클럭 신호 분포 구조의 기재를 추가함으로써 수정된 MPLC 네트리스트를 산출하는 단계를 더 포함하며, 상기 기하학적 데이타베이스는, 상기 MPLC 기판상의 상기 클럭 신호 산출 수단 및 상기 리세트 신호 산출 수단의 물리적 위치를 명시하는 기하학적 정보 및 상기 MPLC 기판상의 상기 클럭 신호 분포 구조의 물리적 루팅을 명시하는 기하학적 정보를 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  3. 제1항에 있어서, 단계(d)중에, 상기 FPGA 구현을 실현할 때 사용되지 않은 상기 FPGA 소자의 상기 각 CLB에 대한 소프트-CLB 로드를 상기 MPLC 네트리스트에 추가하는 단계를 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  4. 제3항에 있어서, (f) 상기 MPGA 기판상에 상기 금속층을 형성하는데 사용되는 사진석판 처리 마스크 세트를 산출하도록 상기 기하학적 데이타베이스를 사용하는 단계를 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  5. 제4항에 있어서, (g) 상기 MPGA 기판상에 상기 금속층을 형성하도록 상기 산출된 사진석 마스크 세트를 사용하는 단계를 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  6. 제1항에 있어서, 상기 MPLC 구현은 마스크 프로그래머블 게이트 어레이(MPGA) 구현이고, 상기 MPLC 소자는 MPGA 소자이며, 상기 MPLC 라이브러리는 MPGA 라이브러리인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  7. 제1항에 있어서, 상기 MPLC 구현은 마스크 프로그래머블 표준셀(MPSC) 구현이고, 상기 MPLC 소자는 MPSC 소자이며, 상기 MPLC 라이브러리는 MPSC 라이브러리인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  8. 제2항에 있어서, 상기 기하학적 데이타베이스의 산출 중에, 상기 각 소프트-CLB는 상기 FPGA 기판상의 대응하는 CLB의 물리적 위치와 상대적으로 동일한 상기 MPLC 기판상의 물리적 위치에 배치되고, 상기 각 소프트-IOB는 상기 FPGA 기판상의 대응하는 IOB의 물리적 위치와 상대적으로 동일한 상기 MPLC 기판상의 물리적 위치에 배치되고, 상기 MPLC 기판상의 상기 각 클럭 신호 산출 수단은 FPGA 기판상의 대응하는 클럭 신호 산출 수단의 물리적 위치와 상대적으로 동일한 상기 MPLC 기판상의 물리적 위치에 배치되며, 상기 MPLC 기판상의 상기 클럭 신호 분포 구조의 물리적 루팅은 상기 FPGA 기판상의 대응하는 클럭 분포 구조의 신호 루트와 상대적으로 동일한 상기 MPLC 기판상의 신호 루트를 따라 루트되는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  9. 디지탈 논리 설계의 필드 프로그래머블 게이트 어레이 구현을 상기 디지탈 논리 설계의 마스크 프로그래머블 논리셀(MPLC) 구현으로 변환하는 방법에 있어서, (a) 상기 FPGA 구현을 달성하는 데에 사용되는, FPGA 라이브러리 및, 기판을 포함하는 패키지를 구비한 FPGA 소자를 선택하는 단계로서, 상기 기판에 각각이 상기 패키지상의 다수의 핀과 동작가능하도록 결합된 입력 및 출력 포트 및 거기에 포함된 프로그래머블 논리회로를 갖는 다수의 프로그래머블 입력 및 출력 인터페이스 블럭(IOBs)과, 각각이 입력 및 출력 포트와 거기에 포함된 프로그래머블 논리 회로를 갖는 다수의 프로그래머블 구성가능 논리 블럭(CLBs)과, 제1의 신호 지연 세트를 갖는 상기 FPGA 소자내에 루팅 신호에 대한 제1신호 네트워크를 형성하도록 상기 CLB의 입력 및 출력 포트와 상기 IOB의 입력 및 출력 포트를 선택적으로 접속하는 다수의 프로그래머블 상호접속 스위치와, 상기 CLB 및 IOB에 의해 사용되는 클럭 신호를 산출하는 클럭 신호 산출 수단 및 ; 상기 클럭 신호를 상기 CLB 및 IOB에 루트하는 제1의 다수의 전도성 요소를 갖는 클럭 신호 분포 구조가 장착된 단계와 ; (b) 상기 FPGA 구현에 사용되는 상기 각 CLB에 대한 CLB 기재와, 상기 FPGA 구현에 사용되는 상기 각 IOB에 대한 IOB 기재 및, 상기 사용된 CLB와 상기 사용된 IOB의 입력 및 출력 포트간에 개설될 상호 접속을 명시하는 포트 접속성 명세를 포함하고, 상기 FPGA 소자내에 상기 제1신호 네트워크를 형성하기 위해, 상기 다수의 프로그래머블 상호접속 스위치에 의해 완성되는 상기 FPGA 구현에 대한 계층적 FPGA 네트리스트를 생성하는 단계와 ; (c) 상기 MPLC 구현을 달성하는 데에 사용되는 MPLC 라이브러리 및 MPLC 소자를 선택하는 단계로서, 상기 MPLC 소자는, 적어도 하나의 상호접속 레벨을 갖고 상기 MPLC 기판상에 다수의 소프트-CLB 및 다수의 소프트-IOB를 형성하도록 상기 적어도 하나의 상호접속 레벨에서 선택적으로 구성될 수 있는 논리셀의 어레이를 갖는 기판을 포함하는 패키지를 구비하는데, 여기서, 제2 신호 지연 세트를 갖는 상기 MPLC 소자내에 루팅 신호에 대한 제2 신호 네트워크로서 상기 제1 신호 네트워크에 물리적으로 대응하는 상기 제2 신호 네트워크를 형성하기 위해, 상기 MPGA 기판에 산정가능 기하의 금속층을 인가함으로써 상기 각 소프트-CLB 및 상기 각 소프트-IOB는 상기 상호접속 레벨에서 접속될 수 있는 입력 및 출력 포트를 갖는 단계와 ; (d) 상기 MPLC 기판상에 형성될 상기 각 소프트-CLB에 대한 소프트-CLB 기재와, 상기 MPLC 네트리스트에 명시된 상기 소프트-CLB의 입력 및 출력 포트의 접속성을 명시하는 소프트-CLB 접속성 기재와, 상기 MPLC 기판상에 형성될 상기 각 소프트-IOB에 대한 소프트-IOB 기재 및, 상기 MPLC 네트리스트에 명시된 상기 소프트-IOB의 입력 및 출력 포트의 접속성을 명시하는 소프트-IOB 접속성 기재를 포함하는 상기 MPLC 구현에 대한 MPLC 네트리스트를 생성하는 단계와 ; (e) (1) 상기 FPGA 구현을 실현할 때 사용되지 않은 상기 FPGA 소자의 상기 각 CLB에 대한 소프트-CLB 로드와, (2) 상기 MPLC 기판상에 위치한 상기 클럭 신호 산출 수단의 기재 및, (3) 상기 MPLC 기판상에 위치한 상기 클럭 신호 분포 구조의 기재를 상기 MPLC 네트리스트에 추가함으로써 수정된 MPLC 네트리스트를 산출하는 단계 및 ; (f) 상기 MPLC 기판상의, 상기 각 소프트-CLB의 물리적 위치와, 상기 각 소프트-IOB의 물리적 위치 및 상기 클럭 신호 산출 수단의 물리적 위치에 관한 기하학적 정보 및, 상기 소프트-CLB 접속성 기재 및 상기 소프트-IOB 접속송 기재에 따라 상기 CLB 및 IOB의 입출력 포트를 상호 접속하는 상기 MPLC 기판상의 신호경로 및 상기 클럭 신호 분포 구조의 물리적 루팅을 명시하는 기하학적 정보를 포함하는데, 여기서 상기 MPLC 기판상의 상기 소프트-CLB, 상기 소프트-IOB 및 상기 클럭 신호 산출 수단의 물리적 위치는 상기 FPGA 기판상의, 대응하는 소프트-CLB, 대응하는 소프트-IOB 및 대응하는 클럭 신호 산출 수단의 상대 물리적 위치와 동일하여 상기 FPGA 구현중에 존재하는 상대적 신호 및 클럭 지연이 상기 MPLC 구현에서도 실질상 유지됨으로써 상기 FPGA 구현과 상기 MPLC 구현간에 기능상 등가를 보장하는 기하학적 데이타베이스를 생성하도록 상기 수정된 MPLC 네트리스트 및 상기 MPLC 라이브러리를 사용하는 단계를 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  10. 제9항에 있어서, (g) 상기 MPGA 기판상에 상기 금속층을 형성하는데 사용되는 사진석판 처리 마스크세트를 산출하도록 상기 기하학적 데이타베이스를 사용하는 단계를 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  11. 제10항에 있어서, (h) 상기 MPGA 기판상에 상기 금속층을 형성하도록 상기 산출된 사진석판 처리 마스크 세트를 사용하는 단계를 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  12. 제9항에 있어서, 상기 MPLC 구현은 마스크 프로그래머블 게이트 어레이(MPGA) 구현이고, 상기 MPLC 소자는 MPGA 소자이며, 상기 MPLC 라이브러리는 MPGA 라이브러리인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  13. 제9항에 있어서, 상기 MPLC 구현은 마스크 프로그래머블 표준셀(MPSC) 구현이고, 상기 MPLC 소자는 MPSC 소자이며, 상기 MPLC 라이브러리는 MPSC 라이브러리인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 방법.
  14. 디지탈 논리 설계의 필드 프로그래머블 게이트 어레이(FPGA) 구현을 상기 디지탈 논리 설계의 마스크 프로그래머블 논리셀(MPLC) 구현으로 변환하는 컴퓨터 기준 시스템에 있어서, 상기 FPGA 구현을 달성하는 데에 사용되는, FPGA 라이브러리 및, 기판을 포함하는 패키지를 구비한 FPGA 소자를 나타내는 정보를 구비하되, 상기 기판에 각각이 상기 패키지 상의 다수의 핀과 동작가능하도록 결합된 입력 및 출력 포트와 거기에 포함된 프로그래머블 논리 회로를 갖는 다수의 프로그래머블 입력 및 출력 인터페이스 블럭(IOBs)과, 각각이 입력 및 출력 포트와 거기에 포함된 프로그래머블 논리 회로를 갖는 다수의 프로그래머블 구성가능 논리 블럭(CLBs) 및, 확정가능한 신호 지연량을 갖는 상기 FPGA 소자의 루팅 신호에 대한 제1 신호 네트워크를 상기 FPGA 기판상에 형성하도록 상기 CLB의 입력 및 출력 포트와 상기 IOB의 입력 및 출력 포트를 선택적으로 접속하는 다수의 프로그래머블 상호접속 스위치가 장착된 정보 저장용 정보 저장 수단과 ; 상기 정보 저장 수단에 동작가능하도록 결합되고, 상기 FPGA 소자를 사용하여 상기 FPGA 구현에 대한 FPGA 네트리스트를 나타내는 제1 데이타 구조를 생성하되, 상기 FPGA 네트리스트가 상기 FPGA 구현에 사용되는 상기 각 CLB에 대한 CLB 기재와, 상기 FPGA 구현에 사용되는 상기 각 IOB에 대한 IOB 기재 및, 상기 사용된 CLB와 상기 사용된 IOB의 입력 및 출력 포트간에 개설될 상호 접속을 명시하는 포트 접속성 명세를 포함하고 상기 FPGA 소자내에 상기 제1 신호 네트워크를 형성하기 위해 상기 다수의 프로그래머블 상호 접속 스위치에 의해 완성되는 계층 정보를 포함하는 프로그램된 정보 처리 수단을 포함하는데, 상기 정보 저장 수단은 상기 MPLC 구현을 실현하는데에 사용된 선택된 MPLC 소자 및 MPLC 라이브러리를 나타내는 정보를 더 저장하되, 상기 MPLC 소자는, 적어도 하나의 상호 접속 레벨을 갖고 상기 MPLC 기판상에 다수의 소프트-CLB 및 다수의 소프트-IOB를 형성하도록 상기 적어도 하나의 상호접속 레벨에서 선택적으로 구성가능한 논리셀의 어레이가 장착된 기판을 포함하는 패키지를 구비하는데, 여기서, 확정가능한 신호 지연량을 갖는 상기 MPLC 소자내의 루팅 신호에 대한 제2 신호 네트워크로서 상기 제1 신호 네트워크에 물리적으로 대응하는 상기 제2 신호 네트워크를 형성하기 위해, 상기 MPGA 기판에 산정가능 기하의 금속층을 인가함으로써 상기 각 소프트-CLB 및 상기 각 소프-IOB는 상기 적어도 하나의 상호접속 레벨에서 접속가능한 입력 및 출력 포트를 갖고, 상기 프로그램된 정보 처리 수단은 상기 MPLC 소자를 사용하여 상기 MPLC 구현에 대한 MPLC 네트리스트를 나타내는 제2 정보 구조를 더 생성하되, 상기 MPLC 네트리스트는 상기 MPLC 기판상에 형성될 상기 각 소프트-CLB에 대한 소프트-CLB 기재와, 상기 MPLC 네트리스트에 명시된 상기 소프트-CLB의 입력 및 출력 포트의 접속성을 명시하는 소프트-CLB 접속성 기재와, 상기 MPLC 기판상에 형성될 상기 각 소프트-IOB에 대한 소프트-IOB 기재 및, 상기 MPLC 네트리스트에 명시된 상기 소프트-IOB의 입력 및 출력 포트의 접속성을 명시하는 소프트-IOB 접속성 기재를 구비한 계층 정보를 포함하고, 상기 프로그램된 정보 처리 수단은 상기 수정된 MPLC 네트리스트 및 상기 MPLC 라이브러리를 사용하여 기하학적 데이타베이스를 더 생성하되, 상기 기하학적 데이타베이스는 상가 각 소프트-CLB와, 상기 각 소프트-IOB 및, 상기 클럭 신호 산출 수단의 물리적 위치를 명시하는 기하학적 정보 및, 상기 FPGA 구현의 상기 제1 신호 네트워크에 존재하는 관련 신호 지연이 상기 MPLC 구현의 상기 제2 신호 네트워크에서도 실질상 유지됨으로써 상기 FPGA 구현과 상기 MPLC 구현간에 기능적 등가를 보장하도록, 상기 소프트-CLB 접속성 기재 및 상기 소프트-IOB 접속성 기재에 따라 상기 CLB 및 IOB의 입력 및 출력 포트를 상호접속하는 상기 MPLC 기판상의 신호 경로의 물리적 루팅을 명시하는 기하학적 정보를 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
  15. 제14항에 있어서, 상기 FPGA 소자는 상기 CLB 및 IOB에 의해 사용되는 클럭 신호를 산출하는 클럭 신호 산출 수단과 ; 상기 클럭 신호를 상기 CLB 및 IOB에 루팅하는 제1의 다수의 전도성 소자를 갖는 클럭 신호 분포 구조 및 ; 상기 CLB 및 상기 IOB에 의해 사용되는 리세트 신호를 산출하는 리세트 신호 산출 수단 ; 을 더 포함하고, 상기 컴퓨터 기준 시스템은 상기 MPLC 기판상의 상기 클럭 신호 산출 수단 및 상기 MPLC 기판상의 상기 클럭 신호 분포 구조를 더 구비한 수정된 MPLC 네트리스트를 산출하도록 상기 제2 정보 구조에 정보를 추가하는 수단을 더 포함하고 ; 상기 프로그램된 정보 처리 수단은 상기 수정된 MPLC 네트리스트 및 상기 MPLC 라이브러리를 사용하여 부가적인 기하학적 정보를 생성하고 그 부가적인 기하학적 정보를 상기 기하학적 데이타베이스에 추가하고, 상기 부가적인 기하학적 정보는 상기 MPLC 기판상의 상기 클럭 신호 산출 수단의 물리적 위치 및 상기 MPLC 기판상의 상기 클럭 신호 분포 구조의 물리적 루팅을 더 명시하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
  16. 제15항에 있어서, 상기 프로그램된 정보 처리 수단은 상기 FPGA 구현을 실현할 때 사용되지 않은 상기 FPGA 소자의 상기 각 CLB에 대한 소프트-CLB 로드를 상기 수정된 MPLC 네트리스트에 추가하는 수단을 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
  17. 제15항에 있어서, 상기 기하학적 데이타베이스를 사용하여 사진석판 처리 마스크 세트를 산출하는 수단을 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
  18. 제17항에 있어서, 상기 산출된 사진석판 처리 마스크를 사용하여 상기 MPGA 기판상에 상기 금속층을 형성하는 수단을 더 포함하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
  19. 제15항에 있어서, 상기 MPLC 구현은 마스크 프로그래머블 게이트 어레이(MPGA) 구현이고, 상기 MPLC 소자는 MPGA 소자이며, 상기 MPLC 라이브러리는 MPGA 라이브러리인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
  20. 제15항에 있어서, 상기 MPLC 구현은 마스크 프로그래머블 표준셀(MPSC) 구현이고, 상기 MPLC 소자는 MPSC 소자이며, 상기 MPLC 라이브러리는 MPSC 라이브러리인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템.
KR1019940040739A 1993-12-30 1994-12-29 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템 및 그 변환 방법 KR0148405B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17565893A 1993-12-30 1993-12-30
US175,658 1993-12-30

Publications (2)

Publication Number Publication Date
KR950020224A KR950020224A (ko) 1995-07-24
KR0148405B1 true KR0148405B1 (ko) 1998-11-16

Family

ID=22641120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940040739A KR0148405B1 (ko) 1993-12-30 1994-12-29 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템 및 그 변환 방법

Country Status (4)

Country Link
US (1) US5526278A (ko)
JP (1) JP2614986B2 (ko)
KR (1) KR0148405B1 (ko)
TW (1) TW396312B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897258B2 (en) 2011-05-20 2021-01-19 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752006A (en) * 1996-01-31 1998-05-12 Xilinx, Inc. Configuration emulation of a programmable logic device
US5815405A (en) * 1996-03-12 1998-09-29 Xilinx, Inc. Method and apparatus for converting a programmable logic device representation of a circuit into a second representation of the circuit
US5949983A (en) * 1996-04-18 1999-09-07 Xilinx, Inc. Method to back annotate programmable logic device design files based on timing information of a target technology
US5926035A (en) * 1996-06-26 1999-07-20 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5943488A (en) * 1996-06-26 1999-08-24 Cypress Semiconductor Corp. Method and apparatus to generate mask programmable device
US5936868A (en) * 1997-03-06 1999-08-10 Harris Corporation Method for converting an integrated circuit design for an upgraded process
US5991523A (en) * 1997-03-18 1999-11-23 Xilinx, Inc. Method and system for HDL global signal simulation and verification
US6078735A (en) * 1997-09-29 2000-06-20 Xilinx, Inc. System and method for generating memory initialization logic in a target device with memory initialization bits from a programmable logic device
US6243849B1 (en) * 1998-03-13 2001-06-05 Lsi Logic Corporation Method and apparatus for netlist filtering and cell placement
US7389487B1 (en) * 1998-04-28 2008-06-17 Actel Corporation Dedicated interface architecture for a hybrid integrated circuit
US6492833B1 (en) * 1998-04-30 2002-12-10 Altera Corporation Configurable memory design for masked programmable logic
US6219819B1 (en) 1998-06-26 2001-04-17 Xilinx, Inc. Method for verifying timing in a hard-wired IC device modeled from an FPGA
US6334169B1 (en) 1998-09-30 2001-12-25 International Business Machines Corporation System and method for improved bitwrite capability in a field programmable memory array
US6311316B1 (en) * 1998-12-14 2001-10-30 Clear Logic, Inc. Designing integrated circuit gate arrays using programmable logic device bitstreams
US6331733B1 (en) 1999-08-10 2001-12-18 Easic Corporation Semiconductor device
US6236229B1 (en) 1999-05-13 2001-05-22 Easic Corporation Integrated circuits which employ look up tables to provide highly efficient logic cells and logic functionalities
US6245634B1 (en) 1999-10-28 2001-06-12 Easic Corporation Method for design and manufacture of semiconductors
US6194912B1 (en) 1999-03-11 2001-02-27 Easic Corporation Integrated circuit device
US6453447B1 (en) * 1999-08-19 2002-09-17 Aeroflex Utmc Microelectronic Systems Inc. Method for fabricating integrated circuits
JP4642304B2 (ja) * 1999-11-29 2011-03-02 セロツト・インコーポレーテツド 汎用のハードウエアデバイス及び方法とそれと共に使用するツール
US7185293B1 (en) 1999-11-29 2007-02-27 Cellot, Inc. Universal hardware device and method and tools for use therewith
US6756811B2 (en) 2000-03-10 2004-06-29 Easic Corporation Customizable and programmable cell array
US6331790B1 (en) 2000-03-10 2001-12-18 Easic Corporation Customizable and programmable cell array
US6629308B1 (en) * 2000-07-13 2003-09-30 Xilinx, Inc. Method for managing database models for reduced programmable logic device components
US6490707B1 (en) * 2000-07-13 2002-12-03 Xilinx, Inc. Method for converting programmable logic devices into standard cell devices
US6577158B2 (en) * 2001-01-31 2003-06-10 Stmicroelectronics, Inc. Interconnect circuitry for implementing bit-swap functions in a field programmable gate array and method of operation
US6742172B2 (en) * 2002-03-29 2004-05-25 Altera Corporation Mask-programmable logic devices with programmable gate array sites
JP2007524911A (ja) * 2003-06-23 2007-08-30 アルテラ コーポレイション マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス
US6952813B1 (en) 2003-07-30 2005-10-04 Xilinx, Inc. Method and apparatus for selecting programmable interconnects to reduce clock skew
US7038490B1 (en) * 2003-09-12 2006-05-02 Lattice Semiconductor Corporation Delay-matched ASIC conversion of a programmable logic device
US6996795B2 (en) * 2003-12-04 2006-02-07 International Business Machines Corporation Data processing in digital systems
US7260807B2 (en) * 2003-12-12 2007-08-21 Synopsys, Inc. Method and apparatus for designing an integrated circuit using a mask-programmable fabric
US7100142B2 (en) * 2004-04-07 2006-08-29 Synopsys, Inc. Method and apparatus for creating a mask-programmable architecture from standard cells
US7707472B1 (en) 2004-05-17 2010-04-27 Altera Corporation Method and apparatus for routing efficient built-in self test for on-chip circuit blocks
US7278122B2 (en) * 2004-06-24 2007-10-02 Ftl Systems, Inc. Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization
US7243329B2 (en) * 2004-07-02 2007-07-10 Altera Corporation Application-specific integrated circuit equivalents of programmable logic and associated methods
US7373631B1 (en) * 2004-08-11 2008-05-13 Altera Corporation Methods of producing application-specific integrated circuit equivalents of programmable logic
US7401203B2 (en) * 2004-09-14 2008-07-15 International Business Machines Corporation Method for wiring allocation and switch configuration in a multiprocessor environment
US7620924B2 (en) * 2005-03-14 2009-11-17 Lsi Corporation Base platforms with combined ASIC and FPGA features and process of using the same
US7509602B2 (en) * 2005-06-02 2009-03-24 Eve S.A. Compact processor element for a scalable digital logic verification and emulation system
US7373630B1 (en) * 2005-12-12 2008-05-13 Altera Corporation Methods for improved structured ASIC design
US8161469B1 (en) * 2005-12-13 2012-04-17 Altera Corporation Method and apparatus for comparing programmable logic device configurations
US7800919B2 (en) * 2006-03-24 2010-09-21 Rockwell Automation Technologies, Inc. Programmable routing module
US8629006B2 (en) * 2006-12-05 2014-01-14 Agate Logic, Inc. Hybrid integrated circuits and their methods of fabrication
US20080252622A1 (en) * 2007-04-16 2008-10-16 Tpo Displays Corp. Systems for displaying images and driving method thereof
US8365111B2 (en) * 2008-02-29 2013-01-29 Et International, Inc. Data driven logic simulation
US8667437B2 (en) * 2008-03-17 2014-03-04 Xilinx, Inc. Creating a standard cell circuit design from a programmable logic device circuit design
US20090313413A1 (en) * 2008-06-12 2009-12-17 Yariv Aridor method for wiring allocation and switch configuration in a multiprocessor environment
CN109684653B (zh) * 2017-10-19 2023-12-22 成都海存艾匹科技有限公司 含有可编程计算单元的可编程门阵列封装
CN112528583B (zh) * 2020-12-18 2022-04-01 广东高云半导体科技股份有限公司 多线程综合方法及用于fpga开发的综合系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US4978633A (en) * 1989-08-22 1990-12-18 Harris Corporation Hierarchical variable die size gate array architecture
US5189629A (en) * 1990-06-06 1993-02-23 Hughes Aircraft Company Method of logic gate reduction in a logic gate array
US5224056A (en) * 1991-10-30 1993-06-29 Xilinx, Inc. Logic placement using positionally asymmetrical partitioning algorithm
US5337255A (en) * 1991-10-30 1994-08-09 Xilinx, Inc. Method for implementing set/reset synchronously or asynchronously in a programmable logic device
US5349248A (en) * 1992-09-03 1994-09-20 Xilinx, Inc. Adaptive programming method for antifuse technology

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897258B2 (en) 2011-05-20 2021-01-19 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US11750194B2 (en) 2011-05-20 2023-09-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device

Also Published As

Publication number Publication date
KR950020224A (ko) 1995-07-24
JP2614986B2 (ja) 1997-05-28
JPH07254019A (ja) 1995-10-03
TW396312B (en) 2000-07-01
US5526278A (en) 1996-06-11

Similar Documents

Publication Publication Date Title
KR0148405B1 (ko) 필드 프로그래머블 게이트 어레이 구현을 마스크 프로그래머블 논리셀 구현으로 변환하는 컴퓨터 기준 시스템 및 그 변환 방법
US6035106A (en) Method and system for maintaining hierarchy throughout the integrated circuit design process
Trimberger Three ages of FPGAs: a retrospective on the first thirty years of FPGA technology: this paper reflects on how Moore's law has driven the design of FPGAs through three epochs: the age of invention, the age of expansion, and the age of accumulation
US5604680A (en) Virtual interface representation of hierarchical symbolic layouts
Cong et al. RASP: A general logic synthesis system for SRAM-based FPGAs
JP6081801B2 (ja) フレキシブル電子インターフェースのための装置および関連方法
US6002861A (en) Method for performing simulation using a hardware emulation system
US5581738A (en) Method and apparatus for back-annotating timing constraints into simulation models of field programmable gate arrays
US5610829A (en) Method for programming an FPLD using a library-based technology mapping algorithm
US20080005716A1 (en) Method for programming a mask-programmable logic device and device so programmed
US8402409B1 (en) Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit
US6922665B1 (en) Method and system for device-level simulation of a circuit design for a programmable logic device
US20100031222A1 (en) Base platforms with combined asic and fpga features and process of using the same
WO2009117203A2 (en) Creating a standard cell circuit design from a programmable logic device circuit design
JPH0877216A (ja) 論理エミュレーションシステム
James-Roxby et al. Automated extraction of run-time parameterisable cores from programmable device configurations
US4815016A (en) High speed logical circuit simulator
JP4642304B2 (ja) 汎用のハードウエアデバイス及び方法とそれと共に使用するツール
US6279143B1 (en) Method and apparatus for generating a database which is used for determining the design quality of network nodes
Drayer et al. A development system for creating real-time machine vision hardware using field programmable gate arrays
JP4573328B2 (ja) 半導体デバイス、半導体設計装置および半導体設計方法
Kwiat et al. Modeling a versatile FPGA for prototyping adaptive systems
Biederman An overview on writing a VHDL testbench
US7398487B1 (en) Programmable logic device-structured application specific integrated circuit
Enns et al. Designing FPGAs and Reconfigurable SoCs Using Methods of Program Analysis and Prototyping

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: 20010511

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee