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

[하드웨어] Combinational Circuit Part 1

Cloud Travel 2012. 3. 15. 10:44
* circuit(회로) = 분리된 값을 연결해 주는 과정
 

 - functional specification : Input과 Output의 관계, Boolean Algebra
 - Timing specification : Input이 Output으로 되는 시간(지연시간)

* 용어
 - circuit : element들의 집합
 - element : circuit안의 하나의 작은 회로(input, output, specification을 가지고 있다.)
 - node : 어떤 이산가치 변수(voltage)를 전달하는 전선
  > input node : 외부로부터 값을 받는 선
  > output node : 외부로 값을 전달하는 선
  > internal : circuit의 input이나 output 관계하지 않고, element를 연결해주는 선
               Input과 Output으로 모두 사용되는 노드
  ex)
  
  >Circuit은 3개의 element를 가지고 있다.(E1,E2,E3)
  >node는 총 6개로 3개의 input node와 2개의 output node,
   E1과 E2를 연결해주는 Internal node 1개를 가지고 있다.

* Digital Circuit의 종류
 - Combinational(조합)
  > 오직 현재 들어오는 input만을 사용(조합)하여 결과 값을 도출한다.
  > 이전 input값을 저장할 memory가 필요없다. (memoryless)
  > ℄기호를 사용하여 나타낸다.
 - Sequential(순열)
  > 현재 input값과 이전에 들어온 input값을 사용하여 결과 값을 도출한다.
  > 이전 input값을 저장할 memory가 필요하다.

* Combinational Digital Circuit을 만족할 조건
 - 모든회로 element는 그 자체로 combinational해야 한다.
 - 모든 노드는 Input 또는 Output으로 정확하게 element를 연결해야 한다.(합선X)
   모든 회로의 element는 여러개의 input을 받아도, 하나의 output을 내야한다.
 - 순환을 가져서난 안된다.
   

* Boolean Equations
 ⓐ 용어(개념) 
  - Complement of a variable : inverse variable  ( Inverse A is a complement of A variable )
  - literal : variable or its complement variable ( A, inverse A)
  - 일반적으로 A를 true form, inverse A를 complementary form이라고 한다.
   > 그렇다고 A가 참이고 inverse A가 거짓이 되는 것은 아니다,
  - product : leteral들의 AND조합
   ex) ABC, AB, BC, A, B
  - minterm : 모든 input 값을 포함하고 있는 product
   ex) ABC
  - sum : leteral들의 OR조합
   ex) A+B+C, A+B, A+C, B, C
  - maxterm : 모든 input 값을 포함하고 있는 sum
   ex) A+B+C
 ⓑ 우선순위 : OR보다 AND를 우선적으로 실행한다.

* Sum of Products Form / Products of Sum Form
 - Sum of Products Form
  > 모든 Boolean equation은 SOP로 표현가능하다.
  > products들의 sum : AND들의 합. minterm들의 합.
  > 만드는 방법 
   ⓐ 진리표를 만들어 각각의 경우의 minterm을 만든다.
    > minterm은 그 값을 사용하여 "AND한 결과가 참"이 나오게 만들어야 한다.
   ⓑ "Output이 True"인걸 찾는다.
   ⓒ 뽑아낸 결과를 각각 더한다.(OR연산)
 - Product of Sums Form
  > 모든 Boolean equation은 POS로 표현가능하다.
  > sum들의 products : OR들의 곱. maxterm들의 곱.
  > 만드는 방법
   ⓐ 진리표를 만들어 각각의 경우의 maxterm을 만든다.
    > maxterm은 그 값을 사용하여 "OR한 결과가 거짓"이 나오게 만들어야 한다.
   ⓑ "Output이 False"인 것을 찾는다.
   ⓒ 뽑아낸 결과를 각각 곱해준다. (AND연산)
 - 결과값에서 0이 많으면 SOP, 1이 많으면 POS를 사용한다.

   

 
* Boolean Algebra
 - Axioms (증명할 수 없지만, 진리로 받아지는 것)
   

 - Theorms (Axioms를 통해 증명을 해낸 것)
   

   > Morgan's Theorem : inversion circle(Not symbol) = bubble
  NOR = Not input AND
  NAND = Not input OR
 - 부울 대수는 모든 경우의 것을 보여서 증명한다. = perfect induction 이다.

* Boolean Equation을 Logic gate로 그리는 방법
 1) Input은 왼쪽(또는 상단)에 그려준다.
 2) Output은 오른쪽(또는 바닥)에 그려준다.
 3) 가능한한 gate는 왼쪽에서 오른쪽방향으로 그려준다.
 4) 서로 교차하는 전선의 경우는 교차점에 점을 찍어 준다.
    (그렇지 않다면 교차점을 비워놓는다)
 5) 전선은 항상 T자 모양으로 그려준다.