KR20130071331A - Method for automatically synthesizing tile routing structures for designing field programalbe gate array routing architecture - Google Patents

Method for automatically synthesizing tile routing structures for designing field programalbe gate array routing architecture Download PDF

Info

Publication number
KR20130071331A
KR20130071331A KR1020120037874A KR20120037874A KR20130071331A KR 20130071331 A KR20130071331 A KR 20130071331A KR 1020120037874 A KR1020120037874 A KR 1020120037874A KR 20120037874 A KR20120037874 A KR 20120037874A KR 20130071331 A KR20130071331 A KR 20130071331A
Authority
KR
South Korea
Prior art keywords
wiring
tile
tiles
bundle
wiring structure
Prior art date
Application number
KR1020120037874A
Other languages
Korean (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 KR20130071331A publication Critical patent/KR20130071331A/en

Links

Images

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/394Routing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PURPOSE: A method for automatically synthesizing a tile wiring structure for FPGA(Field Programmable Gate Array) wiring structure design is provided to automatically synthesize the tile wiring structure in order that an FPGA efficiently wires. CONSTITUTION: Shortest paths of a first tile and a second tile are searched(S130). A wiring pattern is searched corresponding to a search result of the shortest paths. Wiring patterns of first to third tiles are formed corresponding to the search result of the shortest paths. Third tiles are located on the shortest paths. The first to third tiles include the same wiring pattern. [Reference numerals] (AA) Start; (BB, EE, FF, II) No; (CC, DD, GG, HH) Yes; (JJ) End; (S110) Receive wiring structure specifications; (S115) Complex bundle wiring structure?; (S120) Configure a tile wiring graph; (S125) Convert into two point-to-point connection request using the minimum spanning tree; (S130) Search the shortest path on the tile wiring graph; (S135) Generate a bundle structure; (S140) Compose a simple bundle wiring structure; (S145) Bundle wiring structure to be composed is remained?; (S150) Wiring connection requested?; (S155) Configure a 3D wiring grid graph; (S160) Project a cell block and an existing wiring; (S165) Perform a time wiring device; (S170) Wiring connection request remained?

Description

필드 프로그래머블 게이트 어레이 배선 구조 설계를 위한 타일 배선 구조 자동 합성 방법{METHOD FOR AUTOMATICALLY SYNTHESIZING TILE ROUTING STRUCTURES FOR DESIGNING FIELD PROGRAMALBE GATE ARRAY ROUTING ARCHITECTURE}FIELD OF AUTOMATICALLY SYNTHESIZING TILE ROUTING STRUCTURES FOR DESIGNING FIELD PROGRAMALBE GATE ARRAY ROUTING ARCHITECTURE}

본 발명은 반도체 소자에 관한 것으로, 더 상세하게는 FPGA의 배선 구조를 자동으로 합성하는 방법에 관한 것이다.The present invention relates to a semiconductor device, and more particularly, to a method for automatically synthesizing a wiring structure of an FPGA.

필드 프로그래머블 게이트 어레이(Field Programable Gate Array, FPGA)는 원하는 기능을 현장에서 구현할 수 있도록 프로그램 가능한 메탈 배선과 프로그램 가능한 논리 요소가 포함된 반도체 소자이다. FPGA에서, 각 논리 요소들은 단순 XY형태로 배열되어 행렬형태의 FPGA의 구조(Fabric)를 형성한다. 프로그램 가능한 논리 요소는 AND, OR, XOR, NOT 등을 포함할 수 있다. FPGA는 주문형 반도체(ASIC)와 달리 사용자의 설계에 의해 논리 요소들의 연결관계가 구현될 수 있기 때문에 개발시간이 짧고, 오류가 현장에서 수정될 수 있고, 초기 개발비가 저렴하다는 장점이 있다.Field Programmable Gate Arrays (FPGAs) are semiconductor devices that contain programmable metal wiring and programmable logic elements to enable field implementation of desired functionality. In an FPGA, each logical element is arranged in a simple XY form to form a fabric of the matrix FPGA. Programmable logical elements may include AND, OR, XOR, NOT, and the like. Unlike ASICs, FPGAs have the advantage of short development time, error correction in the field, and low initial development cost because the connection of logic elements can be implemented by user's design.

최근 FPGA에 대한 기능적 요구사항이 높아지면서 FPGA의 복잡도가 증가하고 있다. 예를 들어, FPGA는 각종 프로세서, 메모리, 고성능 IP(Intellectual Property), 및 고속 I/O 등이 제공되고 있다. 이로 인해, FPGA의 배선 구조가 복잡해지고 배선지연시간이 증가하고 있다. 따라서, FPGA의 배선 지연시간을 줄여 FPGA를 고성능화하기 위한 배선 구조를 자동으로 합성하는 설계툴이 요구되고 있다.Increasing functional requirements for FPGAs have increased the complexity of FPGAs. For example, FPGAs are provided with various processors, memory, high-performance Intellectual Property (IP), and high-speed I / O. As a result, the wiring structure of the FPGA is complicated and the wiring delay time is increased. Therefore, there is a need for a design tool that automatically synthesizes a wiring structure for improving FPGA performance by reducing wiring delay time of the FPGA.

본 발명의 목적은 FPGA가 효율적인 배선을 수행할 수 있도록 배선 구조를 자동으로 합성하는 방법을 제공하는데 있다.An object of the present invention is to provide a method for automatically synthesizing a wiring structure so that the FPGA can perform efficient wiring.

본 발명의 실시 예에 따른 필드 프로그래머블 게이트 어레이의 배선구조의 자동 합성 방법은 제 1 타일과 제 2 타일의 최단 경로를 탐색하는 단계; 상기 최단 경로 탐색 결과에 따라, 배선 패턴을 탐색하는 단계; 그리고 상기 배선 패턴 탐색 결과에 따라, 제 1 내지 제 3 타일의 배선 패턴을 형성하는 단계를 포함하고, 상기 제 3 타일은 상기 최단 경로 상에 위치한 타일들이며, 상기 제 1 내지 제 3 타일들은 동일한 배선 패턴을 포함하게 하는 배선 구조 자동 합성 방법이다.According to an embodiment of the present disclosure, a method of automatically synthesizing a wiring structure of a field programmable gate array may include: searching for a shortest path between a first tile and a second tile; Searching for a wiring pattern according to the shortest path search result; And forming a wiring pattern of first to third tiles according to the wiring pattern search result, wherein the third tile is tiles located on the shortest path, and the first to third tiles are the same wiring. A method of automatically synthesizing a wiring structure to include a pattern.

