KR100441464B1 - Method for generating an interface between IP modules - Google Patents

Method for generating an interface between IP modules Download PDF

Info

Publication number
KR100441464B1
KR100441464B1 KR10-2001-0086827A KR20010086827A KR100441464B1 KR 100441464 B1 KR100441464 B1 KR 100441464B1 KR 20010086827 A KR20010086827 A KR 20010086827A KR 100441464 B1 KR100441464 B1 KR 100441464B1
Authority
KR
South Korea
Prior art keywords
path
finite state
signal transition
interface
transition graph
Prior art date
Application number
KR10-2001-0086827A
Other languages
Korean (ko)
Other versions
KR20030056565A (en
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 한국전자통신연구원
Priority to KR10-2001-0086827A priority Critical patent/KR100441464B1/en
Publication of KR20030056565A publication Critical patent/KR20030056565A/en
Application granted granted Critical
Publication of KR100441464B1 publication Critical patent/KR100441464B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 서로 다른 통신 프로토콜로 구현된 하드웨어 IP(Intellectual Property) 모듈 간에 동기식 인터페이스를 자동으로 생성하는 방법에 관한 것으로, 비동기식 인터페이스 기술에 이용되는 신호천이그래프(Signal Transition Graph)를 확장하고, 여러 트랜잭션들을 병합하여 하나의 유한상태기로 생성하며, 데이타 패스의 표현이 가능하도록 하므로써 인터페이스 모듈의 유한상태기를 자동으로 추출할 수 있다. 또한, 병렬성을 기술할 수 있는 신호천이그래프(STG)로부터 순차적 수행을 나타내는 유한상태기로 변환하는 과정에서 불필요한 상태들을 병합하여 상태의 수를 최소화시킨다.The present invention relates to a method for automatically generating a synchronous interface between hardware IP (Intellectual Property) modules implemented in different communication protocols. The present invention extends a signal transition graph used in asynchronous interface technology and provides various transactions. By merging them, one finite state is generated and the finite state of the interface module can be automatically extracted by enabling the representation of the data path. In addition, the number of states is minimized by merging unnecessary states in the process of converting from a signal transition graph (STG) capable of describing parallelism to a finite state indicating sequential performance.

Description

아이피 모듈 간에 인터페이스를 생성하는 방법{Method for generating an interface between IP modules}Method for generating an interface between IP modules}

본 발명은 아이피 모듈 간에 인터페이스를 생성하는 방법에 관한 것으로, 특히, 서로 다른 통신 프로토콜로 구현된 하드웨어 아이피(IP: Intellectual Property) 모듈 간에 동기식 인터페이스를 생성하는 방법에 관한 것이다.The present invention relates to a method for generating an interface between IP modules, and more particularly, to a method for generating a synchronous interface between hardware IP (IP) modules implemented with different communication protocols.

서로 다른 통신 프로토콜로 구현된 IP(Intellectual Property) 모듈들을 이용하여 SOC(System-On-Chip) 시스템을 설계할 때 서로 다른 시스템 블록 간의 데이터 및 제어신호의 통신을 위한 인터페이스 생성은 많은 시간이 소요되는 과정으로, 이 과정에서 오류도 매우 많이 발생된다. 인터페이스 설계는 시스템의 성능에 큰 영향을 미칠 뿐만 아니라 최종 설계 결과의 성공 여부에 큰 영향을 미치므로 매우 중요한 단계이다. 이러한 인터페이스의 자동 합성이 없이는 IP를 이용한 시스템 설계가 거의 불가능하다.When designing a system-on-chip (SOC) system using IP (Intellectual Property) modules implemented with different communication protocols, creating an interface for communication of data and control signals between different system blocks takes a lot of time. As a process, a lot of errors are generated in this process. Interface design is an important step because it not only has a big impact on the performance of the system but also has a great influence on the success of the final design result. Without automatic synthesis of these interfaces, it is almost impossible to design a system using IP.

최근 IP를 이용한 SOC 설계에 관심이 높아짐에 따라 인터페이스 합성에 관한 연구가 활발히 진행되고 있다. 대부분의 연구는 이종의 통신 프로토콜로 구현된 하드웨어들 간의 인터페이스를 자동으로 합성하는 데 집중되고 있다. 초기에는 칩(Custom chip)과 시스템 버스 간의 인터페이스 변환기를 자동으로 합성하는 방법에 대해 연구가 시작되었는데, 서로 다른 각각의 통신 프로토콜을 기술한 타이밍 다이어그램으로부터 이벤트 그래프(Event graph)를 생성하고, 각각의 이벤트 그래프를 하나로 병합(Merge)한 후, 이것으로부터 인터페이스 모듈을 설계하는 방법론에 관한 연구가 발표되었다.Recently, as interest in SOC design using IP has increased, research on interface synthesis has been actively conducted. Most research is focused on automatically synthesizing interfaces between hardware implemented by heterogeneous communication protocols. Initially, research began on the method of automatically synthesizing the interface converter between the custom chip and the system bus. An event graph was generated from timing diagrams describing the different communication protocols. After merging the event graphs into one, a study on the methodology of designing interface modules from them has been published.

다음은 프로토콜 변환기에 관한 것인데, 프로토콜 변환기란 서로 다른 프로토콜 간에 데이터 전송이 이루어질 수 있도록 연관된 제어신호들을 서로 대응시켜 주는 모듈이다. 베리로그(Verilog) 언어로 기술된 두 프로토콜로부터 각각을 유한상태기로 변환하고, 두 유한상태기의 곱셈기(Product machine)로부터 프로토콜 변환기의 유한상태기를 자동 합성하는데, 이 경우 생성된 유한상태기의 상태 수가 매우 커진다.The following is a protocol converter. A protocol converter is a module that associates control signals with each other so that data can be transmitted between different protocols. Converts each of the two protocols described in the Verilog language into a finite state, and automatically synthesizes the finite state group of the protocol converter from the product machine of the two finite state machines, in which case the state of the generated finite state machine The number is very large.

