KR101510862B1 - Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip - Google Patents

Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip Download PDF

Info

Publication number
KR101510862B1
KR101510862B1 KR20140046110A KR20140046110A KR101510862B1 KR 101510862 B1 KR101510862 B1 KR 101510862B1 KR 20140046110 A KR20140046110 A KR 20140046110A KR 20140046110 A KR20140046110 A KR 20140046110A KR 101510862 B1 KR101510862 B1 KR 101510862B1
Authority
KR
South Korea
Prior art keywords
signal
fifo
receiver
transmitter
pointer
Prior art date
Application number
KR20140046110A
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 주식회사 텔레칩스
Priority to KR20140046110A priority Critical patent/KR101510862B1/en
Application granted granted Critical
Publication of KR101510862B1 publication Critical patent/KR101510862B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

The present invention relates to a single channel asynchronous bridge system for interconnecting blocks of different domains in system on chip (SoC) which has multiple domains. In detail, the present invention relates to a single channel asynchronous bridge system which links the blocks to a single payload channel in the asynchronous bridge regardless of FIFO depth to make block connection simple and to reduce chip size and time for making chip design; improves full system performance through FIFO depth setting by the bus performance transmitting payload data between blocks; minimizes the data time limitation by transmitting transmitter domain clerk to a receiver to make the design easy; and prevents multibit CDC problems by using a single bit control signal between a transmitter and the receiver.

Description

시스템온칩에서 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템{Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip}[0001] The present invention relates to a single-channel asynchronous bridge system for interconnecting blocks of different domains in a system-on-a-chip,

본 발명은 일반적으로 복수의 도메인을 갖는 시스템온칩(SoC)에서 상이한 도메인에 속하는 블록을 효율적으로 연결하기 위한 단일채널 방식의 비동기 브리지 기술에 관한 것이다. The present invention relates generally to a single-channel asynchronous bridge technique for efficiently connecting blocks belonging to different domains in a system-on-a-chip (SoC) having a plurality of domains.

더욱 상세하게는 본 발명은 비동기 브리지에서 FIFO 뎁스와 무관하게 단일 페이로드 채널로 블록을 연결함으로써 블록 연결을 단순화하여 칩 사이즈를 줄이고 칩 설계에 소요되는 시간을 절감할 수 있으며, 블록 간에 페이로드 데이터를 전송하는 버스의 성능에 맞게 FIFO 뎁스를 설정할 수 있어 전체 시스템 성능을 높일 수 있고, 송신기 도메인의 클럭을 수신기로 전송함으로써 페이로드 데이터의 타이밍 제한을 최소화하여 설계를 용이하게 할 수 있고, 송신기와 수신기 간에 단일 비트의 제어 신호를 사용함으로써 멀티비트 CDC 문제를 방지할 수 있는 단일채널 방식의 비동기 브리지 기술에 관한 것이다.
More particularly, the present invention simplifies the block connection by connecting blocks with a single payload channel regardless of the FIFO depth in the asynchronous bridge, thereby reducing the chip size and the time required for chip design, It is possible to set the FIFO depth according to the performance of the bus for transmitting the data, thereby improving the overall system performance and transmitting the clock of the transmitter domain to the receiver, thereby minimizing the timing restriction of the payload data, Channel asynchronous bridge technology capable of preventing multi-bit CDC problems by using a single-bit control signal between the receivers.

최근들어 시스템온칩(System-on-Chip, SoC)의 칩 사이즈가 커지고 다양한 기능이 수용되면서, 하나의 칩 내부는 상이한 클럭, 파워, 전압 도메인으로 기능 블록들이 나누어진다. 칩 내부에서 상이한 도메인에 존재하는 블록들 간에는 클럭, 파워, 전압 조건이 상이하기 때문에 비동기 브리지(asynchronous bridge)를 통해 일반적으로 연결한다.In recent years, as the chip size of a system-on-chip (SoC) increases and various functions are accepted, functional blocks are divided into different clock, power, and voltage domains within one chip. Because the clock, power, and voltage conditions are different among the blocks existing in different domains within the chip, they are commonly connected through an asynchronous bridge.

전체 칩의 블록 개수가 늘어나면서 블록 간의 비동기 브리지 연결은 칩 사이즈와 설계시간에 영향을 준다. SoC의 설계 과정에서는 각 블록 별로 RTL 디자인 작업, STA(Static Timing Analysis) 작업, 레이아웃 설계 작업을 독립적으로 수행하는데, 전체 칩의 블록 개수가 늘어나면서 블록 간의 연결을 고려하여 칩 사이즈와 설계 시간이 영향을 받는다. 블록 간의 연결이 많아질수록 RTL 디자인에서 검증 항목이 증가하고 STA에서 블록 간의 타이밍 제한사항과 검토대상 체크포인트가 증가하여 설계 시간도 길어지게 된다. 또한, 레이아웃 설계에서 블록 간의 루팅이 복잡해져서 전체 칩 사이즈도 증가하게 된다.As the number of blocks in an entire chip increases, the asynchronous bridge connection between blocks affects chip size and design time. SoC design process independently performs RTL design work, STA (Static Timing Analysis) work, and layout design work for each block. As the number of blocks of whole chip increases, chip size and design time influence . As the number of connections between blocks increases, the number of verification items increases in the RTL design, and the timing constraints between the blocks and the check points to be examined are increased in the STA, which increases the design time. Also, routing between blocks in the layout design becomes complicated, resulting in an increase in the total chip size.

또한, 종래기술의 비동기 브리지에서는 일반적으로 버스의 데이터를 중간에 저장하는 메모리로서 내부 FIFO가 사용되는데, 이러한 내부 FIFO의 뎁스(depth)에 의해 전체 시스템 성능이 영향 받는다.Also, in the conventional asynchronous bridge, an internal FIFO is generally used as a memory for storing the data of the bus in the middle. The depth of the internal FIFO affects overall system performance.

[도 1]은 종래기술에서 상이한 도메인의 블록 연결에 사용되는 다중채널 방식의 비동기 브리지 시스템을 나타낸다. 비동기 브리지는 송신기(110)와 수신기(120)로 구성되어 있고, FIFO(112)는 송신기(110)에 위치한다. 이때, [도 1]에 도시된 FIFO(112)의 뎁스는 4이다.1 shows a multi-channel asynchronous bridge system used for block connection of different domains in the prior art. The asynchronous bridge is composed of a transmitter 110 and a receiver 120, and a FIFO 112 is located in the transmitter 110. At this time, the depth of the FIFO 112 shown in FIG.

송신기(110)는 송신 제어기(111), FIFO(112), 송신 싱크로나이저(113)를 포함하여 구성된다. 송신기(110)는 밸리드-레디 핸드셰이킹 프로토콜(valid-ready handshaking protocol)을 사용하여 소오스(source)로부터 페이로드 데이터(payload_src)를 제공받는다. 페이로드 데이터는 송신기(110)의 FIFO(112)에 저장되고, FIFO 뎁스와 동일한 4개의 페이로드 채널(payload_ch0 ~ payload_ch3)을 통해 수신기(120)에 전송된다. The transmitter 110 includes a transmission controller 111, a FIFO 112, and a transmission synchronizer 113. Transmitter 110 is provided with payload data (payload_src) from a source using a valid-ready handshaking protocol. The payload data is stored in the FIFO 112 of the transmitter 110 and transmitted to the receiver 120 through the same four payload channels (payload_ch0 to payload_ch3) as the FIFO depth.

수신기(120)는 수신 제어기(121), 멀티플렉서(122), 수신 싱크로나이저(123)를 포함하여 구성된다. 수신기(120)는 여러 페이로드 채널로 페이로드 데이터를 제공받아 멀티플렉서(122)를 통하여 하나의 페이로드 데이터를 선택한다. 밸리드-레디 핸드셰이킹 프로토콜을 사용하여 데스티네이션(destination)에 페이로드 데이터(payload_dst)를 제공한다.The receiver 120 includes a receiving controller 121, a multiplexer 122, and a receiving synchronizer 123. The receiver 120 receives the payload data on a plurality of payload channels and selects one payload data through the multiplexer 122. And provides the payload data (payload_dst) to the destination using a validated-handy handshaking protocol.

송신기(110)는 FIFO(112)가 FULL이 아니면 FIFO(112)에 페이로드 데이터를 저장하고 FIFO(112)의 쓰기 포인터(write_pointer)를 수신기(120)에 전송한다. 수신기(120)는 FIFO(112)가 EMPTY가 아닐 경우, 데스티네이션에 페이로드 데이터(payload_dst)를 전달하고 읽기 포인터(read_pointer)를 송신기(110)에 전송한다. 송신기(110)와 수신기(120)는 쓰기 포인터와 읽기 포인터를 비교하여 각각 FULL과 EMPTY를 결정한다. The transmitter 110 stores the payload data in the FIFO 112 and transmits the write pointer (write_pointer) of the FIFO 112 to the receiver 120 if the FIFO 112 is not FULL. The receiver 120 transfers payload data (payload_dst) to the destination and sends a read pointer (read_pointer) to the transmitter 110 when the FIFO 112 is not EMPTY. The transmitter 110 and the receiver 120 compare the write pointer and the read pointer to determine FULL and EMPTY, respectively.

송신기(110)와 수신기(120)는 클럭 도메인이 상이하기 때문에 쓰기 포인터와 읽기 포인터는 싱크로나이저(113, 123)를 거쳐 저장되고, 일반적으로 송신 제어기(111)와 수신 제어기(121)에 그레이코드 포인터(Gray code pointer)를 내장하여 멀티비트 CDC(Multiple-bit Clock Domain Crossing)에 의한 영향을 완화하려고 노력한다.Since the transmitter 110 and the receiver 120 have different clock domains, the write pointer and the read pointer are stored via the synchronizers 113 and 123. Generally, the transmit controller 111 and the receive controller 121 transmit the gray code Pointer (Gray code pointer) built in to mitigate the effect of multi-bit CDC (Multiple-bit Clock Domain Crossing).

