본문 바로가기
Computer/디지털시스템

[FPGA] Programmable Logic Devices (PLD): PROM, PLA, PAL, CPLD, FPGA

by 거부기씨 2024. 6. 3.
728x90
반응형

Programmable logic device(PLD)는 사용자가 내부 논리 회로의 구조를 변경할 수 있는 집적 회로이다. 초기에는 사전에 프로그래밍되어 회로를 변경할 수 없는 것이 일반적이었다. 하지만 PLD의 등장으로 사용자가 원하는 임의의 회로를 설계하고 기록해 동작시킬 수 있게 되었다.

 

역사적으로 다양한 종류의 PLD가 존재해왔다. 여기서는 그 중 PROM, PLA, PAL, CPLD, 그리고 자세히 앞으로 자세히 살펴볼 FPGA에 대해 간단히 살펴보도록 하자.

 

1. Simple PLD (SPLD)

상대적으로 구조가 단순한 PROM, PLA, PAL, GAL 등을 SPLD라고 부른다.

1) Programmable Read-Only Memory (PROM)

PROM은 딱 한 번 새로운 내용을 기록할 수 있는 read-only memory(ROM)을 말한다. 한 번 내용이 기록되면 데이터는 영구히 저장되어 바꿀 수 없게 된다. PROM에서는 fixed AND gate와 programmable OR gate로 구성된다. 

 

Erasable Programmable Read-Only Memory (EPROM)

PROM의 일종으로, 필요할 때 기억된 내용을 지우고 다른 내용을 기록할 수 있는 ROM이다. 지우는 방식에 따라서 분류하는데, 자외선으로 지울 수 있는 Ultra-Violet Erasable Programmable Read-Only Memory(UVEPROM)과 Electrically Erasable Programmable Read-Only Memory (EEPROM)가 있다.

 

2)  Programmable Logic Array (PLA)

PLA에서는 programmable AND gate가 programmable OR gate에 연결되어 있다. N개의 input에 대해 2^N개의 AND gate를 가지고, M개의 output을 도출하기 위해 M개의 OR gate를 필요로 한다. 이러한 구조는 sum of products canonical forms으로 많은 논리 회로가 합성 가능하게 한다.

3) Programmable Array Logic (PAL)

PAL은 PROM core를 두고 fixed-OR gate와 programmable-AND gate로 이루어진 배열로 구성된다. 이러한 구조는 PLA와 마찬가지로 sum of products 형태의 식을 구현할 수 있게 한다.

 

programmable switches는 이러한 장치를 생산하는 데에 몇 가지 어려움이 있다. 먼저 제대로 fabricate하기 어렵다는 것이 있고, 구현된 회로의 실행 속도를 감소시킨다는 점이 있다. PLA에서 이러한 단점을 보완하기 위해 OR plane은 고정되게 하고, AND plane만 programmable하게 만든 것을 Programmable Array Logic (PAL)이라고 부른다.

 

4) Genetic Array Logic (GAL)

PAL의 발전된 형태이다.

 

2. Complex PLC (CPLD)

CPLD는 PAL보다는 복잡하고 FPGA보다는 단순한 구조를 가진다. PLA나 PAL는 그 크기에 제한이 있어 이들 여러개를 연결함으로서 확장시키는 것을 Complex PLD 라고 부른다.

 

CLD는 하나의 chip에 여러개의 circuit block이 들어있다. 각각의 circuit block은 PLA 혹은 PAL과 유사하다.

 

각각의 PAL-like block은 interconnection wire로 연결되어 있고, 각각 I/O block 하나 씩을 달고 있다. 

 

PAL-like blck을 더 자세히 살펴보자.

위 그림에서 PAL-like block은 3개의 macrocells을 가진다. (실제 CPLD의 경우 보통 16개 정도의 macrocell로 구성된 PAL-like block을 갖는다.) 각각은 XOR gate에 연결된 4개의 input OR gate을 갖는다. (실제 CPLD의 경우 보통 5개에서 20개 정도의 input OR gate를 갖는다.) XOR gate의 다른 input은 programming하는 것에 따라 0 혹은 1이 연결된다. 또한 macrocell은 filp-flop, multiplexer, tri-state driver를 포함한다.

 

interconnection wiring은 PAL-like block을 연결하는 programmable switches들을 포함한다.

 

commercial CPLD는 2개의 PAL-like block만을 가진 것부터 100개를 가진것 까지 그 크기가 다양하다. 대부분의 CPLD는 SPLD에서 사용하는 것과 동일한 타입의 programmable switch를 가진다. 하지만 programming method는 더 어려운데, 먼저 large CPLD는 200개 이상의 pin이 있고 이 pin은 매우 약해 손상되기 쉽다. 또한, programming을 위해 socket이 필요한데, 이 socket이 매우 비싸다. CPLD를 사는 것보다 더 비쌀 수도 있다.

 

3. Field-Programmable Gate Array (FPGA)

FPGA는 이전에 살펴본 다른 구조들과는 달리 AND, OR plane을 가지지 않는다. 대신 구현을 위한 logic element를 갖는다. FPGA는 다른 것들보다 더 큰 logic capacity를 갖는다. 앞으로 FPGA에 대해 천천히 알아가보도록 할 것이다.

728x90
반응형