Post

10. Design options of Digital System

10. Design options of Digital System

Digital system의 option

  • ASIC: 특정 알고리즘에 특화
  • micro processor / DSP: 일반적인 이용
  • Field-programmable devices
    • PLD, FPGA

Design Alternatives of Digital Systems

  • Total Cost = NRE cost + Unit cost * Volume

NRE Cost : Non-recurring cost로 제품을 개발할 때 1번만 쓰이는 비용. (개발 비용, 디자인 비용 등)

Unit Cost: 하나의 유닛을 만드는 데 드는 비용


FPGA vs ASIC

  • FPGA 장점

    • Low cost
    • low time to market.
    • low Process complexity
    • low NRE cost : ASIC은 수 억대라고 함.
    • simplicity
  • ASIC 장점

    • Design flexibility
    • Density
    • Speed
    • low unit cost

결론

ASIC: High NRE cost, complex but fast. design flexible. Low unit cost

FPGA: Slow, but low NRE cost. High unit cost. Easy to use. Low time to make

→ 특정 개수 이하로는 FPGA가 이득, 그 이후로는 ASIC이 이득

PLD < FPGA < Gate Array < Cell-based ASIC < Full custom ASIC

순으로 비싸고 빠르다.


ASIC

  • 가장 좋은 에너지 효율과 성능을 보여줌.
    • 특정 알고리즘에 특화되어있음.
  • 매우 높은 fabrication cost (거의 수억원)
  • long turnaround time (한번 파운더리에 submit하고 돌아오는 시간)
  • 디버그 불가능; 칩을 새로 만들어야함

→ 근데 대부분의 제품은 단순한 기능을 요구하는데 말이야

Full-custom ASIC

  • Start from scratch. need to design layout of every transistor and wire
  • Best performance, but HIGH NRE cost.

Semi-custom ASIC

  • Gate-array based ASIC

    • 배열로다가 p와 n 트랜지스터가 fabricated되어있음
    • metal layer로 연결되어있으며, NAND나 NOR 게이트를 형성하고 있음. → metal layer만 변경하면 된다.
  • Standard Cell Based ASIC

    • Use Predeisgned logic cell (AND/OR, FF)
    • Fixed height, variable-width.

Standard Cell Library

  • For most process, standard cell library is provided

→ 하나하나 트랜지스터를 짜지 않고로 해당 게이트들을 이용해 나만의 회로를 구현할 수 있다.

  • Behavior model
  • SPICE model
  • Delay info
  • Physical Layout
  • Abstract Model

Field-Programmable Device

→ One-time programmable (or erasable)

  • FPGA
  • PLD & CPLD

PLD (Programmable Logic Device)

  • 2개의 레벨 (AND-OR)로 이루어진 배열을 사용한다.
  • SOP를 위한 programmable block으로 사용한다.

→ 각 array를 연결을 시키거나 끊음으로써 프로그래밍한다.

(1) Read-only memory (ROM)

  • AND array는 모든 minterm을 만들도록 고정되어있다. (ex. ABC, A’BC, AB’C, ABC’, A’B’C, A’BC’ …)
  • OR gate는 프로그램 가능하다.

→ 안쓰는 minterm들이 너무 많다.

(2) Programmable Logic Array (PLA)

  • AND OR array 모두 프로그램 가능하다.

→ 이러니 or을 잘 안쓰게 된다. 고정시키자.

(3) Programmable Array Logic (PAL)

  • OR array 고정, AND를 프로그래밍.

→ Fuse 방식으로 이미 연결된 것을 끊어가며 프로그래밍할 수 있고,

Anti-Fuse 방식으로 연결해가며 할 수도 있다.


ROM Structure

  • n개의 인풋과 m개의 아웃풋.

n개의 인풋을 decoder를 이용해 AND array처럼 사용한다.

→ n개의 variable.

예시)

A1, A0O1, O0
0001
0110
1000
1111

→ O1은 1 (01)과 3(11)에서 켜야하고. O0는 0, 3에서 켜야한다.

해당 값에만 회로를 연결하여 OR gate로 넘겨준다.


PLA structure

AND와 OR가 모두 programmable하다.

→ 안쓰는 minterm을 줄이기 위해 없앴다보니, implicant 개수가 한정되어있다.

  • Boolean Algebra로 최대한 minterm을 줄여 SOP form을 만들자.

PAL structure

AND만 program 가능

→ 장점

  • Less expensive than PLA. Only AND array is programmable.

  • Combinational PALs → Implement comb logic

  • Registered PALs → Implement seq. logic

  • When designing PAL, logic should be simplified.

    • AND terms cannot be shared. (minterm을 여러군데 사용할 수 없다)
    • OR gate가 한정되어있다.

Complex Programmable Logic Device

Combine many PALs with programmable interconnects.


FPGA

  • 구성요소
    • Configurable logic block (CLB)
    • Programmable Interconnection
    • I/O block

→ Can implement any logic function! (but slow..)

  • CPLD와 비슷하나, 각각의 로직블럭은 더 단순하다. (CLB)

  • 여기서 CLB는 lookup table (LUT)과 FF을 말한다.

  • Modern FPGA는 디지털 신호 처리 (DSP) 슬라이스와 BRAM을 갖는다.

  • FPGA는 천개 이상의 lut로 scale-up이 가능하다.


Look-up table

logic gate를 Program 하자.

→ A & B이면 truth table을 작성할 수 있다.

0 0 - 0

0 1 - 0

1 0 - 0

1 1- 1

이에 맞게 MUX와 1-bit wide SRAM을 이용하여 각 주소 0, 1, 2, 3에 0 , 0, 0, 1을 저장해놓으면 AND Gate가 완성된다.


FPGA Architecture

(a) Matrix type

→ More flexible (좀 더 확장 가능)

(b) Row type

→ faster (붙어 있으니까)

image.png

각 사각형은 CLB를 나타냄.


CLB

Lookup table과 FF로 구성.

→ 2개의 4-input LUT, 1개의 3-input LUT, 2개의 FF

또는 2개의 4인풋 함수, 5인풋 함수로도 프로그래밍 가능하다. ex) 0_1111 1_0000 → 앞 1 bit를 MUX select bit로 넣는 방식.


Programmable Interconnect

Route signal between CLB.

→ long line with some skipping.

  • Programmable switch matrix
    • Six pass transistor로 연결

IO Block

  • provide interface between IO pads and internal logic

Modern FPGA

  • Device Capacity is measured as ‘logic cells”

→ Lookup table 개수가 아니라, 4-input LUT로 계산했을 때의 기준. (Slice = 6 input LUT 4개 정도)

Slice

  • Each slice have four 6-input LUTs and 8 ffs.
  • SLICEM : can be configured as SRAM, shift reg. or comb.
  • SLICEL : can only be configured as comb.

Modern FPGA Slice

(1) 7 Series SLICEL

→ 4개의 논리 함수를 만든다.

→ 8개의 저장공간도 있다.

→ Carry-logic이 있다!

(2) DSP48 SLice

  • ALU가 embedded되어있다.
  • P=B*(A+D)+C 의 로직을 수행할 수 있다.

(3) Block RAM (BRAM)

  • 36 Kbits data를 저장 가능.
    • 2개를 따로따로 쓸 수 있고, 아니면 한번에 쓸수도 있다. 따로 쓰면 18kbit이겠죠

Designing with FPGA

  • Used for prototyping
    • Much faster than software simulation
    • Enable system lebel verification
    • Limited capacity.
  • Now many products uses
    • Huge reduction in design cost
    • Energy efficiency comparable to ASIC
    • Still better performnace than PLD

FPGA compared to ASIC

장점

  • manufacturing time 감소
  • 프로토타이핑 cost 감소
  • correct design으로 고치거나 스펙 바꿀 때의 비용 감소
  • design iteration을 돌리기 쉽고 빠름
  • 몇개 안만들거면 더 싸다.
  • 에너지 소모 적음

단점

  • Less dense
  • Programmability를 달성하기 위해 많은 리소스가 필요하다
  • 성능이 더 낮음
  • FPGA는 많이 만들면 더 비싸다. (unit cost가 커서)
This post is licensed under CC BY 4.0 by the author.