728x90
Documentation

Documentation

  • Combinational Logic

    • 다수의 입/출력의 조합 : 진리표가 매우 복잡하다
  • Documentation Standrads

    • 정확하고, 제조 가능하며, 유지보수가 가능한 디자인임을 보증
    • 구성요소
      • 스펙
      • 블록 다이어그램 : informal spec
      • schematic diagram : 공식적 스펙
        • 전기적 소자 연결, IC 타입, 핀 구성 등
      • timing diagram : 시그널 순서, 시그널 간 딜레이
      • logic device description : 논리식, 진리표, HDL 혹은 C언어로 작성됨
      • circuit description : 앞서 설명한 내용으로 설명하기 애매한 내용들
  • Block Diagram : 입/출력, 내부 신호 전달

    • 작성 시 과하게 상세하거나, 애매하게 작성하지 않도록 한다.
  • Signal Name

    • 변수 이름의 적절한 지정은 회로 이해에 큰 도움이 된다.
    • Go, Pause, Ready, Error 등등...
    • 신호가 asserted : 신호가 active 상태이다
    • 신호가 deasserted/negated : 신호가 active 상태가 아니다
Active Low Ready- Error.L ADDR15(L) Reset* ~GO \Receive Transmit_L
Active High Ready+ Error.H ADDR15(H) Reset Go Receive Transmit
  • Bubble-to-Bubble Logic Design

    • 일반적으로 Inverting Gate가 Non-Inverting Gate보다 빠르다
    • 신호가 전달될 때 Bubble끼리 전달되도록 한다.
  • Drawing Layout

    • 손으로 그리는 경우, 연결점에 dot(●) 표시를 한다.

    • 프로그램을 통해 그리는 경우, T자 접점은 허용되나, 십자 교차로 연결을 표시하는 것은 금지된다(몇몇 SW에서는 dot표시가 불가)

    • Flat Schematic Structure

      • 복잡한 회로 구성에 사용되는 방식 중 하나
      • 장점 : 회로의 부분을 각 페이지에 나누어 표시하여 모든 회로를 한 눈에 볼 수 있음
      • 단점 : 회로가 복잡해 보인다.
    • Hierarchical(구조적) Schematic Structure

      • 회로 간의 연관관계를 표시
      • 장점 : 회로 구성이 비교적 간단하게 보임
      • 단점 : 한 눈에 보기 힘듦
  • 버스 : 2개 이상의 연관된 신호의 조합

Circuit Timing

  • Timing Diagram : 시간적 제약의 표현을 위해 신호 간의 timing을 나타낸 것

  • data 신호에 대해서, timing diagram은 data 신호가 0인지, 1인지 표시할 필요가 없다. 대신 신호가 겹치는 표시를 이용하여 신호 변화를 표시한다.

  • data bus에 대해 data[7:0]과 같은 식으로 표기하며, 버스 내 신호는 항상 같은 시간 timing 을 갖는다.

  • 모든 회로는 H->L, L->H에 대해 서로 다른 Propagation Delay를 갖는다.

  • 회로 구성시 Propagation Delay는 더 나쁜 값을 고려하여야 한다.

Programmable Logic Devices

  • PLD : 사용자가 제한된 범위 내에서 원하는 기능을 구현 가능한 device

  • PLA(Programmable Logic Arrays) : 2-Level And-Or Device

    • Minterm Expressions : AND 조합이 논리합으로 나타나는 논리식을 표현
    • PLA device : n x m PLA with p product terms
      • n : 입력
      • m : 출력 = p개 입력을 갖는 OR gate 개수
      • p : product 식의 개수 = 2n개 입력을 갖는 AND gate 개수
      • PLA 입력 연결을 연결하지 않으면 1이 됨
      • PLA 입력을 모두 연결하면 0이 됨
      • PLA 출력을 연결하지 않으면 0이 됨
  • PAL(programmable Array Logic) : 최근 가장 많이 사용되는 PLD

    • OR array가 고정된 채, And Array를 설정 가능
    • bidirectional i/o pin : 입/출력이 한 핀에서 사용 가능(내부 회로에서 지원 시)
    • PAL16L8 : 10개의 입력, 6개의 I/O핀, 2개의 출력핀
      • 최대 16개 입력, 8개 출력까지 지원 가능
    • GAL : Generic Array Logic devices
      • 출력단 XOR 게이트의 한쪽 단자를 GND와 fuse하여 출력 신호를 통과시키거나, high로 만들어 invert 신호를 출력할 수 있게 한다.
    • CPLD(complex PLD) : 다수의 PLD를 각 PLD에 원하는 기능을 구현 후 조합한 것
    • EEPLD(Electrically Erasable PLD) : 한번 프로그램 후에도 지우고 다시 재프로그래밍이 가능한 PLD

Decoder / Encoder

  • Decoder
    • code를 푸는 회로
    • 코드, n개 입력, m개 출력으로 구성되어, 출력 포트 중 하나의 포트로만 신호가 출력된다.
    • 7-segment decoder
      • 7-segment : 7개 LED로 문자/숫자를 표시 가능한 display
      • 74x49 seven segment decoder를 이용하여 4-bit 입력을 7-segment 출력으로 변환
      • 위 진리표는 0~9 숫자만을 출력, 점선부분은 don't care terms
  • Encoder
    • 코드르 만드는 회로
    • ex. 2n2^n to n binary encoder : 2n2^n개 숫자를 n-bit 이진수로 변환
    • priority encoder : 입력에 우선순위가 존재
      • 기존 encoder의 경우 I0 입력의 floating 문제
      • 또한 비정상 출력이 존재 : I2, I4가 동시에 1이 되면 2진수 110-비정상 출력
      • GS_L : EI_L이 on(0)이면서 우선순위에 맞게 입력될 때 on
      • EO_L : EI_L이 on이면서 입력 없을 때 on
      • GS_L과 EO_L은 다수 74148 조합 시 사용