다른 연구 결과로써, 상위 수준의 하드웨어 언어로 기술된 두 모듈의 듀얼오퍼레이션(Dual operation)을 이용하여 인터페이스를 합성하는 방식도 발표되었다. 비동기 인터페이스 회로의 합성을 위하여 인터페이스의 사양을 파형의 형태로 입력하면 페트리 넷(Petri Net) 형태의 그래프로 변환하고, 이로부터 인터페이스 모듈의 유한상태기를 합성한다. 그러나 이러한 연구결과는 하나의 통신 트랜잭션만 합성 가능하기 때문에 실용화되지 못하였다.As a result of the research, a method of synthesizing the interface using dual operation of two modules described in a high level hardware language was presented. For the synthesis of asynchronous interface circuits, input interface specifications in the form of waveforms are converted into graphs in the form of Petri Nets, and the finite state groups of the interface modules are synthesized therefrom. However, these findings are not practical because only one communication transaction can be synthesized.

최근에는 정규 표현식(Regular expression) 형태로 기술된 프로토콜 변환기의 동작으로부터 인터페이스 모듈을 합성하는 연구도 발표되었다. 그러나 이러한 인터페이스 합성에 대한 연구들은 제한된 문제에 대한 해법만 제시하기 때문에 실제 IP 모듈 간의 인터페이스 합성에 적용이 어렵고, 수동으로 설계한 회로에 비해 매우 열악한 결과를 합성하므로 실용화가 어렵다.Recently, research has been published on synthesizing interface modules from the behavior of protocol converters described in the form of regular expressions. However, these studies on interface synthesis provide only a solution to a limited problem, making it difficult to apply to interface synthesis between real IP modules, and it is difficult to apply because it synthesizes very poor results compared to a manually designed circuit.

따라서 본 발명은 IP 모듈 간에 동기식 인터페이스를 자동으로 생성하는 방법을 개발하여 실제의 설계에 적용할 수 있는 인터페이스 합성기를 구현할 수 있도록 하므로써 상기한 문제점들을 해결할 수 있는 인터페이스 생성 방법을 제공하는 데 그 목적이 있다.Accordingly, an object of the present invention is to provide a method for generating an interface that can solve the above problems by developing a method for automatically generating a synchronous interface between IP modules to implement an interface synthesizer applicable to an actual design. have.

상기한 목적을 달성하기 위한 본 발명은 타이밍 다이어그램 편집기를 이용하여 인터페이스 모듈의 동작을 입력하는 단계와, 타이밍 다이어그램 정보를 읽어서 신호천이그래프를 생성하는 단계와, 신호천이그래프로부터 유한상태기를 생성하는 단계와, 유한상태기로부터 병합 가능한 상태들을 병합하여 상태의 수를 최소화시키는 단계와, 생성된 유한상태기를 상태천이표 또는 VHDL 프로그램 형태로 출력하는 단계와, 논리합성기를 이용하여 상태천이표와 VHDL 프로그램을 합성하는 단계를 포함하여 이루어지는 것을 특징으로 한다.The present invention for achieving the above object is the step of inputting the operation of the interface module using the timing diagram editor, reading the timing diagram information to generate a signal transition graph, and generating a finite state machine from the signal transition graph And minimizing the number of states by merging the mergeable states from the finite state machine, outputting the generated finite state machine in the form of a state transition table or a VHDL program, and using a state synthesizer and a VHDL program. It characterized in that it comprises a step of synthesizing.

상기 신호천이그래프는 신호의 변화를 나타내는 이벤트 노드와, 토큰이 위치할 수 있는 자리 노드로 구성되며, 하나의 자리 노드에서 다수의 이벤트 노드로 분기된 것을 특징으로 한다.The signal transition graph is composed of an event node indicating a signal change and a seat node where a token can be located, and is branched from one seat node to a plurality of event nodes.

상기 유한상태기는 신호천이그래프 상의 시작 노드로부터 그래프를 탐색하여 가능한 경로 세트를 구하는 단계와, 경로 세트 내의 각 경로를 구성하는 자리 노드들 간의 경로곱을 계산하여 경로곱 세트를 구하는 단계와, 구해진 상기 경로곱 세트로부터 필요한 경로곱을 구하는 단계와, 필요한 경로곱을 유한상태기 상에서의 각각의 상태로 변환하고, 상태들 간의 천이를 구하여 유한상태기로 변환하는 단계에 의해 생성되는 것을 특징으로 한다.The finite state machine searches a graph from a start node on a signal transition graph to obtain a set of possible paths, calculates a path product between the position nodes constituting each path in the path set, and obtains a path product set. Obtaining the required path product from the product set, and converting the required path product to each state on the finite state machine, and obtaining a transition between the states to convert to the finite state state.

상기 필요한 경로곱은 각 자리 노드에 대하여 의존 세트를 구하는 단계와, 각 경로곱을 구성하는 자리 노드들이 서로 의존 관계에 있는 지를 검사하는 단계와, 의존 관계에 있는 경우 해당 경로곱을 제거하는 단계에 의해 구해지는 것을 특징으로 한다.The required path product is obtained by obtaining a dependency set for each position node, checking whether the position nodes constituting each path product are dependent on each other, and removing the path product if there is a dependency relationship. It is characterized by.

도 1은 본 발명에 따라 IP 모듈 간에 인터페이스를 생성하는 방법을 설명하기 위한 흐름도.1 is a flow chart illustrating a method for creating an interface between IP modules in accordance with the present invention.