이와 같은 종래기술의 다중채널 비동기 브리지 시스템에서는 블록 간의 연결 채널 수는 송신기(110)에 구비된 FIFO(112)의 뎁스, 즉 FIFO 뎁스에 영향을 받는다. 비동기 브리지의 FIFO 뎁스가 증가하면 페이로드 채널이 증가하고 블록 간의 연결 채널이 늘어난다. 연결 채널이 증가함에 따라 성능이 개선되는 장점이 있는 반면, 칩 설계에서는 여러가지 단점이 발생한다. In such a conventional multi-channel asynchronous bridge system, the number of connection channels between blocks is affected by the depth of the FIFO 112 provided in the transmitter 110, that is, the FIFO depth. As the FIFO depth of the asynchronous bridge increases, the payload channel increases and the connection channel between the blocks increases. While there is an advantage that the performance improves as the connection channel increases, there are various disadvantages in the chip design.

즉, 전체 칩의 루팅(routing)이 복잡해짐에 따라 칩 사이즈가 증가할 뿐만 아니라 RTL 디자인, STA 작업, 레이아웃 설계에 소요되는 시간이 늘어나게 된다. 또한 이러한 블록 간의 연결 제약으로 인해 FIFO(112)의 뎁스를 버스 성능을 만족하도록 충분하게 설정하지 못하는 경우가 많으며, 그로 인해 전체 시스템의 성능을 충분히 높이지 못하는 문제가 있다.That is, as the routing of the entire chip becomes complicated, not only the chip size increases but also the time required for RTL design, STA operation, and layout design is increased. In addition, due to the connection restriction between the blocks, the depth of the FIFO 112 may not be set sufficiently to satisfy the bus performance, which results in a problem that the performance of the entire system can not be sufficiently increased.

또한, 송신기(110)에서 전송되는 페이로드 데이터는 데스티네이션에 도달하기 전에 수신기(120)를 거치는데, 페이로드 데이터의 레이턴시(latency)는 수신기 도메인의 클럭 주파수에 의해서 제한된다. 이 타이밍 제한은 수신기 도메인의 클럭 주파수가 빠를수록 그리고 송신기(110)와 수신기(120) 간의 물리적 거리가 멀수록 만족하기 어려워진다. 또한, 쓰기 포인터와 읽기 포인터는 그레이코드 포인터를 사용하여 멀티비트 CDC 문제를 완화하였지만 블록 간의 거리가 멀어진다면 멀티비트 CDC 문제가 심각해질 여지가 있다. 그에 따라, 종래기술에서는 포인터 비트 간의 스큐(skew)를 일정하게 맞추는 타이밍 제한이 추가적으로 필요하게 되어 칩 설계 과정이 매우 번거러워진다.In addition, the payload data transmitted at the transmitter 110 passes through the receiver 120 before reaching the destination, where the latency of the payload data is limited by the clock frequency of the receiver domain. This timing limitation becomes more difficult as the clock frequency of the receiver domain becomes faster and the physical distance between the transmitter 110 and the receiver 120 becomes longer. In addition, write and read pointers mitigate multi-bit CDC problems using gray code pointers, but multi-bit CDC problems can be serious if the distance between blocks is large. Accordingly, in the prior art, there is a further need for a timing limit to uniformly adjust the skew between the pointer bits, so that the chip designing process becomes very cumbersome.

따라서 이상과 같은 여러 문제점을 해결할 수 있는 시스템온칩 블록연결 기술이 관련 업계에서는 절실히 요청되고 있다.
Therefore, a system-on-chip block connection technology capable of solving various problems as described above is urgently required in the related industry.

1. 대한민국 특허출원 10-2012-0003660호 "시스템온칩, 마이크로컨트롤러, 이를 포함하는 전자장치 및 시스템온칩의 통신 방법"1. Korean patent application No. 10-2012-0003660 entitled "System-on-a-chip, microcontroller, electronic device including the same, and communication method of system-

2. 대한민국 특허출원 10-2007-0121656호 "멀티미디어 시스템용 SoC 시스템"2. Korean Patent Application No. 10-2007-0121656 entitled "SoC System for Multimedia System"

3. 대한민국 특허출원 10-2009-0117760호 "데이터 프로세싱 시스템에서의 비동기 통합 업사이징 회로"3. Korean Patent Application No. 10-2009-0117760 entitled "Asynchronous Integrated Upsizing Circuit in Data Processing System"

4. 대한민국 특허출원 10-2006-7001734호 "마이크로프로세서 서브시스템"4. Korean Patent Application No. 10-2006-7001734 entitled "Microprocessor Subsystem"

5. 대한민국 특허출원 10-2004-7016993호 "시스톨릭 어레이형 구조체 구현 프로세싱 장치 및 프로세싱 방법"
5. Korean Patent Application No. 10-2004-7016993 entitled " Systolic Array-Type Structure Implementation Processing Apparatus and Processing Method "

본 발명의 목적은 일반적으로 복수의 도메인을 갖는 시스템온칩(SoC)에서 상이한 도메인에 속하는 블록을 효율적으로 연결하기 위한 단일채널 방식의 비동기 브리지 기술을 제공하는 것이다.An object of the present invention is to provide a single-channel asynchronous bridge technique for efficiently connecting blocks belonging to different domains in a system-on-a-chip (SoC) having a plurality of domains in general.

특히, 본 발명의 목적은 비동기 브리지에서 FIFO 뎁스와 무관하게 단일 페이로드 채널로 블록을 연결함으로써 블록 연결을 단순화하여 칩 사이즈를 줄이고 칩 설계에 소요되는 시간을 절감할 수 있으며, 블록 간에 페이로드 데이터를 전송하는 버스의 성능에 맞게 FIFO 뎁스를 설정할 수 있어 전체 시스템 성능을 높일 수 있고, 송신기 도메인의 클럭을 수신기로 전송함으로써 페이로드 데이터의 타이밍 제한을 최소화하여 설계를 용이하게 할 수 있고, 송신기와 수신기 간에 단일 비트의 제어 신호를 사용함으로써 멀티비트 CDC 문제를 방지할 수 있는 단일채널 방식의 비동기 브리지 기술을 제공하는 것이다.
In particular, it is an object of the present invention to simplify the block connection by connecting blocks with a single payload channel regardless of the FIFO depth in the asynchronous bridge, thereby reducing chip size and time required for chip design, It is possible to set the FIFO depth according to the performance of the bus for transmitting the data, thereby improving the overall system performance and transmitting the clock of the transmitter domain to the receiver, thereby minimizing the timing restriction of the payload data, Channel asynchronous bridge technique that can prevent multi-bit CDC problems by using a single-bit control signal between the receivers.

이상의 과제를 달성하기 위한 본 발명은 시스템온칩에서 상이한 도메인에 속하는 복수의 블록을 연결하도록 송신기와 수신기를 구비하는 단일채널의 비동기 브리지 시스템이다. 이때, 송신기(210)는, 소오스로부터 제공된 페이로드 데이터와 소오스 밸리드 신호를 임시 저장하여 타이밍을 분리하고 페이로드 데이터를 단일의 페이로드 채널을 통해 수신기로 전송하는 레지스터 슬라이스(212); 수신기로부터 스트로브 신호를 제공받아 수신기에 내장된 FIFO의 읽기 포인터를 추종하는 제 1 포인터를 생성하는 제 1 카운터(213); 제 1 포인터를 제공받아 송신기의 클럭 도메인으로 재설정하는 스트로브 싱크로나이저(214); 소오스 밸리드 신호에 대응하도록 전송 밸리드 신호를 생성하여 수신기로 제공하고, 전송 밸리드 신호에 의한 카운팅 값과 제 1 포인터에 의한 카운팅 값을 비교하여 수신기에 내장된 FIFO의 FULL 여부를 판단하고, FULL 여부의 판단 결과에 따라 레지스터 슬라이스가 페이로드 데이터를 수신기로 전송할지 여부를 제어하는 FIFO 송신 제어기(211);를 포함하여 구성된다. 또한, 수신기(220)는, 단일의 페이로드 채널을 통해 송신기로부터 페이로드 데이터를 제공받아 저장하는 FIFO(222); 전송 밸리드 신호에 대응하도록 쓰기 포인터를 생성하여 FIFO의 쓰기 어드레스로 제공하는 제 3 카운터(223); 쓰기 포인터를 제공받아 수신기의 클럭 도메인으로 재설정하는 밸리드 싱크로나이저(224); 데스티네이션 밸리드 신호 및 데스티네이션 레디 신호에 대응하도록 읽기 포인터를 생성하여 FIFO의 읽기 어드레스로 제공하고, 전송 밸리드 신호에 의한 카운팅 값과 데스티네이션 밸리드 신호 및 데스티네이션 레디 신호에 의한 카운팅 값을 비교하여 FIFO의 EMPTY 여부를 판단하고, EMPTY 여부의 판단 결과 및 데스티네이션 레디 신호에 대응하도록 스트로브 신호를 생성하여 송신기로 전송하는 FIFO 수신 제어기(221);를 포함하여 구성된다.In order to achieve the above object, the present invention is a single-channel asynchronous bridge system having a transmitter and a receiver for connecting a plurality of blocks belonging to different domains in a system-on-chip. At this time, the transmitter 210 includes a register slice 212 for temporarily storing the payload data and the source valid signal provided from the source, separating the timing, and transmitting the payload data to the receiver through a single payload channel; A first counter 213 receiving a strobe signal from a receiver and generating a first pointer that follows a read pointer of a FIFO built in a receiver; A strobe synchronizer 214 receiving a first pointer and resetting the first pointer to a clock domain of the transmitter; And generates a transmission valid signal so as to correspond to the source valid signal and provides the transmission valid signal to the receiver so as to determine whether the FIFO built in the receiver is FULL by comparing the count value by the transmission valid signal and the count value by the first pointer, And a FIFO transmission controller 211 for controlling whether or not the register slice is to transmit payload data to the receiver according to the determination result of FULL. The receiver 220 also includes a FIFO 222 for receiving and storing payload data from a transmitter over a single payload channel; A third counter 223 for generating a write pointer to correspond to the transmit valid signal and providing the write pointer as a write address of the FIFO; A valid synchronizer 224 that receives a write pointer and resets it to the clock domain of the receiver; A read pointer is generated so as to correspond to the destination valid signal and the destination read signal and is provided as the read address of the FIFO. The count value by the transfer valid signal and the count value by the destination valid signal and the destination read signal are And a FIFO reception controller 221 for determining whether or not the FIFO is EMPTY, generating a strobe signal corresponding to the determination result of the EMPTY and a destination ready signal, and transmitting the generated strobe signal to the transmitter.