본 발명의 실시 예에 따른 필드 프로그래머블 게이트 어레이 배선구조 설계를 위한 타일 배선 구조 자동 합성 방법은 3차원 배선 그리드 그래프를 형성하는 단계; 상기 3차원 배선 그리드 그래프에 방향에 따라 서로 다른 가중치를 설정하는 단계; 상기 3차원 배선 그리드 그래프에 패드타일의 셀블록들을 투영하는 단계; 상기 투영된 셀블록들을 기반으로 상기 3차원 배선 그리드 그래프에 추가 가중치를 설정하는 단계; 그리고 상기 가중치 및 상기 추가 가중치를 기반으로, 로직타일 및 상기 패드타일간 배선패턴을 형성하는 단계를 포함하고, 상기 설정된 추가 가중치는 상기 3차원 배선 그리드 그래프 중 상기 투영된 셀블록들에 가까운 상기 그리드에 높게 설정되는 배선 구조 자동 합성 방법이다.According to one or more exemplary embodiments, a method of automatically synthesizing a tile wiring structure for a field programmable gate array wiring structure design includes: forming a three-dimensional wiring grid graph; Setting different weights according to directions on the 3D wiring grid graph; Projecting cell blocks of pad tiles onto the 3D wiring grid graph; Setting additional weights on the 3D wiring grid graph based on the projected cellblocks; And forming a wiring pattern on the logic tile and the pad tile based on the weight and the additional weight, wherein the set additional weight is closer to the projected cell blocks in the 3D wiring grid graph. It is a method of automatically synthesizing the wiring structure set to a high level.

본 발명에 따르면, 동일한 배선 패턴을 갖는 타일들을 통해, 원하는 연결관계를 구현할 수 있는 배선 구조 자동 합성 방법이 제공된다. 따라서, 감소된 비용 및 향상된 성능을 갖는 배선 합성 방법이 제공된다.According to the present invention, there is provided a method for automatically synthesizing a wiring structure through which tiles having the same wiring pattern can realize a desired connection relationship. Thus, there is provided a wiring synthesis method with reduced cost and improved performance.

도 1은 FPGA의 계층적 배선 구조를 보여준다.
도 2는 수평 이중 배선의 예를 보여준다.
도 3은 본 발명의 실시 예에 따른 수평 이중 배선을 위한 타일 구조를 보여준다.
도 4는 도 3의 타일을 반복하여 연결한 예를 보여준다.
도 5는 수평/수직 배선이 혼합된 복합 배선 구조의 예를 보여준다.
도 6은 본 발명의 실시 예에 따른 도 5의 배선 구조를 위한 타일 구조를 보여준다.
도 7은 도 6의 타일을 반복하여 구현된 배선 구조를 보여준다.
도 8은 FPGA 타일의 구조를 보여주는 블록도이다.
도 9는 FPGA 타일 블록의 배선 구조 자동 합성 방법을 보여주는 순서도이다.
도 10은 수평 이중 배선의 예를 보여준다.
도 11은 본 발명의 실시 예에 따른 수평 이중 배선을 위한 번들 구조를 보여준다.
도 12a 내지 도 12c는 본 발명의 실시 예에 따른 수평 이중 배선 번들의 합성 단계를 보여준다.
도 13은 수평 헥스 배선의 예를 보여준다.
도 14는 본 발명의 실시 예에 따른 수평 헥스 배선의 합성 결과를 보여준다.
도 15는 도 14의 수평 헥스 배선 타일을 반복한 예를 보여준다.
도 16은 본 발명의 실시 예에 따른 다양한 수평/수직 번들들이 있는 타일의 구조를 보여주는 블록도이다.
도 17은 상/하/좌/우 각각 방향의 이중 배선이 있는 타일의 실시 예를 보여준다.
도 18은 본 발명의 실시 예에 따른 타일 배선 모델을 보여준다.
도 19는 본 발명의 실시 예에 따른 타일 배선 그래프와 배선 구조의 연결도를 보여준다.
도 20a 및 도 20b는 본 발명의 실시 예에 따른 최단 거리 탐색 방법을 보여준다.
도 21은 도 19의 타일 배선 그래프에서 탐색 영역을 바운딩 박스로 제안한 타일 배선 그래프와 배선 구조의 2점간 연결도를 보여준다.
도 22는 본 발명의 실시 예에 따른 배선 그래프 상에서의 최단 경로 탐색 결과를 보여준다.
도 23은 본 발명의 실시 예에 따른 최단 경로로부터 추출된 번들들을 보여준다.
도 24는 본 발명의 실시 예에 따른 타일 내에서 번들의 위치 할당을 보여준다.
도 25는 본 발명의 실시 예에 따른 합성된 타일 배선 구조를 보여준다.
도 26은 도 25의 타일들을 반복 배열한 실시 예를 보여준다.
도 27은 FPGA의 타일 구조를 보여준다.
도 28은 블록메모리 타일의 배선 구조를 보여준다.
도 29은 패드 타일의 배선 구조를 보여준다.
도 30은 본 발명의 실시 예에 따른 타일 배선 그리드를 보여준다.
도 31은 도 30의 타일 배선 그리드가 3차원으로 변형된 3차원 타일 배선 그리드 그래프를 보여준다.
도 32는 본 발명의 실시 예에 따른 셀 블록과 기존 배선 구조의 3차원 배선 그리드 그래프로의 투영한 그래프를 보여준다.
도 33은 선배선으로 인한 후배선의 배선 실패 예를 보여준다.
도 34는 본 발명의 실시 예에 따른 셀 영역 부근의 가중치 설정 방법을 보여준다.
도 35는 가중치 조정으로 배선에 성공한 실시 예를 보여준다.
1 shows a hierarchical wiring structure of an FPGA.
2 shows an example of horizontal double wiring.
3 shows a tile structure for horizontal double wiring according to an embodiment of the present invention.
4 shows an example in which the tiles of FIG. 3 are repeatedly connected.
5 shows an example of a composite wiring structure in which horizontal / vertical wiring is mixed.
6 illustrates a tile structure for the wiring structure of FIG. 5 according to an exemplary embodiment of the present invention.
FIG. 7 illustrates a wiring structure implemented by repeating the tile of FIG. 6.
8 is a block diagram showing the structure of an FPGA tile.
9 is a flowchart illustrating a method of automatically synthesizing a wiring structure of an FPGA tile block.
10 shows an example of horizontal double wiring.
11 is a view illustrating a bundle structure for horizontal double wiring according to an exemplary embodiment of the present invention.
12A through 12C illustrate a step of synthesizing a horizontal double wire bundle according to an exemplary embodiment of the present invention.
13 shows an example of a horizontal hex wiring.
14 shows the synthesis result of the horizontal hex wiring according to an embodiment of the present invention.
FIG. 15 shows an example of repeating the horizontal hex wiring tile of FIG. 14.
16 is a block diagram illustrating a structure of a tile having various horizontal / vertical bundles according to an embodiment of the present invention.
FIG. 17 shows an embodiment of a tile having double wiring in up / down / left / right directions.
18 shows a tile wiring model according to an embodiment of the present invention.
19 illustrates a connection diagram of a tile wiring graph and a wiring structure according to an exemplary embodiment of the present invention.
20A and 20B illustrate a shortest distance searching method according to an embodiment of the present invention.
FIG. 21 shows a connection diagram between two points of a tile wiring graph and a wiring structure in which the search area is bounded by the tile wiring graph of FIG. 19.
22 illustrates a shortest path search result on a wiring graph according to an exemplary embodiment of the present invention.
23 shows bundles extracted from the shortest path according to an embodiment of the present invention.
24 is a view illustrating a location allocation of a bundle in a tile according to an embodiment of the present invention.
25 is a view illustrating a synthesized tile wiring structure according to an embodiment of the present invention.
FIG. 26 illustrates an embodiment in which the tiles of FIG. 25 are repeatedly arranged.
27 shows the tile structure of the FPGA.
28 shows a wiring structure of a block memory tile.
29 shows the wiring structure of the pad tile.
30 is a view illustrating a tile wiring grid according to an embodiment of the present invention.
FIG. 31 illustrates a three-dimensional tile wiring grid graph in which the tile wiring grid of FIG. 30 is modified in three dimensions.
32 is a graph illustrating a projection of a cell block and a conventional wiring structure onto a three-dimensional wiring grid graph according to an embodiment of the present invention.
33 shows an example of the wiring failure of the back wiring due to the wiring.
34 is a view illustrating a weight setting method near a cell area according to an embodiment of the present invention.
35 shows an embodiment in which wiring is successful by adjusting the weight.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the technical idea of the present invention. .