도 2a는 도 1의 신호천이그래프(STG) 생성 과정을 설명하기 위한 타이밍 다이어그램.FIG. 2A is a timing diagram illustrating a signal transition graph (STG) generation process of FIG. 1. FIG.

도 2b는 도 1을 설명하기 위한 신호천이그래프(STG).FIG. 2B is a signal transition graph (STG) for explaining FIG. 1. FIG.

도 3a 및 도 3b는 자리 노드에서의 토큰 전달 과정을 설명하기 위한 신호천이그래프(STG).3A and 3B are signal transition graphs (STGs) for explaining a token transfer process in a seat node.

도 4는 자리 노드의 분기를 도시한 신호천이그래프(STG).4 is a signal transition graph (STG) showing the branching of the seat node.

도 5a 및 도 5b는 자리 노드의 분기를 이용하여 읽기, 쓰기의 트랜잭션을 표현한 신호천이그래프(STG).5A and 5B are signal transition graphs (STGs) representing transactions of read and write using branches of a seat node.

도 5c는 도 5a 및 도 5b의 신호천이그래프(STG)를 병합한 신호천이그래프(STG).5C is a signal transition graph (STG) incorporating the signal transition graph (STG) of FIGS. 5A and 5B.

도 6a는 데이터 경로를 도시한 신호천이그래프(STG).6A is a signal transition graph (STG) showing a data path.

도 6b는 도 6a의 데이터 경로 합성 결과를 도시한 상태도.FIG. 6B is a state diagram illustrating the data path synthesis result of FIG. 6A. FIG.

도 7은 경로 세트의 계산 과정을 도시한 신호천이그래프(STG).7 is a signal transition graph (STG) showing a process of calculating a set of paths.

도 8a는 경로곱 세트를 도시한 신호천이그래프(STG).8A is a signal transition graph (STG) showing a set of path products.

도 8b는 필요없는 경로곱의 제거를 설명하기 위한 상태도.8B is a state diagram for explaining the elimination of unnecessary path products.

도 9a 및 도 9b는 필요한 경로곱 세트로부터 유한상태기(FSM)를 생성하는 과정을 설명하기 위한 신호천이그래프(STG).9A and 9B are signal transition graphs (STGs) for explaining a process of generating a finite state machine (FSM) from a set of required path products.

도 10a 내지 도 10c는 상태 최소화의 실시예를 설명하기 위한 신호천이그래프(STG).10A to 10C are signal transition graphs (STGs) for explaining an embodiment of state minimization.

도 11a는 상태 최소화의 다른 실시예를 설명하기 위한 타이밍 다이어그램.11A is a timing diagram for explaining another embodiment of state minimization.

도 11b 내지 도 11d는 도 11a를 설명하기 위한 신호천이그래프(STG).11B to 11D are signal transition graphs (STGs) for explaining FIG. 11A.

본 발명은 서로 다른 통신 프로토콜로 구현된 하드웨어 IP 모듈 간에 동기식 인터페이스를 생성하는 방법을 제공한다.The present invention provides a method for generating a synchronous interface between hardware IP modules implemented with different communication protocols.

기존의 비동기식 인터페이스 합성 방법은 하나의 연속적인 트랜잭션 밖에 고려하지 못하고 제어신호만을 표현할 수 있었으나, 본 발명은 여러 트랜잭션들을 병합하여 하나의 유한상태기로 생성하고, 데이타 패스의 표현이 가능하도록 한다. 그리고 이로부터 인터페이스 모듈의 유한상태기를 자동으로 추출한다. 또한, 병렬성을 기술할 수 있는 신호천이그래프(STG)로부터 순차적 수행을 나타내는 유한상태기로 변환하는 과정에서 불필요한 상태들을 병합하여 상태의 수를 최소화시킨다.Conventional asynchronous interface synthesis method can express only control signals without considering only one continuous transaction, but the present invention merges several transactions to create a single finite state, and can represent the data path. From this, the finite state machine of the interface module is automatically extracted. In addition, the number of states is minimized by merging unnecessary states in the process of converting from a signal transition graph (STG) capable of describing parallelism to a finite state indicating sequential performance.

그러면 이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.Next, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따라 IP 모듈 간에 인터페이스를 생성하는 방법을 설명하기 위한 흐름도이다.1 is a flowchart illustrating a method of generating an interface between IP modules according to the present invention.

인터페이스 모듈의 동작을 타이밍 다이어그램 편집기를 이용하여 입력하면 편집기는 이를 파일 형태로 저장한다(단계 1). 이 파일을 입력으로 인터페이스 합성기는 페트리 넷(Petri Net) 형태의 신호천이그래프(STG)를 구성하고(단계 2), 다시 유한상태기(Finite State Machine)로 변환한다(단계 3). 병렬성을 기술할 수 있는 신호천이그래프(STG)로부터 순차적 수행을 나타내는 유한상태기로 변환하는 경우 상태의 수가 기하 급수적으로 증가하는데, 이 때, 불필요한 상태들을 병합하여 상태의 수를 감소시키는 상태 최소화 과정을 수행한다(단계 4). 생성된 유한상태기를 상태천이표 또는 VHDL(VHSIC Hardware Description Language) 형태로 출력한다(단계 5). 각 단계의 진행 과정을 보다 상세히 설명하면 다음과 같다.Input the operation of the interface module using the timing diagram editor and the editor saves it as a file (step 1). With this file as input, the interface synthesizer constructs a signal transition graph (STG) in the form of a Petri net (step 2) and converts it back into a finite state machine (step 3). When converting from a signal transition graph (STG) that can describe parallelism to a finite state representing sequential performance, the number of states increases exponentially. At this time, the state minimization process of merging unnecessary states is reduced. Perform (step 4). The generated finite state machine is output in the form of a state transition table or VHDL (VHSIC Hardware Description Language) (step 5). The process of each step will be described in more detail as follows.

