본문 바로가기
CSE/디지털 논리

9강 Sequential Logic Circuits : 메모리 소자.(Flip-flop과 latch들)

by 뜨거운 개발자 2023. 5. 24.

복습 Combinatorial Logic Circuit(조합논리 회로) vs. Sequential Logic Circuit (순차논리 회로)

  • Combinatorial Logic Circuit과 Sequential Logic Circuit의 가장 큰 차이점은 입력이다.

Combinatorial Logic Circuit

  • 현재의 입력이 output에 영향을 준다.
  • stateless(memotyless) 라고 부른다.
  • 예시 : arithmetic logic unit (ALU), half adders, full adders, multiplexers, encoders, and decoders

Sequential Logic Circuit

  • 결과에 현재의 입력 뿐 아니라 과거의 입력도 영향을 준다.
  • 예시 : TV 채널
  • sequential logic circuit의 특징 : state(메모리)을 가지고 있다.
    • 메모리와 현재의 입력을 받고 있음을 볼 수가 있다.
    • 여기서 clock이 들어가 있어서 동기화를 진행해준다.

상태(메모리)를 저장하는 방법?

2가지 유형의 메모리 요소가 있다.(목차)

  • latch와 flip-flop은 1비트를 저장할 수 있는 메모리 엘리먼트이다.

1. Latches : SR latch, JK latch, D latch

2. Flip-flops : SR filp-flop, JK flip-flop, D filp-flop

SR Latch

  • SR(set-reset) latch 는 1비트를 저장할 수 있고 상태를 변경한다.
  • input으로 Set 신호는 S로 1비트를 1로 바꾼다.
  • Reset 신호는 1비트를 0으로 만든다.
  • set도 아니고 reset도 아니면 현재 상태를 그대로 가지고 있다.
  • set과 reset을 둘 다 하는 건 허용되지 않는다.
  • 별명 RS 래치
  • 진리표

SR NOR latch

  • SR래치를 여러방법으로 구현 할 수 있는데, 그 중 대표적인 방법이 SR NOR latch이다.
  • NOR게이트의 진리표
  • 심볼
  • hold와 Set의 경우
  • reset 과 not allow의 경우
  • Not allow를 보면 output이 0,0 이 되는 것을 보면 모순이다.
  • 이걸 보면 왜 RS Latch라고 불렸는지 이해 할 수 있었을 것이다.
  • 2개의 NOR게이트를 사용하는 SR latch

SR NAND latch

  • NAND 게이트 2개를 이용해서도 구현 가능하다.
  • 차이점이 좀 생기는데 S와 R이 invert가 되어서 입력이 들어온다.
  • 진리표
  • NAND게이트 진리표
  • 심볼

2개의 NAND 게이트를 사용하는 SR latch 이다.

  • 케이스별로 그림
  • 다양한 방법이 있다. (not not 게이트로도 만들 수 있다.. 다양한 방법이 있다.)

JK Latch

  • JK래치는 SR래치의 확장버전이다
    • 두 입력이 1과 1일 때 출력을 토글한다.
    • SR latch에서 허용되지 않는 상황을 해결한다.
  • 아까 SR latch가 두 종류를 봤지만 일반적으로 SR래치라고 하면 NOR게이트를 의미한다.
  • 이름이 JK인 이유 : 만든사람의 이름을 땀.
  • 진리표와 심볼
  • 가장 간단하게 JK래치를 구현하는 방법은 AND게이트 2개를 SR래치에 붙히는 것이다.
  • J를 SET K를 RESET이라고 생각하면 된다.
    • Case2번을 보면 원래 set인 경우 0,0 으로 해서 변경이 없음을 볼 수가 있다.
    • Case 4번을 보면 계속해서 반복이 된다.!!!
    • 토글 상태를 계속 유지하면 계속 왔다갔다 왔다갔다 하는 것이다.
  • 밑의 flip-flop 을 보면 엣지에 값을 바꾸는 친구라고 보면된다.

D Latch

  • 이 녀석도 SR래치의 확장이다.
  • SR과 JK는 2개의 입력을 받았지만 이건 1개만 데이터로 사용한다.
  • 즉 입력을 저장하는 용도이다.
  • D latch using SR latch 를 사용해서 간단하게 구현 할 수 있다.
  • D래치와 버퍼게이트의 차이점
    • D래치는 입력이 주어지지 않아도 현재 상태를 저장할 수 있다.
    • 버퍼 게이트는 입력이 주어지지 않으면 현재 상태를 유지하지 않는다.
  • 디래치와 SR플립플롭에 주로 SRAM의 기본 구성 요소이다.

Gated SR Latch (Level-triggered SR Flip-flop)

  • 게이트형 SR Latch는 enable signal아 high(or low)일 때 변경된다.
    • 일반 SR래치는 설정신호 또는 리셋 신호가 변경되면 상태를 즉시 변경했다.
    • 다만 gated SR래치는 2개의 입력신호가 Enable signal이 올라감과 동시에 SR latch에 적용된다.
    • 간단하게 설명하면 입력 신호를 high일 때 한번에 할 수 있도록 해준다.
    • synchronous(동기식) SR latch, transparent(투명) high SR latch (opaque(흐릿한) low SR latch), level-triggered SR Flip-flop(이걸 flip flop이라고 부르기도 한다.), clocked SR flip-flop
  • Enable signal이 0이면 hold상태를 유지한다.

