KR20020061893A - 버스 키퍼 회로 - Google Patents

버스 키퍼 회로 Download PDF

Info

Publication number
KR20020061893A
KR20020061893A KR1020010002977A KR20010002977A KR20020061893A KR 20020061893 A KR20020061893 A KR 20020061893A KR 1020010002977 A KR1020010002977 A KR 1020010002977A KR 20010002977 A KR20010002977 A KR 20010002977A KR 20020061893 A KR20020061893 A KR 20020061893A
Authority
KR
South Korea
Prior art keywords
bus
state
tri
data
circuit
Prior art date
Application number
KR1020010002977A
Other languages
English (en)
Inventor
박현주
Original Assignee
박현주
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 박현주 filed Critical 박현주
Priority to KR1020010002977A priority Critical patent/KR20020061893A/ko
Publication of KR20020061893A publication Critical patent/KR20020061893A/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/08Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
    • H03K19/094Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
    • H03K19/09403Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors using junction field-effect transistors

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 버스 키퍼 회로를 공개한다. 그 회로는 복수개의 기능 블록들, 복수개의 기능 블록들 각각이 복수개의 인에이블 신호들 각각에 응답하여 출력 데이터를 전송하기 위한 복수개의 3상태 드라이버들, 복수개의 3상태 드라이버들 각각으로부터 출력되는 데이터를 전송하기 위한 3상태 버스, 및 3상태 버스의 데이터를 유지하기 위한 버스 키퍼 회로를 구비한 회로에 있어서, 버스 키퍼 회로가 클럭신호에 응답하여 3상태 버스로부터 전송되는 데이터를 저장하고, 복수개의 기능 블록들로부터 출력 데이터가 전송되지 않는 경우에 미리 저장된 데이터를 3상태 버스로 전송하는 것을 특징으로 한다. 따라서, 3상태 버스구조를 FPGA에 구현할 수 있으므로, 본래의 3상태 버스 구조를 유지하여 검증하는 것을 가능하게 한다.

Description

