KR19990057936A - 다중화기 방식의 필드-프로그래머블 게이트 어레이를 이용한 집적회로 설계를 위한 논리 함수 분할 방법 - Google Patents
다중화기 방식의 필드-프로그래머블 게이트 어레이를 이용한 집적회로 설계를 위한 논리 함수 분할 방법 Download PDFInfo
- Publication number
- KR19990057936A KR19990057936A KR1019970078015A KR19970078015A KR19990057936A KR 19990057936 A KR19990057936 A KR 19990057936A KR 1019970078015 A KR1019970078015 A KR 1019970078015A KR 19970078015 A KR19970078015 A KR 19970078015A KR 19990057936 A KR19990057936 A KR 19990057936A
- Authority
- KR
- South Korea
- Prior art keywords
- candidate
- kernel
- circuit design
- integrated circuit
- fpga
- Prior art date
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 MUX 방식의 FPGA을 이용한 집적회로 설계를 위한 논리 함수 분할 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 다중화기(MUX) 방식의 필드-프로그래머블 게이트 어레이(FPGA)를 이용한 회로 설계시, 구현하고자 하는 논리 함수를 하나의 FPGA 셀로 구현이 가능한 논리식들로 분할하는 효과적인 방법을 통하여 FPGA 셀의 수를 줄이는 집적회로 설계를 위한 논리 함수 분할 방법을 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 분할 대상 노드에 대한 모든 커널을 생성하여 생성된 분할 대상이 되는 논리식의 커널과 커널의 부분식들을 대상으로 하나의 셀로 구현이 가능한 모든 후보식을 생성하는 제 1 단계; 생성된 모든 후보식중에서 입력과 리터럴 개수를 기준으로 최적의 후보식을 선택하는 제 2 단계; 및 선택된 최적의 후보식을 이용하여 논리 함수를 분할하는 제 3 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 FPGA용의 회로 설계 S/W 등에 이용됨.
Description
본 발명은 다중화기(MUX) 방식의 필드-프로그래머블 게이트 어레이(FPGA : Field Programmable Gate Array)를 이용한 셀로 구현이 가능한 형태의 부분식만을 분할하여 보다 적은 수의 셀로 회로를 구현할 수 있는 집적회로 설계를 위한 논리 함수 분할 방법에 관한 것이다.
종래에는, 대부분 게이트 어레이(Gate array)나 표준 셀(Standard cell) 방식으로 회로를 구현하였고, 부정 논리곱 게이트(NAND)/부정 논리합 게이트(NOR) 등과 같은 라이브러리내의 게이트들로 이루어진 네트리스트로 표현되었다.
이러한 경우에 회로의 면적은 회로를 구성하는 게이트들의 면적의 총합에 비례하고, 그 성능은 회로가 갖는 최장 경로의 시간 지연에 따라 결정된다.
일반적으로, 최적의 회로 표현을 얻기 위해서는 설계자가 입력한 회로 표현상에서 존재할 수 있는 리던던시(Redundancy)를 제거하여 논리 함수의 형태를 간소화하거나 이를 실제 구현에 사용되는 라이브러리내의 게이트들로 표현하는 기술 매핑(Technology mapping)을 수행하여야 한다.
상기한 바와 같이 최적의 회로 표현을 얻기 위한 방법으로 매우 다양한 기법들이 사용되고 있으나, 문제의 복잡도를 줄이기 위하여 구현 기술과 무관한 불린 함수(Boolean function) 단계에서 회로를 간소화하는 기법들과 기술 매핑을 위한 기법들로 분류할 수 있다.
MUX 구조 FPGA에 있어서, 구현 기술과 무관한 종래의 기술을 그대로 적용할 수 있으나 MUX 구조 FPGA가 갖는 특성으로 인하여 기존의 방법들을 그대로 사용할 경우에 비효율적인 형태의 회로가 구성될 수도 있다. 여기서, MUX 구조 FPGA 특성이란 기존의 회로 구현 방법이 라이브러리내의 다양한 게이트들로 회로를 구성하는 것에 반하여 FPGA의 경우에 단일 구조의 기본 셀만을 이용하여 원하는 회로를 구현하여야 함을 의미한다.
따라서, 종래에도 이러한 FPGA의 특성을 고려한 방법들이 존재하였으나 대부분 기술 매핑 과정에만 중점을 두고 있어 최적의 결과를 얻기가 어려웠다.
상기한 바와 같은 종래의 MUX 구조 FPGA가 갖는 특성으로 인한 비효율성을 불린 수학식(Boolean expression)을 통해 살펴보면 다음과 같다.
+ b'dfh'i'j' + b'd'egh' + b'd'eg'hl' + b'd'eh'ik' + b'd'eh'i'j'
상기한 바와 같은 불린 수학식의 경우에 종래의 방법을 이용하게 되면 4개의 FPGA 셀(즉, "Actel"사의 "ACT1" 구조를 가정)을 사용하여 수학식 2와 같이 표현할 수 있다.
t1= t2h' + g'hl'
t2= g + ik' + i'j'
t3= t1df + t1d'e
기존의 논리함수 분할 방법은 일반적으로 "Ashenhurst" 분할, "Roth-Karp" 분할, 및 커널(kernel) 분할 등으로 분류할 수 있다.
"Ashenhurst" 분할은 분할 챠트(decomposition chart)를 구성하여야 하므로 입력의 개수가 조금만 늘어나면 사용하기가 어렵다.
"Roth-Karp" 분할은 곱의합(SOP : Sum Of Product) 형식을 이용하므로 입력의 개수가 큰 경우에도 사용될 수 있다.
여기서,"Ashenhurst" 분할 및 "Roth-Karp" 분할은 입력이 중첩되지 않는 부분식으로 나누는 분리 분할(disjoint decomposition) 방식에 기초하고 있다.
커널을 이용한 분할은 주어진 논리식의 커널들을 이용하여 분할하는 방식이다.
그러나, 기존의 분할 방법들은 논리 함수의 분할을 통하여 전체 논리식의 리터럴(literal) 개수를 줄이는데 주안점을 두고 있기 때문에 MUX 방식의 FPGA를 이용한 집적회로 설계에는 적합하지 않다. 따라서, 종래의 방법으로 칩을 구성하는 경우에 다수의 셀을 포함하는 복잡한 구조로 설계되므로써 FPGA 내부의 셀 자원을 효율적으로 사용하지 못하고, 많은 셀로 인해 지연 시간이 길어지는 문제점이 있었다.
상기한 바와 같은 문제점을 해결하기 위하여 안출된 본 발명은, 다중화기(MUX) 방식의 필드-프로그래머블 게이트 어레이(FPGA)를 이용한 회로 설계시, 구현하고자 하는 논리 함수를 하나의 FPGA 셀로 구현이 가능한 논리식들로 분할하는 효과적인 방법을 통하여 FPGA 셀의 수를 줄이는 집적회로 설계를 위한 논리 함수 분할 방법을 제공하는데 그 목적이 있다.
도 1 은 본 발명에 따른 집적회로 설계를 위한 논리 함수 분할 방법에 대한 일실시예 흐름도.
상기 목적을 달성하기 위한 본 발명은, 다중화기(MUX) 방식의 필드-프로그래머블 게이트 어레이(FPGA)를 이용한 집적회로 설계를 위한 논리 함수 분할 방법에 있어서, 분할 대상 노드에 대한 모든 커널을 생성하여 생성된 분할 대상이 되는 논리식의 커널과 커널의 부분식들을 대상으로 하나의 셀로 구현이 가능한 모든 후보식을 생성하는 제 1 단계; 생성된 모든 후보식중에서 입력과 리터럴 개수를 기준으로 최적의 후보식을 선택하는 제 2 단계; 및 선택된 최적의 후보식을 이용하여 논리 함수를 분할하는 제 3 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명에 따른 집적회로 설계를 위한 논리 함수 분할 방법에 대한 일실시예 흐름도이다.
본 발명의 바람직한 실시예에 따른 집적회로 설계를 위한 논리 함수 분할 방법은 MUX 구조 FPGA의 셀로 구현이 가능한 형태의 부분식만을 분할한다. 이는 궁극적으로 주어진 논리 함수가 MUX 구조 FPGA로 구현되기 위해서는 하나의 셀로 구현이 가능할 정도로 작은 논리식들로 분할되어야만 하기 때문이다.
따라서, 이러한 집적회로 설계 방법은 FPGA를 이용한 모든 회로 설계 구현에 적용된다.
이러한 MUX 방식의 FPGA를 이용한 집적회로 설계를 위한 논리 함수 분할 방법을 상세히 살펴보면 다음과 같다.
먼저, 분할 노드(G,v)는 다단 조합 논리 회로를 표현하는 불린 네트워크(Boolean Network)(G) 및 분할 대상 노드(v)를 입력하여, 분할 대상 노드(v)에 대한 모든 커널을 생성한다(101). 여기서, 커널 생성은 기존의 커널 생성 절차(Kernel_gen routine)를 이용한다.
이때, 커널이 존재하지 않는 경우에는 수행을 중단하고 리턴한다.
이후, 분할 대상이 되는 논리식의 커널과 커널의 부분식들을 대상으로 하나의 셀로 구현이 가능한 모든 후보식을 생성한다(102).
이러한 후보식 생성 과정을 좀더 상세히 살펴보면 다음과 같다.
커널(k)이 하나의 셀로 매핑 가능하면 k를 후보식 리스트(L)에 추가한다. 여기서, L은 분할 대상 노드(v)를 분할하기 위한 후보식들의 리스트를 저장하기 위한 것으로 φ(Nil)로 초기화한다.
이때, 하나의 셀로 매핑 가능하다는 것은 k가 나타내는 논리식을 하나의 MUX 구조 FPGA 셀로 구현할 수 있다는 의미이다.
만약, 커널 k가 하나의 셀로 매핑되지 않지만 k'에 해당하는 논리식이 매핑 가능하면 k'을 후보식 리스트(L)에 추가한다.
한편, 커널 k 및 k'가 모두 매핑 불가능하면 커널 k에 대하여 분리 분할(Disjoint decomposition)을 수행한다. 여기서, 분리 분할이란 주어진 논리식을 구성하는 큐브(Cube)들이 서로 입력을 공유하지 않는 2개 이상의 그룹들로 구분되어질 경우에 그러한 그룹을 구하는 것이다.
따라서, 집합(M)은 각각의 논리식을 논리합(OR)하면 커널 k가 되는 부분식들의 집합이 된다.
집합(M)의 모든 부분 집합(N)에 대하여 값을 갖는 g를 후보식 리스트(L)에 추가한다. 여기서, g는 부분 집합(N)이 표현하는 논리식을 나타낸다.
상기한 바와 같은 후보식 생성 과정을 수행한 후에도 리스트(L)이 비어있으면 이러한 분할을 수행할 수 없으므로 리턴한다.
다음으로, 최적의 후보식을 선택한다(103). 이는 생성된 후보식중에서 가능한 많은 입력을 가지고 복잡도가 높은 것을 선택한다.
먼저, 생성된 후보식중 최적의 후보를 찾기 위해서는 변수(Best_sub)에 상수 함수 0을 지정한다.
이후, 후보식 리스트(L)의 모든 후보들(k)에 대하여 커널(k)의 복잡도가 지금까지 찾은 최상의 후보(Best_sub)보다 높으면 Best_sub를 커널 k로 변경하는 절차를 반복 수행한다. 여기서, 복잡도를 판단하는 기준은 입력의 개수가 많을수록 높은 복잡도를 갖고 있으며, 같은 입력 개수를 갖는 경우에는 논리식의 리터럴 개수가 많은 것이 높은 복잡도를 갖는다.
마지막으로,후보식을 이용하여 논리 함수를 분할한다(104).
이는 최적의 후보식 Best_sub를 불린 네트워크(G)의 새로운 노드(n)로 첨가한다(n=(G,Best_sub)). 그리고, 불린 네트워크(G)의 노드(v)에 대하여 n으로 대체될 수 있는 부분을 찾아 대체한다.
상기한 바와 같은 본 발명에 바람직한 실시예에 따른 집적회로 설계를 위한 논리 함수 분할 방법을 이용하는 경우에 종래의 방식에 비해 FPGA 셀의 수를 현격히 줄일 수 있는 효과가 있다.
예컨대, 수학식 2에 제시된 4개의 FPGA 셀은 2개의 FPGA 셀로 구현될 수 있다. 즉, 이러한 결과를 수학식으로 표현하면 수학식 3과 같다.
t = gh + g'h'ik + g'h'i'j + hl
따라서, 상기한 바와 같은 본 발명의 바람직한 실시예에 따른 MUX 방식의 FPGA를 이용하여 집적회로를 설계하는 경우에 주어진 논리 함수를 적은 수의 셀을 이용하여 효율적으로 구현할 수 있는 효과가 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기한 바와같은 본 발명에 따르면, 논리 함수의 분할 과정에 다중화기(MUX)방식의 필드-프로그래머블 게이트 어레이(FPGA)의 특성을 고려하여 보다 적은 수의 셀로 회로를 구현할 수 있고, MUX 구조 FPGA를 이용한 회로 설계 소프트웨어(S/W)에 사용할 수 있는 효과가 있다.
Claims (5)
- 다중화기(MUX) 방식의 필드-프로그래머블 게이트 어레이(FPGA)를 이용한 집적회로 설계를 위한 논리 함수 분할 방법에 있어서,분할 대상 노드에 대한 모든 커널을 생성하여 생성된 분할 대상이 되는 논리식의 커널과 커널의 부분식들을 대상으로 하나의 셀로 구현이 가능한 모든 후보식을 생성하는 제 1 단계;생성된 모든 후보식중에서 입력과 리터럴 개수를 기준으로 최적의 후보식을 선택하는 제 2 단계; 및선택된 최적의 후보식을 이용하여 논리 함수를 분할하는 제 3 단계를 포함하여 이루어진 집적회로 설계를 위한 논리 함수 분할 방법.
- 제 1 항에 있어서,상기 제 1 단계의 모든 커널은,분할 대상 논리 함수의 커널 및 반전 커널을 포함하는 것을 특징으로 하는 집적회로 설계를 위한 논리 함수 분할 방법.
- 제 2 항에 있어서,상기 제 1 및 제 2 단계의 모든 후보식은 각각,커널의 분리 분할을 이용하여 부분식들도 분할 후보에 포함하는 것을 특징으로 하는 다중화기(MUX) 방식의 필드-프로그래머블 게이트 어레이(FPGA)를 이용한 집적회로 설계를 위한 논리 함수 분할 방법.
- 제 3 항에 있어서,상기 제 2 단계는,각 커널이 하나의 셀로 매핑 가능한지를 판단하는 제 4 단계;상기 제 4 단계의 판단결과, 매핑 가능하면 매핑 가능한 커널만을 후보식 리스트에 저장하는 제 5 단계;부분 집합이 표현하는 논리식을 상기 후보식 리스트에 추가하는 제 6 단계;상기 제 4 단계의 판단결과, 매핑이 불가능하면 분리 분할하는 제 7 단계; 및상기 후보식 리스트의 모든 후보들에 대하여 커널의 복잡도에 따라 분할 후 남은 논리식들에 대하여 더 이상 진행할 수 없을 때까지 반복 적용하여 최적의 후보식을 선택하는 제 8 단계를 포함하여 이루어진 집적회로 설계를 위한 논리 함수 분할 방법.
- 제 1 항 또는 제 4 항에 있어서,상기 제 3 단계는,선택된 최적의 후보식을 불린(Boolean) 네트워크의 새로운 노드에 추가하는 제 9 단계; 및상기 불린 네트워크의 노드에 대하여 새로운 노드로 대체될 수 있는 부분을 찾아 대체하는 제 10 단계를 포함하여 이루어진 집적회로 설계를 위한 논리 함수 분할 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970078015A KR19990057936A (ko) | 1997-12-30 | 1997-12-30 | 다중화기 방식의 필드-프로그래머블 게이트 어레이를 이용한 집적회로 설계를 위한 논리 함수 분할 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970078015A KR19990057936A (ko) | 1997-12-30 | 1997-12-30 | 다중화기 방식의 필드-프로그래머블 게이트 어레이를 이용한 집적회로 설계를 위한 논리 함수 분할 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990057936A true KR19990057936A (ko) | 1999-07-15 |
Family
ID=66180006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970078015A KR19990057936A (ko) | 1997-12-30 | 1997-12-30 | 다중화기 방식의 필드-프로그래머블 게이트 어레이를 이용한 집적회로 설계를 위한 논리 함수 분할 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19990057936A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020021318A (ko) * | 2000-09-14 | 2002-03-20 | 가나이 쓰토무 | 논리회로의 설계방법, 논리회로의 설계지원 시스템, 및컴퓨터 판독 가능한 기록매체 |
-
1997
- 1997-12-30 KR KR1019970078015A patent/KR19990057936A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020021318A (ko) * | 2000-09-14 | 2002-03-20 | 가나이 쓰토무 | 논리회로의 설계방법, 논리회로의 설계지원 시스템, 및컴퓨터 판독 가능한 기록매체 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6047115A (en) | Method for configuring FPGA memory planes for virtual hardware computation | |
US6442732B1 (en) | Virtual logic system for solving satisfiability problems using reconfigurable hardware | |
US7224183B2 (en) | Fast method for functional mapping to incomplete LUT pairs | |
US7124392B2 (en) | Mapping of programmable logic devices | |
US7725871B1 (en) | SAT-based technology mapping framework | |
US9026967B1 (en) | Method and apparatus for designing a system on multiple field programmable gate array device types | |
Cong et al. | Boolean matching for LUT-based logic blocks with applications to architecture evaluation and technology mapping | |
US8836368B2 (en) | Non-LUT field-programmable gate arrays | |
Fang et al. | A hierarchical functional structuring and partitioning approach for multiple-FPGA implementations | |
Kim et al. | A new techology mapping for CPLD under the time constraint | |
Hsiao et al. | High‐performance Multiplexer‐based Logic Synthesis Using Pass‐transistor Logic | |
Saul | An algorithm for the multi-level minimization of Reed-Muller representations | |
KR19990057936A (ko) | 다중화기 방식의 필드-프로그래머블 게이트 어레이를 이용한 집적회로 설계를 위한 논리 함수 분할 방법 | |
Legl et al. | Computing support-minimal subfunctions during functional decomposition | |
KR20050105543A (ko) | Fpga를 이용한 집적회로 설계를 위한 논리함수 분할방법 | |
US7146582B2 (en) | Logic circuit optimizing method, logic circuit optimizing device and logic circuit composing device | |
Cong et al. | A Theory on Partially-Dependent Functional Decomposition with Application in LUT-based FPGA | |
CN107632816B (zh) | 通过在设计编制期间替换用于执行除法的部件来改进系统操作的方法和设备 | |
US7191427B2 (en) | Method for mapping a logic circuit to a programmable look up table (LUT) | |
Nikolic et al. | Finding a needle in the haystack of hardened interconnect patterns | |
Barkalov et al. | Mixed encoding of collections of microoperations for a microprogram finite-state machine | |
Kim et al. | An efficient CPLD technology mapping under the time constraint | |
EP3920073A1 (en) | Programmable integrated circuit underlay | |
Zgheib et al. | Enhanced technology mapping for FPGAs with exploration of cell configurations | |
Zhuang et al. | Logic synthesis for a fine-grain FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |