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

[하드웨어] Combinational Circuit Part 3

Cloud Travel 2012. 3. 23. 10:52

* Karnaugh Maps(K-maps)

 - 최대 4개의 변수를 boolean algebra를 최소화 할 수 있다.
 - AB + A(inverse B) = A를 이용
 - 카누프 맵은 Gray Code에 의거하여 겉이 포장된다.
  > Gray Code : 인접한 항에서 오직 하나의 변수 만이 다르게 하기 위해서 사용
 - K-maps으로 인해 나온 식은 Sum-of-product의 형식으로 최소화 되서 나온다.
 - K-maps의 규칙
  ⓐ 모든 1을 묶기 위한 최소한의 원의 수를 구한다
  ⓑ 각각의 원은 반드시 1로 차있어야 한다.
  ⓒ 각각의 원은 가능한 커야한다.
  ⓓ 각각의 원의 크기는 2^n이여야 한다.(1,2,4,8)
  ⓔ 만약 맵의 원을 줄일 수 있다면, 하나의 1은 여러번 묶일 수 있다.

   ex)
   

 - K-maps에 Don't care X가 존재하면 맵은 더욱더 간단하게 표현 될 수 있다.
  ex) Seven-segment display decoder
   
   ※ Prime Implecant : K-maps에서 최대한의 크기로 만들 수 있는  circle(원)
 
* Tri-state buffer
   - S가 1이면 통과, S가 0이면 통과시키지 않는다.
   - S가 들어가기전에, not symbol을 만나면 결과는 반대로 일어난다.
      (not symbol은 buffer에 종속되있다.)
   

* Combinational building blocks
 - 복잡한 시스템을 만들기 위해서 여러 논리를 결합하여 하나의 더큰 빌딩을 만든다.
 - 추상원리가 필요하다.
 - full adder, priority circuit, seven-segment display decoders, multiplexers, decoders 
 ⓐ multiplexers(= mux)
  > 선택된 신호의 값에 따라 Input들의 조합 중 하나의 값을 통과시켜 주는 것.


   ex) 2개의 input이 있다면 2개의 select bit(스위치)가 필요하다.
   
  > 위의 mux를 Tri-state buffer로 표시하면...
    
  > mux를 사용하면 AND, OR, XOR, NAND, NOR, XNOR등을 표현 할 수 있다.
   ex) Y = AB
    
   ※ Reducing : 진리표를 2개씩 묶어서 행을 반으로 줄이는 법으로 규칙이 보이면 사용한다.

  ⓑ decoders

  > N개의 입력과 2^N개의 출력을 가진다. (mux와 반대개념)
  > 2^N개의 output중 단, 한개 만이 1이 된다. 이를 one-hot output이라고 한다. 

  ex) 
   
   
  > mux처럼 decoder를 이용해서도 로직을 표현할 수 있다.

* Timing
 - Input이 들어와서 Output으로 변하는데 delay가 존재한다.
 - circuit설계에서 timing은 매우 중요한 역할을 한다.
 ⓐ Propagation delay : Input에서 Output으로 변하는데 걸리는 최대 시간.
 ⓑ Contamination delay : Input에서 Output으로 변하는데 걸리는 최소 시간.

 
  > Glitches나 외부영향(저항, 속도의 제한성, gate 수)등에 따라서 output의 변화가 한번에 일어 나지 않는다. 
  > Propagation delay와 contamination delay가 존재하는 이유는 회로의 값의 변화(상승, 하강)시간의 차이와
     회로를 이동하는데 걸리는 시간이 상의하고, 온도가 더워져서 이다.

   ex)
   
   2개의 AND gate는 똑같다고 가정.

* Glitches
 - 하나의 Input 변화가 여러개의 output에 영향을 준다. 
 
 - 위 회로를 통해서 예를 들면...
  
 - Glitches를 없에기 위한 방법
  ⓐ K-map에서 primary implecant 경계에 만들 수 있는 원이 있다면, 원을 그린다.
      (K-maps에 예제 참조)
 - Glitches를 막는 것은 매우 힘든일이다. 단지 이러한 것이 존재한다는 것을 인지하고 있자.