버스 키퍼 회로{Bus keeper circuit}
본 발명은 3상태 버스 구조를 갖는 회로의 버스 키퍼(Bus keeper) 회로에 관한 것으로, 특히 FPGA(Field Programmable Gate Array) 와 ASIC (Application Specific Integrated Circuit) 모두에 구현이 용이한 버스 키퍼 회로에 관한 것이다.
일반적으로, ASIC을 목적으로 설계된 회로는 FPGA에 구현하여 동작이 제대로이루어지는지를 검증하게 된다. 물론, 설계된 회로를 FPGA에 구현하는 것이 최종적인 단계가 될 수도 있다.
전형적인 3상태(Tri-state) 버스 구조를 갖는 회로는 복수개의 기능 블록들을 구비하며, 복수개의 기능 블록들 사이의 데이터 전송을 위하여 3상태 버스 구조로 구성된다. 즉, 3상태 버스 구조는 3상태 버스를 가운데에 두고 복수개의 기능 블록들이 3상태 드라이버를 통하여 3상태 버스에 공통으로 연결되도록 배치되고, 3상태 버스에는 버스 키퍼 회로가 구비되어 3상태 버스로 전송되는 데이터를 유지한다.
3상태 드라이버들 각각은 3상태 버스로 "하이"레벨 상태, "로우"레벨 상태, 및 하이 임피이던스 상태를 전송한다. 하이 임피이던스 상태는 "하이"레벨 상태와 "로우"레벨 상태사이의 중간 값을 표류하는 상태이다. 3상태 버스에 구비된 버스 키퍼 회로는 3상태 버스가 논리 레벨이 정의되지 않은 하이 임피이던스 상태로 전환되는 것을 방지한다. 즉, 버스 키퍼 회로는 3상태 드라이버들이 디스에이블되어 3상태 버스로 데이터를 전송하지 않는 경우에 이전에 저장된 데이터를 유지함으로써 3상태 버스가 하이 임피이던스로 전환되는 것을 방지한다.
그런데, FPGA는 미리 준비되어 있는 단위 로직 어레이의 기본 구성이 버스 키퍼 회로를 배제한 룩-업 테이블, 플립플롭, 및 3상태 버퍼로 이루어져 있으며, 버스 키퍼 회로를 구현시 구동 능력이 다른 버퍼를 사용하여 구성한다고 하더라도 제대로 동작하지 않는다는 문제점이 있었다.
그리고, FPGA에 버스 키퍼 회로가 구비되어 있는 경우도 있을 수 있는데, 이경우에도 버스 키퍼 회로가 제한적인 위치에 배치되어 있음으로 인해서, 버스 키퍼 회로의 배치가 자유롭지 못하고, 이에 따라 버스 키퍼 회로가 제대로 동작하지 않는 경우가 발생하게 된다.
따라서, 상술한 바와 같은 문제점으로 인해서 3상태 버스 구조를 갖도록 설계된 회로를 FPGA에 구현시에 3상태 버스 구조로 구현하지 않고, 멀티플렉서를 사용한 구조로 변환하여 구현하게 된다.
그러나, 설계된 ASIC을 멀티플렉서를 사용하여 구현하게 되면 복수개의 기능 블록들의 출력신호들이 멀티플렉서의 입력단으로 집중되어 배선되어야 함으로 신호 라인들의 배선이 원활하지 못하고, 복수개의 기능 블록들의 출력신호들이 먹스드 버스(MUXed BUS)로 출력되기까지의 신호 라인이 길어 신호가 고속으로 전송될 수 없다는 문제점이 있었다.
본 발명의 목적은 3상태 버스 구조로 설계된 회로를 FPGA에 구현이 용이하도록 설계된 버스 키퍼 회로를 제공하는데 있다.
본 발명의 다른 목적은 설계된 회로를 FPGA에 구현시에 안정된 동작을 수행할 수 있는 버스 키퍼 회로를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 FPGA에 구현이 용이한 버스 키퍼 회로를 구비하는 회로는 복수개의 기능 블록들, 상기 복수개의 기능 블록들 각각이 복수개의 인에이블 신호들 각각에 응답하여 출력 데이터를 전송하기 위한 복수개의 3상태 드라이버들, 상기 복수개의 3상태 드라이버들 각각으로부터 출력되는 데이터를 전송하기 위한 3상태 버스, 및 상기 3상태 버스의 데이터를 유지하기 위한 버스 키퍼 회로를 구비한 회로에 있어서, 상기 버스 키퍼 회로가 클럭신호에 응답하여 상기 3상태 버스로부터 전송되는 데이터를 저장하고, 상기 복수개의 기능 블록들로부터 상기 출력 데이터가 전송되지 않는 경우에 미리 저장된 데이터를 상기 3상태 버스로 전송하는 것을 특징으로 한다.
도1은 일반적인 버스 키퍼 회로가 적용된 3상태 버스 구조를 갖는 회로 구성을 나타내는 것이다.
도2는 도1에 나타낸 구성의 동작을 설명하기 위한 동작 타이밍도이다.
도3은 3상태 버스 구조를 갖는 회로가 종래의 멀티플렉서를 이용하여 FPGA에 구현된 구성을 나타내는 것이다.
도4는 본 발명의 버스 키퍼 회로가 적용된 3상태 버스 구조를 갖는 회로 구성을 나타내는 것이다.
도5는 도4에 나타낸 구성의 동작을 설명하기 위한 동작 타이밍도이다.
이하, 첨부한 도면을 참고로 하여 본 발명의 3상태 버스 구조의 버스 키퍼 회로를 설명하기 전에 일반적인 3상태 버스 구조의 버스 키퍼 회로와 종래의 멀티플렉서를 사용하여 FPGA에 구현된 회로의 동작을 설명하면 다음과 같다.
도1은 일반적인 버스 키퍼 회로가 적용된 3상태 버스 구조를 갖는 회로의 구성을 나타내는 것으로, 기능 블록들(10-1 ~ 10-6), 3상태 드라이버들(12-1 ~ 12-6), 3상태 버스(14), 및 버스 키퍼 회로(16)로 구성되어 있다. 버스 키퍼 회로(16)는 두 개의 인버터들(I1, I2)로 구성되어 있다.
도1에 나타낸 구성의 기능을 설명하면 다음과 같다.
기능 블록들(10-1 ~ 10-6) 각각은 ASIC 설계시에 기능별로 구분되는 블록들이다. 3상태 드라이버들(12-1 ~ 12-6) 각각은 기능 블록들(10-1 ~ 10-6) 각각으로부터 출력되는 데이터를 인에이블 신호들(EN1 ~ EN6) 각각에 응답하여 3상태 버스(14)로 전달한다. 이때, 두 개이상의 인에이블 신호들이 동시에 인에이블되어 두 개이상의 기능 블록들로부터 3상태 버스(14)로 동시에 데이터가 전송되는 경우는 발생하지 않는다. 버스 키퍼 회로(16)는 인에이블 신호들(EN1 ~ EN6)이 발생되지 않아 3상태 드라이버들(12-1 ~ 12-6)이 구동되지 않는 경우에는 3상태 버스(14)로 전송된 이전의 데이터를 인버터들(I1, I2)로 구성된 래치에 유지한다. 인버터(I1)는 3상태 버스(14)로 전송된 데이터를 반전하고, 인버터(I2)는 인버터(I1)로부터 출력되는 데이터를 반전하여 3상태 버스(14)로 전송한다. 이때, 인버터(I2)의 구동 능력이 인버터(I1)의 구동 능력에 비해서 작게 구성된다. 그리고, 도시하지는 않았지만, 기능 블록들(10-1 ~ 10-6)사이에 데이터, 어드레스, 및 제어신호 등을 전송하기 위한 버스가 존재할 수 있다.
도1에 나타낸 구성의 동작을 설명하면 다음과 같다.
3상태 드라이버들(12-1 ~ 12-6) 각각은 기능 블록들(10-1 ~ 10-6) 각각으로부터 발생되는 "로우"레벨의 인에이블 신호들(EN1 ~ EN6) 각각에 응답하여 기능 블록들(10-1 ~ 10-6) 각각으로부터 출력되는 데이터를 3상태 버스(14)로 전송한다. 그런데, 이때, 기능 블록들(10-1 ~ 10-6)중의 하나의 기능 블록만이 인에이블 신호를 발생하도록 구성된다.
만일, 기능 블록(10-1)으로부터 "로우"레벨의 인에이블 신호(EN1)가 발생되고, 기능 블록들(10-2 ~ 10-6)로부터 "하이"레벨의 인에이블 신호들(EN2 ~ EN6)이 발생되면 3상태 드라이버(12-1)가 온되어 기능 블록(10-1)으로부터 출력되는 데이터를 3상태 버스(14)로 전송하고, 3상태 드라이버들(12-2 ~ 12-6)이 모두 오프되어 3상태 버스(14)로 하이 임피이던스 상태를 전송한다. 이때, 기능 블록(10-1)으로부터 3상태 버스(14)로 전송된 데이터는 버스 키퍼 회로(16)로 전송되어 유지된다.
다음에, 기능 블록들(10-1 ~ 10-6)로부터 모두 "하이"레벨의 인에이블 신호가 발생되면 3상태 드라이버들(12-1 ~ 12-6)이 모두 오프되어 기능 블록들(10-1 ~ 10-6)로부터 3상태 버스(14)로 데이터가 전송되지 않는다. 이때, 버스 키퍼 회로(16)에 저장된 기능 블록(10-1)으로부터 전송된 데이터가 3상태 버스(14)로 전송된다.
즉, 버스 키퍼 회로(16)는 기능 블록들(10-1 ~ 10-6)로부터 "하이"레벨의 인에이블 신호들(EN1 ~ EN6)이 발생되는 동안 3상태 버스(14)가 하이 임피이던스 상태로 전환되는 것을 방지하고 이전에 저장된 데이터를 유지한다.
도2는 도1에 나타낸 구성의 동작을 설명하기 위한 동작 타이밍도로서, 첫 번째, 두 번째 사이클에서 기능 블록들(10-1, 10-2)로부터 3상태 버스(14)로 데이터가 순차적으로 전송된 후에 세 번째 사이클에서 3상태 버스로 데이터 전송이 없다가 네 번째 사이클에서 기능 블록(10-3)으로부터 3상태 버스(14)로 데이터가 전송되는 경우의 동작을 설명하기 위한 동작 타이밍도이다.
첫 번째 사이클(Ⅰ)에서, 기능 블록(10-1)으로부터 "로우"레벨의 인에이블 신호(EN1)가 발생되고, "로우"레벨의 인에이블 신호(EN1)에 응답하여 3상태 버스(14)로 데이터(D1)가 전송된다. 데이터(D1)는 버스 키퍼 회로(16)로 래치된다.
두 번째 사이클(Ⅱ)에서, 기능 블록(10-2)으로부터 "로우"레벨의 인에이블 신호(EN2)가 발생되고, "로우"레벨의 인에이블 신호(EN2)에 응답하여 3상태 버스(14)로 데이터(D2)가 전송된다. 데이터(D2)는 버스 키퍼 회로(16)로 래치된다.
세 번째 사이클(Ⅲ)에서, 모두 "하이"레벨의 인에이블 신호들(EN1 ~ EN6)이 발생되면, 기능 블록들(20-1 ~ 20-6)로부터 3상태 버스(14)로 데이터가 전송되지않는다. 이러한 조건이 발생되면, 버스 키퍼 회로(16)는 래치하고 있던 이전의 데이터(D2)를 3상태 버스(14)로 전송하고, 3상태 버스(14)는 데이터(D2)를 유지한다.
네 번째 사이클(Ⅳ)에서, 기능 블록(10-3)으로부터 "로우"레벨의 인에이블 신호(EN3)가 발생되고, "로우"레벨의 인에이블 신호(EN3)에 응답하여 3상태 버스(14)로 데이터(D3)가 전송된다. 데이터(D3)는 버스 키퍼 회로(16)로 래치된다.
그러나, 도1에 나타낸 바와 같은 3상태 버스 구조를 갖는 회로를 FPGA에 구현할 경우에는 버스 키퍼 회로로 인해서 3상태 버스 구조를 FPGA에 그대로 구현하는 것이 곤란하다.
이는 FPGA에 미리 준비되어 있는 단위 로직 어레이의 기본 구성이 버스 키퍼 회로를 배제한 룩-업 테이블, 플립플롭, 및 3상태 버퍼로 이루어져 있으며, 버스 키퍼 회로를 구현시 구동 능력이 다른 버퍼를 사용하여 구성한다고 하더라도 제대로 동작하지 않는다는 문제점이 있다.
그리고, FPGA에 버스 키퍼 회로가 구비되어 있는 경우도 있을 수 있는데, 이 경우에도 버스 키퍼 회로가 제한적인 위치에 배치되어 있음으로 인해서, 버스 키퍼 회로의 배치가 자유롭지 못하고, 이에 따라 버스 키퍼 회로가 제대로 동작하지 않는 경우가 발생하게 된다.
따라서, 상술한 바와 같은 문제점으로 인해서 3상태 버스 구조를 갖는 회로를 FPGA에 구현시, FPGA컴파일러(Compiler)는 도1에 나타낸 바와 같은 3상태 버스 구조를 그대로 구현하지 않고, 멀티플렉서를 사용한 회로로 변환하여 구현하게 된다.
도3은 3상태 버스 구조를 갖는 회로가 종래의 멀티플렉서를 이용하여 FPGA에 구현된 구성을 나타내는 것으로, 기능 블록들(20-1 ~ 20-6), 멀티플렉서들(22, 32), 룩업 테이블(24), 논리곱 게이트(26), 클럭 제어 게이트(28), 플립플롭(30), 및 먹스드(MUXed) 버스(34)로 구성되어 있다.
도3에 나타낸 구성들 각각의 기능을 설명하면 다음과 같다.
기능 블록들(20-1 ~ 20-6) 각각은 ASIC 설계시에 기능별로 구분되는 블록들이다. 멀티플렉서(22)는 선택신호들(a, b, c)에 응답하여 기능 블록들(20-1 ~ 20-6)의 출력 중에서 하나의 출력 데이타를 선택하여 출력한다. 룩업 테이블(24)은 기능 블록들(20-1 ~ 20-6) 각각으로부터 출력되는 인에이블 신호들(EN1 ~ EN6)에 응답하여 선택신호들(a, b, c)을 발생한다. 논리곱 게이트(26)는 인에이블 신호들(EN1 ~ EN6)이 모두 "하이"레벨이면 "하이"레벨의 신호를 발생하고, 인에이블 신호들(EN1 ~ EN6)중의 하나이상이 "로우"레벨이면 "로우"레벨의 신호를 발생한다. 클럭 제어 게이트(28)는 논리곱 게이트(26)의 출력신호가 "로우"레벨이면 클럭신호(CLK)를 출력하고, "하이"레벨이면 "로우"레벨의 신호를 발생한다. 플립플롭(30)은 클럭 제어 게이트(28)로부터 클럭신호(CLK)가 발생되면 클럭신호(CLK)에 응답하여 멀티플렉서(22)로부터 출력되는 데이터를 저장하고, "로우"레벨의 신호에 응답하여 이전의 데이터를 유지한다. 멀티플렉서(32)는 논리곱 게이트(26)의 출력신호가 "하이"레벨이면 플립플롭(30)으로부터 출력되는 데이터를 선택하여 먹스드 버스(34)로 출력하고, "로우"레벨이면 멀티플렉서(22)로부터 출력되는 데이터를 선택하여 먹스드 버스(34)로 전송한다. 이때, 먹스드 버스(34)로 전송된 데이터는 기능 블록들(20-1 ~ 20-6) 각각으로 출력된다. 그리고, 도시하지는 않았지만, 기능 블록들(10-1 ~ 10-6)사이에 데이터, 어드레스, 및 제어신호 등을 전송하기 위한 버스가 존재할 수 있다.
도3에 나타낸 구성의 동작을 설명하면 다음과 같다.
기능 블록들(20-1 ~ 20-6)중의 하나의 기능 블록만이 "로우"레벨의 인에이블 신호를 발생한다.
만일, 기능 블록(20-1)으로부터 "로우"레벨의 인에이블 신호(EN1)가 발생되고, 기능 블록들(20-2 ~ 20-6)로부터 "하이"레벨의 인에이블 신호들(EN2 ~ EN6)이 발생되면 룩업 테이블(24)은 모두 "로우"레벨의 선택신호들(a, b, c)을 발생한다. 즉, 룩업 테이블(24)은 인에이블 신호(EN1)가 "로우"레벨이고, 인에이블 신호들(EN2 ~ EN6)이 "하이"레벨이면 모두 "로우"레벨의 선택신호들(a, b, c)을 발생하여 기능 블록(20-1)로부터 출력되는 멀티플렉서(22)의 입력을 선택하도록 하며, 인에이블 신호(EN2)가 "로우"레벨이고, 인에이블 신호들(EN1, EN3 ~ EN6)이 "하이"레벨이면 "로우"레벨의 선택신호들(a, c), 및 "하이"레벨의 선택신호(b)를 발생하여 기능블록(20-2)로부터 출력되는 멀티플렉서(22)의 입력을 선택하는 신호를 발생한다. 멀티플렉서(22)는 선택신호들(a, b, c)에 응답하여 해당 기능 블록으로부터 출력되는 데이터를 선택하여 출력한다. 인에이블 신호들(EN1~EN6)이 모두 "하이"레벨로 되면, 멀티플렉서(22)는 기능 블록들(20-1 ~ 20-6)로부터 출력되는 데이터를 출력하지 않고, 그라운드(Ground 또는 접지) 신호와 같은 제3의 입력(미도시)을 출력 데이터로 전달한다. 만일, "로우"레벨으 인에이블 신호가 하나라도존재하면 멀티플렉서(22)는 기능블록들(20-1 ~ 20-6)로부터 출력되는 해당 입력 데이터 가운데 하나를 선택하여 출력한다.
논리곱게이트(26)는 인에이블신호(EN1 ~ EN6) 가 모두 "하이"레벨인 경우에만 "하이"레벨의 신호를 출력하고, 이외의 경우에는 "로우"레벨의 신호를 출력한다.
클럭 제어 게이트(28)는 논리곱 게이트(26)의 출력신호가 "로우"레벨이 되면 플립플롭(30)으로 클럭신호(CLK)를 전달한다. 플립플롭(30)은 클럭신호(CLK)에 응답하여 멀티플렉서(22)로부터 출력되는 데이터를 저장한다. 멀티플렉서(32)는 "로우"레벨의 논리곱 게이트(26)의 출력신호에 응답하여 멀티플렉서(22)로부터 출력되는 데이터를 먹스드 버스(34)로 출력한다.
반면에, 논리곱 게이트(26)의 출력신호가 "하이"레벨이면 클럭게이트(28)는플립플롭(30)으로 클럭신호(CLK)를 전달하지 않는다. 이때, 플립플롭(30)은 이전에 저장된 데이터를 유지한다. 멀티플렉서(32)는 "하이"레벨의 논리곱 게이트(26)의 출력신호에 응답하여 플립플롭(30)에 저장된 데이터를 먹스드 버스(34)로 출력한다. 즉, 논리곱 게이트(26)의 출력신호가 "하이"레벨인 경우에는 멀티플렉서(22)로부터 데이터가 출력되지 않는 경우이므로 플립플롭(30)에 저장된 이전 데이터를 먹스드 버스(34)로 출력한다.
이와같은 방법으로, 기능 블록들(20-1 ~ 20-6)이 동작하지 않는 경우에는 먹스드 버스(34)로 이전 데이터를 전송한다.
그런데, 도1에 나타낸 3상태 버스 구조회로를 FPGA컴파일러(Compiler)의 변환에 의하여 도3에 나타낸 바와 같이 멀티플렉서를 이용하여 구현하게 되면, 멀티플렉서(22)의 입력으로 기능 블록들(20-1 ~ 20-6)로부터 출력되는 데이터가 인가되어야 하고, 또한, 멀티플렉서(32)의 출력 데이터가 기능 블록들(20-1 ~ 20-6)로 각각 입력되어야 한다.
따라서, 멀티플렉서(22)의 입력단에 신호 라인이 집중되게 됨으로써, 기능 블록들(20-1 ~ 20-6)의 수가 많아지고 기능 블록들(20-1 ~ 20-6) 각각으로부터 출력되는 데이터가 많아짐에 따라 신호 배선에 어려움이 있게 된다.
또한, 기능 블록들(20-1 ~ 20-6)로부터 출력되는 데이터가 멀티플렉서들(22, 32)을 통하여 기능 블록들(20-1 ~ 20-6)로 입력되기까지의 신호 라인이 본래의 3상태 버스 구조일 때에 비하여 상대적으로 길어져서 신호 전송 지연이 발생된다.
그리고, 도1에 나타낸 바와 같은 3상태 버스 구조를 갖는 회로가 도3에 나타낸 바와 같은 방법으로 변환되어 FPGA에서 정확하게 동작한다고 하더라도, 도1의 회로 구성과 도3의 회로 구성에는 차이가 있기 때문에 본래의 회로를 검증하려고 하는 설계자의 의도를 반영할 수 없는 문제가 있다.
또한, FPGA 상에서 검증과정을 거친 회로가 ASIC 제작 과정으로 이어질 경우에 있어서도, FPGA 상에서 검증이 완료된 회로가 ASIC 용의 일치된 회로로 사용되는 것이 곤란하였다.
도4는 본 발명의 버스 키퍼 회로가 적용된 3상태 버스 구조를 갖는 회로 구성을 나타내는 것으로, 버스 키퍼 회로(40)는 플립플롭(42), 3상태 드라이버(44), 및 NAND게이트(46)로 구성되어 있다. 버스 키퍼 회로(40)을 제외한 나머지 구성은도1에 나타낸 구성과 동일하므로, 버스 키퍼 회로(40)를 제외한 나머지 구성들은 동일 부호로 나타내었다.
도4에 나타낸 다른 블록들의 동작은 도1에 나타낸 설명을 참고로 하면 쉽게 이해될 것이고, 도4에 나타낸 본 발명의 버스 키퍼 회로의 동작을 설명하면 다음과 같다.
NAND게이트(46)는 도1에 나타낸 인에이블 신호들(EN1 ~ EN6)이 모두 "하이"레벨이면 "로우"레벨의 신호를 발생한다. 3상태 드라이버(44)는 "로우"레벨의 NAND게이트(46)의 출력신호에 응답하여 플립플롭(42)의 출력신호를 3상태 버스(14) 및 플립플롭(40)의 입력단자(D)로 궤환한다. 플립플롭(42)은 클럭신호(CLK)에 응답하여 3상태 드라이버(44)로부터 출력되는 데이터를 저장한다. 즉, 이 경우에는 기능 블록들(20-1 ~ 20-6)로부터 3상태 버스(14)로 전송되는 데이터가 없으므로 버스 키퍼 회로는 플립플롭(42)에 저장된 이전 데이터를 유지한다.
NAND게이트(46)는 도1에 나타낸 인에이블 신호들(EN1 ~ EN6)중의 하나가 "로우"레벨이면 "하이"레벨의 신호를 발생한다. 3상태 드라이버(44)는 "하이"레벨의 NAND게이트(46)의 출력신호에 응답하여 디스에이블된다. 플립플롭(42)은 클럭신호(CLK)에 응답하여 3상태 버스(14)로부터 전송되는 데이터를 저장한다. 즉, 이 경우에는 기능 블록들(20-1 ~ 20-6)로부터 3상태 버스(14)로 전송되는 데이터가 있으므로 버스 키퍼 회로는 플립플롭(42)에 3상태 버스(14)로부터 전송되는 데이터를 저장한다.
즉, 본 발명의 버스 키퍼 회로는 플립플롭(42)이 클럭신호(CLK)에 응답하여3상태 버스(14)로 전송된 데이터를 안정되게 저장하고, 3상태 버스(14)로 전송되는 데이터가 없는 경우에 3상태 드라이버(44)가 인에이블되어 플립플롭(42)으로부터 출력되는 이전에 저장된 데이터를 3상태 버스로 전송한다.
도4에 나타낸 버스 키퍼 회로는 플립플롭과 3상태 드라이버로 구성되어 있으므로 FPGA에 구현이 용이하며, 안정된 동작을 수행할 수 있다.
도5는 도4에 나타낸 구성의 동작을 설명하기 위한 동작 타이밍도로서, 첫 번째, 두 번째 사이클에서 기능 블록들(10-1, 10-2)로부터 3상태 버스(14)로 데이터가 순차적으로 전송된 후에 세 번째 사이클에서 3상태 버스로 데이터 전송이 없다가 네 번째 사이클에서 기능 블록(10-3)으로부터 3상태 버스(14)로 데이터가 전송되는 경우의 동작을 설명하기 위한 동작 타이밍도이다.
첫 번째 사이클(Ⅰ)에서, 기능 블록(10-1)으로부터 "로우"레벨의 인에이블 신호(EN1)가 발생되고, "로우"레벨의 인에이블 신호(EN1)에 응답하여 3상태 버스(14)로 데이터(D1)가 전송된다.
두 번째 사이클(Ⅱ)에서, 첫 번째 사이클(Ⅰ)에서 3상태 버스(14)로 전송된 데이터(D1)가 클럭신호(CLK)에 응답하여 버스 키퍼 회로(40)를 구성하는 플립플롭(42)에 래치된다. 도5의 타이밍도에서 버스 키퍼로 나타낸 타이밍은 플립플롭(42)의 출력신호를 나타낸다. 기능 블록(10-2)으로부터 "로우"레벨의 인에이블 신호(EN2)가 발생되고, "로우"레벨의 인에이블 신호(EN2)에 응답하여 3상태 버스(14)로 데이터(D2)가 전송된다.
세 번째 사이클(Ⅲ)에서, 두 번째 사이클(Ⅱ)에서 3상태 버스(14)로 전송된데이터(D2)가 클럭신호(CLK)에 응답하여 버스 키퍼 회로(40)를 구성하는 플립플롭(42)에 래치된다. 모두 "하이"레벨의 인에이블 신호들(EN1 ~ EN6)이 발생되면, 기능 블록들(20-1 ~ 20-6)로부터 3상태 버스(14)로 데이터가 전송되지 않고, 이때, 버스 키퍼 회로(40)를 구성하는 3상태 드라이버(44)가 플립플롭(42)으로부터 출력되는 데이터(D2)를 3상태 버스(14)로 전송한다. 즉, 플립플롭(42)은 클럭신호(CLK)에 응답하여 두 번째 사이클(Ⅱ)에 기능 블록(10-2)으로부터 전송된 데이터(D2)를 출력하고, "로우"레벨의 NAND게이트(46)의 출력신호에 응답하여 플립플롭(42)의 출력신호(D2)를 3상태 버스(14)로 전송한다.
네 번째 사이클(Ⅳ)에서, 세 번째 사이클(Ⅲ)에서 3상태 버스(14)로 전송된 데이터(D2)가 클럭신호(CLK)에 응답하여 버스 키퍼 회로(40)를 구성하는 플립플롭(42)에 저장된다. 기능 블록(10-3)으로부터 "로우"레벨의 인에이블 신호(EN3)가 발생되고, "로우"레벨의 인에이블 신호(EN3)에 응답하여 3상태 버스(14)로 데이터(D3)가 전송된다.
또한, 설계된 3상태 버스 구조의 회로가 도1에 나타낸 버스 키퍼 회로를 사용하여 설계되었다 하더라도, FPGA컴파일러(compiler)에 의해서 도1에 나타낸 버스 키퍼 회로를 도4에 나타낸 버스 키퍼 회로로 대체하여 컴파일을 진행함으로써 설계된 3상태 버스 구조의 회로를 FPGA에 구현하는 것이 가능하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
따라서, 본 발명의 3상태 버스 구조를 갖는 회로의 버스키퍼 회로는 3상태 버스구조를 FPGA에 구현할 수 있으므로, 본래의 3상태 버스 구조를 유지하여 검증하는 것을 가능하게 하며, 검증된 회로를 설계자가 본래 의도했던 ASIC 제작용의 일치된 회로로 사용하는 것을 용이하게 한다.
또한, 3상태 버스 구조를 FPGA 상에 원활하게 구현 가능하도록 함으로써, 멀티플렉서를 이용한 버스 구조에서의 배선이 병목되는 현상을 해결할 수 있게하고, 플립플롭에 의한 버스키퍼 동작을 수행하게 함으로써, 클럭신호에 동기된 설계를 달성할 수가 있어 동작에 있어서의 성능과 신뢰성을 향상시킬 수 있다.