본 발명에서 FIFO 송신 제어기(211)는, 소오스 밸리드 신호와 FULL 여부의 판단 결과를 논리 곱 연산하여 전송 밸리드 신호를 생성하는 제 1 논리곱 게이트(215); 제 1 카운터가 생성하는 제 1 포인터를 추종하는 제 2 포인터를 생성하는 제 2 카운터(217); 제 1 포인터와 제 2 포인터의 값이 상이한 동안 유효 상태를 유지하는 팝 신호를 생성하는 제 1 비교기(218); 소오스 밸리드 신호에 의해 카운트 업하고 팝 신호에 의해 카운트 다운하는 내장 카운터를 구비하여 내장 카운터의 값에 기초하여 수신기에 내장된 FIFO의 FULL 여부를 판단하고, FULL 여부 판단 결과에 대응되는 신호를 레지스터 슬라이스(212)의 레디 포트로 제공하여 페이로드 데이터에 대한 전송 제어를 수행하는 FIFO 풀 제너레이터(216);를 포함하여 구성될 수 있다.In the present invention, the FIFO transmission controller 211 includes: a first AND gate 215 for performing a logical product of the source valid signal and the result of the FULL determination to generate a transmission valid signal; A second counter (217) for generating a second pointer following the first pointer generated by the first counter; A first comparator (218) generating a pop signal that remains valid while the values of the first pointer and the second pointer are different; A built-in counter counting up by a source valid signal and counting down by a pop signal to determine whether or not the FIFO built in the receiver is full based on the value of the built-in counter, And a FIFO pool generator 216 for providing transmission to the ready port of the slice 212 and performing transmission control on the payload data.

또한 본 발명에서 FIFO 수신 제어기(221)는, 데스티네이션 밸리드 신호 및 데스티네이션 레디 신호를 논리 곱 연산하여 제 1 인에이블 신호를 생성하는 제 2 논리곱 게이트(227); 제 1 인에이블 신호가 HIGH인 기간에 대응하여 읽기 포인터를 생성하여 FIFO의 읽기 어드레스로 제공하는 제 4 카운터(225); 쓰기 포인터와 읽기 포인터의 값이 상이한 동안 유효 상태를 유지하는 데스티네이션 밸리드 신호를 생성하는 제 2 비교기(229); 데스티네이션 밸리드 신호 및 데스티네이션 레디 신호를 논리 곱 연산하여 제 2 인에이블 신호를 생성하는 제 3 논리곱 게이트(228); 제 1 인에이블 신호가 HIGH인 기간에 대응하여 스트로브 신호를 생성하여 송신기로 전송하는 클럭 게이트(226);를 포함하여 구성될 수 있다.In the present invention, the FIFO reception controller 221 includes: a second AND gate 227 for performing a logical product operation of a destination valid signal and a destination ready signal to generate a first enable signal; A fourth counter 225 for generating a read pointer corresponding to a period in which the first enable signal is HIGH and providing the read pointer as a read address of the FIFO; A second comparator (229) for generating a destination valid signal that remains valid while the values of the write pointer and the read pointer are different; A third AND gate 228 for performing a logical multiplication of the destination valid signal and the destination ready signal to generate a second enable signal; And a clock gate 226 for generating a strobe signal corresponding to a period in which the first enable signal is HIGH and transmitting the generated strobe signal to a transmitter.

이때, 송신기(210)는 송신기 도메인의 클럭 신호를 수신기(220)로 전송하고, 수신기(220)는 송신기 도메인의 클럭 신호를 수신하여 제 3 카운터의 카운팅 클럭 및 FIFO의 동작클럭으로 반전 입력하고, 송신기(210)와 수신기(220)가 주고받는 전송 밸리드 신호와 스트로브 신호는 단일 비트로 구성되는 것이 바람직하다. 또한, 제 1 내지 제 4 카운터(213, 217, 223, 225)는 그레이코드 카운터이고, FIFO(222)는 뎁스구성형 FIFO인 것이 바람직하다. 또한, 상이한 도메인에 속하는 복수의 블록에 포함된 복수의 송신기(210)와 복수의 수신기(220)는 리셋 신호를 연동시켜 동기화된 로직의 리셋으로 구성된다.
At this time, the transmitter 210 transmits the clock signal of the transmitter domain to the receiver 220, the receiver 220 receives the clock signal of the transmitter domain, inverts the counted clock of the third counter and the operation clock of the FIFO, The transmission valid signal and the strobe signal exchanged between the transmitter 210 and the receiver 220 are preferably composed of a single bit. It is preferable that the first to fourth counters 213, 217, 223 and 225 are gray code counters and the FIFO 222 is a depth configuration type FIFO. In addition, a plurality of transmitters 210 and a plurality of receivers 220 included in a plurality of blocks belonging to different domains consist of a reset of synchronized logic by interlocking a reset signal.

본 발명에 따르면 복수의 도메인을 갖는 시스템온칩(SoC)에서 상이한 도메인에 속하는 블록을 단일채널 방식의 비동기 브리지를 활용하여 효율적으로 연결할 수 있는 장점이 있다.According to the present invention, a system-on-chip (SoC) having a plurality of domains has an advantage that blocks belonging to different domains can be efficiently connected using an asynchronous bridge of a single channel scheme.

특히, 본 발명에 따르면 비동기 브리지에서 FIFO 뎁스와 무관하게 단일 페이로드 채널로 블록을 연결함으로써 블록 연결을 단순화하여 칩 사이즈를 줄이고 칩 설계에 소요되는 시간을 절감할 수 있는 장점이 있다.In particular, according to the present invention, a block connection is simplified by connecting a block with a single payload channel regardless of the FIFO depth in an asynchronous bridge, thereby reducing chip size and time required for chip design.

또한, 본 발명에 따르면 블록 간에 페이로드 데이터를 전송하는 버스의 성능에 맞게 FIFO 뎁스를 설정할 수 있어 시스템온칩의 전체 시스템 성능을 높일 수 있는 장점이 있다.In addition, according to the present invention, the FIFO depth can be set according to the performance of a bus for transmitting payload data between blocks, thereby improving the performance of the entire system-on-a-chip.

또한, 본 발명에 따르면 송신기 도메인의 클럭을 수신기로 전송함으로써 페이로드 데이터의 타이밍 제한을 최소화하여 설계를 용이하게 할 수 있고, 송신기와 수신기 간에 단일 비트의 제어 신호를 사용함으로써 멀티비트 CDC 문제를 방지할 수 있는 장점이 있다.
Also, according to the present invention, it is possible to minimize the timing limitation of the payload data by transmitting the clock of the transmitter domain to the receiver, thereby facilitating design, and by using a single-bit control signal between the transmitter and the receiver, There is an advantage to be able to do.

[도 1]은 종래기술에서 상이한 도메인의 블록연결에 사용되는 다중채널의 비동기 브리지 시스템을 나타내는 도면,
[도 2]는 본 발명에 따른 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템을 나타내는 도면,
[도 3]은 본 발명에 따른 송신기의 내부 구조를 나타내는 도면,
[도 4]는 본 발명에 따른 수신기의 내부 구조를 나타내는 도면,
[도 5]는 AXI 프로토콜을 사용하는 블록 간의 데이터 연결을 본 발명을 적용하여 구성한 도면,
[도 6]은 AXI 프로토콜을 사용하는 블록 간의 클럭 및 리셋 연결을 본 발명을 적용하여 구성한 도면.
1 shows an asynchronous multi-channel bridge system used for block connection of different domains in the prior art, Fig.
2 shows a single channel asynchronous bridge system for block connection of different domains according to the present invention, Fig.
3 shows an internal structure of a transmitter according to the present invention,
4 shows an internal structure of a receiver according to the present invention,
5 is a diagram illustrating a data connection between blocks using the AXI protocol according to the present invention;
FIG. 6 is a diagram illustrating a clock and reset connection between blocks using the AXI protocol according to the present invention. FIG.

본 발명은 SoC에서 상이한 도메인에 속하는 블록들을 효율적으로 연결하기 위한 단일채널의 비동기 브리지 기술을 제공한다. 본 발명에 따른 비동기 브리지는 FIFO 뎁스와 무관하게 단일 채널(즉, 하나의 페이로드 채널)로 블록들을 연결함으로써 전체적으로 블록 간의 연결을 단순화한다. 이로 인해, RTL 디자인에서 블록 간의 연결과 검증 시간이 감소되고 STA 과정에서 블록 간의 타이밍 제한사항이 줄어들어 전체 칩 설계 시간이 단축되며, 레이아웃 설계에서 블록 간의 루팅이 단순화되기 때문에 전체 칩 사이즈가 줄어든다.The present invention provides a single channel asynchronous bridge technique for efficiently connecting blocks belonging to different domains in an SoC. The asynchronous bridge according to the present invention simplifies the connection between the blocks as a whole by connecting the blocks with a single channel (i.e., one payload channel) regardless of the FIFO depth. This reduces the total chip size because the RTL design reduces the connection and verification time between blocks, reduces the timing constraints between blocks in the STA process, reduces overall chip design time, and simplifies routing between blocks in the layout design.