도 1은 FPGA(100)의 계층적 배선 구조를 보여준다. 도 1을 참조하면, FPGA(100)의 계층적 배선 구조는 단일 배선(R01), 이중 배선(R02), 헥스 배선(R03) 등을 포함한다. 단일배선(R01)은 한 논리 블록 및 주변의 인접한 논리 블록들과 직접 연결되는 배선이다. 이중배선(R02)은 상/하/좌/우 방향으로 2블록 거리의 논리 블록들에 직접 연결되는 배선이다. 헥스배선(R03)은 상/하/좌/우 방향으로 각각 6블록 거리의 논리 블록들에 직접 연결되는 배선으로, 3번째 블록들에 연결 가능한 단자가 제공될 수 있다.1 shows a hierarchical wiring structure of the FPGA 100. Referring to FIG. 1, the hierarchical wiring structure of the FPGA 100 includes a single wiring R01, a double wiring R02, a hex wiring R03, and the like. The single wiring R01 is a wiring directly connected to one logic block and adjacent adjacent logic blocks. The double wiring R02 is a wiring directly connected to logic blocks two blocks apart in the up / down / left / right directions. The hex wire R03 is a wire directly connected to logic blocks 6 blocks apart in the up / down / left / right directions, and a terminal connectable to the third blocks may be provided.

FPGA(100)는 논리 블록들 및 프로그램 가능한 배선 구조를 갖는 타일 블록들을 포함한다. FPGA의 구조는 논리 블록들 및 타일 블록들을 원하는 용량만큼 반복 배치하여 형성된다.The FPGA 100 includes logic blocks and tile blocks having a programmable wiring structure. The structure of the FPGA is formed by repeatedly placing logical blocks and tile blocks by a desired capacity.

도 2 내지 도 4는 이중 배선 및 이중 배선을 위한 배선 구조의 예를 보여준다. 도 2 내지 도 4를 참조하면, 도 2에 도시된 이중배선이 구현될 경우, 도 3에 도시된 배선구조가 타일 블록에 형성될 수 있다. 도 4에 도시된 바와 같이, 도 3에 도시된 배선 구조를 갖는 타일들의 단순 반복을 통해 원하는 배선 구조가 형성될 수 있다.2 to 4 show examples of wiring structures for double wiring and double wiring. 2 to 4, when the double wiring shown in FIG. 2 is implemented, the wiring structure shown in FIG. 3 may be formed in the tile block. As shown in FIG. 4, a desired wiring structure may be formed through simple repetition of tiles having the wiring structure shown in FIG. 3.

도 5 내지 도 7은 세 개의 타일 블록들이 이중 배선을 통해 연결되는 예를 보여준다. 도 5에 도시된 이중 배선이 구현될 경우, 도 6에 도시된 배선 구조와 도 3에 도시된 배선 구조가 타일 블록들에 형성될 수 있다. 도 7에 도시된 바와 같이, 도 3 및 도 6에 도시된, 배선 구조들의 반복을 통해 원하는 배선 구조가 형성될 수 있다.5 to 7 show an example in which three tile blocks are connected through a double wiring. When the dual wiring shown in FIG. 5 is implemented, the wiring structure shown in FIG. 6 and the wiring structure shown in FIG. 3 may be formed in the tile blocks. As shown in FIG. 7, the desired wiring structure may be formed through repetition of the wiring structures illustrated in FIGS. 3 and 6.

본 발명은 도 2 또는 도 5에 도시된 배선 구조들의 연결 관계들을 입력받아, 도 3 또는 도 6에 도시된 타일들의 자동 합성을 통해, 도 4 및 도 7에 도시된 FPGA의 배선 구조가 자동으로 형성되는 방법을 제공한다. 또한 본 발명은 패드 또는 블록 메모리, 곱셈기 등의 IP하드웨어가 포함된 PAD/IP(Intellectual Property) 타일 블록의 배선 구조가 합성될 경우, 이미 확정된 배선구조를 갖는 타일들이 연결될 수 있도록 배선 구조가 합성되는 방법을 제공한다.The present invention receives the connection relationships of the wiring structures shown in FIG. 2 or 5, and through the automatic synthesis of the tiles shown in FIG. 3 or 6, the wiring structure of the FPGA shown in FIGS. It provides a method to be formed. In addition, in the present invention, when a wiring structure of a PAD / IP (Intellectual Property) tile block including IP hardware such as a pad or a block memory and a multiplier is synthesized, the wiring structure is synthesized so that tiles having a predetermined wiring structure can be connected. It provides a way to be.

도 8은 FPGA 타일(Configurable Logic Block, T[0,1])의 구조를 보여준다. 타일(T[0,1])의 기능블록(110)은 회로의 논리를 구현한다. SRAM 타입의 FPGA인 경우, 기능블록(110)은 Look-up Table, Mux, 플립플롭 등을 포함한다.8 shows the structure of an FPGA tile (Configurable Logic Block, T [0,1]). The function block 110 of the tile T [0,1] implements the logic of the circuit. In the case of an SRAM type FPGA, the function block 110 includes a look-up table, a mux, a flip-flop, and the like.

스위치 박스(120)는 복수의 스위치들을 포함한다. 스위치 박스(120)는 외부에서 프로그래밍 정보를 수신하여, 복수의 스위치들을 통해 원하는 연결관계를 구현할 수 있다. 메탈 배선들은 스위치 박스 상하의 수평 배선들(130, 140)과 좌우의 수직 배선들(150, 160)로 구성된다. The switch box 120 includes a plurality of switches. The switch box 120 may receive programming information from the outside and implement a desired connection through a plurality of switches. The metal wires include horizontal wires 130 and 140 above and below the switch box and vertical wires 150 and 160 on the left and right sides.