Claims (2)

  1. 복수개의 기능 블록들;
    상기 복수개의 기능 블록들 각각이 복수개의 인에이블 신호들 각각에 응답하여 출력 데이터를 전송하기 위한 복수개의 3상태 드라이버들;
    상기 복수개의 3상태 드라이버들 각각으로부터 출력되는 데이터를 전송하기 위한 3상태 버스; 및
    상기 3상태 버스의 데이터를 유지하기 위한 버스 키퍼 회로를 구비한 회로에 있어서,
    상기 버스 키퍼 회로가
    클럭신호에 응답하여 상기 3상태 버스로부터 전송되는 데이터를 저장하고, 상기 복수개의 기능 블록들로부터 상기 출력 데이터가 전송되지 않는 경우에 미리 저장된 데이터를 상기 3상태 버스로 전송하는 것을 특징으로 하는 회로.
  2. 제1항에 있어서, 상기 버스 키퍼 회로는
    상기 클럭신호에 응답하여 상기 3상태 버스로부터 전송되는 데이터를 저장하기 위한 플립플롭; 및
    상기 복수개의 기능 블록들로부터 상기 출력 데이터가 전송되지 않을 때 상기 복수개의 인에이블 신호들을 조합한 신호에 응답하여 상기 플립플롭으로부터 출력되는 데이터를 상기 3상태 버스로 전송하기 위한 3상태 드라이버를 구비하는 것을 특징으로 하는 회로.