Tri-state devices

  • 0, 1이 아닌 제3의 상태(Hi-Z)를 만들어 줌
  • EN이 on일 때만 입력이 출력으로 전달되는 특성을 이용, 버스 출력에 활용 가능하다.
  • dead time : low/high에서 Hi-z로 변하는 시간을 반대로 가는 시간보다 짧게 만들어 버퍼 신호 간 충돌을 막는다.
  • 74245 transceiver : Tri-state buffer를 반대 방향으로 교차하여 방향 신호에 따라 데이터가 통신할 방향을 지시

Multiflexer(MUX)

  • 입력 신호 중 원하는 신호를 선택하여 출력
  • ex. 74151 8x1 multiplexer truth table

Demultiplexer(DeMUX)

  • 입력 신호를 원하는 경로로 출력(Mux의 반대역할)

XOR gate / parity circuit

  • XOR (X=ABX = A\oplus B) : 두 입력이 다를 때 1
  • XNOR (Y=ABY = A\odot B) : 두 입력이 같을 때 1
  • XOR parity gate
    • parity check
      • 신호 전송시 오류를 검출하는 방법
      • 오류 수정은 불가
      • 2진수 신호의 1 개수를 계산하여 even/odd parity에 따라 1의 개수가 짝/홀이 되도록 parity bit를 추가한다.
      • ex. even parity, 110 입력인 경우 parity bit=0
    • 입력을 모두 XOR하면 입력에서 1의 개수가 홀인지 짝인지 확인 가능
      • 110=01\oplus1\oplus0 = 0

  • ex. 에러 검출 회로
  • 입력이 1110000일 때
  1. write가 enable되면 메모리에 D1-D7이 저장
  2. 이 때 74280(parity generator)가 xor 회로로 입력의 1 개수를 계산 (odd=1)
  • write시에 I입력은 항상 0
  1. read가 on일 시 74541 tri-state buffer가 enable되어 메모리 신호를 출력
  2. 이때 저장된 PIN은 POUT을 통해 다시 74280으로 전송 (I = RD * POUT = 1)
  3. 이 신호로 다시 74280이 parity check, odd 신호는 0이 됨(RP 포함, 1 111 0000)
  4. 만약 read 중 8bit 신호 중 하나가 수정된 경우 odd가 1이 되면서 ERROR 신호가 on이 됨(ERROR = RD * ODD)
  • Hamming Code
    • 오류 위치를 검출하고 1bit 오류에 대해 자기정정이 가능한 코드
    • n개 데이터에 k개 parity bit를 더하여 만들어짐
    • 패리티 비트는 2n(n=0,1,...)2^n(n=0,1,...)번째 비트에 위치한다.
    • 데이터 비트 수는 2k1k2n2kk1(k3)2^{k-1}-k-2\leq n\leq2^k-k-1(k\geq3)의 공식을 따른다(k=2일 때 data bit = 1)

Arithmatic and Logic Unit(ALU)

  • Comparator : 비교기
    • XOR 게이트를 사용, 두 입력이 같은지 확인
  • 74x85 comparator
    • AGTBOUT : A가 B보다 크거나, AGTBIN 신호에 1이 전달되면 on
    • AEQBOUT : A와 B가 같으면서 AEQBIN에 1이 전달되면 on
    • ALTBOUT : A가 B보다 작거나, ALTBIN에 1이 전달되면 on
    1. 왼쪽 7485에 AEQBIN에 on(5V)신호를 전달하였고 A,B가 0101로 동일하므로 다음 7485에 AEQB on 전달
    2. 가운데 7485 역시 동일하게 AEQB on 전달
    3. 오른쪽 7485는 A가 1001, B는 1000으로 A가 B보다 더 크므로 AEQBOUT은 0, AGTBOUT에 1로 출력
  • Half Adder
    • 1bit 숫자 2개를 더한다
    • 합과 Carry out을 각각 출력
    • 아래 자리수에의 올림인 Carry in은 더해지지 않음
  • Full Adder
    • 더할 값 + 아래 자리수에서 올림의 합 계산
    • 자리수 올림되면 Carry out으로 출력
    • Ripple Adder
      • 전가산기 다수를 조합하여 여러 자리 수의 덧셈 구현
      • Carry in-out 전달 시간으로 인해 속도가 느림
    • Carry Lookahead Adder(자리올림 예측 가산기)
      • 생성(g) : carry out의 발생 여부
      • 전달(p) : carry in이 1일 경우, 덧셈의 결과가 carry out되는지 여부
      • g=XiYig = X_i * Y_i
      • pi=Xi+yip_i = X_i+y_i(둘 중 하나만 1이면 carry in 발생시 carry out이 발생되므로)
      • S=XYCiS = X \oplus Y \oplus C_{i}
      • Ci=gi1+pi1+Ci1C_{i} = g_{i-1} + p_{i-1} + C_{i-1}
      • 구조가 복잡하여 4bit 이상으로는 잘 사용하지 않음(4bit CLA를 여러개 조합함)
  • ALU
    • 산술, 논리 연산이 가능한 회로
    • 74181 : 입력과 4-bit 선택에 따라 다른 연산 결과가 나타남
728x90

+ Recent posts