도 9는 본 발명의 실시 예에 따른 타일 합성기의 동작을 보여주는 순서도이다. 예시적으로, 도 9에 도시된 순서도에 따라 타일 배선 구조가 합성된다.9 is a flowchart illustrating an operation of a tile synthesizer according to an embodiment of the present invention. By way of example, tile wiring structures are synthesized according to the flowchart shown in FIG. 9.

도 9를 참조하면, S110 단계에서, 타일 합성기는 배선 구조 사양을 수신한다. S115 단계에서, 수신된 배선 구조 사양이 복합 번들 배선 구조인지 판별할 수 있다. 판별 결과에 따라, 복합 번들 배선 구조가 아닐 경우, S140 단계에서, 단순 번들 배선 구조가 합성될 수 있다.Referring to FIG. 9, in step S110, the tile synthesizer receives a wiring structure specification. In step S115, it may be determined whether the received wiring structure specification is a composite bundle wiring structure. According to the determination result, if the composite bundle wiring structure is not, in step S140, the simple bundle wiring structure may be synthesized.

판별 결과에 따라, 복합 번들 배선 구조일 경우, S120 단계에서, 타일 배선 그래프가 구성될 수 있다. S125 단계에서, 구성된 타일 배선 그래프는 최소신장트리를 이용하여 2점간 연결 요구로 변환될 수 있다. S130 단계에서, 변환될 타일 배선 그래프 상에서 최단 경로가 탐색될 수 있다. S135 단계에서, 최단경로 탐색 결과를 기반으로 번들 구조가 생성될 수 있다. S140 단계에서, 단순 번들 배선 구조가 합성될 수 있다.According to the determination result, in the case of the composite bundle wiring structure, the tile wiring graph may be configured in step S120. In step S125, the configured tile wiring graph may be converted into a two-point connection request using the minimum extension tree. In operation S130, the shortest path may be searched on the tile wiring graph to be converted. In operation S135, the bundle structure may be generated based on the shortest path search result. In operation S140, a simple bundle wiring structure may be synthesized.

S145 단계에서, 합성될 번들 배선 구조가 남았는지 판별될 수 있다. 판별 결과에 따라, 합성될 번들 배선 구조가 남았을 경우, S115 단계의 동작을 수행하게 된다. 판별 결과에 따라, 합성될 번들 배선 구조가 남지 않을 경우, S150 단계에서 배선 연결 요구가 있는지 판별될 수 있다. 배선 연결요구가 없을 경우, 타일 배선 구조 합성 동작은 종료된다.In operation S145, it may be determined whether a bundle wiring structure to be synthesized remains. According to the determination result, when the bundle wiring structure to be synthesized remains, the operation of step S115 is performed. According to the determination result, if there is no bundle wiring structure to be synthesized, it may be determined whether there is a wiring connection request in step S150. If there is no wiring connection request, the tile wiring structure synthesizing operation is terminated.

배선 연결요구가 있을 경우, S155 단계에서, 3차원 배선 그리드 그래프가 구성될 수 있다. S160 단계에서, 셀블록과 기존 배선은 구성된 3차원 배선 그리드 그래프에 투영될 수 있다. S165 단계에서, 3차원 배선 그리드 그래프를 기반으로 타일 배선기가 수행된다. S170 단계에서, 배선 연결 요구가 남았는지 판별될 수 있다. 배선 연결요구가 남았을 경우, S165 단계의 동작을 수행한다. 배선 연결 요구가 남지 않았을 경우, 타일 배선 구조 합성 동작을 종료한다. 이하 도면들에서 도 9의 타일 배선 구조 합성 방법이 상세하게 설명된다.If there is a wiring connection request, in step S155, a 3D wiring grid graph may be constructed. In operation S160, the cell block and the existing wiring may be projected onto the configured 3D wiring grid graph. In step S165, the tile wiring machine is performed based on the three-dimensional wiring grid graph. In step S170, it may be determined whether a wire connection request remains. If a wire connection request remains, the operation of step S165 is performed. If no wiring connection request remains, the tile wiring structure synthesizing operation ends. Hereinafter, the method of synthesizing the tile wiring structure of FIG. 9 will be described in detail.

도 10 내지 도 12는 본 발명의 실시 예에 따른 수평 이중 배선 및 수평 이중 배선을 위한 타일 배선 구조를 보여준다. 예시적으로, 간결한 설명을 위하여, 타일 블록들의 구성요소들 및 그에 따른 참조 번호들은 생략된다.10 to 12 illustrate a tile wiring structure for horizontal double wiring and horizontal double wiring according to an exemplary embodiment of the present invention. By way of example, for the sake of brevity, the components of the tile blocks and the reference numbers thereof are omitted.

도 10 내지 도 12를 참조하면, 수평 이중 배선(R02)은 수평 방향으로만 연결된다. 이러한 배선 구조는 단순 번들 배선 구조라 불린다. 단순 번들 배선은 도 11에 도시된 하나의 번들(200)을 포함할 수 있다. 도 2에 도시된 타일(T[0,1])의 포트(P1)에서 시작한 이중 배선(R02)은 타일(T[1,1])을 거쳐 타일(T[2,1])의 포트(P2)에 연결된다. 수평 배선의 경우 좌측 타일, 수직 배선의 경우 하단의 타일을 기준으로 스테이지번호가 할당되고, 우측(상단)으로 진행하면서 스테이지번호가 증가된다. 예를 들어, 도 10의 타일들(T[0,1], T[1,1], T[2,1])에 각각 제 1 내지 제 3 스테이지 번호들이 할당된다.10 to 12, the horizontal double wire R02 is connected only in the horizontal direction. This wiring structure is called a simple bundle wiring structure. The simple bundle wiring may include one bundle 200 shown in FIG. 11. The double wiring R02 starting from the port P1 of the tile T [0,1] shown in FIG. 2 passes through the tile T [1,1] to the port (T [2,1]) of the tile (T [2,1]). Connected to P2). In the case of the horizontal wiring, the stage number is allocated based on the left tile and in the case of the vertical wiring, the stage number is increased while proceeding to the right (upper). For example, the first to third stage numbers are assigned to the tiles T [0, 1], T [1, 1], and T [2, 1] of FIG. 10, respectively.

도 10에 도시된 이중 배선(R02)의 스테이지의 수는 3이고, 이를 구현하기 위한 번들(200)에 수학식 1과 같은 트랙들이 할당된다.The number of stages of the double line R02 shown in FIG. 10 is 3, and tracks such as Equation 1 are allocated to the bundle 200 for implementing the double line R02.

Figure pat00001
Figure pat00001