KR1020010002977A 2001-01-18 2001-01-18 버스 키퍼 회로 KR20020061893A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010002977A KR20020061893A (ko) 2001-01-18 2001-01-18 버스 키퍼 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010002977A KR20020061893A (ko) 2001-01-18 2001-01-18 버스 키퍼 회로

Publications (1)

Publication Number Publication Date
KR20020061893A true KR20020061893A (ko) 2002-07-25

Family

ID=27692131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010002977A KR20020061893A (ko) 2001-01-18 2001-01-18 버스 키퍼 회로

Country Status (1)

Country Link
KR (1) KR20020061893A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233166B2 (en) * 2000-01-31 2007-06-19 Intel Corporation Bus state keepers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233166B2 (en) * 2000-01-31 2007-06-19 Intel Corporation Bus state keepers
US7287148B2 (en) 2000-01-31 2007-10-23 Intel Corporation Unified shared pipeline allowing deactivation of RISC/DSP units for power saving
US7318115B2 (en) 2000-01-31 2008-01-08 Intel Corporation IC memory complex with controller for clusters of memory blocks I/O multiplexed using collar logic

Similar Documents

Publication Publication Date Title
US5999030A (en) Flip-flop circuit
US20020175704A1 (en) Double data rate flip-flop
JP3132346U (ja) 発光ダイオード装置の制御回路
US20090231171A1 (en) Low power serdes architecture using serial i/o burst gating
US6339387B1 (en) Serial/parallel converter
KR100394841B1 (ko) 데이터 래치 회로와 그 구동 방법
JP2000236260A (ja) 信号符号化回路及び信号符号化方法
US5426380A (en) High speed processing flip-flop
JP4387371B2 (ja) メモリ装置、その使用、および、データワードの同期方法
US8912933B1 (en) Serializer with multiple stages
US5796994A (en) Patch mechanism for allowing dynamic modifications of the behavior of a state machine
US7213090B2 (en) Data transfer apparatus for serial data transfer in system LSI
KR20020061893A (ko) 버스 키퍼 회로
US8106798B2 (en) Circuit and method for parallel to serial conversion
US8151152B2 (en) Latch circuit including data input terminal and scan data input terminal, and semiconductor device and control method
JP2002044162A (ja) データ送信装置、データ転送システムおよび方法
US5828872A (en) Implementation of high speed synchronous state machines with short setup and hold time signals
US6643793B1 (en) Apparatus for transferring and holding data based on a selected clock rate
KR100223848B1 (ko) 반도체장치의 출력회로
JP2538628B2 (ja) 半導体集積回路
KR19990023415A (ko) 플립플롭회로 및 회로설계시스템
JP5489211B2 (ja) バス回路
JP2000040954A (ja) 半導体集積回路装置
JPH10111743A (ja) 集積回路
EP2515443A1 (en) Data serializer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application