• 2023. 8. 19.

    by. 도 현

    반응형

    집적회로 기술의 성장은 같은 칩 안에 여러 개의 PLD를 포함하고 있는 것과 같은 프로그램 가능한 집적회로의 개발을 가능하게 하였다. 이러한 칩들을 복잡한 프로그래머블 논리소자(Complex Programmable Logic Device, CPLD)라고 부른다. 플립플롭(Flip-Flop) 같은 메모리 요소를 같은 IC 위에 포함할 수 있다면, 소형 디지털 시스템을 하나의 CPLD를 가지고 구현할 수 있다.

    CPLD는 PAL 개념의 확장이다. 일반적으로, CPLD는 프로그램할 수 있는 연결선 행렬 구조와 더불어 PAL과 같은 로직 블록(Logic Block)으로 구성된 IC이다. 보통, CPLD는 500~10,000개의 논리 게이트를 가지고 있다. 근본적으로 몇몇 PLD들은 크로스바(Crossbar)와 같은 스위치를 사용하여 연결되고 같은 IC 안에서 제작되어 있다. N x M 크로스바 스위치는 각각 N개의 입력 라인이 동시에 M개의 어떤 출력 라인에도 연결될 수 있다. 이러한 스위치들이 만드는 데는 비용이 많이  스위치를 사용함으로써 예측할 수 있는 타이밍(timing)을 얻을 수가 있다. 대다수의 CPLD들은 전기적으로 지울 수 있고, 재프로그램할 수 있어서 때때로 EPLD(Erasable PLD)라고 하기도 한다.

    일반적인 CPLD는 기능 블록(Function Block)들로 그룹화된 여러 개의 매크로셀(macrocell)로 구성되어 있다. 기능 블록들과의 연결은 상호연결 어레이(interconnection array)에 의해 이루어진다. 각각의 매크로 셀은 플리플롭과 입력들이 AND 게이트 어레이와 연결된 OR 게이트를 포함하고 있다. 몇몇 CPLD들을 PAL 기반이며, 이 경우 각각의 OR 게이트들은 고정 AND 게이트 셀과 조합되어 있다. 그 외의 CPLD들은 PLA 기반이며, 기능 블록 안의 AND 게이트의 출력은 어느 것이든 그 블록 안의 OR 게이트 입력과 연결될 수 있다. Xilinx 사, Altera사, Lattice Semiconductor사, Cypress사, Atmega사 등은 오늘날 CPLD를 공급하는 주요 벤더들이다. 주요 CPLD들을 비교하고 있다. 몇몇 벤더는 게이트 용량을 사용할 수 있는 게이트 수로 표시하기도 하고, 논리 요소(Logic Element)로 표시하기도 한다.

     

    1. Xilinx XCR3064 XL CPLD

    Xilinx 사는 두 개의 주요한 CPLD, 즉 CoolRunner와 XC9500을 보유하고 있다. 이 CPLD는 네 개의 기능블록을 가지고 있으며, 각각의 기능블록은 16개의 연관된 매크로 셀(MC1,MC2,....)을 포함한다. 각각의 기능블록은 PLA처럼 구성되어 있는 프로그램 가능한 AND-OR 어레이이다. 각각의 매크로 셀은 플립플롭과 멀티플렉서를 가지고 있으며, 이러한 플립플롭과 멀티플렉서는 기능블록에서 입출력(I/O) 블록 또는 상호연결 어레이(Interconnect Array(IA))들과의 신호 연결을 위해 사용된다. 상호연결 어레이는 마이크로 셀의 출력 또는 I/O 블록의 신호들을 선택하고 이들을 연결하여 기능블록의 입력으로 보내준다. 따라서 한 개의 기능 블록 안에서 생성된 신호들은 다른 기능블록의 입력으로 사용될 수 있다, I/O 블록은 CPLD 내부와 집적회로의 양방향성(Bidirectional) I/O 핀들과의 인터페이스를 제공한다. PLA에서 생성된 신호가 어떻게 매크로 셀을 통하여 I/O 핀들에 전해지는지를 보여준다. IA로부터 36개의 입력(또는 그들의 보수)은 48개의 AND 게이트 입력으로 연결된다. 각각의 OR 게이트는 AND 게이트 어레이로부터 48개까지의 곱의 항(Product Term)을 입력받는다. 첫 번째 멀티플렉서는 OR 게이트의 출력 또는 그 보수를 선택하기 위해 프로그램될 수 있다. 매크로 셀의 출력단에 있는 두 번째 멀티플렉서는 조합논리회로의 출력(G) 또는 플립플롭의 출력(Q)을 선택하기 위해 프로그램된다. 이 출력들이 상호연결 어레이(IA)와 출력 셀에 전해진다. 출력 셀은 I/O 핀과 연결된 3상태 버퍼를 가지고 있고, 버퍼의 인에이블(Enable) 입력 신호는 몇몇 소스들로부터 프로그램된다. I/O 핀이 입력으로 사용될 때, 버퍼는 반드시 디스에이블(Disable)되어야 한다.

    각각 두 개의 입력과 출력 그리고 두 개의 플립플롭을 가지고 있는 밀리 순차회로 머신(Mealy sequential machine)이 CPLD 상에서 어떻게 구현되는지 보여준다. 플립플롭의 D 입력을 생성하기 위한 두 개의 매크로 셀, Z 출력을 생성하기 위한 두 개의 매크로 셀, 즉 총 네 개의 매크로 셀이 필요하다. 플립플롭 출력들은 결선 행렬을 경유해서 AND 어레이 입력에 연결된다. 요구되는 곱의 항 수는 D와 Z에 대한 논리식의 복잡도에 의존한다.

    반응형