프로그래밍[Univ]/하드웨어

[하드웨어] Sequential Logic Part 1

Cloud Travel 2012. 3. 28. 18:46

* Sequential Logic

 - 현재 들어온 Input과 이전에 들어온 Input 값의 조합으로 Output이 결정된다.

 - 이전 값을 저정할 메모리가 필요하다.

 - State Variable 

  > State : 미래에 회로가 갖을 값에 대한 정보를 State라고 한다.

  > 이 State의 집합을 state variable라고 한다.


* Laches And Flip-Flops

 - 단일로(1bit)의 State를 저장하는 요소들

 - Memory Building : 안정된 상태를 갖는 2개의 요소로 값을 저장한다.

 - N개의 안정된 상태를 갖는 요소는 logN bit의 state variable이 필요하다.

 ⓐ Bistable Circuit(양안정 회로)

  

  1) Q = 1 

   > I1은 0이 된다는 것이다. 회로를 순회하여 다시 I1에 도착해도 I1은 0이다.

     (이런 경우를 안정됬다고 한다.)

  2) Q = 0

   > 1)의 경우와 같이 순환해도 같은 값을 갖는 안정된 상태이다.

  3) Q = ?

   > 이 경우는 전압이 0과 1사이의 중간에 위치하여(전압 변화중, clock edge) 결과 값을 예측할 수 없다.

      (metastable(준안정)상태라고 한다.)

  ※ 위의 예에서 하나를 알면 다른 한 쪽도 알 수 있다.

      Q = 0 이면, inverse Q = 1 또는 Q = 1이면, inverse Q = 0이 된다.

      State variable로 Q하나만 존재하면 가능하다.


 ⓑ SR Latch

  - 2개의 NOR 게이트의 쌍으로 구성

  - 2개의 input, S(set, Output state 값을 1로 만듬)과 R(reset, Output state 값을 0으로 만듬)을 갖는다.

  - SR Latch는 가장 최근에 회로가 Reset됐는지, Set됐는지를 판단하는 역할을 한다.

    


 ⓒ D Latch(= transparent latch, level-sensitive latch)

  - SR latch의 문제점 보안

   > S와 R이 동시에 활성될 가능성이 존재한다.

   > 어떤 값(what)이 언제(when) 들어갈지를 정할 수 없다.

  - 2개의 Input, CLK(clock, 언제 회로를 넘길 것인가를 결정)와 D(data, 어떤 값을 활성 시킬 것인가)을 가지며,

    2개의 output은 SR Latch의 S와 R로 연결된다.

  - 2개의 AND gate와 1개의 Inverter를 가지며, 다음과 같다.

  

  - CLK의 상태에 따라 D의 값을 그대로 통과시켜주는 투명한(transparent)상태와 

    D의 이동을 단절하는 불투명한(opaque)상태로 변한다.

    (특정 시간에만 값을 전달 할 수 있게 됐다.)

  - CLK가 1일 때만 Data Copy가 일어난다.

 

 ⓓ D Flip-Flop

  - 2개의 D Latch와 1개의 inverter로 구성, 각각의 latch를 Master와 slave로 부른다.

  

  - clock의 상태에 따라 master가 투명한 상태, slave가 불투명한 상태가 된다. 이 역도 성립한다.

  - CLK이 0에서 1로 상승 엣지인 상태에서만 Data를 Q로 Copy해준다.

  ※ D latch vs D Flip-Flop

  

 > D-latch는 CLK가 1일때 D값을 따라 움직이는 것을 알 수 있다.(파란 네무 구간)

  > D-FlipFlop은 CLK이 상승하는 구간(0>1)에서만 D값을 반영 하는 것을 알 수 있다.(검정선)


ⓔ Register

  - CLK입력을 공유하는 N개의 Flip-Flop의 묶음

  - CLK의 값에 의해 모든 값이 함께 갱신된다.

 


 ⓕ Enable Flip-Flop(활성화된 Flip Flop)

  - Clock과 ENABLE의 AND게이트 연결이나 ENABLE값에 의한 Mux를 구현하여 switch역할을 한다.

  - 1차적으로 ENABLE이 1일때 D값이 넘어가는데, 2차적으로 CLK가 상승 엣지상태에 있어야지 D값이 Q로간다.

   


 ⓖ Resettable / settable Flip-flop

  - Reset의 중요성 : 전원을 켰을때 Flip-Flop에 어떤 값이 들어갈지 모른다.

                     이를 하나의 값인 0으로 리셋하고 시작한다.

  - Synchronously, Asynchronously한 방법으로 초기화가 가능하다.

   > Synchronously 방법 : D값과 inverse RESET값을 AND게이트로 연결하여 활성화여부를 결정하게 한다.

    ※ inverse RESET : active low신호로 0일 때 RESET기능을 수행한다.

    ※ settable : reset의 반대. and -> or 


* 동기식 논리회로(Synchronous Sequential Circuit)

 - 순차회로는 원치 않는 경쟁 또는 불안전한 동작을 갖는다. 

   이는 에러를 방생시키기도 하며 이를 분석하는 것은 매우 힘들다.

 - 순차회로에 register를 넣는 것으로 이런 순환적 문제를 방지한다.

  > register가 들어갔다는 것은 CLK edge(0>1)상태에서만 전달이 발생하다는 것이다.

 - 동기식 순차회로의 성질

  ⓐ Every circuit element is either a register or combinational circuit

   > 모든 회로요소는 레지스터 이거나 조합회로이다.

  ⓑ At least one circuit element is Register

   > 적어도 하나의 회로 요소는 레지스터이다.

  ※ ⓐ,ⓑ 레지스터 자체에 순환적 요소가 있는 것을 생각하자!

  ⓒ All registers receive the same clock signal

   > 모든 레지스터는 하나의 CLK로 부터 값을 받는다.

     (이 값들은 동식에 적용되야 하므로, 어떠한 지연도 있어서는 안된다.)

  ⓓ Every cyclic path contains at least one register

   > 모든 순환경로에는 적어도 하나의 register와 연결되어야 한다.