수학식 1에 따르면, 도 11의 번들(200)에 제 1 및 제 2 트랙들이 할당된다. 수평 이중 배선 구조는 각 스테이지 순서대로 이중 배선 번들에 할당된 트랙들에 구현된다. 예를 들어, 도 12a에 도시된 바와 같이, 포트(P1)에 제 1 트랙이 연결된 제 1 스테이지가 구현된다. 도 12b에 도시된 바와 같이, 제 1 트랙에서 시작하여 오프셋 변경점(201)에서 제 2 트랙으로 변경되는 배선 라인이 연결된 제 2 스테이지가 구현된다. 도 12c에 도시된 바와 같이 제 2 트랙과 포트(P2)가 연결된 제 3 스테이지가 구현된다.According to Equation 1, the first and second tracks are allocated to the bundle 200 of FIG. 11. The horizontal double wire structure is implemented in tracks assigned to the double wire bundle in each stage order. For example, as shown in FIG. 12A, a first stage in which a first track is connected to the port P1 is implemented. As shown in FIG. 12B, a second stage is implemented in which wiring lines are connected starting from the first track and changing from the offset change point 201 to the second track. As shown in FIG. 12C, a third stage to which the second track and the port P2 are connected is implemented.

도 13은 수평 헥스 배선의 예를 보여준다. 도 13을 참조하면, 수평 헥스 배선(R03)은 타일(T[0,1])의 포트(P1)와 타일(T[2,1])의 포트(P2), 타일(T[5,1])의 포트(P3)에 연결된다. 도 14에 도시된 배선 구조는 도 10 내지 도 12를 참조하여 설명된 것과 같은 방법으로 합성된다. 도 14에 도시된 타일이 가로 방향으로 6개 연결되면 도 15에 도시된 수평 헥스 배선(R03)이 구현된다.13 shows an example of a horizontal hex wiring. Referring to FIG. 13, the horizontal hex wiring R03 includes a port P1 of the tile T [0,1], a port P2 of the tile T [2,1], and a tile T [5,1]. ]) Is connected to port P3. The wiring structure shown in FIG. 14 is synthesized in the same manner as described with reference to FIGS. 10 to 12. When six tiles shown in FIG. 14 are connected in a horizontal direction, the horizontal hex wiring R03 shown in FIG. 15 is implemented.

도 16은 본 발명의 실시 예에 따른, 복수의 번들들을 포함하는 타일의 구조를 보여준다. 도 16을 참조하면, FPGA 원판은 다양한 형태의 배선을 구현하기 위한 여러 형태의 번들들(220, 230, 240, 250, 260, 270, 280, 290)을 포함하고, 각 번들들(220, 230, 240, 250, 260, 270, 280, 290)은 수학식 1에 기반된 트랙들을 포함할 수 있다. 수학식 1에 기반된 트랙들을 통해 배선 구조는 합성될 수 있다.16 illustrates a structure of a tile including a plurality of bundles according to an embodiment of the present invention. Referring to FIG. 16, an FPGA disc includes various types of bundles 220, 230, 240, 250, 260, 270, 280, and 290 for implementing various types of wiring, and each bundle 220, 230. , 240, 250, 260, 270, 280, and 290 may include tracks based on Equation 1. Through the tracks based on Equation 1, the wiring structure can be synthesized.

도 17은 본 발명의 실시 예에 따른 상/하/좌/우 각 방향의 이중 배선들을 포함하는 타일의 예를 보여준다. 도 17을 참조하면, 도 17에 도시된 배선 구조를 통해, 상/하/좌/우에 위치한 타일들과 이중 배선이 형성되고, 서로 연결될 수 있다.17 illustrates an example of a tile including dual wires in up, down, left, and right directions according to an exemplary embodiment of the present invention. Referring to FIG. 17, through the wiring structure illustrated in FIG. 17, tiles positioned in upper / lower / left / right and double wirings may be formed and connected to each other.

도 5에 도시된 수평 및 수직 배선이 혼합된 복합적인 배선 구조의 경우, 하나의 단순 번들 배선 구조로는 구현이 불가능하다. 따라서, 배선 구조는 복수의 번들 구조를 포함할 수 있다.In the case of the complex wiring structure in which the horizontal and vertical wirings shown in FIG. 5 are mixed, it is impossible to implement a single bundle wiring structure. Thus, the wiring structure may include a plurality of bundle structures.

본 발명은 도 18에 도시된 바와 같이 하나의 타일 내에서 배선 구조를 합성할 때 필요한 요소들을 간략화하여 그래프 형태로 표현한 타일 배선 모델을 제공한다. 타일 배선 모델에서 원은 배선 트랙, 포트 등의 배선 요소를 의미하는 연결점이다. 타일 배선 모델에서 연결선은 각 배선 요소들 간의 연결 관계를 의미한다. PN은 스위치 박스의 북쪽 방향에 위치한 모든 포트들을 가리킨다. PS는 스위치 박스의 남쪽 방향에 위치한 모든 포트들을 가리킨다. PW는 스위치 박스의 서쪽 방향에 위치한 모든 포트들을 가리킨다. PE는 스위치 박스의 동쪽 방향에 위치한 모든 포트들을 가리킨다. HN는 스위치 박스 북쪽에 할당된 수평 배선 트랙들을 가리킨다. HS는 스위치 박스 남쪽에 할당된 수평 배선 트랙들을 가리킨다. VW는 스위치 박스 서쪽에 할당된 수직 배선 트랙들을 가리킨다. VE는 스위치 박스 동쪽에 할당된 수직 배선 트랙들을 가리킨다.As shown in FIG. 18, the present invention provides a tile wiring model in which the elements necessary for synthesizing the wiring structure in one tile are simplified and represented in a graph form. In the tile wiring model, a circle is a connection point for wiring elements such as wiring tracks and ports. In the tile wiring model, the connecting line means a connection relationship between each wiring element. PN refers to all ports located north of the switch box. PS refers to all ports located south of the switch box. PW refers to all ports located west of the switch box. PE refers to all ports located east of the switch box. HN indicates horizontal wiring tracks assigned to the north of the switch box. HS refers to the horizontal wiring tracks assigned to the south of the switch box. VW refers to the vertical wiring tracks assigned to the west of the switch box. VE refers to the vertical wiring tracks assigned to the east side of the switch box.

도 19는 본 발명의 실시 예에 따른 타일 배선 그래프를 보여준다. 19 illustrates a tile wiring graph according to an embodiment of the present invention.

도 5, 도 18, 및 도 19를 참조하면, 타일합성기는 합성될 배선 구조 사양을 수신한다. 배선 연결 요구를 도 18의 타일 배선 모델을 이용하여 구성한 타일 배선 그래프로 표현한 예는 도 19에 도시된다. 타일 배선 그래프는 타일 배선 모델이 2차원 배열 형태로 구성된 그래프이다.5, 18, and 19, the tile synthesizer receives the wiring structure specification to be synthesized. An example in which a wiring connection request is expressed by a tile wiring graph constructed using the tile wiring model of FIG. 18 is shown in FIG. 19. The tile wiring graph is a graph in which the tile wiring model is composed of a two-dimensional array.