또한, 본 발명은 블록 간의 연결에 제한받지 않고 FIFO 뎁스를 버스 성능에 맞게 증가시킬 수 있어 종래기술에 비해 전체 시스템 성능을 높일 수 있다. 일반적으로 비동기 브리지에서 내부 FIFO는 버스 데이터를 중간에 저장하며, FIFO 뎁스가 전체 시스템 성능에 영향을 준다. 종래에는 FIFO 뎁스와 동일하게 페이로드 채널 수를 가지게 되므로 FIFO 뎁스가 증가하면 페이로드 채널 수도 증가하게 되어 블록 간의 연결이 복잡해지고, 그에 따라 여러가지 문제점이 발생하였다. 이로 인해 종래기술에서는 FIFO 뎁스가 버스 성능에 충분하지 않게 된다. 본 발명의 비동기 브리지는 FIFO 뎁스와 상관없이 단일 페이로드 채널을 사용하여 블록 간을 연결하므로 버스 성능에 충분한 FIFO 뎁스를 확보할 수 있게 되어 전체 시스템 성능을 높일 수 있는 것이다.Also, the present invention can increase the FIFO depth according to the bus performance without being limited by the connection between the blocks, thereby improving the overall system performance as compared with the prior art. In general, in an asynchronous bridge, the internal FIFO stores the bus data in the middle, and the FIFO depth affects overall system performance. Conventionally, since the number of payload channels is the same as that of the FIFO depth, if the FIFO depth is increased, the number of payload channels is increased and the connection between the blocks is complicated, thereby causing various problems. This causes the FIFO depth to be insufficient for the bus performance in the prior art. Since the asynchronous bridge of the present invention connects the blocks using a single payload channel irrespective of the FIFO depth, the FIFO depth sufficient for the bus performance can be ensured, thereby improving the overall system performance.

또한, 본 발명에서는 송신기 도메인의 클럭을 수신기로 전송함으로써 페이로드 데이터의 레이턴시에 의한 타이밍 제한 문제를 완화하였다. 상이한 2개의 도메인이 하나의 블록 안에 있다면 송신기와 수신기는 하나의 블록 안에 놓이기 때문에 송신기와 수신기 간의 페이로드 데이터와 제어 신호들의 레이턴시는 무시할 수 있을 정도로 작다. 하지만, 상이한 2개의 도메인이 2개의 블록에 나누어 있는 경우라면 송신기와 수신기가 상이한 블록에 놓이게 되어 송신기와 수신기 간의 페이로드 데이터와 제어 신호들의 레이턴시는 큰 값이 된다.Also, in the present invention, the problem of timing limitation due to the latency of the payload data is alleviated by transmitting the clock of the transmitter domain to the receiver. If the two different domains are in one block, the transmitter and the receiver are placed in one block, so the payload data and the latency of the control signals between the transmitter and the receiver are negligibly small. However, if the two different domains are divided into two blocks, the transmitter and the receiver are placed in different blocks, and the latency of the payload data and control signals between the transmitter and the receiver becomes large.

송신기에서 전송된 페이로드 데이터는 데스티네이션에서 사용되기 전에 수신기에 도착해야만 하는데, 수신기 도메인의 클럭 주파수에 관련된 타이밍 제한이 시스템 설계에서 고려되어야 한다. 즉, 송신기에서 수신기로 전송되는 페이로드 데이터의 레이턴시는 수신기 도메인의 클럭 주파수에 의해서 제한된다. 이 타이밍 제한은 수신기 도메인의 클럭 주파수가 빠를수록, 그리고 블록 간의 물리적 거리가 멀수록 만족시키기가 어려워진다.The payload data transmitted at the transmitter must arrive at the receiver before being used in the destination, and timing constraints related to the clock frequency of the receiver domain must be considered in the system design. That is, the latency of the payload data transmitted from the transmitter to the receiver is limited by the clock frequency of the receiver domain. This timing constraint becomes more difficult to satisfy as the clock frequency of the receiver domain becomes faster and the physical distance between blocks becomes longer.

본 발명에서는 송신기 도메인의 클럭을 수신기로 전송하여 페이로드 데이터를 송신기 도메인의 클럭에 동기화시킨다. 클럭과 페이로드 데이터는 레이턴시를 같게 유지하여 셋업 타임(setup time)을 만족시키고, 수신기는 송신기 도메인의 클럭에 대해 반전 클럭(inversion clock)을 사용함으로써 홀드 타임(hold time)을 만족시킨다. 이와 같은 구성을 통하여 송신기에서 수신기로 전송되는 페이로드 데이터의 레이턴시가 수신기 도메인의 클럭 주파수에 의한 타이밍 제한 문제로부터 자유로워진다는 장점이 있다.In the present invention, a clock of a transmitter domain is transmitted to a receiver to synchronize payload data with a clock of a transmitter domain. The clock and payload data satisfy the setup time by keeping the latency the same and the receiver satisfies the hold time by using the inversion clock for the clock of the transmitter domain. With this configuration, there is an advantage that the latency of the payload data transmitted from the transmitter to the receiver is free from the timing limitation problem due to the clock frequency of the receiver domain.

또한, 본 발명에서는 송신기와 수신기가 단일 비트의 밸리드 신호와 스트로브 신호를 주고 받도록 구성함으로써 멀티비트 CDC 문제가 발생하지 않도록 설계하였다. 종래기술에서는 송신기와 수신기가 그레이코드 포인터를 주고 받음으로써 FIFO의 FULL과 EMPTY 상태를 결정하였다. 상이한 2개의 도메인이 하나의 블록 안에 있다면 그레이코드 포인터의 레이턴시가 무시할 수 있을 정도로 작기 때문에 멀티비트 CDC가 문제되지 않는다. 하지만, 상이한 2개의 도메인이 2개의 블록에 나누어 있는 경우라면 블록 간의 거리로 인해 그레이코드 포인터의 레이턴시는 큰 값이 되고 그로 인해 멀티비트 CDC 문제가 발생할 수 있다. 본 발명에서는 종래기술처럼 멀티비트의 그레이코드 포인터를 전달하는 대신, 송신기와 수신기가 단일 비트의 밸리드 신호와 스트로브 신호를 주고 받도록 함으로써 멀티비트 CDC 문제가 발생하지 않도록 고려하였다.Also, in the present invention, the transmitter and the receiver are configured to transmit and receive a single-bit valid signal and a strobe signal so that a multi-bit CDC problem does not occur. In the prior art, the FULL and EMPTY states of the FIFO are determined by transmitting and receiving gray code pointers between the transmitter and the receiver. If the two different domains are in one block, the multi-bit CDC is not a problem since the latency of the gray code pointer is negligibly small. However, if the two different domains are divided into two blocks, the latency of the Gray code pointer becomes large due to the distance between the blocks, which may cause a multi-bit CDC problem. In the present invention, instead of transmitting a multi-bit Gray code pointer as in the prior art, the transmitter and the receiver exchange a single-bit valid signal and a strobe signal so as to avoid a multi-bit CDC problem.

이하에서는 도면을 참조하여 본 발명의 실시예를 상세하게 살펴본다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[도 2]는 본 발명에서 상이한 도메인의 블록 연결을 위한 단일채널 비동기 브리지 시스템을 나타내는 도면이다. 본 발명에 따른 비동기 브리지는 송신기(210)와 수신기(220)로 구성되어 있는데, FIFO 모듈은 수신기(220)에 위치하고 있는 점이 종래기술과는 상이하다.2 is a diagram illustrating a single channel asynchronous bridge system for block connection of different domains in the present invention. The asynchronous bridge according to the present invention comprises a transmitter 210 and a receiver 220, which are different from the prior art in that the FIFO module is located in the receiver 220.

먼저, 송신기(210)는 밸리드-레디 핸드셰이킹 프로토콜을 사용하여 소오스로부터 페이로드 데이터(payload_src)를 받아 레지스터 슬라이스(Register Slice; 212)에 저장한다. 레지스터 슬라이스(212)는 페이로드 데이터를 임시 저장하여 타이밍을 분리하는데, 본 발명에서는 그 저장된 페이로드 데이터를 단일 페이로드 채널을 통해 수신기(220)로 전송한다(tx_payload). 참고로, 레지스터 슬라이스 기술은 AXI(Advanced eXtensible Interface) 프로토콜에서 AXI 인터커넥트를 등록하고 타이밍을 분리할 목적으로 사용된다.First, the transmitter 210 receives payload data (payload_src) from a source using a valid-handy handshaking protocol and stores the data in a register slice 212. The register slice 212 temporarily stores the payload data to separate the timing. In the present invention, the stored payload data is transmitted to the receiver 220 via a single payload channel (tx_payload). For reference, register slice technology is used to register AXI interconnects in the Advanced Extensible Interface (AXI) protocol and isolate timing.

한편, [도 1]에 도시된 종래기술에서는 FIFO 뎁스에 따라 페이로드 채널의 개수도 복수 개로 설정되었으나, 본원발명에서는 FIFO 뎁스와 무관하게 페이로드 채널이 단일 채널이다. 따라서, 본원발명에서는 버스 성능을 고려하여 필요한만큼 FIFO 뎁스를 증가시키더라도 블록 연결이 복잡해지지 않는다.Meanwhile, although the number of payload channels is set to a plurality according to the FIFO depth in the prior art shown in FIG. 1, in the present invention, the payload channel is a single channel regardless of the FIFO depth. Therefore, in the present invention, the block connection is not complicated even if the FIFO depth is increased as much as necessary in consideration of the bus performance.

수신기(220)는 송신기(210)로부터 페이로드 데이터를 제공받아 FIFO(222)에 저장하고 밸리드-레디 핸드셰이킹 프로토콜을 사용하여 데스티네이션에 페이로드 데이터를 전송한다(payload_dst).The receiver 220 receives the payload data from the transmitter 210, stores the payload data in the FIFO 222, and transmits the payload data to the destination using payload-ready handshaking protocol (payload_dst).

