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