KR102499932B1 - 다중 비트 플립 플롭 - Google Patents

다중 비트 플립 플롭 Download PDF

Info

Publication number
KR102499932B1
KR102499932B1 KR1020200183670A KR20200183670A KR102499932B1 KR 102499932 B1 KR102499932 B1 KR 102499932B1 KR 1020200183670 A KR1020200183670 A KR 1020200183670A KR 20200183670 A KR20200183670 A KR 20200183670A KR 102499932 B1 KR102499932 B1 KR 102499932B1
Authority
KR
South Korea
Prior art keywords
bit flip
flop
data
circuit
terminal
Prior art date
Application number
KR1020200183670A
Other languages
English (en)
Other versions
KR20210086970A (ko
Inventor
치린 리우
상치 시에
웨이시앙 마
Original Assignee
타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 filed Critical 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Publication of KR20210086970A publication Critical patent/KR20210086970A/ko
Application granted granted Critical
Publication of KR102499932B1 publication Critical patent/KR102499932B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • H03K3/0372Bistable circuits of the master-slave type
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

회로는 다중 비트 플립 플롭, 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로, 및 통합 클럭 게이팅 회로 및 다중 비트 플립 플롭에 연결된 제어 회로를 포함한다. 제어 회로는 입력 데이터와 입력 데이터에 대응하는 다중 비트 플립 플롭의 출력 데이터를 비교한다. 제어 회로는 다중 비트 플립 플롭의 입력 데이터와 입력 데이터에 대응하는 다중 비트 플립 플롭의 출력 데이터를 비교하는 것에 비교하여 인에이블 신호를 생성한다. 제어 회로는 인에이블 신호를 통합 클럭 게이팅 회로에 제공하고, 통합 클럭 게이팅 회로는 인에이블 신호에 기반하여 다중 비트 플립 플롭에 다중 비트 플립 플롭이 토글링하도록 하는 클럭 신호를 제공한다.

Description

다중 비트 플립 플롭{MULTI-BIT FLIP FLOP}
본 출원은 2019년 12월 30일에 "다중 비트 플립 플롭(Multi-Bit Flip Flop)"이라는 명칭으로 출원된 미국 가출원 번호 제62/954,987호의 우선권을 주장하며, 그 개시 내용은 본원에 참고로 포함된다.
플립 플롭(flip-flop)은 두 개의 안정된 상태를 가진 회로이며, 따라서 1 비트의 메모리로서 역할을 할 수 있다. 플립 플롭은 일반적으로 하나 또는 두 개의 제어 신호와 하나의 클럭 신호에 의해 제어된다. 출력은 종종 정상 출력(normal output)과 함께 보수(complement)를 포함한다. 플립 플롭들은 단순(투명)할 수 있거나 또는 클럭킹(또는 비투명)할 수 있다. 클럭킹되는 플립 플롭들(clocked flip-flops)은 동기식 (시간 이산(time-discrete)) 시스템 용으로 특별히 설계되었으며, 일반적으로 마스터-슬레이브 디바이스들(master-slave devices)로서 구현된다. 플립 플롭들은 통상적인 RS("세트(set)-리세트(reset)"), D("데이터(data)" 또는 "지연(delay)"), T("토글(toggle)"), 및 JK 타입들로 더 나뉘어 질 수 있다. D 플립 플롭은 지연 플립 플롭(출력(Q)이 입력(D)의 지연처럼 보이기 때문에) 또는 데이터 래치(data latch)로 알려져 있다. 특정 타입의 플립 플롭의 거동은, 플립 플롭들의 입력 신호(들) 및/또는 플립 플롭들의 "이전 상태" 신호의 관점에서 "현재 상태" 출력을 도출하는 특성 방정식(characteristic equation)이라고 지칭되는 것에 의해 기술될 수 있다.
본 개시 내용의 양태들은 첨부 도면과 함께 읽혀지는 이하의 상세한 설명으로부터 최상으로 이해된다. 주목할 것은 본 산업의 표준 관행에 따라 다양한 피처들(features)이 축척대로 도시되는 것은 아니라는 것이다. 실제로, 다양한 피처들의 치수들은 설명의 명확성을 위해 임의로 증가 또는 감소될 수 있다.
도 1은 일부 실시예에 따른 처리 시스템의 일 예를 도시한 블럭 다이어그램이다.
도 2는 일부 실시예에 따라 공유 클럭 단자 및 하나의 출력을 갖는 D 타입 플립 플롭의 일 예를 도시한 것이다.
도 3은 일부 실시예에 따른 다중 비트 플립 플롭 회로의 일 예의 블럭 다이어그램을 도시한 것이다.
도 4a는 일부 실시예에 따른 다중 비트 플립 플롭 회로의 부분 블럭 다이어그램 및 부분 회로 다이어그램을 도시한 것이다.
도 4b는 일부 실시예에 따른 다중 비트 플립 플롭 회로의 배타적 OR 논리 회로의 진리표를 도시한 것이다.
도 4c는 일부 실시예에 따른 다중 비트 플립 플롭 회로의 논리합 회로(disjunction circuit)의 진리표를 도시한 것이다.
도 5는 일부 실시예에 따라 2 개의 단일 비트 플립 플롭 셀들로 구성된 다중 비트 플립 플롭의 일 예를 도시한 블럭 다이어그램이다.
도 6은 일부 실시예에 따른 다중 비트 플립 플롭을 동작시키는 일 예의 방법을 도시한 플로우 다이어그램이다.
이하의 개시 내용은 제공된 요지의 상이한 피처들을 구현하기 위한 많은 상이한 실시예들 또는 예들을 제공한다. 이하에서는 본 개시 내용을 단순화하기 위해 특정 예의 컴포넌트들 및 배열체들이 기술된다. 이들은 물론 예에 불과할 뿐이며 제한하려는 것이 아니다. 예를 들어, 이하의 설명에서 제 2 피처 위에 또는 제 2 피처 상에 제 1 피처를 형성하는 것은 제 1 피처 및 제 2 피처가 직접 접촉하여 형성되는 실시예들을 포함할 수 있고, 또한 제 1 피처 및 제 2 피처가 직접 접촉하지 않을 수 있도록 제 1 피처와 제 2 피처 사이에 추가적인 피처들이 형성될 수 있는 실시예들을 포함할 수 있다. 또한, 본 개시 내용은 다양한 예에서 참조 번호 및/또는 문자를 반복할 수 있다. 이러한 반복은 단순성 및 명확성을 위한 것이며, 그 자체가 논의된 다양한 실시예들 및/또는 구성들 간의 관계를 나타내는 것은 아니다.
또한, "바로 아래", "아래", "하부", "위", "상부" 등과 같은 공간 관련 용어는 본원에서 하나의 요소 또는 피처의 다른 요소(들) 또는 피처(들)에 대한 관계를 도면에 도시한 바와 같이 기술하기 위한 설명의 편의를 위해 사용될 수 있다. 이들 공간 관련 용어는 도면에 도시된 방향 외에도 사용 중인 또는 동작 중인 디바이스의 다양한 방향을 포함하도록 의도된다. 장치는 다른 방식으로 배향될 수 있고(90도 또는 다른 방향으로 회전될 수 있고), 그에 따라 본원에서 사용되는 공간 관련 서술자가 마찬가지로 해석될 수 있다.
전자 설계 자동화(Electronic Design Automation)(EDA) 툴들 및 방법들은 반도체 기판 상에 마이크로 전자 집적 회로의 설계, 분할, 및 배치를 가능하게 한다. 이러한 프로세스는 일반적으로, 회로의 거동 디스크립션(behavioral description)을 기능적 디스크립션(functional description)으로 전환한 다음, 이를 논리 함수들(logic functions)로 분해하고, 표준 셀 라이브러리(standard cell library)를 사용하여 셀들로 매핑하는 것을 포함한다. 일단 매핑되면, 구조적 설계(structural design)를 물리적 레이아웃(physical layout)으로 전환하기 위한 합성이 수행되고, 구조적 요소들(structural elements)을 동기화하기 위한 클럭 트리(clock tree)가 구축되며, 그리고 설계는 레이아웃 사후에 최적화된다.
도 1은 본원에 개시된 일부 실시예에 따른 처리 시스템(100)의 일 예를 도시한 블럭 다이어그램이다. 처리 시스템(100)은 본원에 논의되는 다양한 프로세스들에 따라 다중 비트 플립 플롭을 동작시키는 방법을 수행하는 데 사용될 수 있다. 처리 시스템(100)은 데스크탑 컴퓨터, 워크스테이션, 랩탑 컴퓨터, 특정 애플리케이션에 커스텀화된 전용 유닛, 스마트폰, 또는 태블릿 등과 같은 처리 유닛(110)을 포함한다. 처리 시스템(100)은 디스플레이(114) 및 하나 이상의 입력/출력 디바이스(112), 예를 들어, 마우스, 키보드, 터치스크린, 프린터 등을 구비할 수 있다. 처리 유닛(110)은 또한 중앙 처리 유닛(CPU)(120), 메모리(122), 대용량 저장 디바이스(124), 비디오 어댑터(126), 및 버스(130)에 연결된 I/O 인터페이스(128)를 포함한다.
버스(130)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 또는 비디오 버스를 포함하는 임의의 타입의 여러 버스 아키텍처 중 하나 이상일 수 있다. CPU(120)는 임의의 타입의 전자 데이터 프로세서를 포함할 수 있고, 메모리(122)는 정적 랜덤 액세스 메모리(static random access memory)(SRAM), 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM), 또는 판독 전용 메모리(read-only memory)(ROM)와 같은 임의의 타입의 시스템 메모리를 포함할 수 있다.
대용량 저장 디바이스(124)는, 데이터, 프로그램들, 및 다른 정보를 저장하고, 데이터, 프로그램들, 및 다른 정보를 버스(130)를 통해 액세스 가능하게 하도록 구성된 임의의 타입의 저장 디바이스를 포함할 수 있다. 대용량 저장 디바이스(124)는, 예를 들어, 하드 디스크 드라이브, 자기 디스크 드라이브, 광학 디스크 드라이브, 플래시 메모리 등 중의 하나 이상을 포함할 수 있다.
본원에서 사용되는 컴퓨터 판독 가능 매체라는 용어는 위에서 언급한 시스템 메모리 및 저장 디바이스들과 같은 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조들, 또는 프로그램 모듈들과 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비 휘발성의, 착탈식 및 비 착탈식 매체를 포함할 수 있다. 메모리(122) 및 대용량 저장 디바이스(124)는 컴퓨터 저장 매체 예들(예컨대, 메모리 스토리지)이다. 대용량 저장 디바이스(124)는 아래에서 더 논의되는 바와 같이 표준 셀들의 라이브러리를 더 저장할 수 있다.
컴퓨터 저장 매체는 RAM, ROM, 전기적으로 소거 가능한 판독 전용 메모리(electrically erasable read-only memory)(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 임의의 다른 제조품을 포함할 수 있으며, 이들은 정보를 저장하는 데 사용될 수 있고 컴퓨팅 디바이스(100)에 의해 액세스될 수 있다. 임의의 그러한 컴퓨터 저장 매체는 처리 디바이스(100)의 일부일 수 있다. 컴퓨터 저장 매체는 반송파 또는 다른 전파되거나 변조된 데이터 신호를 포함하지는 않는다.
통신 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에서의 다른 데이터에 의해 구현될 수 있으며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내의 정보를 인코딩하는 것과 같은 방식으로 설정되거나 변경된 하나 이상의 특성을 갖는 신호를 나타낼 수 있다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 무선 매체, 예를 들어, 음향, 무선 주파수(RF), 적외선, 및 다른 무선 매체를 포함할 수 있다.
비디오 어댑터(126) 및 I/O 인터페이스(128)는 외부 입력 및 출력 디바이스들을 처리 유닛(110)에 연결하기 위한 인터페이스들을 제공할 수 있다. 도 1에 도시된 바와 같이, 입력 및 출력 디바이스들의 예들은 비디오 어댑터(126)에 연결된 디스플레이(114), 및 I/O 인터페이스(128)에 연결된 I/O 디바이스(112), 예를 들어, 마우스, 키보드, 프린터 등을 포함한다. 다른 디바이스들은 처리 유닛(110)에 연결될 수 있고, 추가적인 또는 보다 적은 인터페이스 카드들이 이용될 수 있다. 예를 들어, 직렬 인터페이스 카드(도시되지 않음)를 사용하여 프린터에 직렬 인터페이스를 제공할 수 있다. 처리 유닛(110)은 또한, 근거리 네트워크(local area network)(LAN) 또는 광역 네트워크(wide area network)(WAN)(116)에 대한 유선 링크일 수 있거나 및/또는 무선 링크일 수 있는 네트워크 인터페이스(140)를 포함할 수 있다.
처리 시스템(100)의 실시예들은 다른 컴포넌트들을 포함할 수 있다. 예를 들어, 처리 시스템(100)은 전력 공급 장치들(power supplies), 케이블들, 마더보드, 착탈식 저장 매체, 케이스들 등을 포함할 수 있다. 이들 다른 컴포넌트들은 도시되지 않았지만 처리 시스템(100)의 일부로 간주된다.
일부 예에서, 소프트웨어 코드는 CPU(120)에 의해 실행되어 다중 비트 플립 플롭을 동작시킨다. 소프트웨어 코드는 CPU(120)에 의해, 메모리(122), 또는 대용량 저장 디바이스(124) 등으로부터 버스(130)를 통해, 또는 네트워크 인터페이스(140)를 통해 원격으로 액세스될 수 있다. 또한, 일부 예에서, 물리적 집적 회로 레이아웃(physical integrated circuit layout)은 기능적 집적 회로 설계(functional integrated circuit design)에 기반하여 생성될 수 있으며, 기능적 집적 회로 설계는, 소프트웨어 코드에 의해 구현되는 다양한 방법들 및 프로세스들에 따라, I/O 인터페이스(128)를 통해 수신될 수 있고 및/또는 메모리(122 또는 124)에 저장될 수 있다.
표준 셀은 트랜지스터, 다이오드, 캐패시터, 저항기, 또는 인덕터와 같은 전체 디바이스를 포함할 수 있거나, 또는 일부 특정 기능, 예를 들어, 무엇보다도, 인버터, 플립 플롭, 메모리 셀, 또는 증폭기를 달성하도록 배열된 여러 디바이스들의 그룹을 포함할 수 있다. 표준 셀들을 사용하게 되면, 기능 설계를 보다 쉽게 개념화할 수 있을 뿐만 아니라, IC 내 레이아웃 피처들의 설계 룰 체킹(Design Rule Checking)(DRC)을 위한 검증 시간을 감소시킬 수 있으며, 이는 레이아웃 전체에 걸쳐 반복되는 표준 셀이 DRC에서 각 인스턴스화가 개별적으로 체킹되기보다는 한 번에 체킹될 수 있기 때문이다. 시스템(100)은 수신된 기능적 회로 디스크립션(functional circuit description)에 기반하여, 셀 라이브러리(cell library)로부터 표준 셀을 선택하도록 구성된다.
위에서 언급했듯이, 플립 플롭 회로들은 표준 셀 라이브러리에 포함될 수 있다. 플립 플롭은 두 개의 안정된 상태를 가진 회로이며, 따라서 1 비트의 메모리로서 역할을 할 수 있다. 플립 플롭은 일반적으로 하나 또는 두 개의 제어 신호와 하나의 클럭 신호에 의해 제어된다. 출력은 종종 정상 출력과 함께 보수를 포함한다. 플립 플롭들은 단순(투명)할 수 있거나 또는 클럭킹(또는 비투명)할 수 있다. 클럭킹되는 플립 플롭들은 동기식 (시간 이산) 시스템 용으로 특별히 설계되었으며, 일반적으로 마스터-슬레이브 디바이스들로서 구현된다. 플립 플롭들은 통상적인 RS("세트-리세트"), D("데이터" 또는 "지연"), T("토글"), 및 JK 타입들로 더 나뉘어 질 수 있다. D 플립 플롭은 지연 플립 플롭(출력(Q)이 입력(D)의 지연처럼 보이기 때문에) 또는 데이터 래치로 알려져 있다. 특정 타입의 플립 플롭의 거동은, 플립 플롭들의 입력 신호(들) 및/또는 플립 플롭들의 "이전 상태" 신호의 관점에서 "현재 상태" 출력을 도출하는 특성 방정식이라고 지칭되는 것에 의해 기술될 수 있다.
D 플립 플롭은 클럭 사이클의 특정 부분(예를 들어, 클럭의 상승 에지)에서 D 입력의 값을 캡처한다. 캡처된 값은 Q 출력이 된다. 다른 경우에, 출력 Q는 변경되지 않는다. D 플립 플롭은 메모리 셀, 제로-차수 홀드(zero-order hold), 또는 지연 라인(delay line)으로 간주될 수 있다.
도 2는 본 개시 내용의 양태들에 따른 일 예의 D-타입 플립 플롭(200)을 도시한 것이다. 도 2에 도시된 바와 같이, 플립 플롭(200)은 데이터 입력 단자(202) 및 데이터 출력 단자(204)를 포함한다. 또한, 도 2의 플립 플롭(200)은 클럭 입력 단자(CK in)(206)를 포함한다. D 플립 플롭은 클럭 사이클의 특정 부분(예를 들어, 클럭의 상승 에지)에서 데이터 입력 단자(202)에서 제공되는 값, 즉, 입력 데이터(D)를 캡처한다. 그 캡처된 입력 데이터(D)는 데이터 출력 단자(204)에서 출력 데이터(Q)가 된다. 다른 경우에, 출력 데이터(Q)는 변경되지 않는다. 일부 예에서, 플립 플롭(200)은 메모리 셀, 제로-차수 홀드, 또는 지연 라인으로 간주될 수 있다.
도 2의 예시적인 플립 플롭(200)을 형성하는 다수의 단일 비트 플립 플롭들은 다중 비트 플립 플롭들(multi-bit flip flops)을 형성하도록 배열된다. 다중 비트 플립 플롭들은 다수의 입력 단자들과 출력 단자들(D 및 Q 핀들)을 갖는다. 예를 들어, 일부 2 비트 다중 비트 플립 플롭들은 공통 클럭, scan_in 및 scan_enable 핀들과 함께 2 개의 입력 단자들과 2 개의 출력 단자들(D0, D1, Q0, Q1 핀들)을 가질 수 있다. 2 비트 플립 플롭에서, 제 2 비트 플롭의 scan_in 핀은 제 1 플롭 Q 핀(Q0)에 연결되므로, 이들은 스캔 순서에 있게 된다. 다중 비트 플립 플롭의 레이아웃은, 다중 비트 플립 플롭의 유효 면적이 단일 비트 플립 플롭들의 추가되는 면적보다 작도록, 컴팩트한 방식으로 설계될 수 있다.
알려진 다중 비트 플립 플롭들은 플립 플롭 간에 로컬 클럭 버퍼를 공유함으로써 전력을 절감하고, 그리고 클럭 토글링 디바이스들(clock-toggling devices)을 감소시킴으로써 전력을 최적화하는 데 이용될 수 있다. 개시된 실시예들은 복수의 로우 클럭 펄스 토글링 단일 비트 플립 플롭들(low clock pulse toggling single-bit flip flops) 및 자체 타이밍된 통합 클럭 게이팅(integrated clock gating)(ICG) 셀들을 사용함으로써 전력을 더욱 절감한다. 일부 예에서, 전력은 30 % 초과로 감소된다.
도 3은 일부 실시예에 따른 다중 비트 플립 플롭 회로(300)의 블럭 다이어그램을 도시한 것이다. 도 3에 도시된 바와 같이, 다중 비트 플립 플롭 회로(300)는 다중 비트 플립 플롭(302), 통합 클럭 게이팅 회로(304), 및 제어 회로(306)를 포함한다. 다중 비트 플립 플롭(302)은 통합 클럭 게이팅 회로(304) 및 제어 회로(306) 모두에 연결된다. 제어 회로(306)는 디스앰비규에이션 회로(disambiguation circuit)(308) 및 논리합 회로(disjunction circuit)(310)를 포함한다. 본 개시 내용을 읽은 후 본 기술 분야의 통상의 기술자는 다중 비트 플립 플롭 회로(300)가 도 3에 도시된 것보다 많은 컴포넌트들을 가질 수 있다는 것을 이해할 것이다.
도 3에 도시된 바와 같이, 다중 비트 플립 플롭(302)은 데이터 입력 단자들(312), 데이터 출력 단자들(314), 및 클럭 입력 단자들(316)을 포함한다. 다중 비트 플립 플롭(302)은 데이터 입력 단자들(312)에 제공된 입력 데이터(D)를 캡처하고, 캡처된 입력 데이터(D)를 출력 단자들(314)에서 출력 데이터(Q)로서 제공한다. 다중 비트 플립 플롭(302)은 클럭 입력 단자(316)에서 클럭 신호(CLK)를 수신하고 클럭 신호(CLK)의 수신에 응답하여 토글링한다. 일부 예에서, 다중 비트 플립 플롭(302)은 미리 결정된 수의 데이터 입력 비트를 임시적으로 저장하도록 동작하는 다중 비트 플립 플롭(302)을 형성하도록 배열된 복수의 단일 비트 플립 플롭들을 포함한다. 다중 비트 플립 플롭들(302)은 제어 회로(306)에 연결된다.
제어 회로(306)는 제 1 입력 단자들(318) 및 제 2 입력 단자들(320)을 포함한다. 일부 예에서, 제어 회로(306)의 디스앰비규에이션 회로(308)는 제 1 입력 단자들(318) 및 제 2 입력 단자들(320)을 포함한다. 제 1 입력 단자들(318)은 다중 비트 플립 플롭(302)의 입력 단자들(312)에 연결된다. 제 2 입력 단자들(320)은 다중 비트 플립 플롭(302)의 출력 단자들(314)에 연결된다. 일부 예에서, 제어 회로(306)는 입력 데이터와 그 입력 데이터에 대응하는 다중 비트 플립 플롭(302)의 출력 데이터를 비교하고, 이 비교에 기반하여 인에이블 신호(EN)를 제공한다. 제어 회로(306)는 제어 회로 출력 단자(326)에 인에이블 신호(EN)를 제공한다.
예를 들어, 제어 회로(306)의 디스앰비규에이션 회로(308)는 입력 데이터(D) 및 입력 데이터(D)에 대응하는 다중 비트 플립 플롭(302)의 출력 데이터(Q)의 논리적 디스앰비규에이션(logical disambiguation)을 결정한다. 디스앰비규에이션 회로(308)는 디스앰비규에이션 회로(308)의 디스앰비규에이션 회로 출력 단자(322)에 논리적 디스앰비규에이션 결정의 결과들을 제공한다. 디스앰비규에이션 회로 출력 단자들(322)은 논리합 회로(310)의 논리합 회로 입력 단자들(324)에 연결된다. 따라서, 입력 데이터(D) 및 입력 데이터(D)에 대응하는 다중 비트 플립 플롭(302)의 출력 데이터(Q)의 논리적 디스앰비규에이션 결정의 결과들은 논리합 회로(310)에 대한 입력 데이터로서 제공된다.
논리합 회로(310)는 입력 데이터(D) 및 입력 데이터(D)에 대응하는 다중 비트 플립 플롭(302)의 출력 데이터(Q)의 논리적 디스앰비규에이션의 결과들의 논리합을 결정한다. 논리합 회로(310)는 입력 데이터(D) 및 입력 데이터(D)에 대응하는 다중 비트 플립 플롭(302)의 출력 데이터(Q)의 논리적 디스앰비규에이션의 결과들의 논리합 결정에 기반하여 인에이블 신호(EN)를 생성한다. 논리합 회로(310)는 제어 회로 출력 단자(326)라고 지칭되기도 하는 논리합 회로 출력 단자(326)에 인에이블 신호(EN)를 출력으로서 제공한다.
논리합 회로 출력 단자(326) 또는 제어 회로 출력 단자(326)는 통합 클럭 게이팅 회로(304)의 제 2 입력 단자(330)에 연결된다. 통합 클럭 게이팅 회로(304)의 제 1 입력 단자(328)는 클럭 펄스(CP)를 수신하도록 동작한다. 통합 클럭 게이팅 회로(304)는 통합 클럭 게이팅 회로 출력 단자(332)에 클럭 신호(CLK)를 생성한다.
일부 예에서, 통합 클럭 게이팅 회로(304)는 인에이블 신호(EN)에 기반하여, 클럭 펄스(CP)로부터 클럭 신호(CLK)를 생성한다. 예를 들어, 통합 클럭 게이팅 회로(304)는 인에이블 신호(EN)가 논리 하이로 변경될 때 클럭 신호(CLK)를 생성한다. 클럭 신호(CLK)는 다중 비트 플립 플롭(302)의 클럭 입력 단자(316)에 연결된 통합 클럭 게이팅 회로 출력 단자(332)에 제공된다. 클럭 신호(CLK)는 다중 비트 플립 플롭(302)에 제공되고, 다중 비트 플립 플롭(302)이 토글링하도록 한다.
도 4a는 일부 실시예에 따른 다중 비트 플립 플롭 회로(400)의 부분 블럭 다이어그램 및 부분 회로 다이어그램을 도시한 것이다. 예를 들어, 도 4a에 도시된 바와 같이, 다중 비트 플립 플롭 회로(400)는 복수의 단일 비트 플롭 플롭들, 예를 들어, 제 1 단일 비트 플립 플롭(200(1)), 제 2 단일 비트 플립 플롭(200(2)), 제 3 단일 비트 플립 플롭(200(3)), 및 제 4 단일 비트 플립 플롭(200(4))을 포함한다. 일부 예에서, 복수의 단일 비트 플립 플롭들은 다중 비트 플립 플롭(302)을 형성한다. 비록, 도 4a의 다중 비트 플립 플롭 회로(400)가 단지 4 개의 단일 비트 플립 플롭만을 포함하는 것으로 도시되었지만, 본 개시 내용을 읽은 후에 본 기술 분야의 통상의 기술자는 다중 비트 플립 플롭 회로(400)가 다양한 수의 단일 비트 플립 플롭들을 포함할 수 있다는 것을 이해할 것이다. 예를 들어, 다중 비트 플립 플롭 회로(400)는 2 개의 단일 비트 플립 플롭들, 8 개의 단일 비트 플립 플롭들, 16 개의 단일 비트 플립 플롭들 등을 포함할 수 있다.
또한, 다중 비트 플립 플롭 회로(400)는 복수의 배타적 OR (XOR) 논리 회로, 예를 들어, 제 1 XOR 논리 회로(402(1)), 제 2 XOR 논리 회로(402(2)), 제 3 XOR 논리 회로(402(3)), 및 제 4 XOR 논리 회로(402(4))를 포함한다. 일부 예에서, 제 1 XOR 논리 회로(402(1)), 제 2 XOR 논리 회로(402(2)), 제 3 XOR 논리 회로(402(3)), 및 제 4 XOR 논리 회로(402(4))는 디스앰비규에이션 회로(304)를 형성한다. 복수의 XOR 논리 회로들의 각각은 복수의 단일 비트 플롭 플롭들 중 하나와 연관된다. 예를 들어, 제 1 XOR 논리 회로(402(1))는 제 1 단일 비트 플립 플롭(200(1))과 연관되고, 제 2 XOR 논리 회로(402(2))는 제 2 단일 비트 플립 플롭(200(2))과 연관되고, 제 3 XOR 논리 회로(402)(3)은 제 3 단일 비트 플립 플롭(200(3))과 연관되고, 그리고 제 4 XOR 논리 회로(402(4))는 제 4 단일 비트 플립 플롭(200(4))과 연관된다. 따라서, 그리고 일부 실시예에 따르면, 다중 비트 플립 플롭 회로(400)는 동일한 수의 복수의 XOR 논리 회로들 및 복수의 단일 비트 플롭 플롭들을 포함한다.
제 1 단일 비트 플립 플롭(200(1))은 데이터 입력 단자(202(1)), 데이터 출력 단자(204(1)), 및 클럭 입력 단자(206(1))를 포함한다. 또한, 제 1 단일 비트 플립 플롭(200(1))은 scan-in 단자(208(1))를 포함한다. 제 1 단일 비트 플립 플롭(200(1))의 데이터 입력 단자(202(1))는 제 1 입력 데이터(D1)를 수신하도록 동작한다. 제 1 단일 비트 플립 플롭(200(1))의 클럭 입력 단자(206(1))는 클럭 게이팅 회로 출력 단자(332)에 연결되고, 통합 클럭 게이팅 회로(304)로부터 클럭 신호(CLK)를 수신하도록 동작한다. 제 1 단일 비트 플립 플롭(200(1))의 scan-in 단자(208(1))는 스캔 입력 신호(SIN)를 수신하도록 동작한다.
제 1 단일 비트 플립 플롭(200(1))은 데이터 입력 단자(202(1))에 수신된 제 1 입력 데이터(D1)를 캡처하고, 캡처된 제 1 입력 데이터(D1)를 데이터 출력 단자(204(1))에 대한 제 1 출력 데이터(Q1)로서 제공하도록 동작한다. 제 1 단일 비트 플립 플롭(200(1))의 데이터 출력 단자(204(1))는 제 1 XOR 논리 회로(402(1))의 제 2 입력 단자(406(1))에 연결된다. 제 1 XOR 논리 회로(402(1))의 제 1 입력 단자(404(1))는 제 1 단일 비트 플립 플롭(200(1))의 데이터 입력 단자(202(1))에 연결된다. 따라서, 제 1 XOR 논리 회로(402(1))의 제 1 입력 단자(404(1))는 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1)를 수신하며, 제 1 XOR 논리 회로(402(1))의 제 2 입력 단자(406(1))는 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)를 수신한다.
제 1 XOR 논리 회로(402(1))는 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1) 및 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)의 논리적 디스앰비규에이션을 결정한다. 제 1 XOR 논리 회로(402(1))는 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1) 및 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)의 논리적 디스앰비규에이션인 제 1 출력 데이터(X1)를 출력 단자(408(1))에 제공한다. 도 4b는 일부 실시예에 따라 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1) 및 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)의 예시적인 논리적 디스앰비규에이션의 예시적인 진리표(450)를 도시한 것이다.
도 4b에 도시된 바와 같이, 진리표(450)는 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1), 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1), 및 제 1 XOR 논리 회로(402(1)의 제 1 출력 데이터(X1)에 대한 열들(columns)을 포함한다. 일 예에서, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)는 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1) 및 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)에 의존한다. 예를 들어, 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1)의 제 1 출력 데이터(Q1)가 논리 0인 경우, 제 1 XOR 논리 회로(402(1)의 제 1 출력 데이터(X1)는 논리 0이 된다.
다른 예로, 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1)가 논리 0이고, 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)가 논리 1인 경우, 제 1 출력 데이터(X1)는 논리 1이 된다. 또 다른 예로서, 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1)가 논리 1이고, 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)가 논리 0인 경우, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)는 논리 1이 된다. 또 다른 예로서, 제 1 단일 비트 플립 플롭(200(1))의 제 1 입력 데이터(D1)가 논리 1이이고, 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)가 논리 1인 경우, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)는 논리 0이 된다. 따라서, 따라서, 제 1 XOR 논리 회로(402(1))는, 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)가 제 1 입력 데이터(D1)와 상이한 경우, 논리 1의 제 1 출력 데이터(X1)를 제공한다. 더욱이, 제 1 입력 데이터(D1)에 대응하는 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)가 제 1 입력 데이터(D1)와 동일한 경우, 제 1 XOR 논리 회로(402(1))는 논리 0의 제 1 출력 데이터(X1)를 제공한다.
도 4a로 돌아가면, 제 2 단일 비트 플립 플롭(200(2))은 데이터 입력 단자(202(2)), 데이터 출력 단자(204(2)), 및 클럭 입력 단자(206(2))를 포함한다. 또한, 제 2 단일 비트 플립 플롭(200(2))은 scan-in 단자(208(2))를 포함한다. 제 2 단일 비트 플립 플롭(200(2))의 데이터 입력 단자(202(2))는 제 2 입력 데이터(D2)를 수신하도록 동작한다. 제 2 단일 비트 플립 플롭(200(2))의 클럭 입력 단자(206(2))는 클럭 게이팅 회로 출력 단자(332)에 연결되고, 통합 클럭 게이팅 회로(304)로부터 클럭 신호(CLK)를 수신하도록 동작한다. 제 2 단일 비트 플립 플롭(200(2))의 scan-in 단자(208(2))는 제 1 단일 비트 플립 플롭(200(1))의 출력 단자(204(1))에 연결되고, 제 1 단일 비트 플립 플롭(200(1))의 제 1 출력 데이터(Q1)를 수신하도록 동작한다.
제 2 단일 비트 플립 플롭(200(2))은 데이터 입력 단자(202(2))에 수신된 제 2 입력 데이터(D2)를 캡처하고, 캡처된 제 2 입력 데이터(D2)를 데이터 출력 단자(204(2))에 대한 제 2 출력 데이터(Q2)로서 제공하도록 동작한다. 제 2 단일 비트 플립 플롭(200(2))의 데이터 출력 단자(204(2))는 제 2 XOR 논리 회로(402(2))의 제 2 입력 단자(406(2))에 연결된다. 제 2 XOR 논리 회로(402(2))의 제 1 입력 단자(404(2))는 제 2 단일 비트 플립 플롭(200(2))의 데이터 입력 단자(202(2))에 연결된다. 따라서, 제 2 XOR 논리 회로(402(2))의 제 1 입력 단자(404(2))는 제 2 단일 비트 플립 플롭(200(2))의 제 2 입력 데이터(D2)를 수신하며, 제 2 XOR 논리 회로(402(2))의 제 2 입력 단자(406(2))는 제 2 입력 데이터(D2)에 대응하는 제 2 단일 비트 플립 플롭(200(2))의 제 2 출력 데이터(Q2)를 수신한다.
제 2 XOR 논리 회로(402(2))는 제 2 단일 비트 플립 플롭(200(2))의 제 2 입력 데이터(D2) 및 제 2 입력 데이터(D2)에 대응하는 제 2 단일 비트 플립 플롭(200(2))의 제 2 출력 데이터(Q2)의 논리적 디스앰비규에이션을 결정한다. 제 2 XOR 논리 회로(402(2))는 제 2 단일 비트 플립 플롭(200(2))의 제 2 입력 데이터(D2) 및 제 2 입력 데이터(D2)에 대응하는 제 2 단일 비트 플립 플롭(200(2))의 제 2 출력 데이터(Q2)의 논리적 디스앰비규에이션인 제 2 출력 데이터(X2)를 출력 단자(408(2))에 제공한다. 예들에서, 제 2 입력 데이터(D2)에 대응하는 제 2 단일 비트 플립 플롭(200(2))의 제 2 출력 데이터(Q2)가 제 2 입력 데이터(D2)와 상이한 경우, 제 2 XOR 논리 회로(402(2))는 논리 1의 제 2 출력 데이터(X2)를 제공한다. 더욱이, 제 2 입력 데이터(D2)에 대응하는 제 2 단일 비트 플립 플롭(200(2))의 제 2 출력 데이터(Q2)가 제 2 입력 데이터(D2)와 동일한 경우, 제 2 XOR 논리 회로(402(2))는 논리 0의 제 2 출력 데이터(X2)를 제공한다.
도 4a를 지속하면, 제 3 단일 비트 플립 플롭(200(3))은 데이터 입력 단자(202(3)), 데이터 출력 단자(204(3)), 및 클럭 입력 단자(206(3))를 포함한다. 또한, 제 3 단일 비트 플립 플롭(200(3))은 scan-in 단자(208(3))를 포함한다. 제 3 단일 비트 플립 플롭(200(3))의 데이터 입력 단자(202(3))는 제 3 입력 데이터(D3)를 수신하도록 동작한다. 제 3 단일 비트 플립 플롭(200(3))의 클럭 입력 단자(206(3))는 클럭 게이팅 회로 출력 단자(332)에 연결되고, 클럭 게이팅 회로(304)로부터 클럭 신호를 수신하도록 동작한다. 제 3 단일 비트 플립 플롭(200(3))의 scan-in 단자(208(3))는 제 2 단일 비트 플립 플롭(200(2))의 출력 단자(204(2))에 연결되고, 제 2 단일 비트 플립 플롭(200(2))의 제 2 출력 데이터(Q2)를 수신하도록 동작한다.
제 3 단일 비트 플립 플롭(200(3))은 데이터 입력 단자(202(3))에 수신된 제 3 입력 데이터(D3)를 캡처하고, 캡처된 제 3 입력 데이터(D3)를 데이터 출력 단자(204(3))에 대한 제 3 출력 데이터(Q3)로서 제공하도록 동작한다. 제 3 단일 비트 플립 플롭(200(3))의 데이터 출력 단자(204(3))는 제 3 XOR 논리 회로(402(3))의 제 2 입력 단자(406(3))에 연결된다. 제 3 XOR 논리 회로(402(3))의 제 1 입력 단자(404(3))는 제 3 단일 비트 플립 플롭(200(3))의 데이터 입력 단자(202(3))에 연결된다. 따라서, 제 3 XOR 논리 회로(402(3))의 제 1 입력 단자(404(3))는 제 3 단일 비트 플립 플롭(200(3))의 제 3 입력 데이터(D3)를 수신하며, 제 3 XOR 논리 회로(402(3))의 제 2 입력 단자(406(3))는 제 3 입력 데이터(D3)에 대응하는 제 3 단일 비트 플립 플롭(200(3))의 제 3 출력 데이터(Q3)를 수신한다.
제 3 XOR 논리 회로(402(3))는 제 3 단일 비트 플립 플롭(200(3))의 제 3 입력 데이터(D3) 및 제 3 입력 데이터(D3)에 대응하는 제 3 단일 비트 플립 플롭(200(3))의 제 3 출력 데이터(Q3)의 논리적 디스앰비규에이션을 결정한다. 제 3 XOR 논리 회로(402(3))는 제 3 단일 비트 플립 플롭(200(3))의 제 3 입력 데이터(D3) 및 제 3 입력 데이터(D3)에 대응하는 제 3 단일 비트 플립 플롭(200(3))의 제 3 출력 데이터(Q3)의 논리적 디스앰비규에이션인 제 3 출력 데이터(X3)를 출력 단자(408(3))에 제공한다. 예들에서, 제 3 XOR 논리 회로(402(3))는, 제 3 입력 데이터(D3)에 대응하는 제 3 단일 비트 플립 플롭(200(3))의 제 3 출력 데이터(Q3)가 제 3 입력 데이터(D3)와 상이한 경우, 논리 1의 제 3 출력 데이터(X3)를 제공한다. 더욱이, 제 3 XOR 논리 회로(402(3))는, 제 3 입력 데이터(D3)에 대응하는 제 3 단일 비트 플립 플롭(200(3))의 제 3 출력 데이터(Q3)가 제 3 입력 데이터(D3)와 동일한 경우, 논리 0의 제 3 출력 데이터(X3)를 제공한다.
여전히, 도 4a를 지속하면, 제 4 단일 비트 플립 플롭(200(4))은 데이터 입력 단자(202(4)), 데이터 출력 단자(204(4)), 및 클럭 입력 단자(206(4))를 포함한다. 또한, 제 4 단일 비트 플립 플롭(200(4))은 scan-in 단자(208(4))를 포함한다. 제 4 단일 비트 플립 플롭(200(4))의 데이터 입력 단자(202(4))는 제 4 입력 데이터(D2)를 수신하도록 동작한다. 제 4 단일 비트 플립 플롭(200(4))의 클럭 입력 단자(206(4))는 클럭 게이팅 회로 출력 단자(332)에 연결되고, 클럭 게이팅 회로(304)로부터 클럭 신호를 수신하도록 동작한다. 제 4 단일 비트 플립 플롭(200(4))의 scan-in 단자(208(4))는 제 3 단일 비트 플립 플롭(200(3))의 출력 단자(204(3))에 연결되고, 제 3 단일 비트 플립 플롭(200(3))의 제 3 출력 데이터(Q3)를 수신하도록 동작한다.
제 4 단일 비트 플립 플롭(200(4))은 데이터 입력 단자(202(4))에 수신된 제 4 입력 데이터(D4)를 캡처하고, 캡처된 제 4 입력 데이터(D4)를 데이터 출력 단자(204(4))에 대한 제 4 출력 데이터(Q4)로서 제공하도록 동작한다. 제 4 단일 비트 플립 플롭(200(4))의 데이터 출력 단자(204(4))는 제 4 XOR 논리 회로(402(4))의 제 2 입력 단자(406(4))에 연결된다. 제 4 XOR 논리 회로(402(4))의 제 1 입력 단자(404(4))는 제 4 단일 비트 플립 플롭(200(4))의 데이터 입력 단자(202(4))에 연결된다. 따라서, 제 4 XOR 논리 회로(402(4))의 제 1 입력 단자(404(4))는 제 4 단일 비트 플립 플롭(200(4))의 제 4 입력 데이터(D4)를 수신하며, 제 4 XOR 논리 회로(402(4))의 제 2 입력 단자(406(4))는 제 4 입력 데이터(D4)에 대응하는 제 4 단일 비트 플립 플롭(200(4))의 제 4 출력 데이터(Q4)를 수신한다.
제 4 XOR 논리 회로(402(4))는 제 4 단일 비트 플립 플롭(200(4))의 제 4 입력 데이터(D4) 및 제 4 입력 데이터(D4)에 대응하는 제 4 단일 비트 플립 플롭(200(4))의 제 4 출력 데이터(Q4)의 논리적 디스앰비규에이션을 결정한다. 제 4 XOR 논리 회로(402(4))는 제 4 단일 비트 플립 플롭(200(4))의 제 4 입력 데이터(D4) 및 제 4 입력 데이터(D4)에 대응하는 제 4 단일 비트 플립 플롭(200(4))의 제 4 출력 데이터(Q4)의 논리적 디스앰비규에이션인 제 4 출력 데이터(X4)를 출력 단자(408(4))에 제공한다. 예들에서, 제 4 XOR 논리 회로(402(4))는, 제 4 입력 데이터(D4)에 대응하는 제 4 단일 비트 플립 플롭(200(4))의 제 4 출력 데이터(Q4)가 제 4 입력 데이터(D4)와 상이한 경우, 논리 1의 제 4 출력 데이터(X4)를 제공한다. 더욱이, 제 4 XOR 논리 회로(402(4))는, 제 4 입력 데이터(D4)에 대응하는 제 4 단일 비트 플립 플롭(200(4))의 제 4 출력 데이터(Q4)가 제 4 입력 데이터(D4)와 동일한 경우, 논리 0의 제 4 출력 데이터(X4)를 제공한다.
제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2), 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3), 및 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)의 각각은 다중 비트 플립 플롭 회로(400)의 논리합 회로(310)에 제공된다. 예를 들어, 제 1 XOR 논리 회로(402(1))의 출력 단자(408(1))는 논리합 회로(310)의 복수의 입력 단자들 중 하나에 연결된다. 더욱이, 제 2 XOR 논리 회로(402(2))의 출력 단자(408(2))는 논리합 회로(310)의 복수의 입력 단자들 중 다른 하나에 연결된다. 또한, 제 3 XOR 논리 회로(402(3))의 출력 단자(408(3))는 논리합 회로(310)의 복수의 입력 단자들 중 또 다른 하나에 연결된다. 예를 들어, 제 4 XOR 논리 회로(402(4))의 출력 단자(408(4))는 논리합 회로(310)의 복수의 입력 단자들 중 또 다른 하나에 연결된다.
논리합 회로(310)는 논리합 회로(310)의 복수의 입력 단자들에 수신된 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2), 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3), 및 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)의 논리합을 결정하고, 이 논리합에 기반하여 인에이블 신호(EN)를 생성한다. 일부 예에서, 논리합 회로(310)는 OR 논리 회로이다. 도 4c는, 논리합 회로(310)의 복수의 입력 단자들에 수신되는 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2), 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3), 및 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)의 논리합의 진리표(460)를 도시한 것이다.
도 4c에 도시된 바와 같이, 진리표(460)는 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2), 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3), 및 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4), 및 인에이블 신호(EN)의 논리 값에 대한 열들을 포함한다. 일부 예에서, 인에이블 신호(EN)의 논리 값은 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2), 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3), 및 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)에 의존한다. 예를 들어, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)가 논리 0 또는 1이고(돈케어(don’t care)로 표현되고), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2)가 논리 0 또는 1이고, 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3)가 논리 0 또는 1이고, 그리고 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)가 논리 1인 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다.
다른 예로서, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)가 논리 0 또는 1이고, 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2)가 논리 0 또는 1이고, 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3)가 논리 1이고, 그리고 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)가 논리 0 또는 1인 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다. 또 다른 예로서, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)가 논리 0 또는 1이고, 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2)가 논리 1이고, 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3)가 논리 0 또는 1이고, 그리고 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)가 논리 0 또는 1인 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다.
또 다른 예로서, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)가 논리 1이고, 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2)가 논리 0 또는 1이고, 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3)가 논리 0 또는 1이고, 그리고 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)가 논리 0 또는 1인 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다. 또 다른 예로서, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1)가 논리 0이고, 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2)가 논리 0이고, 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3)가 논리 0이고, 그리고 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4)가 논리 0인 경우, 인에이블 신호(EN)의 논리 값은 논리 0이 된다.
따라서, 제 1 XOR 논리 회로(402(1))의 제 1 출력 데이터(X1), 제 2 XOR 논리 회로(402(2))의 제 2 출력 데이터(X2), 제 3 XOR 논리 회로(402(3))의 제 3 출력 데이터(X3), 또는 제 4 XOR 논리 회로(402(4))의 제 4 출력 데이터(X4) 중 임의의 것이 논리 1인 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다. 즉, 제 1 단일 비트 플립 플롭(200(1)), 제 2 단일 비트 플립 플롭(200(2)), 제 3 단일 비트 플립 플롭(200(3), 및 제 4 단일 비트 플립 플롭(200(4) 중 임의의 것에 대한 출력 데이터(Q)가 각각의 입력 데이터(D)와 상이한 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다.
인에이블 신호(EN)는 통합 클럭 게이팅 회로(304)의 제 2 입력 단자(330)에 연결된 논리합 회로 출력 단자(326)에 제공된다. 따라서, 인에이블 신호(EN)는 통합 클럭 게이팅 회로(304)에 제공된다. 통합 클럭 게이팅 회로(304)는 통합 클럭 게이팅 회로 출력 단자(332)에 클럭 신호를 생성한다. 예를 들어, 통합 클럭 게이팅 회로(304)는 인에이블 신호(EN)가 논리 1인 경우 클럭 신호를 제공한다. 앞서 논의한 바와 같이, 다중 비트 플립 플롭 회로(400)의 복수의 단일 비트 플립 플롭들 중 하나의 출력 데이터가 출력 데이터가 캡처된 복수의 단일 비트 플립 플롭들 중 하나의 입력 데이터와 상이한 경우, 인에이블 신호(EN)의 논리 값은 논리 1이 된다.
도 5는 일부 실시예에 따른 다중 비트 플립 플롭(400)의 복수의 단일 비트 플립 플롭들 중 하나의 신호들을 도시한 그래프(500)이다. 예를 들어, 그래프(500)의 제 1 플롯(502)은 다중 비트 플립 플롭(400)의 통합 클럭 게이팅 회로(304)의 클럭 펄스(CP)를 나타낸다. 그래프(500)의 제 2 플롯(504)은 다중 비트 플립 플롭 (400)의 복수의 단일 비트 플립 플롭들 중 하나의 입력 데이터(D)를 나타낸다. 그래프(500)의 제 3 플롯(506)은 입력 데이터(D)에 대응하는 다중 비트 플립 플롭(400)의 복수의 단일 비트 플립 플롭들 중 하나의 출력 데이터(Q)를 나타낸다. 제 4 플롯(408)은 인에이블 신호(EN)를 나타낸다.
제 1 마커(510)에서 도시된 바와 같이, 입력 데이터(D) 및 출력 데이터(Q)가 동일한 논리 값(즉, 논리 0)에 있는 경우, 인에이블 신호(EN)가 또한 논리 0에 있다. 그러나, 제 2 마커(512)에서 도시된 바와 같이, 입력 데이터(D)가 논리 1로 상승하고 출력 데이터(Q)가 논리 0으로 유지되면, 인에이블 신호(EN)는 논리 1로 상승한다. 또한, 제 3 마커(514)에서 도시된 바와 같이, 입력 데이터(D) 및 출력 데이터(Q)가 모두 논리 1로 상승할 때, 인에이블 신호(EN)는 논리 0으로 하강한다.
따라서, 예시적인 실시예들에 따르면, 통합 클럭 게이팅 회로는 입력 데이터에 대응하는 다중 비트 플립 플롭(302)의 출력 데이터가 입력 데이터와 상이한 경우에만 다중 비트 플립 플롭(302)이 토글링하도록 하기 위해 클럭 신호를 생성한다. 이것은 클럭 펄스(CP)를 최소화하고 클럭 트리 전력을 감소시킨다. 또한, 개시된 프로세스들은 다중 비트 플립 플롭(302)의 토글링을 줄여 전력을 절감한다. 예를 들어, 개시된 프로세스들은 10 %의 데이터 활동(즉, 토글링)에서 약 30.4 %의 전력 절감을 유도하고, 0 %의 데이터 활동에서 약 64.3 %의 전력 절감을 유도한다.
도 6은 일부 실시예에 따른 다중 비트 플립 플롭을 동작시키는 방법(600)의 플로우 다이어그램이다. 일부 예에서, 방법(600)은 처리 시스템(100)에 의해 수행된다. 다른 실시예들에서, 방법(600)은 처리 유닛(110)에 의해 실행될 때 방법(600)을 수행하는 비 일시적 컴퓨터 판독 가능 매체 상에 명령어로서 저장된다.
방법(600)의 블럭(610)에서, 다중 비트 플립 플롭에 입력 데이터가 제공된다. 예를 들어, 입력 데이터는 다중 비트 플립 플롭(302)의 입력 단자들(312)에 제공된다. 다중 비트 플립 플롭(302)은 입력 데이터를 캡처하고 출력 단자들(314)에 출력 데이터를 제공하도록 동작한다. 일부 예에서, 데이터 입력은 2 비트, 4 비트, 8 비트 등을 포함할 수 있다. 일부 예에서, 다중 비트 플립 플롭(302)의 입력 데이터와 입력 데이터에 대응하는 출력 데이터는 모두 디스앰비규에이션 회로(308)에 제공된다.
방법(600)의 블럭(620)에서, 다중 비트 플립 플롭에 제공되는 입력 데이터와 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션이 결정된다. 예를 들어, 다중 비트 플립 플롭 회로(300)의 디스앰비규에이션 회로(308)는 다중 비트 플립 플롭(302)에 제공되는 입력 데이터와 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션을 결정한다. 다중 비트 플립 플롭(302)에 제공되는 입력 데이터와 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션은 논리합 회로(310)에 제공된다.
방법(600)의 블럭(630)에서, 다중 비트 플립 플롭에 제공되는 입력 데이터와 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션의 논리합이 결정된다. 예를 들어, 다중 비트 플립 플롭 회로(300)의 논리합 회로(310)는 다중 비트 플립 플롭(302)에 제공되는 입력 데이터와 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션의 논리합을 결정한다.
방법(600)의 블럭(640)에서, 논리합에 기반하여, 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로에 인에이블 신호가 제공된다. 예를 들어, 인에이블 신호(EN)는 다중 비트 플립 플롭(302)에 연결된 통합 클럭 게이팅 회로(304)에 제공된다. 인에이블 신호(EN)는 다중 비트 플립 플롭(302)에 제공되는 입력 데이터와 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션의 논리합에 기반하여 생성된다.
방법(600)의 블럭(650)에서, 다중 비트 플립 플롭에 대한 클럭 신호는 인에이블 신호에 기반하여 생성된다. 예를 들어, 통합 클럭 게이팅 회로(304)는 클럭 펄스(CP)로부터 인에이블 신호(EN)에 기반하여 클럭 신호를 생성한다. 일부 예에서, 클럭 신호는 통합 클럭 게이팅 회로(304)에 의해 다중 비트 플립 플롭(302)에 제공된다. 방법(600)의 블럭(640)에서, 다중 비트 플립 플롭은 클럭 신호에 응답하여 토글링된다. 예를 들어, 다중 비트 플립 플롭(302)은 클럭 신호가 논리 하이, 즉 논리 1로 상승할 때 토글링된다.
예시적인 실시예들에 따르면, 회로는: 다중 비트 플립 플롭; 상기 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로; 및 상기 통합 클럭 게이팅 회로 및 상기 다중 비트 플립 플롭에 연결된 제어 회로를 포함하고, 상기 제어 회로는 상기 다중 비트 플립 플롭의 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터를 비교하고, 상기 다중 비트 플립 플롭의 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터를 비교하는 것에 기반하여 인에이블 신호를 생성하고, 그리고 상기 인에이블 신호를 상기 통합 클럭 게이팅 회로에 제공하도록 동작하며, 상기 통합 클럭 게이팅 회로는, 상기 인에이블 신호에 기반하여, 상기 다중 비트 플립 플롭에 상기 다중 비트 플립 플롭이 토글링하도록 하는 클럭 신호를 제공한다.
예시적인 실시예들에서, 회로는 복수의 단일 비트 플립 플롭들; 통합 클럭 게이팅 회로 ― 상기 통합 클럭 게이팅 회로의 출력 단자는 상기 복수의 단일 비트 플립 플롭들의 각각의 클럭 입력 단자에 연결됨 ―; 상기 복수의 단일 비트 플립 플롭들에 연결된 복수의 디스앰비규에이션 논리 회로들 ― 상기 복수의 디스앰비규에이션 논리 회로들의 각각은 상기 복수의 단일 비트 플립 플롭들의 대응하는 단일 비트 플립 플롭마다 입력 데이터와 상기 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션을 결정하도록 동작함 ―; 및 상기 복수의 디스앰비규에이션 논리 회로들에 연결된 논리합 회로를 포함하고, 상기 논리합 회로는 상기 복수의 디스앰비규에이션 논리 회로들의 복수의 출력들의 논리합을 결정하고, 상기 논리합에 기반하여 인에이블 신호를 제공하도록 동작한다.
예시적인 실시예들에 따르면, 방법은: 입력 데이터를 다중 비트 플립 플롭에 제공하는 단계; 상기 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭으로부터의 출력 데이터의 논리적 디스앰비규에이션을 결정하는 단계; 상기 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션의 논리합을 결정하는 단계; 상기 논리합에 기반하여, 상기 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로에 인에이블 신호를 제공하는 단계; 및 상기 인에이블 신호에 기반하여, 상기 다중 비트 플립 플롭에 대한 클럭 신호를 생성하는 단계를 포함한다.
전술한 내용은 본 기술 분야의 기술자가 본 개시 내용의 양태들을 더 잘 이해할 수 있도록 몇몇 실시예들의 특징들을 개략적으로 설명하고 있다. 본 기술 분야의 기술자는 본원에 도입된 실시예들과 동일한 목적을 수행하고 및/또는 동일한 효과를 달성하는 다른 프로세스들 및 구조물들을 설계하거나 수정하기 위한 토대로서 본 개시 내용을 용이하게 사용할 수 있다는 것을 이해해야 한다. 본 기술 분야의 기술자는 또한 이러한 등가의 구성이 본 개시 내용의 사상 및 범위를 벗어나지 않으며, 본 개시 내용의 사상 및 범위를 벗어나지 않으면서 본원에서 다양한 변경, 대체, 및 변형을 행할 수 있다는 것을 인식해야 한다.
실시예들
실시예 1. 회로로서,
다중 비트 플립 플롭;
상기 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로; 및
상기 통합 클럭 게이팅 회로 및 상기 다중 비트 플립 플롭에 연결된 제어 회로
를 포함하고,
상기 제어 회로는,
상기 다중 비트 플립 플롭의 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터를 비교하고,
상기 다중 비트 플립 플롭의 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터를 비교하는 것에 기반하여 인에이블 신호를 생성하며,
상기 인에이블 신호를 상기 통합 클럭 게이팅 회로에 제공하도록 동작하며,
상기 통합 클럭 게이팅 회로는, 상기 인에이블 신호에 기반하여, 상기 다중 비트 플립 플롭이 토글링하도록 하는 클럭 신호를 상기 다중 비트 플립 플롭에 제공하는 것인, 회로.
실시예 2. 실시예 1에 있어서,
상기 제어 회로는 디스앰비규에이션(disambiguation) 회로 및 논리합(disjunction) 회로를 포함하는 것인, 회로.
실시예 3. 실시예 2에 있어서,
상기 다중 비트 플립 플롭은 상기 다중 비트 플립 플롭을 형성하도록 배열된 복수의 단일 비트 플립 플롭들을 포함하고,
상기 디스앰비규에이션 회로는 복수의 배타적 OR (XOR) 논리 회로들을 포함하고,
상기 복수의 XOR 논리 회로들 각각은 상기 복수의 단일 비트 플립 플롭들 중 하나와 연관된 것인, 회로.
실시예 4. 실시예 3에 있어서,
상기 복수의 XOR 논리 회로들 각각은,
상기 복수의 단일 비트 플립 플롭들의 연관된 단일 비트 플립 플롭의 입력 데이터를 상기 입력 데이터에 대응하는 상기 연관된 단일 비트 플립 플롭의 출력 데이터와 비교하며;
상기 연관된 단일 비트 플립 플롭의 입력 데이터와 상기 입력 데이터에 대응하는 상기 연관된 단일 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션을 포함하는 출력을 제공하도록 동작하는 것인, 회로.
실시예 5. 실시예 4에 있어서,
상기 연관된 단일 비트 플립 플롭의 입력 데이터와 상기 복수의 XOR 논리 회로들 각각의 입력 데이터에 대응하는 상기 연관된 단일 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션은 상기 논리합 회로에 대한 입력으로서 제공되는 것인, 회로.
실시예 6. 실시예 5에 있어서,
상기 논리합 회로는,
상기 연관된 단일 비트 플립 플롭의 입력 데이터와 상기 복수의 XOR 논리 회로들의 입력 데이터에 대응하는 상기 연관된 단일 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션의 논리합을 결정하며,
상기 논리합에 기반하여 상기 인에이블 신호를 생성하도록 동작하는 것인, 회로.
실시예 7. 실시예 1에 있어서,
상기 다중 비트 플립 플롭은 상기 다중 비트 플립 플롭을 형성하도록 배열된 복수의 단일 비트 플립 플롭들을 포함하고,
상기 통합 클럭 게이팅 회로의 출력은 상기 복수의 단일 비트 플립 플롭들 각각의 클럭 입력 단자에 연결된 것인, 회로.
실시예 8. 실시예 7에 있어서,
상기 다중 비트 플립 플롭은 8 개의 단일 비트 플립 플롭들을 포함하는 것인, 회로.
실시예 9. 회로로서,
복수의 단일 비트 플립 플롭들;
통합 클럭 게이팅 회로 ― 상기 통합 클럭 게이팅 회로의 출력 단자는 상기 복수의 단일 비트 플립 플롭들 각각의 클럭 입력 단자에 연결됨 ―;
상기 복수의 단일 비트 플립 플롭들에 연결된 복수의 디스앰비규에이션 논리 회로들 ― 상기 복수의 디스앰비규에이션 논리 회로들 각각은 상기 복수의 단일 비트 플립 플롭들의 대응하는 단일 비트 플립 플롭에 대한 입력 데이터와 상기 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션을 결정하도록 동작함 ―; 및
상기 복수의 디스앰비규에이션 논리 회로들에 연결된 논리합 회로
를 포함하고,
상기 논리합 회로는,
상기 복수의 디스앰비규에이션 논리 회로들의 복수의 출력들의 논리합을 결정하며,
상기 논리합에 기반하여 인에이블 신호를 제공하도록 동작하는 것인, 회로.
실시예 10. 실시예 9에 있어서,
상기 복수의 단일 비트 플립 플롭들 각각은 데이터 입력 단자, 데이터 출력 단자, 및 클럭 입력 단자를 포함하는 것인, 회로.
실시예 11. 실시예 10에 있어서,
상기 복수의 디스앰비규에이션 논리 회로들 각각은 제 1 입력 단자, 제 2 입력 단자, 및 출력 단자를 포함하는 것인, 회로.
실시예 12. 실시예 11에 있어서,
상기 복수의 디스앰비규에이션 논리 회로들 각각의 제 1 입력 단자는 대응하는 단일 비트 플립 플롭의 데이터 입력 단자에 연결되고,
상기 복수의 디스앰비규에이션 논리 회로들 각각의 제 2 입력 단자는 대응하는 단일 비트 플립 플롭의 데이터 출력 단자에 연결되며,
복수의 디스앰비규에이션 논리 회로들 각각의 출력 단자는 상기 논리합 회로의 입력 단자에 연결되는 것인, 회로.
실시예 13. 실시예 9에 있어서,
상기 인에이블 신호는 상기 통합 클럭 게이팅 회로에 제공되는 것인, 회로.
실시예 14. 실시예 13에 있어서,
상기 통합 클럭 게이팅 회로는 상기 인에이블 신호에 응답하여 클럭 신호를 생성하도록 동작하는 것인, 회로.
실시예 15. 실시예 14에 있어서,
상기 복수의 단일 비트 플립 플롭들은 상기 클럭 신호에 응답하여 토글링되는 것인, 회로.
실시예 16. 방법으로서,
입력 데이터를 다중 비트 플립 플롭에 제공하는 단계;
상기 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭으로부터의 출력 데이터의 논리적 디스앰비규에이션을 결정하는 단계;
상기 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션의 논리합을 결정하는 단계;
상기 논리합에 기반하여, 상기 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로에 인에이블 신호를 제공하는 단계; 및
상기 인에이블 신호에 기반하여, 상기 다중 비트 플립 플롭에 대한 클럭 신호를 생성하는 단계
를 포함하는 방법.
실시예 17. 실시예 16에 있어서,
상기 다중 비트 플립 플롭에 입력 데이터를 제공하는 단계는 상기 다중 비트 플립 플롭을 형성하는 복수의 단일 비트 플립 플롭들의 각각의 입력 단자에 상기 입력 데이터를 제공하는 단계를 포함하는 것인, 방법.
실시예 18. 실시예 17에 있어서,
상기 다중 비트 플립 플롭에 제공되는 입력 데이터와 상기 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션을 결정하는 단계는 상기 복수의 단일 비트 플립 플롭들의 각각에 제공되는 입력 데이터와 상기 입력 데이터에 대응하는 상기 복수의 단일 비트 플립 플롭들의 각각으로부터의 출력 데이터의 논리적 디스앰비규에이션을 결정하는 단계를 포함하는 것인, 방법.
실시예 19. 실시예 16에 있어서,
상기 클럭 신호에 응답하여 상기 다중 비트 플립 플롭이 토글링하도록 하는 단계
를 더 포함하는, 방법.
실시예 20. 실시예 16에 있어서,
상기 클럭 신호가 제 1 논리 값에서 제 2 논리 값으로 변경되는 것에 응답하여 상기 다중 비트 플립 플롭이 토글링하도록 하는 단계
를 더 포함하는 방법.

Claims (10)

  1. 회로로서,
    복수의 단일 비트 플립 플롭들을 포함하는 다중 비트 플립 플롭;
    데이터 입력 단자, 인에이블 단자 및 출력 단자를 포함하는 통합 클럭 게이팅 회로 ― 상기 통합 클럭 게이팅 회로의 데이터 입력 단자는 상기 데이터 입력 단자에서 클럭 펄스를 수신하고, 상기 통합 클럭 게이팅 회로의 출력 단자는 상기 다중 비트 플립 플롭에 직접 연결됨 ― ; 및
    상기 통합 클럭 게이팅 회로의 인에이블 단자에, 그리고 상기 다중 비트 플립 플롭에 연결된 제어 회로 ― 상기 제어 회로는 복수의 배타적 OR (XOR) 논리 회로들 및 OR 논리 회로를 포함하고, 상기 OR 논리 회로는 복수의 입력 단자들 및 출력 단자를 포함하고, 상기 복수의 XOR 논리 회로들 각각의 제1 입력 단자는 상기 복수의 단일 비트 플립 플롭들 중 연관된 단일 비트 플립 플롭의 입력 단자와 연결되고, 상기 복수의 XOR 논리 회로들 각각의 제2 입력 단자는 상기 연관된 단일 비트 플립 플롭의 출력 단자에 연결되며, 상기 복수의 XOR 논리 회로들 각각의 출력 단자는 상기 OR 논리 회로의 복수의 입력 단자들 중 하나에 연결되고, 상기 OR 논리 회로의 출력 단자는 상기 통합 클럭 게이팅 회로의 인에이블 단자에 연결됨 ―
    를 포함하고,
    상기 제어 회로의 상기 복수의 XOR 논리 회로들의 각각은,
    입력 데이터와 상기 입력 데이터에 대응하는 상기 연관된 단일 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션(logical disambiguation)을 결정하고,
    상기 입력 데이터와 상기 출력 데이터의 논리적 디스앰비규에이션에 기반하여 상기 OR 논리 회로의 복수의 입력 단자들 중 하나에 출력 데이터를 제공하도록 동작하고,
    상기 OR 논리 회로는,
    상기 복수의 XOR 논리 회로들 각각의 출력 데이터의 논리합에 기반하여 인에이블 신호를 생성하고 ― 상기 복수의 XOR 논리 회로들 각각의 출력 데이터의 논리합에 기반하여 상기 인에이블 신호를 생성하도록 동작하는 상기 OR 논리 회로는, 상기 복수의 단일 비트 플립 플롭들 중 임의의 단일 비트 플립 플롭의 입력 데이터에 대응하는 상기 출력 데이터가 상기 입력 데이터와 다른 경우 상기 인에이블 신호를 생성하도록 동작하는 OR 논리 회로를 포함함 ―,
    상기 인에이블 신호를 상기 통합 클럭 게이팅 회로의 인에이블 단자에 제공하도록 동작하며,
    상기 통합 클럭 게이팅 회로는, 상기 인에이블 단자에서 수신된 상기 인에이블 신호에 기반하여 상기 데이터 입력 단자에서 수신된 상기 클럭 펄스로부터 클럭 신호를 생성하고, 상기 다중 비트 플립 플롭이 토글링하도록 하는 클럭 신호를 상기 다중 비트 플립 플롭에 제공하며,
    상기 복수의 단일 비트 플립 플롭 각각은 스캔-인(scan-in) 단자를 포함하고, 상기 복수의 단일 비트 플립 플롭 중 적어도 하나의 단일 비트 플립 플롭의 스캔-인 단자는 상기 복수의 단일 비트 플립 플롭 중 다른 하나의 단일 비트 플립 플롭의 출력 데이터를 수신하는 것인, 회로.
  2. 제1항에 있어서,
    상기 제어 회로는 상기 복수의 XOR 논리 회로들을 포함하는 디스앰비규에이션(disambiguation) 회로 및 상기 OR 논리 회로를 포함하는 논리합 회로를 포함하는 것인, 회로.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 통합 클럭 게이팅 회로의 출력 단자는 상기 복수의 단일 비트 플립 플롭들 각각의 클럭 입력 단자에 연결된 것인, 회로.
  8. 제7항에 있어서,
    상기 다중 비트 플립 플롭은 8 개의 단일 비트 플립 플롭들을 포함하는 것인, 회로.
  9. 회로로서,
    복수의 단일 비트 플립 플롭들;
    데이터 입력 단자, 인에이블 단자 및 출력 단자를 포함하는 통합 클럭 게이팅 회로 ― 상기 통합 클럭 게이팅 회로의 데이터 입력 단자는 클럭 펄스를 수신하고, 상기 통합 클럭 게이팅 회로의 출력 단자는 상기 복수의 단일 비트 플립 플롭들 각각의 클럭 입력 단자에 직접 연결됨 ―;
    복수의 배타적 OR (XOR) 논리 회로들 ― 상기 복수의 XOR 논리 회로들 각각은 제1 입력 단자, 제2 입력 단자 및 출력 단자를 포함하고, 상기 복수의 XOR 논리 회로들 각각의 제1 입력 단자는 상기 복수의 단일 비트 플립 플롭들 중 연관된 단일 비트 플립 플롭의 입력 단자에 연결되고, 상기 복수의 XOR 논리 회로들 각각의 제2 입력 단자는 상기 복수의 단일 비트 플립 플롭들 중 상기 연관된 단일 비트 플립 플롭의 출력 단자에 연결되고, 상기 복수의 XOR 논리 회로들 각각은, 상기 복수의 XOR 논리 회로들 각각의 출력 데이터로서, 상기 복수의 단일 비트 플립 플롭들 중 상기 연관된 단일 비트 플립 플롭에 대한 입력 데이터와 상기 입력 데이터에 대응하는 출력 데이터의 논리적 디스앰비규에이션을 결정하도록 동작함 ―; 및
    복수의 입력 단자들 및 출력 단자를 포함하는 논리합 논리 회로 ― 상기 복수의 XOR 논리 회로들 각각의 출력 단자는 상기 논리합 논리 회로의 복수의 입력 단자들 중 하나에 연결되고, 상기 논리합 논리 회로의 출력 단자는 상기 통합 클럭 게이팅 회로의 인에이블 단자에 연결됨 ―
    를 포함하고,
    상기 논리합 논리 회로는,
    상기 복수의 XOR 논리 회로들의 복수의 출력들의 논리합을 결정하며,
    상기 복수의 XOR 논리 회로들의 복수의 출력들의 상기 논리합에 기반하여 인에이블 신호를 생성하고 ― 상기 복수의 XOR 논리 회로들의 복수의 출력들의 논리합에 기반하여 상기 인에이블 신호를 생성하도록 동작하는 상기 논리합 논리 회로는, 상기 복수의 단일 비트 플립 플롭들 중 임의의 단일 비트 플립 플롭의 입력 데이터에 대응하는 상기 출력 데이터가 상기 입력 데이터와 상이한 경우 상기 인에이블 신호를 생성하도록 동작하는 논리합 논리 회로를 포함함 ― ,
    상기 통합 클럭 게이팅 회로의 인에이블 단자에 상기 인에이블 신호를 제공하도록 동작하고, 상기 통합 클럭 게이팅 회로는 상기 인에이블 단자에서 수신된 인에이블 신호 및 상기 데이터 입력 단자에서 수신된 상기 클럭 펄스로부터 클럭 신호를 생성하고,
    상기 복수의 단일 비트 플립 플롭 각각은 스캔-인(scan-in) 단자를 포함하고, 상기 복수의 단일 비트 플립 플롭 중 적어도 하나의 단일 비트 플립 플롭의 스캔-인 단자는 상기 복수의 단일 비트 플립 플롭 중 다른 하나의 단일 비트 플립 플롭의 출력 데이터를 수신하는 것인, 회로.
  10. 방법으로서,
    입력 데이터를 다중 비트 플립 플롭의 복수의 단일 비트 플립 플롭 각각에 제공하는 단계 - 상기 복수의 단일 비트 플립 플롭 각각은 스캔-인 단자를 포함함 - ;
    복수의 XOR 논리 회로들 중 하나의 XOR 논리 회로에 의해, 상기 복수의 XOR 논리 회로들 중 하나의 XOR 논리 회로의 출력 데이터로서, 상기 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭으로부터의 출력 데이터의 논리적 디스앰비규에이션을 결정하는 단계;
    상기 입력 데이터와 상기 입력 데이터에 대응하는 상기 다중 비트 플립 플롭의 출력 데이터의 논리적 디스앰비규에이션의 논리합을 결정하는 단계;
    상기 논리합에 기반하여, 상기 다중 비트 플립 플롭에 연결된 통합 클럭 게이팅 회로에 인에이블 신호를 제공하는 단계;
    상기 인에이블 신호에 기반하여, 상기 다중 비트 플립 플롭에 대한 클럭 신호를 생성하는 단계; 및
    상기 복수의 단일 비트 플립 플롭 중 하나의 단일 비트 플립 플롭의 출력 데이터를 상기 복수의 단일 비트 플립 플롭 중 다른 하나의 단일 비트 플립 플롭의 스캔-인 단자에 제공하는 단계
    를 포함하는 방법.
KR1020200183670A 2019-12-30 2020-12-24 다중 비트 플립 플롭 KR102499932B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962954987P 2019-12-30 2019-12-30
US62/954,987 2019-12-30
US17/082,368 US11824538B2 (en) 2019-12-30 2020-10-28 Multi-bit flip flop
US17/082,368 2020-10-28

Publications (2)

Publication Number Publication Date
KR20210086970A KR20210086970A (ko) 2021-07-09
KR102499932B1 true KR102499932B1 (ko) 2023-02-15

Family

ID=76546690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200183670A KR102499932B1 (ko) 2019-12-30 2020-12-24 다중 비트 플립 플롭

Country Status (4)

Country Link
US (1) US11824538B2 (ko)
KR (1) KR102499932B1 (ko)
CN (1) CN113131903A (ko)
TW (1) TW202131630A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11936384B2 (en) 2022-03-29 2024-03-19 Samsung Electronics Co., Ltd. Multi-bit flip-flop circuit with reduced area and reduced wire complexity

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006806A1 (en) * 2001-07-03 2003-01-09 Elappuparackal Tony T. Data-driven clock gating for a sequential data-capture device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130194016A1 (en) 2012-01-31 2013-08-01 Shmuel Wimer System and method for generating a clock gating network for logic circuits
US9525401B2 (en) * 2015-03-11 2016-12-20 Nvidia Corporation Low clocking power flip-flop

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030006806A1 (en) * 2001-07-03 2003-01-09 Elappuparackal Tony T. Data-driven clock gating for a sequential data-capture device

Also Published As

Publication number Publication date
KR20210086970A (ko) 2021-07-09
US11824538B2 (en) 2023-11-21
TW202131630A (zh) 2021-08-16
US20210203311A1 (en) 2021-07-01
CN113131903A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
US11637547B2 (en) Flip-flop cell
US11437982B2 (en) Flip flop standard cell
US20190026418A1 (en) Large cluster persistence during placement optimization of integrated circuit designs
KR20040023762A (ko) 레지스터 파일 및 레지스터 파일의 설계 방법
US9667230B1 (en) Latch and flip-flop circuits with shared clock-enabled supply nodes
KR102386753B1 (ko) 공통 클럭을 사용하는 플립플롭을 포함하는 전자 회로
CN111400169B (zh) 一种自动化生成用于测试软硬件的网表文件的方法及系统
KR102499932B1 (ko) 다중 비트 플립 플롭
US11362648B2 (en) Pre-discharging based flip-flop with a negative setup time
US9483593B2 (en) Method for decomposing a hardware model and for accelerating formal verification of the hardware model
KR20180051708A (ko) 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치
CN112087220A (zh) 半导体设备
US20240056061A1 (en) Multi-bit flip flop
US10754812B2 (en) N-depth asynchronous FIFO including a collection of 1-depth FIFO cells
US10109338B2 (en) Semiconductor devices and semiconductor systems generating internal address
US20220406392A1 (en) Techniques for analog multibit data representation for in-memory computing
US10747924B2 (en) Method for manufacturing integrated circuit with aid of pattern based timing database indicating aging effect
KR102327192B1 (ko) 오류 관리기를 포함하는 반도체 시스템
CN115510783A (zh) 实现时序逻辑用户定义原语的方法、设备及存储介质
US9053271B1 (en) Integrated circuit reset system modification tool
US20180232474A1 (en) Method of timing analysis

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right