송신기(210)는 수신기(220) 내부의 FIFO(222)를 체크하고 FULL이 아닐 경우에는 레지스터 슬라이스(212)에 저장된 페이로드 데이터를 수신기(220)의 FIFO(222)로 전송한다. 이때, 송신기(210)는 밸리드 신호(tx_valid)를 통해 페이로드 데이터가 유효함을 표시한다.The transmitter 210 checks the FIFO 222 in the receiver 220 and transfers the payload data stored in the register slice 212 to the FIFO 222 of the receiver 220 when the FULL is not FULL. At this time, the transmitter 210 indicates that the payload data is valid through the valid signal tx_valid.

수신기(220)는 FIFO(222)가 EMPTY가 아닐 경우 데스티네이션으로 페이로드 데이터를 전송하고, 스트로브 신호(rx_strobe)를 송신기(210)에 보내 페이로드 데이터의 전송이 완료되었음을 알려준다.The receiver 220 transmits the payload data to the destination when the FIFO 222 is not EMPTY and sends the strobe signal rx_strobe to the transmitter 210 to inform that the transmission of the payload data is completed.

송신기(210)의 제 1 그레이코드 카운터(Gray Code Counter; 213)는 스트로브 신호(rx_strobe)를 통해 읽기 포인터(ReadPtr)를 생성하고, 수신기(220)의 제 3 그레이코드 카운터(223)는 밸리드 신호(tx_valid)를 통해 쓰기 포인터(WritePtr)를 생성한다. 이렇게 생성된 읽기 포인터와 쓰기 포인터(ReadPtr, WritePtr)를 사용하여 송신기(210)와 수신기(220)는 수신기(220) 내부의 FIFO(222)에 대해 FULL 또는 EMPTY를 판단한다.The first Gray code counter 213 of the transmitter 210 generates a read pointer ReadPtr through the strobe signal rx_strobe and the third Gray code counter 223 of the receiver 220 generates a read pointer And generates a write pointer (WritePtr) through a signal (tx_valid). The transmitter 210 and the receiver 220 determine FULL or EMPTY for the FIFO 222 in the receiver 220 using the generated read pointer and write pointer (ReadPtr, WritePtr).

수신기(220)의 FIFO(222)와 제 3 그레이코드 카운터(223)는 송신기(210)에서 전송된 클럭(tx_clk)에 동기화된다. 송신기(210)에서 수신기(220)로 전송되는 클럭(tx_clk), 페이로드 데이터(tx_payload), 밸리드 신호(tx_valid)는 물리적으로 신호라인의 길이가 유사하므로 레이턴시도 사실상 동일한 수준으로 유지되며, 그에 따라 전송 경로에서 발생되는 페이로드 데이터의 레이턴시에도 불구하고 셋업 타임이 만족된다. 수신기(220)의 FIFO(222)와 제 3 그레이코드 카운터(223)는 송신기(210)에서 전송된 클럭을 반전시킨 클럭(즉, 반전 클럭)에 동기화하여 홀드 타임을 만족시킨다.The FIFO 222 and the third Gray code counter 223 of the receiver 220 are synchronized to the clock tx_clk transmitted from the transmitter 210. [ Since the clock tx_clk, the payload data tx_payload and the valid signal tx_valid transmitted from the transmitter 210 to the receiver 220 are physically similar in length to the signal lines, the latency is maintained at substantially the same level, Therefore, the setup time is satisfied despite the latency of the payload data generated in the transmission path. The FIFO 222 and the third Gray code counter 223 of the receiver 220 synchronize with the clock (i.e., the inverted clock) inverted from the clock transmitted from the transmitter 210 to satisfy the hold time.

한편, 본 명세서에 제시된 실시예에서는 카운팅 수단으로서 그레이코드 카운터를 사용한다. 그레이코드 카운터는 카운터의 한 종류로서 카운팅 업 다운에서 하나의 비트만 변하는 경우가 없도록 코드를 할당한 것으로 디코드시의 스태틱 하자드(즉, 일시적인 스파이크장의 잡음)를 방지한 것이다. 시스템의 안정성을 고려하여 그레이코드 카운터를 적용하는 것이 바람직하지만 본 발명의 권리범위가 여기에 한정되는 것은 아니다.
On the other hand, in the embodiment shown in the present specification, a gray code counter is used as the counting means. The gray code counter is a kind of counter, and codes are allocated so that there is no case where only one bit changes in counting up-down, thereby preventing a static hazard (that is, temporary noise of a spike field) at the time of decoding. It is preferable to apply the gray code counter in consideration of the stability of the system, but the scope of the right of the present invention is not limited thereto.

[도 3]은 본 발명에 따른 단일채널 비동기 브리지 시스템에 사용하기 위한 송신기(210)의 내부 구조를 나타내는 도면이다. [도 3]을 참조하면 본 발명에 따른 송신기(210)는 레지스터 슬라이스(212), FIFO 풀 제너레이터(FIFO Full Generator; 216), 제 1 및 제 2 그레이코드 카운터(213, 217), 스트로브 싱크로나이저(214)를 포함하여 구성된다.3 is a diagram illustrating an internal structure of a transmitter 210 for use in a single channel asynchronous bridge system according to the present invention. 3, a transmitter 210 according to the present invention includes a register slice 212, a FIFO full generator 216, first and second gray code counters 213 and 217, a strobe synchronizer (214).

먼저, 레지스터 슬라이스(212)는 소오스로부터 제공받은 페이로드 데이터(payload_src)와 밸리드 신호(valid_src)를 임시 저장하여 타이밍을 분리하는 역할을 수행한다.First, the register slice 212 temporarily stores the payload data (payload_src) and the valid signal (valid_src) provided from the source to separate the timing.

FIFO 풀 제너레이터(216)는 푸시 신호(Push signal)와 팝 신호(Pop signal)를 사용하여 수신기(220)의 FIFO(222)가 FULL 인지 여부를 판단한다. 수신기(220)로 전송되는 밸리드 신호(tx_valid)가 HIGH로 유효할 경우에 푸시 신호는 HIGH가 되며 내부 카운터(216a)는 증가한다. 수신기(220)로부터 제공된 스트로브 신호(rx_strobe)는 제 1 그레이코드 카운터(213)의 값을 증가시킨다. 비교기(218)는 제 1 및 제 2 그레이코드 카운터(213, 217)의 값을 비교하며, 상이한 경우에 팝 신호를 HIGH로 설정한다. 팝 신호가 HIGH로 설정됨에 따라 FIFO 풀 제너레이터(216)의 내부 카운터(216a)는 감소한다.The FIFO pull generator 216 uses a push signal and a pop signal to determine whether the FIFO 222 of the receiver 220 is FULL. The push signal becomes HIGH and the internal counter 216a increases when the valid signal tx_valid transmitted to the receiver 220 is valid to HIGH. The strobe signal rx_strobe provided from the receiver 220 increases the value of the first Gray code counter 213. [ The comparator 218 compares the values of the first and second gray code counters 213 and 217 and sets the pop signal to HIGH in different cases. The internal counter 216a of the FIFO pull generator 216 decreases as the pop signal is set to HIGH.

FIFO 풀 제너레이터(216)는 수신기(220)의 FIFO(222)가 FULL이라고 판단되면 Full 신호출력을 HIGH로 설정하며, 그 반전된 LOW 신호가 레지스터 슬라이스(212)의 ReadyDst 포트로 입력되어 페이로드 데이터의 전송이 중단된다. 또한, 그 반전된 LOW 신호가 논리곱 게이트(215)에 입력되어 수신기(220)로 전송되는 밸리드 신호(tx_valid)는 LOW로 설정되며, 그에 따라 페이로드 데이터의 전송이 중단되었다는 사실을 수신기(220)에도 알려준다. The FIFO pull generator 216 sets the Full signal output to HIGH if the FIFO 222 of the receiver 220 is FULL and the inverted LOW signal is input to the ReadyDst port of the register slice 212, Lt; / RTI > The inverted LOW signal is also input to the AND gate 215 and the valid signal tx_valid transmitted to the receiver 220 is set to LOW so that the fact that the transmission of the payload data has been stopped is terminated at the receiver 220).

개념적으로 살펴보면, FIFO 풀 제너레이터(216)는 수신기(220)로 전송되는 밸리드 신호(tx_valid)와 수신기(220)로부터 수신되는 스트로브 신호(rx_strobe)의 카운팅 넘버를 비교함으로써 수신기(220)의 FIFO(222)가 FULL인지 여부를 판단한다. 전송기(210)가 수신기(220)로 페이로드 데이터를 전송하는 동안 내부 카운터(216a)는 카운트 업하고, 수신기(220)가 데스티네이션으로 페이로드 데이터를 전달하여 FIFO(222)의 읽기 포인터가 변경된 정도에 대응하도록 내부 카운터(216a)는 카운트 다운한다. 이를 통해, 내부 카운터(216a)는 FIFO(222)에 어느 정도 데이터가 남아있는지를 모니터링할 수 있게 되어 FIFO(222)가 FULL 상태인지 여부도 판단할 수 있는 것이다.Conceptually, the FIFO pull generator 216 compares the counted number of the strobe signal rx_strobe received from the receiver 220 with the valid signal tx_valid transmitted to the receiver 220, 222) is FULL. The internal counter 216a counts up while the transmitter 210 transmits the payload data to the receiver 220 and the receiver 220 delivers the payload data to the destination so that the read pointer of the FIFO 222 is changed The internal counter 216a counts down. This allows the internal counter 216a to monitor how much data remains in the FIFO 222 to determine whether the FIFO 222 is in the FULL state.