도 20은 도 19에 도시된 연결 요구를 기반으로 최단경로를 탐색하는 방법을 보여준다. 도 19 및 도 20을 참조하면, 생성될 배선 구조가 최소 트랙으로 구현되기 위해, 연결 요구가 있는 포트들(P1, P2, P3)이 연결점들로 결정되고, 연결점들을 연결하는 연결선들에 맨하탄 거리(manhattan distance)를 가중치(weight)로 하는 완전 그래프가 형성된다. 완전그래프는 도 20a에 도시된다. 형성된 그래프를 기반으로, 최소 신장 트리(Minimum Spanning Tree)가 형성되고, 여러 개의 2점간 연결 요구가 형성된다. 형성된 연결 요구는 도 20b에 도시된다. 20 illustrates a method of searching for the shortest path based on the connection request shown in FIG. 19. 19 and 20, in order for the wiring structure to be generated to be realized with a minimum track, ports P1, P2, and P3 having a connection request are determined as connection points, and a Manhattan distance to the connection lines connecting the connection points. A complete graph is formed with a weight of (manhattan distance). The complete graph is shown in FIG. 20A. Based on the formed graph, a minimum spanning tree is formed, and several two-point connection requests are formed. The connection request formed is shown in FIG. 20B.

도 21 내지 도 22는 도 19에 도시된 타일 배선 그래프에서 도 20b에 도시된 2점간 연결 요구 각각의 바운딩 박스들 이외의 영역을 타일 배선 그래프에서 제거한 결과이다. 타일 합성기는 도 21의 과정을 통해 간략한 결과를 얻을 수 있다. 도 21 내지 도 22를 참조하면, 타일 합성기는 타일 배선 그래프에서 2점간 연결 요구들 간의 최단 경로를 그래프 최단경로 알고리즘을 적용할 수 있다. 타일 합성기는 도 22에 도시된 최단 경로(R20)를 구할 수 있다.21 to 22 show a result of removing regions other than the bounding boxes of each of the two-point connection requests shown in FIG. 20B from the tile wiring graph shown in FIG. 19. The tile synthesizer can obtain a brief result through the process of FIG. 21. 21 to 22, the tile synthesizer may apply the graph shortest path algorithm to the shortest path between two connection points in the tile wiring graph. The tile synthesizer can find the shortest path R20 shown in FIG. 22.

최단 경로(R20)상에 위치한 배선 트랙과 관련된 연결점들 중, 동일한 타입이 연속된 연결점들을 분할하여 번들로 만들면 도 22에 도시된 바와 같이 수직 번들(290)과 수평 번들(240)이 생성된다. 도 22의 번들들(240, 290)간 연결점(300)을 추출하여 도 25에 도시된 바와 같이 각 번들들에 배선 트랙을 할당할 때 트랙이 연결되도록 좌표가 조정된다.Among the connection points associated with the wiring track located on the shortest path R20, when the same type of continuous connection points are divided and bundled, a vertical bundle 290 and a horizontal bundle 240 are generated as shown in FIG. 22. Coordinates are adjusted so that the tracks are connected when the connection point 300 between the bundles 240 and 290 of FIG. 22 is extracted and the wiring track is assigned to each bundle as shown in FIG. 25.

도 23은 타일 배선 그래프의 최단 경로에서 추출된 2개의 번들들(240, 290)을 보여주고 있으며, 이 2개의 번들들은 번들들을 구성하는 연결점들의 타입에 따라 도 24에서와 같이 번들에 위치가 할당된다. 도 24의 각각의 번들들이 앞서 설명된 단순 번들 배선 구조의 합성 방법으로 합성되면, 도 25와 같이 최종적인 타일 배선 구조가 합성된다. 합성된 타일들이 3x3으로 배열되면, 도 26에 도시된 배선 구조 사양과 같은 배선 구조를 형성할 수 있다.FIG. 23 shows two bundles 240 and 290 extracted from the shortest path of the tile wiring graph, and the two bundles are assigned positions to the bundles as shown in FIG. 24 according to the type of connection points constituting the bundles. do. When the bundles of FIG. 24 are synthesized by the method of synthesizing the simple bundle interconnection structure described above, the final tile interconnection structure is synthesized as shown in FIG. 25. If the synthesized tiles are arranged in 3x3, a wiring structure like the wiring structure specification shown in Fig. 26 can be formed.

도 27에 도시된 바와 같이 PAD/IP 타일은 2차원 배열의 로직 타일과 달리 1차원 배열로 구현된다. PAD/IP(Intellectual Property) 타일 블록은 패드 또는 블록 메모리, 곱셈기 등의 IP하드웨어가 포함된 타일이다. 패드 타일들은 FPGA 칩의 외부 경계부분 동/서/남/북에 1행 또는 1열로 배치되며, 블록 메모리 타일들은 로직 타일들의 구조 중간에 1열씩 삽입된다.As shown in FIG. 27, the PAD / IP tile is implemented in a one-dimensional array unlike a logic tile in a two-dimensional array. A PAD / IP (Intellectual Property) tile block is a tile that includes IP hardware such as pads or block memories and multipliers. The pad tiles are arranged in one row or one column at the east / west / south / north edge of the FPGA chip, and the block memory tiles are inserted one row in the middle of the structure of the logic tiles.

PAD/IP 타일의 배선구조는 도 28에 도시된 블록메모리 타일 같이 같은 행 또는 열의 블록메모리 타일 간의 번들배선과 로직 타일로부터 연결되거나 통과하는 타일 배선들을 포함할 수 있다.The wiring structure of the PAD / IP tile may include tile wirings connected to or passing through bundle wirings and logic tiles between block memory tiles in the same row or column as the block memory tiles shown in FIG. 28.

도 29에서는 동/서/남/북 4가지 패드 타일 형태 중에서 일례로 동쪽 패드 타일(500_1)의 배선 구조를 보여주고 있다. 패드 타일의 배선 구조 또한 패드 타일 간의 번들 배선과 왼쪽의 로직 타일과 연결되는 타일 배선들로 구성된다.FIG. 29 illustrates a wiring structure of an east pad tile 500_1 as an example among four pad tile shapes of east / west / south / north. The wiring structure of the pad tile is also composed of bundle wiring between the pad tiles and tile wirings connected to the logic tile on the left side.