Gated JK Latch (Level-triggered JK Flip-flop)

  • Gated JK Latch를 만드는 방법
  • 위에는 JK latch이고 아래가 gated JK latch이다.

Latch vs. Flip-flop

공통점

  • 둘 다 1비트 상태를 저장할 수 있다.

차이점

  1. 회로가 활성화(클록) 신호를 수신하지 못하는 경우 (latch)
    • 이 회로는 비동기 식 회로이다.
  1. 회로가 활성화(클럭) 시그널을 사용한다.(flip -flop)
    • 이 회로는 동기식 이다.
    1. 레벨 트리거 : 활성화 신호가 높거나 낮을 때 상태가 변경된다. (게이트 래치 또는 레벨트리거 플립플롭이라고 부른다.) ⇒ 완벽한 동기화라고 보기는 어렵지만 그래도 살짝은 동기화가 된다고 본다.
    1. 엣지 트리거 : 회로는 클럭 신호가 상승 또는 하강할 때 상태가 변경된다.
  • 주로 엣지트리거를 보통 플립플롭이라고 부른다.
  • 따라서 보통 게이티드 래치는 래치라고 본다. (다만 책마다 다르게 표현할 수 있다.)

Gated D Latch (Level-triggered D Flip-flop)

  • 활성 신호가 높을 때 변경된다.
    • D래치는 데이터 입력이 변경되면 상태를 변경했다.
  • A gated D latches를 gated SR NOR latch와 NOT gate 를 이용해 구현 했다.

D Flip-flop

  • 위에서 설명 했든 flip flop은 엣지 트리거 한 경우만 플립플롭으로 본다.
  • 참고) D 래치는 데이터 입력이 변경되면 즉시 상태가 변경됩니다.
  • 참고) 게이트형 D 래치는 활성화 신호 가 높을 때 상태가 변경됩니다
  • 레벨 트리거에서는 주로 enable signal 이라고 부르지만 edge triger에서는 주로 클럭이라고 많이 표현을 한다.
  • D 플립플롭은 클럭 신호가 상승(또는 하강)할 때 상태가 변경됩니다.

An edge-triggered D flip-flop

  • 구현을 master-slave gated D latches라고 부르는데 2개의 gated D latch를 이용해서 구현한다.
  • 처음 입력을 받는 gated D latch를 master라고 부르고 두번째로 입력 받는 녀석을 slave라고 부른다.

Falling-edge triggered

  • 이 경우는 1에서 0으로 바뀔때만 값의 변경이 발생한다.

Rising-edge triggered

  • 라이징 엣지는 클럭 앞에 not하나 붙혀주면 라이징 엣지가 가능하다.
  • 논 라이징 할 떄는 Q값이 그대로 유지가 되는 것을 볼 수가 있다.
  • 여기서 라이징 엣지 심볼이 세모 모양인 것도 보고 가자.

JK Flip-flop

falling -edge tiggered

  • 위의 그림을 보면 falling edge일때만 slave가 엑티브 되서 상태가 바뀌는 것을 볼 수 가 있다.

설정 및 리셋 신호가 있는 D 플립플롭

  • 일부 플립플롭은 비동기 입력 신호를 수신하여 상태를 초기화합니다.
  • 즉 클럭 신호와 관계없이 S와 R의 설정을 받기도 한다. 클럭과 관계없이 초기화 하고 싶은 경우에 작동을 시킨다.
  • 직접 입력 신호는 SR 래치의 설정(프리셋이라고도 함) 및 재설정(클리어라고도 함)과 유사합니다.

플립플롭의 타이밍 특성

전파 지연시간 발생

이벤트 발생 시간과 출력 변경 시간사이의 간격이 존재한다.

플립 플롭의 특징으로 2가지의 시간을 가지는데 그게 setup time 과 hold time이다.

setup time : 클럭 이벤트 전에 입력 신호가 주어져야 하는 필요시간

  • 즉 완벽하게 동작하게 하기 위해서는 데이터가 clock의 엣지가 들어오기 전에 들어와야하는데 그때까지의 시간이 얼마인지를 보는 것이다.

Hold time: 클럭 이벤트 후 입력 신호가 주어져야하는 필요시간

  • 클럭이 바꼈을 때 데이터를 얼마나 들고 있어야 하는 가?

Aperture time = setup time + hold time 최소 이 시간만큼 데이터가 켜져 있어야 한다.

동기화

  • 두개의 이벤트가 꼭 하나인 것 처럼 맞추는 것이 싱크라고 부른다.
  • 예시 : 립싱크, 캘린더, 오캐스트라.
  • 시간적으로나 내용적으로 하나인 것처럼 하게
  • 시계를 발명한 이유는 - 동기화를 위해서 이다.

디지털 회로에서 동기화가 필요한 이유

  • 회로에는 많은 서브 모듈로 구성되는데 다같이 작동을 해야한다.

클럭 시그널이 없는 래치 같은 경우

  • 입력 데이터는 항상 준비되어 있어야 한다.

레벨 트리거 서킷 (게이티드 래치)

  • 클럭이 high 일때 입력 시그널이 준비되어 있어야 한다.

엣지 트리거 서킷 (flip-flop)

  • 엣지가 발생할 때 데이터가 준비가 되어있어야 한다.

즉 엣지 트리거 서킷이 가장 대기 시간이 짧다.

디지털 컴퓨터에서 클럭 시그널이 있다.

즉 CPU가 100 HZ라는건 1초에 100개의 일을 할 수 있다는 것이다.


Uploaded by N2T

728x90