한편, 제 1 및 제 2 그레이코드 카운터(213, 217)는 수신기(220)에 존재하는 FIFO(222)의 읽기 포인터를 추종하는 역할을 담당한다. 수신기(220)로부터 전달되는 스트로브 신호(rx_strobe)에 대응하여 제 1 그레이코드 카운터(213)는 수신기(220)의 읽기 포인터를 추종하는 신호(ReadPtr)를 생성한다. 제 2 그레이코드 카운터(217)의 값이 제 1 그레이코드 카운터(213)와 상이한 동안에는 비교기(218)의 결과가 HIGH이므로 제 2 그레이코드 카운터(217)는 동작 클럭에 의해 카운트 업 하는데, 이러한 카운트 업은 제 1 및 제 2 그레이코드 카운터(213, 217)의 값이 동일해질 때까지 계속된다.The first and second gray code counters 213 and 217 follow the read pointer of the FIFO 222 existing in the receiver 220. The first Gray code counter 213 generates a signal (ReadPtr) that follows the read pointer of the receiver 220 corresponding to the strobe signal rx_strobe transmitted from the receiver 220. [ While the value of the second gray code counter 217 is different from the first gray code counter 213, the second gray code counter 217 counts up by the operating clock since the result of the comparator 218 is HIGH, Up continues until the values of the first and second gray code counters 213 and 217 become equal.

따라서, 제 1 그레이코드 카운터(213)는 FIFO(222)의 읽기 포인터를 추종하는 신호(ReadPtr)를 생성하며, 제 2 그레이코드 카운터(217)는 FIFO(222)로부터 페이로드 데이터가 데스티네이션으로 제공됨에 따라 읽기 포인터가 변경되었다면 얼마나 변경되었는지를 알아보기 위해 과거 값을 저장하고 있다. 수신기(220)의 FIFO(222)에서 읽기 포인터가 많이 변경될수록 비교기(218)가 HIGH를 출력하는 시간이 길어지게 된다.Thus, the first Gray code counter 213 generates a signal (ReadPtr) that follows the read pointer of the FIFO 222, and the second Gray code counter 217 generates a signal from the FIFO 222 to the destination If the read pointer changes as it is provided, it stores the past value to see how much it has changed. The more the read pointer is changed in the FIFO 222 of the receiver 220, the longer the comparator 218 outputs HIGH.

제 1 그레이코드 카운터(213)와 제 2 그레이코드 카운터(217)의 클럭 도메인이 상이하기 때문에 제 1 그레이코드 카운터(213)의 출력인 읽기 포인터(ReadPtr)는 스트로브 싱크로나이저(214)를 거친다. 스트로브 신호(rx_strobe)는 수신기(220) 측의 클럭 도메인에 따라 생성되므로 제 1 그레이코드 카운터(213)에서 읽기 포인터(ReadPtr)도 일차적으로는 수신기(220) 측의 클럭 도메인에 종속된다. 스트로브 싱크로나이저(214)는 송신기(210) 측의 클럭 도메인에 따라 플립플롭이 동작하므로 읽기 포인터(ReadPtr)가 스트로브 싱크로나이저(214)를 통과하면 송신기(210) 측의 클럭 도메인으로 재설정된다. 이처럼 스트로브 싱크로나이저(214)는 스트로브 신호의 클럭 도메인을 송신기(210)의 동작 클럭에 맞도록 재설정하는 역할을 수행한다.The read pointer (ReadPtr), which is the output of the first gray code counter 213, passes through the strobe synchronizer 214 because the clock domain of the first gray code counter 213 differs from that of the second gray code counter 217. Since the strobe signal rx_strobe is generated according to the clock domain of the receiver 220 side, the read pointer (ReadPtr) in the first gray code counter 213 is also primarily dependent on the clock domain of the receiver 220 side. Since the flip-flop operates according to the clock domain of the transmitter 210 side, the strobe synchronizer 214 is reset to the clock domain of the transmitter 210 when the read pointer ReadPtr passes through the strobe synchronizer 214. Thus, the strobe synchronizer 214 functions to reset the clock domain of the strobe signal to match the operation clock of the transmitter 210.

또한, 전술한 바와 같이 페이로드 데이터의 레이턴시에 의한 타이밍 제한 문제를 완화하기 위해 송신기 도메인의 클럭, 즉 송신기(210)의 동작 클럭이 수신기(220) 측으로 제공된다(tx_clk).
Also, in order to alleviate the timing limitation problem due to the latency of the payload data as described above, the clock of the transmitter domain, that is, the operating clock of the transmitter 210 is provided to the receiver 220 side (tx_clk).

[도 4]는 본 발명에 따른 단일채널 비동기 브리지 시스템에 사용하기 위한 수신기(220)의 내부 구조를 나타내는 도면이다. [도 4]를 참조하면 본 발명에 따른 수신기(220)는 FIFO(222), 제 3 및 제 4 그레이코드 카운터(223, 225), 밸리드 싱크로나이저(224), 클럭 게이트(226)를 포함하여 구성된다.4 is a diagram illustrating an internal structure of a receiver 220 for use in a single channel asynchronous bridge system according to the present invention. 4, a receiver 220 according to the present invention includes a FIFO 222, third and fourth Gray code counters 223 and 225, a balanced synchronizer 224, and a clock gate 226 .

먼저, FIFO(222)는 프로그래머블 프로세서에 의해 FIFO 어레이의 길이, 즉 FIFO 뎁스를 구성하는 것이 가능한 뎁스구성형 FIFO(Configurable-depth FIFO)로 이루어지는 것이 가능하다. FIFO(222)는 송신기(210)로부터 전달받은 페이로드 데이터(tx_payload)를 일차로 저장한다.First, the FIFO 222 can be made up of a configurable-depth FIFO (FIFO) capable of configuring the length of the FIFO array by the programmable processor, that is, the FIFO depth. The FIFO 222 primarily stores the payload data (tx_payload) received from the transmitter 210.

제 3 및 제 4 그레이코드 카운터(223, 225)는 FIFO(222)의 쓰기 어드레스(Write Address)와 읽기 어드레스(Read Address)를 생성하고 FIFO(222)가 EMPTY인지를 판단한다. 제 3 그레이코드 카운터(223)는 송신기(210)에서 전송된 밸리드 신호(tx_valid)가 HIGH일 때 송신기(210)에서 전송된 전송 클럭(tx_clk)에 의해 카운트 업된다. 밸리드 신호(tx_valid)가 HIGH일 때 전송 클럭(tx_clk)에 따라 페이로드 데이터가 FIFO(222)로 입력되므로 제 3 그레이코드 카운터(223)는 FIFO(222)의 쓰기 포인터(WritePtr)를 생성하는 것이다. 제 4 그레이코드 카운터(225)는 데스티네이션으로의 밸리드 신호(valid_dst)와 레디 신호(ready_dst)가 HIGH이면 카운트 업된다. 이러한 조건에서는 FIFO(222)로부터 데스티네이션으로 페이로드 데이터가 제공되는 상태이므로 제 4 그레이코드 카운터(225)는 FIFO(222)의 읽기 포인터(ReadPtr)를 생성하는 것이다.The third and fourth Gray code counters 223 and 225 generate a write address and a read address of the FIFO 222 and determine whether the FIFO 222 is EMPTY. The third Gray code counter 223 is counted up by the transmission clock tx_clk transmitted from the transmitter 210 when the valid signal tx_valid transmitted from the transmitter 210 is HIGH. The third gray code counter 223 generates a write pointer WritePtr of the FIFO 222 since the payload data is input to the FIFO 222 in accordance with the transmission clock tx_clk when the valid signal tx_valid is HIGH will be. The fourth gray code counter 225 counts up when the valid signal (valid_dst) to the destination and the ready signal (ready_dst) are HIGH. Under this condition, the fourth gray code counter 225 generates the read pointer (ReadPtr) of the FIFO 222 because the payload data is provided from the FIFO 222 to the destination.

이때, 비교기(229)는 제 3 및 제 4 그레이코드 카운터(223, 225)의 두 값, 즉 FIFO(222)의 읽기 포인터(ReadPtr)와 쓰기 포인터(WritePtr)를 비교한다. 만일 읽기 포인터(ReadPtr)와 쓰기 포인터(WritePtr)가 동일하다면 이는 FIFO(222)가 EMPTY 상태라는 것을 의미한다. 따라서, 이들 포인터(ReadPtr, WritePtr)가 상이한 경우, 즉 FIFO(222)가 EMPTY 상태가 아니고 페이로드 데이터가 들어있는 경우에는 데스티네이션으로의 밸리드 신호(valid_dst)를 HIGH로 설정하여 페이로드 데이터가 유효함 데스티네이션으로 알린다.At this time, the comparator 229 compares the two values of the third and fourth Gray code counters 223 and 225, that is, the read pointer (ReadPtr) of the FIFO 222 with the write pointer (WritePtr). If the read pointer (ReadPtr) and the write pointer (WritePtr) are the same, this means that the FIFO 222 is in the EMPTY state. Therefore, when the pointers (ReadPtr, WritePtr) are different, that is, when the FIFO 222 is not in the EMPTY state and contains payload data, the valid signal to the destination (valid_dst) is set to HIGH, Remind me to the destination.

데스티네이션으로 전송되는 밸리드 신호(valid_dst)가 HIGH로 유효하고 데스티네이션으로부터 받은 레디 신호(ready_dst)가 HIGH로 되는 경우, 페이로드 데이터가 FIFO(222)로부터 데스티네이션으로 전송됨을 의미한다. 이러한 경우에 클럭 게이트(226)는 스트로브 신호(rx_strobe)를 송신기(210)로 전송하여 페이로드 데이터가 데스티네이션으로 전송됨을 알린다.When the valid signal valid_dst transmitted to the destination is HIGH and the ready signal ready_dst received from the destination is HIGH, it means that the payload data is transferred from the FIFO 222 to the destination. In this case, the clock gate 226 sends a strobe signal rx_strobe to the transmitter 210 to signal that the payload data is sent to the destination.

제 3 그레이코드 카운터(223)와 제 4 그레이코드 카운터(225)의 클럭 도메인이 상이하기 때문에 제 3 그레이코드 카운터(223)의 출력인 쓰기 포인터(WritePtr)는 밸리드 싱크로나이저(224)를 거치면서 클럭 도메인이 재설정된다. 밸리드 신호(tx_valid)는 송신기(210) 측의 클럭 도메인에 따라 생성되므로 제 3 그레이코드 카운터(223)에서 쓰기 포인터(WritePtr)도 일차적으로는 송신기(210) 측의 클럭 도메인에 종속된다. 밸리드 싱크로나이저(224)는 수신기(220) 측의 클럭 도메인에 따라 플립플롭이 동작하므로 쓰기 포인터(WritePtr)가 밸리드 싱크로나이저(224)를 통과하면 수신기(220) 측의 클럭 도메인으로 재설정된다. 이처럼 밸리드 싱크로나이저(224)는 밸리드 신호의 클럭 도메인을 수신기(220)의 동작 클럭에 맞도록 재설정하는 역할을 수행한다.
Since the clock domain of the third gray code counter 223 differs from that of the fourth gray code counter 225, the write pointer WritePtr, which is the output of the third gray code counter 223, is connected to the balanced synchronizer 224 The clock domain is reset. Since the valid signal tx_valid is generated according to the clock domain of the transmitter 210, the write pointer (WritePtr) in the third gray code counter 223 is also primarily dependent on the clock domain of the transmitter 210 side. The validated synchronizer 224 is reset to the clock domain of the receiver 220 side when the write pointer WritePtr passes through the balanced synchronizer 224 because the flip-flop operates according to the clock domain of the receiver 220 side . In this way, the validated synchronizer 224 functions to reset the clock domain of the valid signal to match the operation clock of the receiver 220.

[도 5]는 AXI 프로토콜을 사용하는 블록 간의 데이터 연결을 본 발명을 적용하여 구성한 도면이고, [도 6]은 AXI 프로토콜을 사용하는 블록 간의 클럭 및 리셋 연결을 본 발명을 적용하여 구성한 도면이다. AMBA(Advanced Microcontroller Bus Architecture) 규격은 SoC 내부에서 IP들을 연결하는 버스에 관한 기술적 사양을 정의하는데, 고속 동작이 가능하도록 버스 구조를 설계한 AMBA 3.0 규격을 일반적으로 AXI 프로토콜이라고 부른다.FIG. 5 is a diagram illustrating a data connection between blocks using the AXI protocol according to an embodiment of the present invention. FIG. 6 is a diagram illustrating a clock and reset connection between blocks using the AXI protocol according to the present invention. The Advanced Microcontroller Bus Architecture (AMBA) specification defines technical specifications for buses connecting IPs within a SoC. The AMBA 3.0 specification, which designs the bus structure for high-speed operation, is generally called the AXI protocol.

[도 5]와 [도 6]에서 블록 A와 블록 B는 상이한 도메인에 속하는 블록으로서 클럭, 파워, 전압 중 하나 이상이 상이하다. 이때, 송신기(210)와 수신기(220)는 블록 A와 블록 B을 연결하는 역할을 담당하고 AXI 프로토콜과 동일한 페이로드 채널을 갖는다.In FIG. 5 and FIG. 6, block A and block B belong to different domains and differ in at least one of clock, power, and voltage. At this time, the transmitter 210 and the receiver 220 are responsible for connecting the block A and the block B and have the same payload channel as the AXI protocol.

[도 5]를 참조하면, 읽기 어드레스 채널(AR), 쓰기 어드레스 채널(AW), 쓰기 데이터 채널(W)의 페이로드 데이터와 읽기데이터 채널(R), 쓰기 응답 채널(B)의 페이로드 데이터는 서로 반대의 방향성을 가지고 있는데, 페이로드 데이터의 방향성에 대응하도록 송신기(210)와 수신기(220)가 배치된다. 5, the payload data of the read address channel AR, the write address channel AW and the write data channel W and the payload data of the read data channel R and the write response channel B, The transmitter 210 and the receiver 220 are arranged to correspond to the directionality of the payload data.

[도 6]을 참조하면, 블록 A의 ACLK, ARESET은 블록 B로 전송되고 블록 B의 BCLK, BRESET은 블록 A로 전송된다. 클럭은 수신기(220)로 전송되어 FIFO(222)와 제 3 그레이코드 카운터(223)에 동기화되며, 리셋은 송신기(210)와 수신기(220)로 전송되어 동기화된 로직의 리셋으로 사용된다.
Referring to FIG. 6, ACLK and ARESET of block A are transmitted to block B, and BCLK and BRESET of block B are transmitted to block A. The clock is transmitted to the receiver 220 and is synchronized to the FIFO 222 and the third Gray code counter 223 and the reset is sent to the transmitter 210 and the receiver 220 to be used for resetting the synchronized logic.

이상과 같이, 본 명세서와 도면에는 본 발명의 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예가 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명하다.
As described above, the embodiments of the present invention have been disclosed in the present specification and drawings, and although specific terms have been used, they have been used only in a general sense to easily describe the technical contents of the present invention and to facilitate understanding of the invention. And is not intended to limit the scope of the invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

210: 송신기
221: FIFO 송신 제어기
212: 레지스터 슬라이스
213, 217, 223, 225: 그레이코드 카운터
214: 스트로브 싱크로나이저
215, 227, 228: 논리곱 게이트
216: FIFO 풀 제너레이터
216a: 내부 카운터
218, 229: 비교기
220: 수신기
221: FIFO 수신 제어기
222: FIFO
224: 밸리드 싱크로나이저
226: 클럭 게이트
210: Transmitter
221: FIFO transmission controller
212: register slice
213, 217, 223, 225: gray code counter
214: Strobe synchronizer
215, 227, 228: AND gate
216: FIFO Pool Generator
216a: Internal counter
218, 229: comparator
220: receiver
221: FIFO reception controller
222: FIFO
224: Balanced Synchronizer
226: clock gate

Claims (7)

시스템온칩에서 상이한 도메인에 속하는 복수의 블록을 연결하도록 송신기와 수신기를 구비하는 단일채널의 비동기 브리지 시스템으로서,
상기 송신기(210)는,
소오스로부터 제공된 페이로드 데이터와 소오스 밸리드 신호를 임시 저장하여 타이밍을 분리하고 상기 페이로드 데이터를 단일의 페이로드 채널을 통해 상기 수신기로 전송하는 레지스터 슬라이스(212);
상기 수신기로부터 스트로브 신호를 제공받아 상기 수신기에 내장된 FIFO의 읽기 포인터를 추종하는 제 1 포인터를 생성하는 제 1 카운터(213);
상기 제 1 포인터를 제공받아 상기 송신기의 클럭 도메인으로 재설정하는 스트로브 싱크로나이저(214);
상기 소오스 밸리드 신호에 대응하도록 전송 밸리드 신호를 생성하여 상기 수신기로 제공하고, 상기 전송 밸리드 신호에 의한 카운팅 값과 상기 제 1 포인터에 의한 카운팅 값을 비교하여 상기 수신기에 내장된 FIFO의 FULL 여부를 판단하고, 상기 FULL 여부의 판단 결과에 따라 상기 레지스터 슬라이스가 상기 페이로드 데이터를 상기 수신기로 전송할지 여부를 제어하는 FIFO 송신 제어기(211);를 포함하여 구성되고,
상기 수신기(220)는,
상기 단일의 페이로드 채널을 통해 상기 송신기로부터 페이로드 데이터를 제공받아 저장하는 FIFO(222);
상기 전송 밸리드 신호에 대응하도록 쓰기 포인터를 생성하여 상기 FIFO의 쓰기 어드레스로 제공하는 제 3 카운터(223);
상기 쓰기 포인터를 제공받아 상기 수신기의 클럭 도메인으로 재설정하는 밸리드 싱크로나이저(224);
데스티네이션 밸리드 신호 및 데스티네이션 레디 신호에 대응하도록 읽기 포인터를 생성하여 상기 FIFO의 읽기 어드레스로 제공하고, 상기 전송 밸리드 신호에 의한 카운팅 값과 상기 데스티네이션 밸리드 신호 및 데스티네이션 레디 신호에 의한 카운팅 값을 비교하여 상기 FIFO의 EMPTY 여부를 판단하고, 상기 EMPTY 여부의 판단 결과 및 상기 데스티네이션 레디 신호에 대응하도록 상기 스트로브 신호를 생성하여 상기 송신기로 전송하는 FIFO 수신 제어기(221);를 포함하여 구성되는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
A single-channel asynchronous bridge system having a transmitter and a receiver for connecting a plurality of blocks belonging to different domains in a system-on-chip,
The transmitter (210)
A register slice (212) for temporarily storing payload data and a source valid signal provided from a source to separate timing and transmit the payload data to the receiver over a single payload channel;
A first counter 213 receiving a strobe signal from the receiver and generating a first pointer that tracks a read pointer of a FIFO built in the receiver;
A strobe synchronizer 214 receiving the first pointer and resetting the first pointer to the clock domain of the transmitter;
And generating a transmission valid signal corresponding to the source valid signal to provide the transmission valid signal to the receiver and comparing the count value by the transmission valid signal with the count value by the first pointer, And a FIFO transmission controller (211) for controlling whether or not the register slice transmits the payload data to the receiver according to a result of the determination of the FULL state,
The receiver (220)
A FIFO (222) for receiving and storing payload data from the transmitter over the single payload channel;
A third counter (223) for generating a write pointer corresponding to the transmission valid signal and providing the write pointer as a write address of the FIFO;
A valid synchronizer 224 for receiving the write pointer and resetting the write pointer to the clock domain of the receiver;
A read pointer is generated to correspond to the destination valid signal and the destination read signal, and is provided as a read address of the FIFO, and the count value by the transfer valid signal and the read value by the destination valid signal and the destination read signal And a FIFO receiving controller 221 for comparing the counted value to determine whether or not the FIFO is EMPTY, generating a strobe signal corresponding to the determination result of the EMPTY and the destination ready signal, and transmitting the generated strobe signal to the transmitter Channel asynchronous bridge system for a block connection of different domains.
청구항 1에 있어서,
상기 FIFO 송신 제어기(211)는,
상기 소오스 밸리드 신호와 상기 FULL 여부의 판단 결과를 논리 곱 연산하여 상기 전송 밸리드 신호를 생성하는 제 1 논리곱 게이트(215);
상기 제 1 카운터가 생성하는 제 1 포인터를 추종하는 제 2 포인터를 생성하는 제 2 카운터(217);
상기 제 1 포인터와 상기 제 2 포인터의 값이 상이한 동안 유효 상태를 유지하는 팝 신호를 생성하는 제 1 비교기(218);
상기 소오스 밸리드 신호에 의해 카운트 업하고 상기 팝 신호에 의해 카운트 다운하는 내장 카운터를 구비하여 상기 내장 카운터의 값에 기초하여 상기 수신기에 내장된 FIFO의 FULL 여부를 판단하고, 상기 FULL 여부 판단 결과에 대응되는 신호를 상기 레지스터 슬라이스(212)의 레디 포트로 제공하여 상기 페이로드 데이터에 대한 전송 제어를 수행하는 FIFO 풀 제너레이터(216);
를 포함하여 구성되는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
The method according to claim 1,
The FIFO transmission controller 211,
A first AND gate (215) for ANDing the source valid signal and the result of the FULL determination to generate the transmission valid signal;
A second counter (217) for generating a second pointer following the first pointer generated by the first counter;
A first comparator (218) for generating a pop signal that remains valid while the values of the first pointer and the second pointer are different;
A built-in counter counting up by the source valid signal and counting down by the pop signal to determine whether the FIFO built in the receiver is FULL based on the value of the built-in counter, A FIFO pool generator 216 for providing a corresponding signal to the ready port of the register slice 212 to perform transmission control on the payload data;
Channel asynchronous bridge system for a block connection of different domains.
청구항 2에 있어서,
상기 FIFO 수신 제어기(221)는,
데스티네이션 밸리드 신호 및 데스티네이션 레디 신호를 논리 곱 연산하여 제 1 인에이블 신호를 생성하는 제 2 논리곱 게이트(227);
상기 제 1 인에이블 신호가 HIGH인 기간에 대응하여 상기 읽기 포인터를 생성하여 상기 FIFO의 읽기 어드레스로 제공하는 제 4 카운터(225);
상기 쓰기 포인터와 상기 읽기 포인터의 값이 상이한 동안 유효 상태를 유지하는 상기 데스티네이션 밸리드 신호를 생성하는 제 2 비교기(229);
데스티네이션 밸리드 신호 및 데스티네이션 레디 신호를 논리 곱 연산하여 제 2 인에이블 신호를 생성하는 제 3 논리곱 게이트(228);
상기 제 1 인에이블 신호가 HIGH인 기간에 대응하여 상기 스트로브 신호를 생성하여 상기 송신기로 전송하는 클럭 게이트(226);
를 포함하여 구성되는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
The method of claim 2,
The FIFO reception controller 221,
A second AND gate (227) for ANDing the destination valid signal and the destination ready signal to generate a first enable signal;
A fourth counter (225) for generating the read pointer corresponding to a period in which the first enable signal is HIGH and providing the read pointer as a read address of the FIFO;
A second comparator (229) for generating the destination valid signal that remains valid while the value of the write pointer and the value of the read pointer are different;
A third AND gate 228 for performing a logical multiplication of the destination valid signal and the destination ready signal to generate a second enable signal;
A clock gate (226) for generating the strobe signal corresponding to a period in which the first enable signal is HIGH and transmitting the generated strobe signal to the transmitter;
Channel asynchronous bridge system for a block connection of different domains.
청구항 3에 있어서,
상기 송신기(210)는 송신기 도메인의 클럭 신호를 상기 수신기(220)로 전송하고,
상기 수신기(220)는 상기 송신기 도메인의 클럭 신호를 수신하여 상기 제 3 카운터의 카운팅 클럭 및 상기 FIFO의 동작클럭으로 반전 입력하는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
The method of claim 3,
The transmitter 210 transmits a clock signal of the transmitter domain to the receiver 220,
Wherein the receiver (220) receives the clock signal of the transmitter domain and inverts the input clock to the counting clock of the third counter and the operating clock of the FIFO.
청구항 4에 있어서,
상기 송신기(210)와 상기 수신기(220)가 주고받는 상기 전송 밸리드 신호와 스트로브 신호는 단일 비트로 구성되는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
The method of claim 4,
Channel asynchronous bridge system for a block connection of different domains, wherein the transmission valid signal and the strobe signal exchanged between the transmitter (210) and the receiver (220) are composed of a single bit.
청구항 5에 있어서,
상이한 도메인에 속하는 복수의 블록에 포함된 복수의 송신기(210)와 복수의 수신기(220)는 리셋 신호를 연동시켜 동기화된 로직의 리셋으로 구성하는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
The method of claim 5,
Wherein a plurality of transmitters (210) and a plurality of receivers (220) included in a plurality of blocks belonging to different domains constitute reset of synchronized logic by interlocking a reset signal. Asynchronous bridge system.
청구항 6에 있어서,
상기 제 1 내지 제 4 카운터(213, 217, 223, 225)는 그레이코드 카운터로 구성되고, 상기 FIFO(222)는 뎁스구성형 FIFO로 구성되는 것을 특징으로 하는 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템.
The method of claim 6,
Wherein the first to fourth counters (213, 217, 223, and 225) are configured with gray code counters and the FIFO (222) is configured with a depth configurable FIFO. Asynchronous bridge system.
KR20140046110A 2014-04-17 2014-04-17 Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip KR101510862B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20140046110A KR101510862B1 (en) 2014-04-17 2014-04-17 Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20140046110A KR101510862B1 (en) 2014-04-17 2014-04-17 Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip

Publications (1)

Publication Number Publication Date
KR101510862B1 true KR101510862B1 (en) 2015-04-09

Family

ID=53034127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140046110A KR101510862B1 (en) 2014-04-17 2014-04-17 Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip

Country Status (1)

Country Link
KR (1) KR101510862B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102112251B1 (en) * 2019-08-02 2020-05-19 오픈엣지테크놀로지 주식회사 Method for resetting an interconnect circuit and device for the same
CN116701297A (en) * 2023-08-08 2023-09-05 深圳比特微电子科技有限公司 Synchronous bridge circuit, bus device and system on chip

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090054793A (en) * 2007-11-27 2009-06-01 한국전자통신연구원 Soc for multimedia system
US20110116337A1 (en) 2009-11-16 2011-05-19 Timothy Nicholas Hay Synchronising between clock domains
US20110320672A1 (en) 2000-09-08 2011-12-29 Kumar Ganapathy Method and apparatus for distributed direct memory access for systems on chip
KR20130057899A (en) * 2011-11-24 2013-06-03 삼성전자주식회사 Asynchronous bridge, method of operating the same, and system on chip having the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320672A1 (en) 2000-09-08 2011-12-29 Kumar Ganapathy Method and apparatus for distributed direct memory access for systems on chip
KR20090054793A (en) * 2007-11-27 2009-06-01 한국전자통신연구원 Soc for multimedia system
US20110116337A1 (en) 2009-11-16 2011-05-19 Timothy Nicholas Hay Synchronising between clock domains
KR20130057899A (en) * 2011-11-24 2013-06-03 삼성전자주식회사 Asynchronous bridge, method of operating the same, and system on chip having the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102112251B1 (en) * 2019-08-02 2020-05-19 오픈엣지테크놀로지 주식회사 Method for resetting an interconnect circuit and device for the same
CN116701297A (en) * 2023-08-08 2023-09-05 深圳比特微电子科技有限公司 Synchronous bridge circuit, bus device and system on chip
CN116701297B (en) * 2023-08-08 2024-02-27 深圳比特微电子科技有限公司 Synchronous bridge circuit, bus device and system on chip

Similar Documents

Publication Publication Date Title
US10270447B2 (en) Apparatus for configurable interface and associated methods
US7975082B2 (en) System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip
US7912997B1 (en) Direct memory access engine
US9880965B2 (en) Variable frame length virtual GPIO with a modified UART interface
US7958285B1 (en) System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip
US7930462B2 (en) Interface controller that has flexible configurability and low cost
KR20030085141A (en) A communication system
KR101229840B1 (en) Receiving circuit, information processing apparatus and buffer control method
EP3067894B1 (en) Self-stuffing fifo requiring no synchronizers
US20140304441A1 (en) Protocol conversion involving multiple virtual channels
KR20120038282A (en) Bus system having id converter and coverting method thereof
US9880949B1 (en) Cross clock compensation between layers in peripheral component interconnect express
KR100706801B1 (en) Multi processor system and data transfer method thereof
EP1396786A1 (en) Bridge circuit for use in retiming in a semiconductor integrated circuit
US9558129B2 (en) Circuits for and methods of enabling the access to data
KR101510862B1 (en) Single-channel asynchronous bridge system for interconnecting blocks of different domains in System-on-Chip
US8284792B2 (en) Buffer minimization in interface controller
US9891653B2 (en) Techniques for clock rate changes during data rate changes in an integrated circuit (IC)
US11127442B2 (en) Data transfers between a memory and a distributed compute array
US8443129B1 (en) Method and apparatus for implementing a data bus interface
US10680615B1 (en) Circuit for and method of configuring and partially reconfiguring function blocks of an integrated circuit device
US20150127865A1 (en) Method and apparatus use with interrupts
US11169947B2 (en) Data transmission system capable of transmitting a great amount of data
US8510478B2 (en) Circuit comprising a microprogrammed machine for processing the inputs or the outputs of a processor so as to enable them to enter or leave the circuit according to any communication protocol
US11314277B1 (en) Serial lane-to-lane skew reduction

Legal Events

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

Payment date: 20180402

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190305

Year of fee payment: 5