단계 2: 신호천이그래프(STG) 생성Step 2: Create a Signal Transition Graph (STG)

인터페이스 합성기에서는 설계자가 입력한 타이밍 다이어그램 정보를 읽어서 도 2와 같이 내부적으로 신호천이그래프(STG)를 만든다. 신호천이그래프(STG)는 페트리 넷을 기본으로 신호선들 간의 이벤트(Event)의 변화를 병렬적으로 표현한 그래프로써, 도 2b에서와 같이 신호의 변화를 나타내는 사각형의 이벤트 노드(Event node)와 토큰(Token)이 위치할 수 있는 원 모양의 자리 노드(Place node)로 구성된다. 이들 노드 간에는 방향성 엣지(Edge)로서 이벤트의 진행 방향을 표현한다. 신호천이그래프(STG)는 도 2a의 타이밍 다이어그램에 도시된 바와 같이 각 신호들의 이벤트가 발생하는 지점을 하나의 이벤트 노드로 만들고, 각 이벤트 노드 앞에 자리 노드를 삽입한다. 도 2a에서 화살표로 표현된 신호 이벤트 간의 의존도에 따라 해당하는 노드 간에 도 2b와 같이 엣지들을 연결한다.The interface synthesizer reads the timing diagram information input by the designer and internally creates a signal transition graph (STG) as shown in FIG. 2. The signal transition graph (STG) is a graph representing a change of events between signal lines in parallel based on a petri net. As shown in FIG. 2B, a rectangular event node and a token ( It consists of a circle place node where a token can be placed. Between these nodes, the direction of the event is represented as a directional edge. As shown in the timing diagram of FIG. 2A, the signal transition graph STG makes a point where an event of each signal occurs and inserts a seat node before each event node. According to the dependency between signal events represented by arrows in FIG. 2A, edges are connected between corresponding nodes as shown in FIG. 2B.

본 발명에서는 다중 트랜잭션을 하나의 신호천이그래프(STG)로 표현할 수 있도록 하기 위해 신호천이그래프(STG)의 자리 노드에서 여러 이벤트 노드로 분기될 수 있도록 확장하였다. 즉, 도 3a와 같이 본래의 신호천이그래프(STG)에서는 토큰(p0)이 이벤트 노드의 바로 위의 자리 노드(p1 및 p2)에 도달할 경우 해당 이벤트 노드에 이벤트가 발생하면 도 3b와 같이 토큰(p1 및 p2)이 양쪽으로 분리되어 각각의 경로를 따라 병렬로 수행되지만, 도 3a에서와 같이 자리 노드로부터 여러 이벤트 노드로 분기되는 경우에는 여러 이벤트 노드 중 이벤트가 발생된 이벤트 노드로만 토큰이 전달되며, 그 경로를 따라서만 진행된다.In the present invention, in order to represent multiple transactions in one signal transition graph (STG), it has been extended to branch to multiple event nodes in place of the signal transition graph (STG). That is, in the original signal transition graph STG as shown in FIG. 3A, when the token p0 reaches the seat nodes p1 and p2 immediately above the event node, when the event occurs in the corresponding event node, the token as shown in FIG. 3B. Although (p1 and p2) are separated in both directions and performed in parallel along each path, when branching from a seat node to several event nodes as shown in FIG. 3A, the token is passed only to the event node in which the event occurred among the event nodes. Only along that path.

이러한 자리 노드의 분기를 이용하여 도 5a 및 도 5b와 같이 읽기(READ) 및쓰기(WRITE) 각각의 트랜잭션을 표현한 신호천이그래프(STG)를 병합하면 도 5c와 같은 하나의 신호천이그래프(STG)로 표현될 수 있다. 따라서 이와 같이 하나의 유한상태기를 만들면 각각의 유한상태기를 따로 생성하는 것보다 서로 중첩된 부분을 줄일 수 있으므로 회로의 크기가 감소된다.When the signal transition graphs STG representing the transactions of the read and write operations are merged as shown in FIGS. 5A and 5B using the branch of the seat node, one signal transition graph STG as shown in FIG. 5C is merged. It can be expressed as. Therefore, if one finite state group is made in this way, the size of the circuit can be reduced since the overlapped portions can be reduced rather than generating each finite state group separately.

기존의 방식에서는 데이터의 저장 또는 전달을 위한 데이터 패스 회로를 따로 만들어 놓고 인터페이스 합성기에서 그 데이터 패스 모듈을 제어할 제어 신호 만을 합성할 수 있도록 하였다. 이는 설계자의 입장에서 매우 번거로운 일이다. 그러므로 본 발명은 도 6a와 같이 데이터 패스와 관련된 표현도 이벤트 노드에 함께 기술할 수 있도록 하여 생성된 VHDL 코드에서 도 6b와 같이 합성이 되도록 하였다.In the conventional method, a data path circuit for storing or transferring data is set aside so that an interface synthesizer can synthesize only a control signal for controlling the data path module. This is very cumbersome for the designer. Therefore, in the present invention, the expression related to the data path can also be described in the event node as shown in FIG. 6A so that the generated VHDL code is synthesized as shown in FIG. 6B.

단계 3: 신호천이그래프(STG)로부터 유한상태기(FSM) 생성Step 3: Generate Finite State Machine (FSM) from Signal Transition Graph (STG)

비동기적이며 병렬성을 바탕으로 기술된 신호천이그래프(STG)를 실제 회로로 구현할 때 비동기 회로보다는 동기 회로로 구현하는 것이 편리하다. 따라서 신호천이그래프(STG)를 불가피하게 순차적인 표현인 유한상태기로 바꾸어 동기 회로로 합성해야 한다. 이를 위해서는 신호천이그래프(STG) 상의 각 자리 노드의 토큰들의 위치를 전체적인 상태로 가정하고, 이를 기반으로 유한상태기를 만들어야 한다. 그러나 이러한 작업은 신호천이그래프(STG)의 복잡도에 따라 매우 어려우며, 또한, 유한상태기의 상태 수가 매우 커지는 단점이 있다.It is more convenient to implement a signal transition graph (STG) described asynchronously and in parallel as a synchronous circuit than an asynchronous circuit. Therefore, the signal transition graph (STG) is inevitably changed into a finite state, which is a sequential expression, and synthesized into a synchronous circuit. To do this, it is assumed that the positions of the tokens of each digit node on the signal transition graph (STG) are in the overall state, and a finite state machine is created based on the overall state. However, this task is very difficult depending on the complexity of the signal transition graph (STG), and also has a disadvantage in that the number of states of the finite state group becomes very large.

본 발명에서는 이러한 단점을 극복하기 위하여 신호천이그래프(STG)로부터 유한상태기를 자동으로 생성하는 알고리즘을 구현하고, 또한, 생성된 유한상태기의 상태 수가 감소되도록 한다.In order to overcome this disadvantage, the present invention implements an algorithm for automatically generating a finite state group from the signal transition graph (STG), and also reduces the number of states of the generated finite state group.

신호천이그래프(STG)로부터 유한상태기를 생성하는 과정으로는 먼저, 시작 노드로부터 신호천이그래프(STG) 상의 모든 가능한 경로(Path)들을 찾아 이로부터 경로 세트(Path set)를 만들고, 경로 세트 내의 각 경로를 구성하는 자리 노드 간의 경로곱(Path product)을 계산한다. 계산된 경로곱들로부터 필요없는 경로곱들을 제거하여 실제 신호천이그래프(STG) 상의 상태를 구성할 수 있는 필요한 경로곱들을 구하고, 각각을 유한상태기의 상태로 정의한다. 또한, 필요한 경로곱들 간에 외부 이벤트들에 따른 상태 변화로부터 유한상태기 상의 각 상태들 간의 천이(Transition)를 구한다. 상기 각 단계에 대해 보다 상세히 설명하면 다음과 같다.The process of generating a finite state machine from the signal transition graph (STG) involves first finding all possible paths on the signal transition graph (STG) from the start node and creating a path set from them. Calculate the path product between the place nodes that make up the path. By removing the unnecessary path products from the calculated path products, the necessary path products that can form the state on the actual signal transition graph (STG) are obtained, and each is defined as the state of the finite state machine. In addition, the transition between each state on the finite state machine is obtained from the state change according to external events between necessary path products. Each step will be described in more detail as follows.

[1] 경로 세트의 계산[1] path set calculation

신호천이그래프(STG) 상에서 하나의 경로는 시작 자리 노드로부터 신호천이그래프(STG) 상의 각 자리 노드를 통해 다시 시작 자리 노드까지 귀환하는 단일 경로 상의 자리 노드들의 집합이다. 도 7의 신호천이그래프(STG) 상에는 시작 노드인 P1으로부터 4개의 경로P1, P2, P3, P4가 존재한다. 여기에서, 경로P1= {p1, p2, p4, p6, p7, p9, p11}이고, 경로P2= {p1, p2, p4, p6, p8, p10}이다. 이들 경로들 간의 집합인 경로 세트(Path Set) = {P1, P2, P3, P4}이다.One path on the signal transition graph (STG) is a set of seat nodes on a single path that return from the starting position node to each starting node on the signal transition graph (STG) and back to the starting position node. On the signal transition graph STG of FIG. 7, four paths P1, P2, P3, and P4 exist from the start node P1. Here, the path P1 = {p1, p2, p4, p6, p7, p9, p11} and the path P2 = {p1, p2, p4, p6, p8, p10}. Path Set = { P1, P2, P3, P4 }, which is a set between these paths.

[2] 경로곱 세트의 계산[2] calculating the set of path products

경로곱 세트는 이들 경로 세트를 구성하는 경로들 간의 곱(Product)을 원소로 하는 집합이다. 즉, 경로곱 세트 = P1×P2×P3×P4 이다. 즉, 도 7의 신호천이그래프(STG)의 경로들을 구하면,The set of path products is a set whose elements are the products of the paths constituting these sets of paths. That is, the path product set = P1 x P2 x P3 x P4. That is, when the paths of the signal transition graph (STG) of FIG. 7 are obtained,

P1 = {p1,p2,p4,p6,p7,p9,p11},P1 = {p1, p2, p4, p6, p7, p9, p11},

P2 = {p1,p2,p4,p6,p8,p10,p11},P2 = {p1, p2, p4, p6, p8, p10, p11},

P3 = {p1,p3,p5,p6,p8,p10,p11}P3 = {p1, p3, p5, p6, p8, p10, p11}

P4 = {p1,p3,p5,p6,p7,p9,p11}이다.P4 = {p1, p3, p5, p6, p7, p9, p11}.

이들 경로 세트로부터 경로곱 세트를 구하면,If we get a set of path products from these sets of paths,

경로곱 세트 = {{p1},{p1,p3},....{p2,p3},{p2,p3,p5},....{p2,p6,p5,p7},Path product set = {{p1}, {p1, p3}, .... {p2, p3}, {p2, p3, p5}, .... {p2, p6, p5, p7},

....{p6},....{p11}}이다..... {p6}, .... {p11}}.

[3] 필요없는 경로곱의 제거[3] eliminating unnecessary path products

상기 단계 [2]에서 구한 경로곱 세트로부터 원하는 신호천이그래프(STG)의 상태를 구하기 위해서는 경로곱 세트 내의 곱 중 도 8a의 신호천이그래프(STG) 상에서 구현 불가능한 상태인 필요없는 경로곱들을 도 8b와 같이 제거하여 필요한 경로곱들을 구한다.To obtain the desired state of the signal transition graph (STG) from the path product set obtained in the step [2], the unnecessary path products that are not feasible on the signal transition graph (STG) of FIG. Remove it to get the path products you need.

경로곱 세트에서 필요없는 경로곱들을 제거하는 방법은 각 자리 노드들에 대하여 의존 세트(Dependency set)를 구하고, 각 경로곱을 구성하는 자리 노드들이 서로 의존 관계에 있는 지를 검사하여 의존 관계에 있는 경우 이 경로곱은 필요하지 않으므로 제거한다. 여기서, 각 자리 노드들의 의존 세트는 신호천이그래프(STG) 상의 해당 자리 노드에서 출발하여 시작 자리 노드에 도달할 때까지의 방문 가능한 모든 자리 노드들의 집합이다. 예를 들어, 자리 노드(p6)의 의존 세트(Dp2) = {p2,p4,p6,p7,p8,p9,p11}이고, 자리 노드(p5)의 의존 세트(Dp5) = {p6,p7,p8,p9,p11}이다. 따라서, 경로곱 {p2,p6,p5,p7}의 경우 p2 -> p6, p5 ->p7 등의 의존 관계가 있으므로 필요없는 경로곱으로서 제거된다. 이렇게 모든 필요없는 경로곱들이 제거되고 남은 필요한 경로곱들은 생성된 유한상태기 상의 하나의 상태로 만들어진다.The method to remove unnecessary path products from the path product set is to obtain a dependency set for each position node, and check whether the position nodes constituting each path product depend on each other. Remove the path product because it is not necessary. Here, the dependency set of each seat node is a set of all visitable seat nodes starting from the corresponding seat node on the signal transition graph (STG) until reaching the starting seat node. For example, the dependency set Dp2 of the seat node p6 = {p2, p4, p6, p7, p8, p9, p11}, and the dependency set Dp5 of the seat node p5 = {p6, p7, p8, p9, p11}. Therefore, in the case of the path product {p2, p6, p5, p7}, there is a dependency relationship p2-> p6, p5-> p7 and so is eliminated as unnecessary path product. Thus all unnecessary path products are removed and the remaining required path products are made into one state on the generated finite state machine.

[4] 필요한 경로곱들 간의 천이 생성[4] generating transitions between required path products

유한상태기의 각 상태와 일대일 대응 관계를 갖는 필요한 경로곱들 간의 관계로부터 유한상태기의 천이를 생성한다. 필요한 경로곱 세트 = {PE1, PE2, ..., PEi, ..., PEj, ..., PEm}이고, 여기서, PEi는 i번째 필요한 경로곱이다. 천이를 생성하는 방법은 필요한 경로곱 세트의 하나의 곱 PEi에 대하여 PEi를 구성하는 각각의 자리 노드 ps에 대하여, 신호천이그래프(STG) 상에서 그 자리 노드 바로 다음 이벤트 노드가 이벤트를 받았을 경우 토큰이 전달되는 자리 노드 pt로 바꾼 경로곱이 필요한 경로곱 세트 내에 있을 경우 그 곱 PEm이라 할 때, 현재의 필요한 경로곱 PEi에 대응되는 상태 Si으로부터 PEm의 상태 Sm으로 천이를 생성한다.The transition of the finite state machine is generated from the relationship between the necessary path products having a one-to-one correspondence with each state of the finite state machine. The required path product set = {PE1, PE2, ..., PEi, ..., PEj, ..., PEm}, where PEi is the i-th required path product. The method for generating the transition is that for each seat node ps constituting PEi for one product PEi of the set of required path products, if the event node immediately after the seat node in the signal transition graph (STG) receives an event, When the path product converted to the position node pt to be delivered is within the required path product set, the product PEm generates a transition from the state Si corresponding to the current required path product PEi to the state Sm of the PEm.

도 9a의 신호천이그래프(STG)에서 필요한 경로곱 {p1, p2}에서 "b" 이벤트가 발생한 경우 p1에서 p3로 토큰이 전달되므로 {p3, p2}로 변하게 되어 도 9b의 유한상태기 상에서 상태 {p1,p2}로부터 상태 {p3,p2}로 천이가 생성된다.When the "b" event occurs in the path product {p1, p2} required in the signal transition graph (STG) of FIG. 9a, the token is transferred from p1 to p3, and thus is changed to {p3, p2}. A transition is made from {p1, p2} to state {p3, p2}.

단계 4: 상태 최소화Step 4: minimize the state

병렬적으로 기술된 상태천이그래프(STG)로부터 순차적으로 표현되는 유한상태기로 변환하게 되면 필연적으로 많은 상태를 갖게 된다. 그러나 경우에 따라서 불필요한 상태들이 생성되어 유한상태기의 상태 수가 많아짐은 물론 합성된 회로의 동작속도 또한 느려지게 된다. 따라서 생성된 유한상태기로부터 도 10과 같이 병합가능한 상태들을 서로 병합하여 전체적인 상태 수를 최소화시킨다.When a state transition graph (STG) described in parallel is converted into a finite state that is sequentially expressed, there are inevitably many states. However, in some cases, unnecessary states are generated to increase the number of states of the finite state group and to slow down the operation speed of the synthesized circuit. Accordingly, the mergeable states are merged with each other from the generated finite state machine to minimize the overall number of states.

먼저, 도 10a와 같이 외부로부터의 입력 D가 1이 되면 출력 Q에 1을 출력하는 신호천이그래프(STG)의 경우 유한상태기로 변환하면 도 10b와 같이 3개의 상태로 생성된다. 그러나 S1 -> S2의 천이 조건과 S2 -> S3의 출력은 병합될 수 있으므로 중간 상태인 S2를 제거하고 각 천이를 병합하면 도 10c와 같이 2개의 상태로 줄어들 수 있다.First, when the input D from the outside becomes 1 as shown in FIG. 10A, the signal transition graph STG outputting 1 to the output Q is generated in three states as shown in FIG. 10B when converted into a finite state. However, since the transition condition of S1-> S2 and the output of S2-> S3 can be merged, by removing the intermediate state S2 and merging each transition, it can be reduced to two states as shown in FIG. 10C.

다른 예로써, 도 11a와 같이 입력 R이 1이 된 후, 이어서 각각의 입력 D1, D2가 1이 되면 Q를 1로 출력하는 도 11b의 신호천이그래프(STG)의 경우 그대로 유한상태기로 변환하면 도 11c와 같이 6개의 상태를 갖는 유한상태기가 되는데, 이것은 도 11d와 같이 최소화될 수 있다.As another example, in the case of the signal transition graph (STG) of FIG. 11B which outputs Q as 1 after the input R becomes 1 as shown in FIG. 11A and the respective inputs D1 and D2 become 1, It is a finite state group having six states as shown in FIG. 11C, which can be minimized as shown in FIG. 11D.

단계 5: 상태 천이표와 VHDL 코드 출력Step 5: State Transition Table and VHDL Code Output

상태 최소화가 끝난 유한상태기는 상태천이표와 유한상태기 형태의 VHDL 프로그램으로 출력된다. 입력에 데이타 패스의 기술이 포함된 경우에는 상태천이표 만으로는 인터페이스 모듈이 완성될 수 없으므로 VHDL 파일로만 출력한다. 출력된 상태천이표와 VHDL 파일은 논리 합성기를 이용하여 인터페이스 회로로 합성된다.The state minimized finite state machine is output to the state transition table and the finite state machine type VHDL program. If the input contains a description of the data path, the state transition table alone does not allow the interface module to be completed and outputs only as a VHDL file. The output state transition table and the VHDL file are synthesized into the interface circuit using a logic synthesizer.

상술한 바와 같이 본 발명은 서로 다른 통신 프로토콜로 구현된 하드웨어 IP 모듈 간에 동기식 인터페이스를 생성하는 방법을 제공한다.As described above, the present invention provides a method for generating a synchronous interface between hardware IP modules implemented with different communication protocols.

비동기식 인터페이스 기술에 이용되는 신호천이그래프(STG)를 확장하고, 여러 트랜잭션들을 병합하여 하나의 유한상태기로 생성하며, 데이타 패스의 표현이 가능하도록 하므로써 인터페이스 모듈의 유한상태기를 자동으로 추출할 수 있다. 또한, 병렬성을 기술할 수 있는 신호천이그래프(STG)로부터 순차적 수행을 나타내는 유한상태기로 변환하는 과정에서 불필요한 상태들을 병합하여 상태의 수를 최소화시킨다.By extending the signal transition graph (STG) used in the asynchronous interface technology, merging several transactions to create one finite state, and expressing the data path, the finite state of the interface module can be automatically extracted. In addition, the number of states is minimized by merging unnecessary states in the process of converting from a signal transition graph (STG) capable of describing parallelism to a finite state indicating sequential performance.

IP 모듈을 이용한 SOC 설계에서 인터페이스 합성은 중요한 부분이다. 따라서 본 발명은 설계자가 직접 인터페이스 모듈의 동작을 타이밍 다이어그램의 형태로 입력하고, 이를 합성하므로써 설계자의 목적에 부합되는 인터페이스 모듈을 합성할 수 있도록 한다.Interface synthesis is an important part of SOC design using IP modules. Therefore, the present invention enables the designer to directly input the operation of the interface module in the form of a timing diagram and synthesize the interface module that meets the designer's purpose.

Claims (4)

타이밍 다이어그램 편집기를 이용하여 인터페이스 모듈의 동작을 입력하는 단계;Inputting an operation of an interface module using a timing diagram editor; 상기 타이밍 다이어그램 정보를 읽어서 신호천이그래프를 생성하는 단계;Reading the timing diagram information to generate a signal transition graph; 상기 생성된 신호천이그래프로부터 유한상태기를 생성하는 단계;Generating a finite state group from the generated signal transition graph; 상기 생성된 유한상태기로부터 병합 가능한 상태들을 병합하여 상태의 수를 최소화시키는 단계;Merging the mergeable states from the generated finite state machine to minimize the number of states; 상기 생성된 유한상태기를 상태천이표 또는 VHDL 프로그램 형태로 출력하는 단계; 및Outputting the generated finite state group in the form of a state transition table or a VHDL program; And 논리합성기를 이용하여 상기 상태천이표와 상기 VHDL 프로그램을 합성하는 단계를 포함하여 이루어진 아이피 모듈 간에 인터페이스를 생성하는 방법.And synthesizing the state transition table and the VHDL program using a logic synthesizer. 제 1 항에 있어서,The method of claim 1, 상기 신호천이그래프는 신호의 변화를 나타내는 이벤트 노드와, 토큰이 위치할 수 있는 자리 노드로 구성되며, 하나의 자리 노드에서 다수의 이벤트 노드로 분기된 것을 특징으로 하는 아이피 모듈 간에 인터페이스를 생성하는 방법.The signal transition graph is composed of an event node indicating a change in the signal, and a seat node where the token can be located, the method for creating an interface between the IP module, characterized in that branched from one seat node to a plurality of event nodes . 제 1 항에 있어서,The method of claim 1, 상기 유한상태기는 상기 신호천이그래프 상의 시작 노드로부터 그래프를 탐색하여 가능한 경로 세트를 구하는 단계와,The finite state machine searches for a graph from a start node on the signal transition graph to obtain a set of possible paths; 상기 경로 세트 내의 각 경로를 구성하는 자리 노드들 간의 경로곱을 계산하여 경로곱 세트를 구하는 단계와,Obtaining a path product set by calculating a path product between spot nodes constituting each path in the path set; 구해진 상기 경로곱 세트로부터 필요한 경로곱을 구하는 단계와,Obtaining the required path products from the set of path products obtained; 상기 필요한 경로곱을 유한상태기 상에서의 각각의 상태로 변환하고, 상태들 간의 천이를 구하여 유한상태기로 변환하는 단계에 의해 생성되는 것을 특징으로 하는 아이피 모듈 간에 인터페이스를 생성하는 방법.Converting the necessary path products into respective states on the finite state machine, and obtaining a transition between the states to convert to the finite state state. 제 3 항에 있어서,The method of claim 3, wherein 상기 필요한 경로곱은 각 자리 노드에 대하여 의존 세트를 구하는 단계와,The necessary path product is obtained by obtaining a dependency set for each position node, 각 경로곱을 구성하는 자리 노드들이 서로 의존 관계에 있는 지를 검사하는 단계와,Checking whether the position nodes constituting each path product depend on each other; 의존 관계에 있는 경우 해당 경로곱을 제거하는 단계에 의해 구해지는 것을 특징으로 하는 아이피 모듈 간에 인터페이스를 생성하는 방법.Method of creating an interface between IP modules, characterized in that obtained by the step of removing the product of the path if there is a dependency.
KR10-2001-0086827A 2001-12-28 2001-12-28 Method for generating an interface between IP modules KR100441464B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0086827A KR100441464B1 (en) 2001-12-28 2001-12-28 Method for generating an interface between IP modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0086827A KR100441464B1 (en) 2001-12-28 2001-12-28 Method for generating an interface between IP modules

Publications (2)

Publication Number Publication Date
KR20030056565A KR20030056565A (en) 2003-07-04
KR100441464B1 true KR100441464B1 (en) 2004-07-23

Family

ID=32214756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0086827A KR100441464B1 (en) 2001-12-28 2001-12-28 Method for generating an interface between IP modules

Country Status (1)

Country Link
KR (1) KR100441464B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4528728B2 (en) * 2006-01-31 2010-08-18 株式会社東芝 Digital circuit automatic design apparatus, automatic design method, and automatic design program
KR100892344B1 (en) * 2006-12-05 2009-04-08 한국전자통신연구원 A Method for Synthesizing System-on-Chip Communication Architecture
KR101065270B1 (en) * 2009-07-07 2011-09-16 비티에스테크놀로지스(주) Method of transfering timing diagram to stateflow

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000286342A (en) * 1999-03-30 2000-10-13 Hitachi Ltd Computer-readable memory medium, method of design for semiconductor integrated circuit, and method of design for semiconductor device
US6145073A (en) * 1998-10-16 2000-11-07 Quintessence Architectures, Inc. Data flow integrated circuit architecture
KR20030025057A (en) * 2001-09-19 2003-03-28 삼성전자주식회사 Hardware board and debug algorithm for generating the system program using system-on-a-chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145073A (en) * 1998-10-16 2000-11-07 Quintessence Architectures, Inc. Data flow integrated circuit architecture
JP2000286342A (en) * 1999-03-30 2000-10-13 Hitachi Ltd Computer-readable memory medium, method of design for semiconductor integrated circuit, and method of design for semiconductor device
KR20030025057A (en) * 2001-09-19 2003-03-28 삼성전자주식회사 Hardware board and debug algorithm for generating the system program using system-on-a-chip

Also Published As

Publication number Publication date
KR20030056565A (en) 2003-07-04

Similar Documents

Publication Publication Date Title
JP3258000B2 (en) Electronic circuit
US6536031B2 (en) Method for generating behavior model description of circuit and apparatus for logic verification
US6996788B2 (en) Hardware-operation description conversion method and program therefor
JPH10116302A (en) Integrated circuit designing method and integrated circuit designed by it
Pena et al. Combining process algebras and Petri nets for the specification and synthesis of asynchronous circuits
US7152218B2 (en) Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
JPH10134091A (en) Method for generating optimized circuit by logical emulation
KR100441464B1 (en) Method for generating an interface between IP modules
US6505338B1 (en) Computer readable medium with definition of interface recorded thereon, verification method for feasibility to connect given circuit and method of generating signal pattern
Watanabe et al. Protocol transducer synthesis using divide and conquer approach
Borriello Combining event and data-flow graphs in behavioral synthesis
Borriello Specification and synthesis of interface logic
US8451022B2 (en) Integrated circuit and input data controlling method for reconfigurable circuit
US6216260B1 (en) Method for automatic synthesis of a digital circuit employing an algorithm flowchart
KR100581062B1 (en) Synthesis Method Of Application Specific Instruction-Set Processor
GB2352852A (en) Apparatus and method for high-level synthesis of a circuit
US5828872A (en) Implementation of high speed synchronous state machines with short setup and hold time signals
US20030121009A1 (en) Method for generating register transfer level code
JPH07121357A (en) System and device for generating parallel program system
Mamaghani et al. Optimised synthesis of asynchronous elastic dataflows by leveraging clocked eda
Androutsopoulos et al. Synthesis and optimization of interfaces between hardware modules with incompatible protocols
CN101860359A (en) Clock generation system and clock frequency division module
JP2714015B2 (en) Logic circuit synthesizer
Crafton et al. Automatic Generation of Translators for Packet-Based and Emerging Protocols
CN117634404A (en) Method, system, equipment and medium for realizing state machine circuit based on petri net

Legal Events

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

Payment date: 20080701

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee