KR20070082817A - Asynchronous fifo using valid bit - Google Patents

Asynchronous fifo using valid bit Download PDF

Info

Publication number
KR20070082817A
KR20070082817A KR1020060015911A KR20060015911A KR20070082817A KR 20070082817 A KR20070082817 A KR 20070082817A KR 1020060015911 A KR1020060015911 A KR 1020060015911A KR 20060015911 A KR20060015911 A KR 20060015911A KR 20070082817 A KR20070082817 A KR 20070082817A
Authority
KR
South Korea
Prior art keywords
write
read
valid bit
bit
point
Prior art date
Application number
KR1020060015911A
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 KR1020060015911A priority Critical patent/KR20070082817A/en
Publication of KR20070082817A publication Critical patent/KR20070082817A/en

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04GSCAFFOLDING; FORMS; SHUTTERING; BUILDING IMPLEMENTS OR AIDS, OR THEIR USE; HANDLING BUILDING MATERIALS ON THE SITE; REPAIRING, BREAKING-UP OR OTHER WORK ON EXISTING BUILDINGS
    • E04G17/00Connecting or other auxiliary members for forms, falsework structures, or shutterings
    • E04G17/14Bracing or strutting arrangements for formwalls; Devices for aligning forms

Landscapes

  • Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Mechanical Engineering (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

An asynchronous FIFO(First-In First-Out) using a valid bit is provided to perform a stable FIFO operation in a SoC(System on Chip) by solving metastability and synchronization of a counter. A valid write bit generator(120) generates a valid write bit corresponding to a write point of the FIFO. A valid read bit generator(130) generates a valid read bit corresponding to a read point of the FIFO. A full detector(160) generates a full signal if the FIFO is full by comparing the valid read bit, which is synchronized with the write point, with the valid write bit. An empty detector(170) generates an empty signal if the FIFO is empty by comparing the valid write bit, which is synchronized with the read point, with the valid read bit. A write pointer counter rotates the write pointer one by one in each write operation to an entry of the FIFO by responding to a write clock. A read pointer counter rotates the read pointer one by one in each read operation from the entry of the FIFO by responding to a read clock.

Description

유효 비트를 사용하는 비동기식 FIFO{Asynchronous FIFO using valid bit}Asynchronous FIFO using valid bit}

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다. BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1은 SoC에서 서로 다른 주파수로 동작하는 버스와 엘씨디 컨트롤러 간의 데이터 전송을 담당하는 FIFO를 개략적으로 나타내는 도면이다.FIG. 1 is a diagram schematically illustrating a FIFO that is responsible for data transmission between a bus and an LCD controller operating at different frequencies in an SoC.

도 2는 비동기식 FIFO의 동작을 개략적으로 나타내는 도면이다.2 is a diagram schematically illustrating the operation of an asynchronous FIFO.

도 3은 종래 기술에 따른 비동기식 FIFO를 나타내는 블럭도이다.3 is a block diagram illustrating an asynchronous FIFO according to the prior art.

도 4는 도 3의 FIFO의 동작에 따른 오류를 나타내는 도면이다.4 is a diagram illustrating an error according to the operation of the FIFO of FIG. 3.

도 5는 본 발명의 실시예에 따른 비동기식 FIFO를 나타내는 도면이다.5 illustrates an asynchronous FIFO according to an embodiment of the present invention.

도 6은 도 4의 오류를 해결하는 도 5의 FIFO의 동작을 나타내는 도면이다.6 is a diagram illustrating an operation of the FIFO of FIG. 5 to solve the error of FIG. 4.

도 7a 및 도 7b는 각각 도 5의 풀 디텍터 및 엠티 디텍터를 보다 자세히 나타내는 도면이다.7A and 7B illustrate the full detector and empty detector of FIG. 5 in more detail.

본 발명은 비동기식 FIFO(First-In First-Out)에 관한 것으로서, 특히 유효 비트를 사용하는 비동기식 FIFO에 관한 것이다. The present invention relates to an asynchronous FIFO (First-In First-Out), and more particularly to an asynchronous FIFO using valid bits.

최근의 SoC(System on Chip)에는 매우 많은 수의 기능 블럭(IP: Intellectual Property)들이 집적된다. 하나의 SOC에 장착되는 각각의 기능 블럭(IP)들은 공통 버스(common bus)에 연결되어 동작하게 된다. 버스는 각 기능 블럭(IP)의 데이터 요청을 중재하여 순서에 따라 버스의 사용 권한을 부여하기 때문에 각 기능 블럭(IP)은 필요한 시점에 바로 데이터를 확보할 수가 없다. In recent years, a very large number of functional blocks (IPs) are integrated in a System on Chip (SoC). Each functional block (IP) mounted on one SOC is connected to a common bus to operate. Since the bus arbitrates the data requests of each functional block (IP) and authorizes the use of the bus in the order, each functional block (IP) cannot immediately obtain data at the required time.

따라서 필요한 데이터를 미리 확보하기 위해서 FIFO(First In First Out)가 필요하며 이러한 FIFO가 완충작용을 하여 기능 블럭(IP)이 당장 버스를 액세스할 수 없다 하더라도 일단 FIFO에 저장되어 있는 데이터를 사용하고 나중에 버스의 사용권이 주어질 때 FIFO에 데이터를 보충하는 방식을 사용할 수 있다.Therefore, you need a First In First Out (FIFO) to get the data you need ahead of time, even if the FIFO is buffered so that the function block (IP) cannot access the bus right now, it uses the data stored in the FIFO and later When the bus is licensed, it is possible to supplement the data with the FIFO.

이때 일반적으로 기능 블럭(IP)들은 서로 다른 주파수에서 동작한다. Generally, functional blocks (IPs) operate at different frequencies.

도 1은 SoC에서 서로 다른 주파수로 동작하는 버스와 엘씨디 컨트롤러 간의 데이터 전송을 담당하는 FIFO를 개략적으로 나타내는 도면이다.FIG. 1 is a diagram schematically illustrating a FIFO that is responsible for data transmission between a bus and an LCD controller operating at different frequencies in an SoC.

도 1을 참조하면, 엘씨디 컨트롤러(LCD controller)는 메모리(memory)로부터 LCD에 표시할 데이터(data)를 가져오는데 있어서 FIFO는 사용하고 있다. 이때 LCD 화면에 표시하는 주파수, 즉 엘씨디 컨트롤러가 동작하는 주파수와 메모리로부터 데이터를 전송하는 버스의 동작 주파수는 서로 다르다. Referring to FIG. 1, an LCD controller uses a FIFO to obtain data to be displayed on an LCD from a memory. At this time, the frequency displayed on the LCD screen, that is, the frequency at which the LCD controller operates and the operating frequency of the bus transferring data from the memory are different.

이러한 경우 FIFO에 쓰는 주파수와 읽는 주파수가 서로 다르므로 SoC에는 비동기 FIFO가 필수적으로 구비되어야 한다. 그러나 현재까지 제작된 많은 수의 비동기 FIFO들은 불안정성(metastablity)의 문제와 카운터(counter) 동기화 문제를 제 대로 고려하지 않고 설계되었기 때문에 많은 문제가 야기되고 있다. 특히 불안정성(metastablity) 및 카운터(counter) 동기화 문제를 고려하지 않고 설계된 비동기 FIFO들은 시뮬레이션(simulation) 또는 제품의 출시 후에도 오류의 발견이나 원인분석이 어려워 더욱 문제된다. In this case, the write and read frequencies of the FIFO are different, so the SoC must be equipped with an asynchronous FIFO. However, a large number of asynchronous FIFOs manufactured to date have caused many problems because they are designed without proper consideration of problems of metastablity and counter synchronization. In particular, asynchronous FIFOs that are designed without accounting for metastablity and counter synchronization issues are more problematic because of the difficulty in finding or calibrating errors even after simulation or product release.

도 2는 비동기식 FIFO의 동작을 개략적으로 나타내는 도면이다.2 is a diagram schematically illustrating the operation of an asynchronous FIFO.

도 2는 설명의 편의를 위해 4개의 엔트리(ENTRY0~ENTRY3)를 구비하고 3 비트의 라이트 카운트(wptr) 및 리드 카운트(rptr)를 사용하는 FIFO를 도시한다. FIFO는 라이트 카운트(wptr) 또는 리드 카운트(rptr)가 지시하는 엔트리에 값을 쓰거나 또는 그 값을 읽게 된다. FIG. 2 shows a FIFO having four entries ENTRY0 to ENTRY3 for convenience of explanation and using a 3-bit write count wptr and read count rptr. The FIFO writes or reads a value into the entry indicated by the write count (wptr) or read count (rptr).

라이트 카운트(wptr) 및 리드 카운트(rptr)는 4개의 엔트리를 표현함에 있어 2비트이면 족하지만, 풀(full) 신호 및 엠티(empty) 신호를 생성하기 위해 3비트를 갖는다. 풀 신호는 FIFO가 꽉 차게 되면 데이터를 저장하지 않기 위해 요구되고, 엠티 신호는 FIFO가 완전히 빈것이 아니면 읽어야 하므로 요구된다.The write count (wptr) and read count (rptr) may be two bits in representing four entries, but have three bits to generate a full signal and an empty signal. A full signal is required not to store data when the FIFO is full, and an empty signal is required because it must be read unless the FIFO is completely empty.

라이트 카운트(wptr) 및 리드 카운트(rptr)는 각각 라이트 동작 및 리드 동작이 수행될 때마다 다음 엔트리를 나타내며 로테이션(rotation)된다. 각 클럭(clock)마다 라이트 카운트(wptr)와 리드 카운트(rptr)는 비교되는데 라이트 카운트(wptr)와 리드 카운트(rptr)의 최상위 비트쌍을 제외한 나머지 비트쌍들이 동일한 경우, 즉 최상위 비트쌍만 다른 경우 FIFO가 풀인 것을 알 수 있다. 반면, 라이트 카운트(wptr)와 리드 카운트(rptr)의 비트쌍들이 모두 동일한 경우, 즉 라이트 카운트(wptr)와 리드 카운트(rptr)가 같은 경우에는 FIFO가 엠티인 것을 알수 있 다.The write count wptr and the read count rptr indicate the next entry and rotate each time a write operation and a read operation are performed, respectively. For each clock, the write count (wptr) and read count (rptr) are compared, except for the most significant bit pair except for the most significant bit pair of write count (wptr) and read count (rptr), that is, only the most significant bit pair is different. We can see that the FIFO is full. On the other hand, when the bit pairs of the write count wptr and the read count rptr are the same, that is, when the write count wptr and the read count rptr are the same, it can be seen that the FIFO is empty.

도 3은 종래 기술에 따른 비동기식 FIFO를 나타내는 블럭도이다.3 is a block diagram illustrating an asynchronous FIFO according to the prior art.

도 3을 참조하면, 종래 기술에 따른 비동기식 FIFO(10)는 듀얼 포트 메모리(dual port memory)(11), 라이트 카운터(write counter)(12), 리드 카운터(read counter)(13), 비교부들(14,15) 및 동기부들(16,17)을 구비한다. 듀얼 포트 메모리(11)는 도 2의 엔트리들의 집합이다. 라이트 카운터(12) 및 리드 카운터(13)는 각각 도 2의 라이트 포인트(wptr) 및 리드 포인트(rptr)를 생성한다. 비교부들(14,15)은 라이트 카운트(wptr)와 리드 카운트(rptr)를 대응되는 비트별로(비트쌍을) 비교하여, 비교 결과에 응답하여 풀 신호(FULL) 또는 엠티 신호(EMPTY)를 출력한다. Referring to FIG. 3, the asynchronous FIFO 10 according to the related art includes a dual port memory 11, a write counter 12, a read counter 13, and comparison units. 14 and 15 and the synchronization units 16 and 17. The dual port memory 11 is a collection of entries in FIG. The write counter 12 and the read counter 13 generate the write point wptr and read point rptr of FIG. 2, respectively. The comparison units 14 and 15 compare the write count wptr and the read count rptr by corresponding bits (bit pairs), and output a full signal FULL or an empty signal EMPTY in response to the comparison result. do.

이때 라이트 카운터(12) 및 리드 카운터(13)는 동기부들(16,17)에 의하여 동기된다. 그런데 종래 기술에 따른 비동기식 FIFO(10)에서는 카운터의 동기화 문제가 발생한다. At this time, the write counter 12 and the read counter 13 are synchronized by the synchronization units 16 and 17. However, in the asynchronous FIFO 10 according to the prior art, the synchronization problem of the counter occurs.

도 4는 도 3의 FIFO의 동작에 따른 오류를 나타내는 도면이다.4 is a diagram illustrating an error according to the operation of the FIFO of FIG. 3.

도 3 및 도 4를 참조하면, 도 3의 종래 기술에 따른 비동기식 FIFO(10)에서 카운터의 동기화 문제는 두 개의 비동기 클럭(WCLK,RCLK)이 서로 비슷한 시간에 토토글(toggle)될 때 발생한다. 3개의 F/F(Flip-Flop)으로 구성되어 있는 동기부(17)의 wptr sync1에서 아주 조금이라도 3개의 F/F에 도달하는 리드 클럭(RCLK)의 차이가 발생한다면, 리드 포인트(rptr)는 000 또는 111 이외의 값을 갖게 되는 오류가 발생한다. 즉, 현재 또는 다음 포인트 값을 갖지 못하고 잘못된 엔트리에 대한 포 인트 값을 갖는바(도 2의 포인트 값 참조) 잘못된 풀 또는 엠티 신호를 생성할 수 있다. 따라서, FIFO의 불안정성이 문제된다.3 and 4, the synchronization problem of the counter in the asynchronous FIFO 10 according to the related art of FIG. 3 occurs when two asynchronous clocks WCLK and RCLK are toggled at similar times. . If wptr sync1 of the synchronization unit 17 consisting of three F / Fs (Flip-Flop) causes a difference in the read clock RCLK that reaches even three F / Fs, the lead point (rptr) Will cause an error with a value other than 000 or 111. That is, it may generate an incorrect pull or empty signal having no current or next point value and having a point value for the wrong entry (see the point value of FIG. 2). Thus, instability of the FIFO is a problem.

본 발명이 이루고자하는 기술적 과제는 안정적인 리드/라이트 동작을 수행할 수 있는 비동기식 FIFO를 제공하는데 있다. An object of the present invention is to provide an asynchronous FIFO capable of performing a stable read / write operation.

상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 비동기식 FIFO(First-In First-Out)는 라이트(write) 유효 비트 생성부, 리드(read) 유효 비트 생성부, 풀 디텍터(full detector) 및 엠티 디텍터(empty detector)를 구비한다.In order to achieve the above technical problem, an asynchronous first-in first-out (FIFO) according to an embodiment of the present invention includes a write valid bit generator, a read valid bit generator, a full detector, and a full detector. It has an empty detector.

라이트 유효 비트 생성부는 상기 FIFO의 라이트 포인트(write point)에 대응되는 라이트 유효 비트를 생성한다. 리드 유효 비트 생성부는 상기 FIFO의 리드 포인트(read point)에 대응되는 리드 유효 비트를 생성한다. 풀 디텍터는 상기 라이트 포인트에 동기되는 리드 유효 비트 및 상기 라이트 유효 비트를 비교하여 상기 FIFO가 풀(full)인 경우 풀(full) 신호를 생성한다. 엠티 디텍터는 상기 리드 포인트에 동기되는 라이트 유효 비트 및 상기 리드 유효 비트의 비교하여 상기 FIFO가 엠티(empty)인 경우 엠티(empty) 신호를 생성한다.The write valid bit generator generates a write valid bit corresponding to a write point of the FIFO. The read valid bit generator generates a read valid bit corresponding to a read point of the FIFO. The full detector compares the read valid bit synchronized with the write point and the write valid bit to generate a full signal when the FIFO is full. An empty detector generates an empty signal when the FIFO is empty by comparing the write valid bit synchronized with the read point and the read valid bit.

상기 비동기식 FIFO는 라이트 포인트 카운터(write point counter) 및 리드 포인트 카운터(read point counter)를 더 구비한다. 라이트 포인트 카운터는 라이트 클럭(write clock)에 응답하여 상기 FIFO의 엔트리(entry)로의 기입 동작마다 상기 라이트 포인트를 하나씩 로테이션(rotation)시킨다. 리드 포인트 카운터는 리드 클럭(read clock)에 응답하여 상기 FIFO의 엔트리로부터의 독출 동작마다 상기 리드 포인트를 하나씩 로테이션시킨다.The asynchronous FIFO further includes a write point counter and a read point counter. The write point counter rotates the write point one by one for each write operation of the FIFO in response to a write clock. A read point counter rotates the read point by one for each read operation from the entry of the FIFO in response to a read clock.

상기 라이트 유효 비트와 상기 리드 유효 비트는 각각 상기 FIFO가 n(n은 자연수, 이하 동일)개의 엔트리(entry)를 구비할 때, 2n비트이다. 상기 라이트 유효 비트는 현재 라이트 클럭의 한 클럭 이전의 라이트 포인트에 대한 라이트 유효 비트와 한 비트만 다르다. The write valid bit and the read valid bit are 2 n bits, respectively, when the FIFO has n (n is a natural number, equal to or less) entries. The write valid bit is only one bit different from the write valid bit for a write point one clock before the current write clock.

상기 라이트 유효 비트 생성부는 디코더(decoder) 및 플립 플랍(Flip-Flop)들을 구비한다. 디코더는 상기 라이트 포인트를 입력으로 하여 상기 라이트 유효 비트를 디코딩(decoding)한다. 플립 플랍들은 상기 라이트 유효 비트를 토글(toggle)하기 위한 상기 라이트 유효 비트에 대응되는 개수로 구비된다. The write valid bit generator includes a decoder and flip-flops. The decoder decodes the write valid bit by using the write point as an input. Flip flops are provided in a number corresponding to the write valid bit for toggling the write valid bit.

상기 리드 유효 비트는 현재 리드 클럭의 한 클럭 이전의 리드 포인트에 대한 리드 유효 비트와 한 비트만 다르다. 상기 리드 유효 비트 생성부는 디코더(decoder) 및 플립 플랍(Flip-Flop)들을 구비한다. 디코더는 상기 리드 포인트를 입력으로 하여 상기 리드 유효 비트를 디코딩(decoding)한다. 플립 플랍들은 상기 리드 유효 비트를 토글(toggle)하기 위한 상기 리드 유효 비트에 대응되는 개수로 구비된다.The read valid bit is only one bit different from the read valid bit for a read point one clock before the current read clock. The read valid bit generator includes a decoder and flip-flops. The decoder decodes the read valid bit by using the read point as an input. Flip flops are provided in a number corresponding to the read valid bit for toggling the read valid bit.

상기 풀 디텍터는 상기 라이트 포인트에 동기되는 리드 유효 비트 및 상기 라이트 유효 비트의 최상위 비트쌍을 제외한 모든 비트쌍들이 같은 경우 상기 풀 신호를 생성한다. 상기 풀 디텍터는 배타적 논리합 수단, 배타적 반전 논리합 수단들 및 논리곱 수단을 구비한다. 배타적 논리합 수단은 상기 동기된 리드 유효 비트와 상기 라이트 유효 비트의 최상위 비트쌍을 입력으로 한다. 배타적 반전 논리합 수단들은 상기 동기된 리드 유효 비트와 상기 라이트 유효 비트의 최상위 비트쌍을 제외한 비트쌍들을 각각의 입력으로 한다. 논리곱 수단은 상기 배타적 반전 논리합 수단의 출력 및 상기 배타적 논리합 수단들의 출력을 입력으로 하여 상기 풀 신호를 출력한다. The full detector generates the full signal when all bit pairs except the most significant bit pair of the write valid bit and the write valid bit synchronized with the write point are the same. The full detector has exclusive OR means, exclusive inversion AND means, and AND means. An exclusive OR means takes as input the most significant bit pair of the synchronized read valid bit and the write valid bit. Exclusive inverted OR means take as input each bit pairs except the most significant bit pair of the synchronized read valid bit and the write valid bit. The AND product outputs the full signal by inputting the output of the exclusive inverted AND and the output of the exclusive OR.

상기 엠티 디텍터는 상기 리드 포인트에 동기되는 라이트 유효 비트 및 상기 리드 유효 비트의 모든 비트쌍들이 같은 경우 상기 엠티 신호를 생성한다. 상기 엠티 디텍터는 배타적 논리합 수단들 및 반전 논리합 수단을 구비한다. 배타적 논리합 수단들은 상기 동기된 라이트 유효 비트와 상기 리드 유효 비트의 비트쌍들을 각각의 입력으로 한다. 반전 논리합 수단은 상기 배타적 논리합 수단들의 출력을 입력으로 하여 상기 엠티 신호를 출력한다.The empty detector generates the empty signal when the write valid bit synchronized with the read point and all the bit pairs of the read valid bit are the same. The empty detector has exclusive OR means and inverted OR means. Exclusive-OR means take the pair of bits of the synchronized write valid bit and the read valid bit as inputs, respectively. Inverted-OR means outputs the empty signal with the output of the exclusive-OR means as an input.

상기 비동기식 FIFO는 제 1 동기부 및 제 2 동기부를 더 구비할 수 있다. 제 1 동기부는 상기 라이트 포인트와 상기 리드 유효 비트를 동기시킨다. 제 2 동기부는 상기 리드 포인트와 상기 라이트 유효 비트를 동기시킨다. 상기 제 1 동기부는 상기 라이트 클럭에 동작하는 플립 플랍(flip flop)들을 구비하고, 상기 제 2 동기부는 상기 리드 클럭에 동작하는 플립 플랍(flip flop)들을 구비한다. The asynchronous FIFO may further include a first synchronizer and a second synchronizer. The first synchronizer synchronizes the write point and the read valid bit. The second synchronizer synchronizes the read point and the write valid bit. The first synchronizer includes flip flops that operate on the write clock, and the second synchronizer includes flip flops that operate on the read clock.

상기 풀 디텍터는 상기 제 1 동기부에 의하여 상기 라이트 포인트에 동기된 리드 유효 비트와 상기 라이트 유효 비트를 비교한다. 상기 엠티 디텍터는 상기 제 2 동기부에 의하여 상기 리드 포인트에 동기된 라이트 유효 비트와 상기 리드 유효 비트를 비교한다.The full detector compares the read valid bit and the write valid bit synchronized with the write point by the first synchronizer. The empty detector compares the write valid bit and the read valid bit synchronized with the read point by the second synchronizer.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다. DETAILED DESCRIPTION In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the drawings.

이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 5는 본 발명의 실시예에 따른 비동기식 FIFO를 나타내는 도면이다.5 illustrates an asynchronous FIFO according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 실시예에 따른 비동기식 FIFO(First-In First-Out)(100)는 라이트(write) 유효 비트 생성부(120), 리드(read) 유효 비트 생성부(130), 풀 디텍터(full detector)(160) 및 엠티 디텍터(empty detector)(170)를 구비한다.Referring to FIG. 5, an asynchronous first-in first-out (FIFO) 100 according to an embodiment of the present invention may include a write valid bit generator 120 and a read valid bit generator 130. A full detector 160 and an empty detector 170.

라이트 유효 비트 생성부(120)는 FIFO(100)의 라이트 포인트(write point)(wptr)에 대응되는 라이트 유효 비트(wvalid)를 생성한다. 라이트 유효 비트(wvalid)는 FIFO(100)가 n(n은 자연수, 이하 동일)개의 엔트리(entry)들은 구비할 때, 2n비트이다. 엔트리들의 집합이 듀얼 포트 메모리(110)이다. The write valid bit generating unit 120 generates a write valid bit corresponding to a write point wptr of the FIFO 100. The write valid bit (wvalid) is 2 n bits when the FIFO 100 has n (n is a natural number, the same below) entries. The set of entries is dual port memory 110.

라이트 유효 비트(wvalid)는 현재 라이트 클럭(wclk)의 한 클럭 이전의 라이트 포인트에 대한 라이트 유효 비트와 한 비트만 다르다. 예를 들어, 현재 라이트 클럭(wclk)의 한 클럭 이전의 라이트 포인트에 대한 라이트 유효 비트가 0001이라 하면, 현재 라이트 클럭(wclk)에서의 라이트 포인트(wptr)에 대한 라이트 유효 비트(wvalid)는 0000, 1001, 0101 및 0011 중 하나의 값을 갖는다. The write valid bit wvalid is only one bit different from the write valid bit for a write point one clock before the current write clock wclk. For example, if the write valid bit for a write point one clock before the current write clock wclk is 0001, the write valid bit wvalid for the write point wptr at the current write clock wclk is 0000. , 1001, 0101 and 0011.

라이트 유효 비트 생성부(120)는 디코더(decoder) 및 플립 플랍(Flip-Flop)들을 구비한다. 상기 디코더는 라이트 포인트(wptr)를 입력으로 하여 라이트 유효 비트(wvalid)를 디코딩(decoding)한다. 상기 플립 플랍들은 라이트 유효 비트(wvalid)를 제 2 동기부(190)로 토글(toggle)하기 위한 상기 라이트 유효 비트에 대응되는 개수로 구비된다. The write valid bit generator 120 includes a decoder and flip-flops. The decoder decodes a write valid bit (wvalid) using a write point (wptr) as an input. The flip flops are provided in a number corresponding to the write valid bit for toggling the write valid bit to the second synchronizer 190.

리드 유효 비트 생성부(130)는 FIFO(100)의 리드 포인트(read point)(rptr)에 대응되는 리드 유효 비트(rvalid)를 생성한다. 리드 유효 비트(rvalid) 또한 FIFO(100)가 n개의 엔트리들은 구비할 때, 2n비트이다. 그리고 리드 유효 비트(rvalid)도 현재 리드 클럭(rclk)의 한 클럭 이전의 리드 포인트에 대한 리드 유효 비트와 한 비트만 다르다. The read valid bit generator 130 generates a read valid bit corresponding to a read point rptr of the FIFO 100. The read valid bit is also 2 n bits when the FIFO 100 has n entries. The read valid bit rvalid is also different from the read valid bit for a read point one clock before the current read clock rclk.

리드 유효 비트 생성부(130)는 디코더(decoder) 및 플립 플랍(Flip-Flop)들을 구비한다. 디코더는 상기 리드 포인트를 입력으로 하여 리드 유효 비트(rvalid)를 디코딩(decoding)한다. 플립 플랍들은 상기 리드 유효 비트를 제 1 동기부(180)로 토글(toggle)하기 위한 상기 리드 유효 비트에 대응되는 개수로 구비된다.The read valid bit generator 130 includes a decoder and flip-flops. The decoder decodes a read valid bit from the read point as an input. Flip flops are provided in a number corresponding to the read valid bit for toggling the read valid bit to the first synchronizer 180.

라이트 유효 비트(wvalid)는 제 2 동기부(190)에 의하여 리드 포인트(rptr)에 동기되고, 리드 유효 비트(rvalid)는 제 1 동기부(180)에 의하여 라이트 포인트 (wptr)에 동기된다. 제 1 동기부(180) 및 제 2 동기부(190) 각각은 라이트 클럭(wclk) 및 리드 클럭(rclk)에 동작하는 동기화 플립 플랍(flip flop)들을 구비한다. The write valid bit wvalid is synchronized to the read point rptr by the second synchronizer 190, and the read valid bit rvalid is synchronized to the write point wptr by the first synchronizer 180. Each of the first synchronizer 180 and the second synchronizer 190 includes synchronous flip flops that operate on the write clock wclk and the read clock rclk.

계속해서 도 5를 참조하면, 풀 디텍터(160)는 라이트 포인트(wptr)에 동기되는 리드 유효 비트(rvalid) 및 라이트 유효 비트(wvalid)를 비교한다. 비교 결과 FIFO(100)가 풀(full)이면 풀 신호(FULL)를 생성한다. 엠티 디텍터(170)는 상기 리드 포인트에 동기되는 라이트 유효 비트 및 상기 리드 유효 비트의 비교하여 상기 FIFO가 엠티(empty)인 경우 엠티(empty) 신호를 생성한다. 풀 디텍터(160)와 엠티 디텍터(170)에 대한 보다 자세한 설명은 후술한다.5, the full detector 160 compares the read valid bit rvalid and the write valid bit wvalid synchronized with the write point wptr. As a result of the comparison, if the FIFO 100 is full, a full signal FULL is generated. The empty detector 170 generates an empty signal when the FIFO is empty by comparing the write valid bit synchronized with the read point and the read valid bit. The full detector 160 and the empty detector 170 will be described in detail later.

비동기식 FIFO(100)는 라이트 포인트 카운터(write point counter)(120) 및 리드 포인트 카운터(read point counter)(130)를 더 구비한다. 라이트 포인트 카운터(120)는 라이트 클럭(write clock)(WCLK)에 응답하여, FIFO(100)의 엔트리(entry)로의 기입 동작마다 라이트 포인트(wptr)를 하나씩 로테이션(rotation)시킨다. 리드 포인트 카운터(130)는 리드 클럭(read clock)(RCLK)에 응답하여 FIFO(100)의 엔트리로부터의 독출 동작마다 리드 포인트(rptr)를 하나씩 로테이션시킨다.The asynchronous FIFO 100 further includes a write point counter 120 and a read point counter 130. The write point counter 120 rotates one write point wptr for each write operation of the FIFO 100 in response to a write clock WCLK. The read point counter 130 rotates one read point rptr for each read operation from an entry of the FIFO 100 in response to a read clock RCLK.

라이트 포인트 카운터(120) 및 리드 포인트 카운터(130)의 동작은 도 2 및 도 3에서 설명한 카운터들(12,13)과 동기부들(16,17)의 동작과 유사한바 그에 대한 구체적인 설명은 생략한다. Operations of the write point counter 120 and the read point counter 130 are similar to those of the counters 12 and 13 and the synchronizers 16 and 17 described with reference to FIGS. 2 and 3, and thus detailed description thereof will be omitted. .

도 6은 도 4의 오류를 해결하는 도 5의 FIFO의 동작을 나타내는 도면이다.6 is a diagram illustrating an operation of the FIFO of FIG. 5 to solve the error of FIG. 4.

도 5 및 도 6을 참조하면, 라이트 포인트(wptr)가 "01"에서 "10"으로 바뀌고, 이에 따라 라이트 유효 비트(wvalid)가 "1101"에서 "1111"로 변경된다. 이때 리드 클럭(rclk)이 발생하므로 제 2 동기부(190)는 라이트 유효 비트(wvalid)를 동기시켜 엠티 디텍터(170)로 전송한다. 5 and 6, the write point wptr is changed from "01" to "10" and thus the write valid bit wvalid is changed from "1101" to "1111". In this case, since the read clock rclk is generated, the second synchronizer 190 transmits the write valid bit wvalid to the empty detector 170.

그런데 전술한 바와 같이 라이트 유효 비트(wvalid)는 하나의 비트만이 변경된다. 따라서 비록 도 4에서 문제된 바와 같이 제 2 동기부(180)의 WVALID SYNC1의 각 플립 플랍들에 도달하는 리드 클럭(RCLK)의 차이가 발생하더라도 FIFO(100)의 라이트 유효 비트(wvalid)는 "1101" 또는 "1111" 중 하나의 값을 가지므로 오류는 발생하지 아니한다. As described above, only one bit is changed in the write valid bit (wvalid). Therefore, even though the difference in the read clock RCLK reaching each flip flop of the WVALID SYNC1 of the second synchronizer 180 as shown in FIG. 4 occurs, the write valid bit of the FIFO 100 is " 1101 "or" 1111 "does not cause an error.

도 7a 및 도 7b는 각각 도 5의 풀 디텍터 및 엠티 디텍터를 보다 자세히 나타내는 도면이다.7A and 7B illustrate the full detector and empty detector of FIG. 5 in more detail.

도 7a를 참조하면, 풀 디텍터(160)는 동기된 리드 유효 비트(rvalid_sync2) 및 라이트 유효 비트(wvaild)의 최상위 비트쌍(동기된 리드 유효 비트(rvalid_sync2) 및 라이트 유효 비트(wvalid)가 각각 4 비트라면, 최상위 비트쌍은 (rvalid_sync2[3],wvaild[3]))을 제외한 모든 비트쌍들이 같은 경우 상기 풀 신호(FULL)를 생성한다. 즉, 라이트 포인트(wptr)가 모든 엔트리를 로테이션한 후 처음으로 포인팅한 엔트리를 포인팅하는데 리드 포인트(rptr)가 동일한 엔트리를 포인팅하고 있는 경우 FIFO는 풀이다. Referring to FIG. 7A, the full detector 160 includes four most significant bit pairs of the synchronized read valid bit rvalid_sync2 and the write valid bit wvaild (synchronized read valid bit rvalid_sync2 and write valid bit wvalid, respectively). Bit, the most significant bit pair generates the full signal FULL if all bit pairs except (rvalid_sync2 [3], wvaild [3]) are equal. That is, if the write point wptr points to the first entry after all entries are rotated and the read point rptr points to the same entry, the FIFO is full.

풀 디텍터(160)는 동기된 리드 유효 비트(rvalid_sync2) 및 라이트 유효 비트(wvaild)의 각 비트쌍들을 비교하기 위해 배타적 논리합 수단, 배타적 반전 논리 합 수단들 및 논리곱 수단을 구비한다. The full detector 160 includes exclusive OR means, exclusive inverted OR sum means, and AND means for comparing each bit pair of the synchronized read valid bit rvalid_sync2 and write valid bit wvaild.

배타적 논리합 수단은 동기된 리드 유효 비트(rvalid_sync2) 및 라이트 유효 비트(wvaild)의 최상위 비트쌍(rvalid_sync2[3],wvaild[3])을 배타적 논리합한다. 배타적 반전 논리합 수단들은 동기된 리드 유효 비트(rvalid_sync2) 및 라이트 유효 비트(wvaild)의 최상위 비트쌍(rvalid_sync2[3],wvaild[3])을 제외한 비트쌍들((rvalid_sync2[2],wvaild[2]),(rvalid_sync2[1],wvaild[1]),(rvalid_sync2[0],wvaild[0]))을 각각 배타적 반전 논리합한다. 논리곱 수단은 배타적 반전 논리합 수단의 출력 및 배타적 논리합 수단들의 출력을 논리곱한다. 이때 논리곱 수단은 배타적 논리합 수단의 출력 및 배타적 반전 논리합 수단들의 출력이 모두 논리 하이("H")인 경우 논리 하이("H") 풀 신호(FULL)를 출력한다. The exclusive OR means exclusive ORs the most significant bit pairs rvalid_sync2 [3] and wvaild [3] of the synchronized read valid bit rvalid_sync2 and write valid bit wvaild. Exclusive inverted OR means includes the pairs of bits ((rvalid_sync2 [2], wvaild [2) except for the most significant bit pair (rvalid_sync2 [3], wvaild [3]) of the synchronized read valid bit (rvalid_sync2) and write valid bit (wvaild). ]), (rvalid_sync2 [1], wvaild [1]), (rvalid_sync2 [0], wvaild [0])), respectively. The AND means AND AND the output of the exclusive inverted AND means and the output of the exclusive AND means. At this time, the AND means outputs a logical high (“H”) pull signal FULL when both the output of the exclusive AND means and the output of the exclusive inverted OR means are logical high (“H”).

엠티 디텍터(170)는 동기된 라이트 유효 비트(wvalid_sync2) 및 리드 유효 비트(rvalid)의 모든 비트쌍들(동기된 라이트 유효 비트(wvalid_sync2) 및 리드 유효 비트(rvalid)가 각각 4 비트라면, 각 비트쌍들은 (wvalid_sync2[3],rvaild[3]), (wvalid_sync2[2],rvaild[2]),(wvalid_sync2[1],rvaild[1]),(wvalid_sync2[0],rvaild[0]))이 같은 경우 엠티 신호(EMPTY)를 생성한다. The empty detector 170 may determine each bit pair of the synchronized write valid bit wvalid_sync2 and the read valid bit rvalid (if the synchronized write valid bit wvalid_sync2 and the read valid bit rvalid are 4 bits, respectively). The pairs are (wvalid_sync2 [3], rvaild [3]), (wvalid_sync2 [2], rvaild [2]), (wvalid_sync2 [1], rvaild [1]), (wvalid_sync2 [0], rvaild [0])) In this case, an empty signal EMPTY is generated.

엠티 디텍터(170)는 동기된 라이트 유효 비트(wvalid_sync2) 및 리드 유효 비트(rvalid)의 각 비트쌍들을 비교하기 위해 배타적 논리합 수단들 및 반전 논리합 수단을 구비한다. 배타적 논리합 수단들은 동기된 라이트 유효 비트(wvalid_sync2) 및 리드 유효 비트(rvalid)의 각 비트쌍들을 각각 배타적 논리합 한다. 반전 논리합 수단은 배타적 논리합 수단들의 출력을 반전 논리합하다. 이때 반전 논리합 수단은 배타적 논리합 수단들의 출력이 모두 논리 하이("L")인 경우 논리 하이("H") 엠티 신호(EMPTY)를 출력한다. The empty detector 170 has exclusive OR means and inverted OR means for comparing the respective bit pairs of the synchronized write valid bit wvalid_sync2 and read valid bit rvalid. Exclusive OR means exclusive OR each bit pair of the synchronized write valid bit (wvalid_sync2) and read valid bit (rvalid), respectively. The inverse AND means inverts the output of the exclusive AND means. At this time, the inverted-OR means outputs a logic high (“H”) empty signal EMPTY when the outputs of the exclusive-OR means are all logic high (“L”).

다시 도 5를 참조하면, 본 발명의 실시예에 따른 비동기식 FIFO는 도 3과 같이 카운터 자체가 동기화 플립 플랍에 연결되지 않는다. 대신 카운터가 가리키는 FIFO 엔트리에 해당되는 유효 비트를 쓰기 또는 읽기가 실행될 때마다 토글(toggle)하는 방식을 사용한다. 이 방식을 사용하면 쓰기 또는 읽기를 할 때마다 오직 하나의 비트만이 바뀌게 되며 바뀌는 비트의 값을 동기화 플립 플랍에 저장할 때 바뀌기 전의 값을 저장하거나 또는 바뀐 값을 저장하거나에 상관없이 정상동작이 이루어진다. 즉, 오직 하나의 비트만 바뀌게 되는바 정상적인 풀/엠티 디텍션이 수행된다.Referring back to FIG. 5, in the asynchronous FIFO according to the embodiment of the present invention, the counter itself is not connected to the synchronous flip flop as shown in FIG. 3. Instead, it toggles each time a write or read is performed, which is a valid bit corresponding to the FIFO entry pointed to by the counter. With this method, only one bit is changed each time you write or read, and when you store the value of the changed bit on the synchronous flip flop, the normal operation is performed regardless of whether you save the changed value or the changed value. . That is, only one bit is changed so that normal full / empty detection is performed.

Grey code를 사용하여 라이트 포인트 및 리드 포인트를 나타냄으로써 FIFO의 쓰기 또는 읽기 시 포인트 값이 한 비트씩만 변하도록 하여 카운터의 동기화 문제를 해결할 수 있는 방법이 있다. 그러나 이 Grey code 방식은 속도가 느리다는 단점이 있다. 풀 또는 신호를 만들기 위해서는 Grey code에서 일반 카운터의 값으로의 변환이 필요하며 이를 위해서는 가산기를 거쳐야 하기 때문이다. 이에 비해 본 발명의 실시예에 따른 유효 비트를 사용하는 비동기 FIFO는 이러한 연산할 필요가 없고 단지 두 단계의 게이트만 거치면 풀 또는 엠티 신호를 만들 수 있기 때문에 매우 빠르다. 또한 본 발명의 실시예에 따른 유효 비트를 사용하는 비동기 FIFO는 가산기 등의 복잡한 회로를 거치지 않고 신호를 만들 수 있기 때문에 전력 면에서도 매우 유리하다.There is a way to solve the counter synchronization problem by using the gray code to indicate the write point and read point so that the point value changes only one bit when writing or reading the FIFO. However, this gray code method has the disadvantage of being slow. This is because the gray code needs to be converted from the normal counter value to make a pull or a signal. In contrast, an asynchronous FIFO using valid bits according to an embodiment of the present invention is very fast because it does not need to perform this operation and can create a full or empty signal only through two gates. In addition, the asynchronous FIFO using the valid bit according to the embodiment of the present invention is very advantageous in terms of power since it can generate a signal without going through a complicated circuit such as an adder.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, these terms are only used for the purpose of describing the present invention and are not intended to limit the scope of the present invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이 본 발명에 따른 유효 비트를 사용하는 비동기식 FIFO는 불안정성(metastability) 및 카운터의 동기화 문제를 해결하여 안정된 FIFO 동작을 수행할 수 있는 장점이 있다. 최근의 SoC는 반도체 공정의 발달로 인하여 적은 수의 게이트의 추가 보다는 동작 속도나 저전력 소모가 주된 관점인 점에서 볼 때, 본 발명에 따른 유효 비트를 사용하는 비동기식 FIFO는 고속 또는 저전력 IP 제작시 유용하게 사용될 수 있다. As described above, an asynchronous FIFO using valid bits according to the present invention has an advantage of performing stable FIFO operation by solving problems of instability and counter synchronization. In recent years, the SoC is a major aspect of the operation speed or low power consumption rather than the addition of a small number of gates due to the development of the semiconductor process, asynchronous FIFO using the effective bit according to the present invention is useful for high-speed or low-power IP fabrication Can be used.

Claims (15)

비동기식 FIFO(First-In First-Out) 구조에 있어서,In an asynchronous first-in first-out structure, 상기 FIFO의 라이트 포인트(write point)에 대응되는 라이트 유효 비트를 생성하는 라이트 유효 비트 생성부;A write valid bit generator configured to generate a write valid bit corresponding to a write point of the FIFO; 상기 FIFO의 리드 포인트(read point)에 대응되는 리드 유효 비트를 생성하는 리드 유효 비트 생성부;A read valid bit generator configured to generate a read valid bit corresponding to a read point of the FIFO; 상기 라이트 포인트에 동기되는 리드 유효 비트 및 상기 라이트 유효 비트를 비교하여 상기 FIFO가 풀(full)인 경우 풀(full) 신호를 생성하는 풀 디텍터(full detector); 및A full detector configured to compare a read valid bit synchronized with the write point and the write valid bit to generate a full signal when the FIFO is full; And 상기 리드 포인트에 동기되는 라이트 유효 비트 및 상기 리드 유효 비트의 비교하여 상기 FIFO가 엠티(empty)인 경우 엠티(empty) 신호를 생성하는 엠티 디텍터(empty detector)를 구비하는 것을 특징으로 하는 비동기식 FIFO. And an empty detector configured to generate an empty signal when the FIFO is empty by comparing the write valid bit synchronized with the read point and the read valid bit. 제 1 항에 있어서, 상기 비동기식 FIFO는, The method of claim 1, wherein the asynchronous FIFO, 라이트 클럭(write clock)에 응답하여 상기 FIFO의 엔트리(entry)로의 기입 동작마다 상기 라이트 포인트를 하나씩 로테이션(rotation)시키는 라이트 포인트 카운터(write point counter); 및A write point counter configured to rotate the write point one by one for each write operation of the FIFO in response to a write clock; And 리드 클럭(read clock)에 응답하여 상기 FIFO의 엔트리로부터의 독출 동작마다 상기 리드 포인트를 하나씩 로테이션시키는 리드 포인트 카운터(read point counter)를 더 구비하는 것을 특징으로 하는 비동기식 FIFO.And a read point counter for rotating the read points one by one for each read operation from the entry of the FIFO in response to a read clock. 제 1 항에 있어서, 상기 라이트 유효 비트와 상기 리드 유효 비트는 각각,The method of claim 1, wherein the write valid bit and the read valid bit, respectively, 상기 FIFO가 n(n은 자연수, 이하 동일)개의 엔트리(entry)를 구비할 때, 2n비트인 것을 특징으로 하는 비동기식 FIFO.And 2 n bits when the FIFO has n entries (n is a natural number, the same below). 제 3 항에 있어서, 상기 라이트 유효 비트는,The method of claim 3, wherein the write valid bit, 현재 라이트 클럭의 한 클럭 이전의 라이트 포인트에 대한 라이트 유효 비트와 한 비트만 다른 것을 특징으로 하는 비동기식 FIFO.An asynchronous FIFO, characterized in that only one bit is different from the write valid bit for a write point one clock before the current write clock. 제 4 항에 있어서, 상기 라이트 유효 비트 생성부는, The method of claim 4, wherein the write valid bit generation unit, 상기 라이트 포인트를 입력으로 하여 상기 라이트 유효 비트를 디코딩(decoding)하는 디코더(decoder); 및A decoder configured to decode the write valid bit by using the write point as an input; And 상기 라이트 유효 비트를 토글(toggle)하기 위한 상기 라이트 유효 비트에 대응되는 개수의 플립 플랍(Flip-Flop)들을 구비하는 것을 특징으로 하는 비동기식 FIFO.And a number of flip-flops corresponding to the write valid bit for toggling the write valid bit. 제 3 항에 있어서, 상기 리드 유효 비트는,The method of claim 3, wherein the read valid bit, 현재 리드 클럭의 한 클럭 이전의 리드 포인트에 대한 리드 유효 비트와 한 비트만 다른 것을 특징으로 하는 비동기식 FIFO.Asynchronous FIFO, characterized in that only one bit is different from the Read Valid bit for a read point one clock before the current read clock. 제 6 항에 있어서, 상기 리드 유효 비트 생성부는, The method of claim 6, wherein the read valid bit generation unit, 상기 리드 포인트를 입력으로 하여 상기 리드 유효 비트를 디코딩(decoding)하는 디코더(decoder); 및A decoder configured to decode the read valid bit by using the read point as an input; And 상기 리드 유효 비트를 토글(toggle)하기 위한 상기 리드 유효 비트에 대응되는 개수의 플립 플랍(Flip-Flop)들을 구비하는 것을 특징으로 하는 비동기식 FIFO.And a number of flip-flops corresponding to the read valid bit for toggling the read valid bit. 제 1 항에 있어서, 상기 풀 디텍터는,The method of claim 1, wherein the full detector, 상기 라이트 포인트에 동기되는 리드 유효 비트 및 상기 라이트 유효 비트의 최상위 비트쌍을 제외한 모든 비트쌍들이 같은 경우 상기 풀 신호를 생성하는 것을 특징으로 하는 비동기식 FIFO.And generating a full signal when all bit pairs except the most significant bit pair of the write valid bit and the write valid bit synchronized with the write point are the same. 제 8 항에 있어서, 상기 풀 디텍터는,The method of claim 8, wherein the full detector, 상기 동기된 리드 유효 비트와 상기 라이트 유효 비트의 최상위 비트쌍을 입력으로 하는 배타적 논리합 수단;Exclusive OR means for inputting the most significant bit pair of the synchronized read valid bit and the write valid bit; 상기 동기된 리드 유효 비트와 상기 라이트 유효 비트의 최상위 비트쌍을 제외한 비트쌍들을 각각의 입력으로 하는 배타적 반전 논리합 수단들; 및Exclusive inversion and OR means for each of the pairs of bits except the most significant bit pair of the synchronized read valid bit and the write valid bit as inputs; And 상기 배타적 반전 논리합 수단의 출력 및 상기 배타적 논리합 수단들의 출력 을 입력으로 하여 상기 풀 신호를 출력하는 논리곱 수단을 구비하는 것을 특징으로 하는 비동기식 FIFO.And logical AND means for outputting the full signal by inputting the output of the exclusive inverted AND and the outputs of the exclusive OR. 제 1 항에 있어서, 상기 엠티 디텍터는,The method of claim 1, wherein the empty detector, 상기 리드 포인트에 동기되는 라이트 유효 비트 및 상기 리드 유효 비트의 모든 비트쌍들이 같은 경우 상기 엠티 신호를 생성하는 것을 특징으로 하는 비동기식 FIFO.And generating the empty signal when the write valid bit synchronized with the read point and all the bit pairs of the read valid bit are the same. 제 10 항에 있어서, 상기 엠티 디텍터는,The method of claim 10, wherein the empty detector, 상기 동기된 라이트 유효 비트와 상기 리드 유효 비트의 비트쌍들을 각각의 입력으로 하는 배타적 논리합 수단들; 및Exclusive ORs for each of the pairs of the synchronized write valid bit and the read valid bit as inputs; And 상기 배타적 논리합 수단들의 출력을 입력으로 하여 상기 엠티 신호를 출력하는 반전 논리합 수단을 구비하는 것을 특징으로 하는 비동기식 FIFO.And inverted-OR means for outputting the empty signal by inputting the outputs of the exclusive-OR means. 제 1 항에 있어서, 상기 비동기식 FIFO는,The method of claim 1, wherein the asynchronous FIFO, 상기 라이트 포인트와 상기 리드 유효 비트를 동기시키는 제 1 동기부; 및A first synchronizer for synchronizing the write point with the read valid bit; And 상기 리드 포인트와 상기 라이트 유효 비트를 동기시키는 제 2 동기부를 더 구비하는 것을 특징으로 하는 비동기식 FIFO.And a second synchronizer configured to synchronize the read point and the write valid bit. 제 12 항에 있어서, The method of claim 12, 상기 제 1 동기부는 상기 라이트 클럭에 동작하는 플립 플랍(flip flop)들을 구비하고,The first synchronizer includes flip flops that operate on the write clock, 상기 제 2 동기부는 상기 리드 클럭에 동작하는 플립 플랍(flip flop)들을 구비하는 것을 특징으로 하는 비동기식 FIFO.And the second synchronizer includes flip flops that operate on the read clock. 제 13 항에 있어서, 상기 풀 디텍터는,The method of claim 13, wherein the full detector, 상기 제 1 동기부에 의하여 상기 라이트 포인트에 동기된 리드 유효 비트와 상기 라이트 유효 비트를 비교하는 것을 특징으로 하는 비동기식 FIFO.And comparing the write valid bit and the write valid bit synchronized with the write point by the first synchronizer. 제 13 항에 있어서, 상기 엠티 디텍터는,The method of claim 13, wherein the empty detector, 상기 제 2 동기부에 의하여 상기 리드 포인트에 동기된 라이트 유효 비트와 상기 리드 유효 비트를 비교하는 것을 특징으로 하는 비동기식 FIFO.And comparing the write valid bit and the read valid bit synchronized with the read point by the second synchronizer.
KR1020060015911A 2006-02-18 2006-02-18 Asynchronous fifo using valid bit KR20070082817A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060015911A KR20070082817A (en) 2006-02-18 2006-02-18 Asynchronous fifo using valid bit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060015911A KR20070082817A (en) 2006-02-18 2006-02-18 Asynchronous fifo using valid bit