PAD/IP 타일들의 번들배선인 경우, 각 배선의 위치가 임의로 결정될 수 있다. 로직 타일과 연결되는 배선의 경우, 로직 타일의 배선이 이미 정해져 있기 때문에 연결할 각 배선의 위치를 고려하여 배선 구조가 형성되어야 한다. 따라서, PAD/IP 타일간 번들배선 구조는 도 10 내지 도 26에 도시된 번들 배선 생성 알고리즘을 이용하여 합성되고, 그 결과를 바탕으로 타일 배선기를 이용하여 로직 타일과 연결된 배선들을 연결한다.In the case of bundle wiring of PAD / IP tiles, the position of each wiring may be arbitrarily determined. In the case of the wiring connected to the logic tile, since the wiring of the logic tile is already determined, the wiring structure should be formed in consideration of the position of each wiring to be connected. Therefore, the bundle interconnection structure between the PAD / IP tiles is synthesized using the bundle interconnection generation algorithm illustrated in FIGS. 10 to 26, and based on the result, the interconnections connected to the logic tile are connected using the tile interconnector.

그물형태로 입력되는 신호선들이 타일 공간상에서 연결되도록, 도 30에 도시된 배선 그리드가 도입된다. 배선 그리드는 타일 내의 배선 공간을 배선들 간의 최소 간격을 기준으로 나누어 배선들이 위치할 수 있는 가상의 그리드 선을 포함하는 그리드이다. 타일 배선은 그리드 상에서만 이루어지며 수직 배선을 위한 X-그리드, 수평 배선을 위한 Y-그리드를 포함한다.The wiring grid shown in FIG. 30 is introduced so that the signal lines input in the mesh form are connected in the tile space. The wiring grid is a grid including virtual grid lines where wirings may be located by dividing the wiring space in the tile based on the minimum distance between the wirings. The tile wiring is only on the grid and includes an X-grid for vertical wiring and a Y-grid for horizontal wiring.

도 30에 도시된 배선 그리드는 도 31에 도시된 3차원 타일 배선 그리드 그래프로 모델화될 수 있다. 타일 배선 그리드 그래프의 X/Y축은 도 30의 배선 그리드의 X/Y축과 같고, Z축은 2의 크기를 갖는다. 3차원 타일 배선 그리드 그래프는 평면(π00)과 평면(π01)을 포함한다. 평면(π00)에 수평 배선이, 평면(π01)에 수직 배선이 할당된다. 평면(π00)은 수평 연결선들만, 평면(π01)은 수직 연결선들만 포함한다. 평면들(π00, π01)의 각각 대응하는 연결점들이 연결되는 Z방향 연결선들이 할당된다. 배선될 각 셀들의 포트들은 연결점들에 맵핑된다. 각 연결점들과 연결선들에 가중치가 할당된다. 할당된 가중치들을 기반으로, 배선들의 길이와 모양이 조절될 수 있다.The wiring grid shown in FIG. 30 may be modeled with the three-dimensional tile wiring grid graph shown in FIG. 31. The X / Y axis of the tile wiring grid graph is the same as the X / Y axis of the wiring grid of FIG. 30, and the Z axis has a magnitude of two. The three-dimensional tile wiring grid graph includes a plane π 00 and a plane π 01. Horizontal wirings are assigned to the plane pi, and vertical wirings are assigned to the plane pi01. Plane π00 includes only horizontal connectors and plane π01 includes only vertical connectors. Z-direction connecting lines to which respective corresponding connecting points of the planes π00 and π01 are connected are allocated. Ports of each cell to be wired are mapped to connection points. Weights are assigned to each connection point and the connection lines. Based on the assigned weights, the length and shape of the wires can be adjusted.

번들 배선들이 형성된 후, 타일 배선들이 형성된다. 따라서, 번들 배선들의 영역들 및 셀 블록들이 차지하는 영역들에 타일 배선이 침범하지 않도록 하기 위해, 기존 배선들 및 셀블록들의 영역에 대응하는 연결점들 및 연결선들을 도 32에 도시된 바와 같이 블록킹한다.After the bundle wirings are formed, tile wirings are formed. Therefore, in order to prevent the tile wiring from invading the regions of the bundle wirings and the regions occupied by the cell blocks, connection points and connecting lines corresponding to the regions of the existing wirings and the cell blocks are blocked as shown in FIG. 32.

또한 배선 경로가 구불구불하면 회로의 가독성이 떨어지므로, 배선 라인의 구부러짐을 최소화하기 위하여 Z 방향의 연결선들에는 X/Y 방향의 연결선들보다 매우 큰 가중치를 할당한다. 도 33에 도시된 바와 같이 제 1 배선(R11)과 제 2 배선(R12)은 제 3 배선(R13)보다 먼저 형성될 수 있다. 제 1 및 제 2 배선들이 제 3 배선(R13)에 연결될 셀 포트(P5)에 가까이 배선되면, 제 3 배선(R13)의 연결에 필요한 최소한의 공간이 확보되지 못하고, 배선이 실패한다. 이러한 배선 순서에 따른 배선 실패를 줄이기 위해, 도 34의 X/Y 연결선 가중치 그래프와 같이 셀 블록 영역에 근접할수록 배선 그리드 그래프상의 X/Y 연결선들에 높은 가중치를 할당하여 초기 배선들이 이 영역을 지나가지 못하도록 한다.In addition, when the wiring path is meandering, the readability of the circuit is reduced, so that the connection lines in the Z direction are assigned a greater weight than the connection lines in the X / Y direction in order to minimize the bending of the wiring line. As illustrated in FIG. 33, the first wiring R11 and the second wiring R12 may be formed before the third wiring R13. When the first and second wirings are wired close to the cell port P5 to be connected to the third wiring R13, the minimum space necessary for the connection of the third wiring R13 is not secured and the wiring fails. In order to reduce the wiring failure according to the wiring order, as the closer to the cell block region as shown in the X / Y connecting line weight graph of FIG. Do not let go.

도 34에 도시된 연결점 가중치들을 적용한 결과가 도 35에 도시된다. 도 35에 도시된 바와 같이, 제 1 배선(R21)과 제 2 배선(R22)이 셀블록과 멀리 떨어져 있는 낮은 가중치의 그리드에 할당된다. 따라서, 제 3 배선을 위한 공간이 확보되고, 제 3 배선(R33)의 배선은 성공한다.The result of applying the connection point weights shown in FIG. 34 is shown in FIG. 35. As shown in FIG. 35, the first wiring R21 and the second wiring R22 are allocated to a low-weight grid that is far from the cell block. Therefore, space for the third wiring is secured, and the wiring of the third wiring R33 is successful.

도 31 내지 도 34의 가중치 적용을 바탕으로 구성된 3차원 배선 그리드 그래프 상에서 타일 배선기는 연결할 각 포트들 간에 가중치들의 합이 최소인 최단 경로를 찾아 배선한다. 최단 경로 탐색 방법은 배선 그리드 그래프 상에서 시작점에서 시작하여 넓이 우선 탐색 방식으로 그래프를 탐색하여 목표점에 도달하면, 가중치들의 합이 최소인 경로상의 연결점들을 역추적하는 방법이다. 이로부터 최단 경로상의 연결점들을 연결하는 배선 라인들이 생성된다.On the three-dimensional wiring grid graph constructed based on the application of the weights of FIGS. 31 to 34, the tile interconnector finds and wires the shortest path having the smallest sum of weights among the ports to be connected. The shortest path search method is a method of backtracking connection points on a path whose minimum sum of weights is reached when the graph is searched in the width-first search method starting from the starting point on the wiring grid graph and reaching the target point. This creates the wiring lines connecting the connection points on the shortest path.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야할 것이다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the equivalents of the claims of the present invention as well as the following claims.