Publications (1)

Publication Number Publication Date
KR20070082817A true KR20070082817A (en) 2007-08-22

Family

ID=38612356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060015911A KR20070082817A (en) 2006-02-18 2006-02-18 Asynchronous fifo using valid bit

Country Status (1)

Country Link
KR (1) KR20070082817A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806118B2 (en) 2012-11-05 2014-08-12 Sandisk Technologies Inc. Adaptive FIFO
CN107133192A (en) * 2017-05-11 2017-09-05 北方电子研究院安徽有限公司 High speed loader and pulse counter circuit in a kind of SoC systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806118B2 (en) 2012-11-05 2014-08-12 Sandisk Technologies Inc. Adaptive FIFO
CN107133192A (en) * 2017-05-11 2017-09-05 北方电子研究院安徽有限公司 High speed loader and pulse counter circuit in a kind of SoC systems

Similar Documents

Publication Publication Date Title
US5796995A (en) Circuit and method for translating signals between clock domains in a microprocessor
US6963220B2 (en) Methods and circuitry for implementing first-in first-out structure
JP3712471B2 (en) Computer system and interface circuit for transferring data between first circuit and second circuit
WO2017016178A1 (en) Interface signal remapping method based on fpga
US7583106B2 (en) Clock circuitry
US8930664B2 (en) Method and apparatus for transferring data from a first domain to a second domain
US9106235B2 (en) Mesochronous synchronizer with delay-line phase detector
Chun-Zhi et al. A universal asynchronous receiver transmitter design
US8879681B2 (en) System and method for determining a time for safely sampling a signal of a clock domain
US8001409B2 (en) Synchronization device and methods thereof
US6226698B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
US8964919B2 (en) System and method for determining a time for safely sampling a signal of a clock domain
KR20070082817A (en) Asynchronous fifo using valid bit
US6952791B2 (en) Method and circuit for initializing a de-skewing buffer in a clock forwarded system
US20090304134A1 (en) Device and method of synchronizing signals
Huemer et al. Timing domain crossing using Muller pipelines
KR20060013191A (en) Clock divider, system including clock divider, and method for dividing clock and for reading and writing using the clock dividing
Rahimian et al. A high-throughput, metastability-free GALS channel based on pausible clock method
JP3562416B2 (en) Inter-LSI data transfer system and source synchronous data transfer method used therefor
Ramesh et al. Asynchronous FIFO design with gray code pointer for high speed AMBA AHB compliant memory controller
Rahmani et al. An efficient VFI-based NoC architecture using Johnson-encoded Reconfigurable FIFOs
Arora et al. Handling multiple clocks
Chen FIFO design based on verilog HDL
Zhang Optimizing Data Transfer Across Asynchronous Clock Domains: A Comprehensive Approach to Asynchronous FIFO Circuit Design
US20050091470A1 (en) Calculation of gray codes using exhaustive combinations

Legal Events

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