100 : FPGA
R01, R02, R03 : 배선들
P1, P2, P3, P4, P5 : 포트들
110 : 기능블록
120 : 스위치 박스
130, 140, 150, 160 : 수평 및 수직 배선들
200 : 번들
π00, π01 : 평면들
100: FPGA
R01, R02, R03: Wirings
P1, P2, P3, P4, P5: Ports
110: function block
120: switch box
130, 140, 150, 160: horizontal and vertical wires
200: bundle
π00, π01: planes

Claims (2)

필드 프로그래머블 게이트 어레이 배선구조 설계를 위한 타일 배선 구조 자동 합성 방법에 있어서,
제 1 타일과 제 2 타일의 최단 경로를 탐색하는 단계;
상기 최단 경로 탐색 결과에 따라, 배선 패턴을 탐색하는 단계; 그리고
상기 배선 패턴 탐색 결과에 따라, 제 1 내지 제 3 타일의 배선 패턴을 형성하는 단계를 포함하고,
상기 제 3 타일은 상기 최단 경로 상에 위치한 타일들이며,
상기 제 1 내지 제 3 타일들은 동일한 배선 패턴을 포함하게 하는 배선 구조 자동 합성 방법.
A method of automatically synthesizing tile interconnect structures for field programmable gate array interconnect design,
Searching for the shortest path of the first tile and the second tile;
Searching for a wiring pattern according to the shortest path search result; And
Forming a wiring pattern of the first to third tiles according to the wiring pattern search result;
The third tile is tiles located on the shortest path,
And the first to third tiles include the same wiring pattern.
필드 프로그래머블 게이트 어레이 배선구조 설계를 위한 타일 배선 구조 자동 합성 방법에 있어서,
3차원 배선 그리드 그래프를 형성하는 단계;
상기 3차원 배선 그리드 그래프에 방향에 따라 서로 다른 가중치를 설정하는 단계;
상기 3차원 배선 그리드 그래프에 패드타일의 셀블록들을 투영하는 단계;
상기 투영된 셀블록들을 기반으로 상기 3차원 배선 그리드 그래프에 추가 가중치를 설정하는 단계; 그리고
상기 가중치 및 상기 추가 가중치를 기반으로, 로직타일 및 상기 패드타일간 배선패턴을 형성하는 단계를 포함하고,
상기 설정된 추가 가중치는 상기 3차원 배선 그리드 그래프 중 상기 투영된 셀블록들에 가까운 상기 그리드에 높게 설정되는 배선 구조 자동합성 방법.
A method of automatically synthesizing tile interconnect structures for field programmable gate array interconnect design,
Forming a three-dimensional wiring grid graph;
Setting different weights according to directions on the 3D wiring grid graph;
Projecting cell blocks of pad tiles onto the 3D wiring grid graph;
Setting additional weights on the 3D wiring grid graph based on the projected cellblocks; And
Forming a wiring pattern on the logic tile and the pad tile based on the weight and the additional weight;
And the set additional weight is set higher in the grid close to the projected cell blocks in the 3D wiring grid graph.
KR1020120037874A 2011-12-20 2012-04-12 Method for automatically synthesizing tile routing structures for designing field programalbe gate array routing architecture KR20130071331A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110138416 2011-12-20
KR20110138416 2011-12-20

Publications (1)

Publication Number Publication Date
KR20130071331A true KR20130071331A (en) 2013-06-28

Family

ID=48865872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120037874A KR20130071331A (en) 2011-12-20 2012-04-12 Method for automatically synthesizing tile routing structures for designing field programalbe gate array routing architecture

Country Status (1)

Country Link
KR (1) KR20130071331A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021031554A1 (en) * 2019-08-16 2021-02-25 中科亿海微电子科技(苏州)有限公司 Method and device for modeling routing structure
CN117422040A (en) * 2023-12-18 2024-01-19 沐曦集成电路(上海)有限公司 Method for generating network on chip layout

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021031554A1 (en) * 2019-08-16 2021-02-25 中科亿海微电子科技(苏州)有限公司 Method and device for modeling routing structure
CN117422040A (en) * 2023-12-18 2024-01-19 沐曦集成电路(上海)有限公司 Method for generating network on chip layout
CN117422040B (en) * 2023-12-18 2024-02-27 沐曦集成电路(上海)有限公司 Method for generating network on chip layout

Similar Documents

Publication Publication Date Title
Menezes et al. Design of regular layouts to improve predictability
Seiculescu et al. SunFloor 3D: A tool for networks on chip topology synthesis for 3-D systems on chips
Cong et al. Performance driven multi-layer general area routing for PCB/MCM designs
CN101587508B (en) Method, system and computer program product for determining routing of data paths in interconnect circuitry
US8418115B1 (en) Routability based placement for multi-die integrated circuits
US8265070B2 (en) System and method for implementing a multistage network using a two-dimensional array of tiles
US20110126164A1 (en) Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus
Marcon et al. Tiny NoC: A 3D mesh topology with router channel optimization for area and latency minimization
Agyeman et al. Heterogeneous 3d network-on-chip architectures: area and power aware design techniques
CN114330212B (en) Chip pin arrangement method and device, computer equipment and storage medium
US20130290914A1 (en) Methods and Apparatus for Floorplanning and Routing Co-Design
CN105095148A (en) Mixed type three-dimensional on-chip network
Kong et al. Optimal simultaneous pin assignment and escape routing for dense PCBs
US20120240090A1 (en) Clock tree designing apparatus and clock tree designing method
KR20130071331A (en) Method for automatically synthesizing tile routing structures for designing field programalbe gate array routing architecture
CN111027274A (en) Three-dimensional chip layout method
Minz et al. Block-level 3-D global routing with an application to 3-D packaging
Zhou et al. A network components insertion method for 3D application-specific Network-on-Chip
KR20120091497A (en) Method for synthesizing tile interconnection structure of field programmable gate array
Seemuth et al. Flexible interconnect in 2.5 D ICs to minimize the interposer's metal layers
Li et al. Design methodology of fault-tolerant custom 3D network-on-chip
Koch et al. Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems
Raffo et al. A placement tool for a noc-based dynamically reconfigurable system
CN117521589A (en) Method, device, processing equipment and storage medium for processing wiring in chip
Kang et al. Cost-effective design of mesh-of-tree interconnect for multicore clusters with 3-D stacked L2 scratchpad memory

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination