Lógica de matriz programável - Programmable Array Logic

MMI 16R6 em 20 pinos DIP
AMD 22V10 em DIP de 24 pinos

Programmable Array Logic ( PAL ) é uma família de semicondutores de dispositivos lógicos programáveis usados ​​para implementar funções lógicas em circuitos digitais introduzidos pela Monolithic Memories , Inc. (MMI) em março de 1978. MMI obteve uma marca registrada no termo PAL para uso em "Programável Circuitos Lógicos de Semicondutores ". A marca comercial é atualmente detida pela Lattice Semiconductor .

Os dispositivos PAL consistiam em um pequeno núcleo PROM (memória somente leitura programável) e lógica de saída adicional usada para implementar funções lógicas desejadas específicas com poucos componentes.

Usando máquinas especializadas, os dispositivos PAL eram "programáveis ​​em campo". PALs estavam disponíveis em várias variantes:

  • " Um tempo programável dispositivos" (OTP) não pôde ser atualizado e reutilizados após a programação inicial (MMI também ofereceu uma família semelhante chamado HAL, ou "Lógica de matriz dura", que eram como dispositivos PAL, exceto que eles foram máscara-programada no fábrica.).
  • Versões apagáveis ​​por UV (por exemplo: PALCxxxxx por exemplo: PALC22V10) tinham uma janela de quartzo sobre a matriz do chip e podiam ser apagadas para reutilização com uma fonte de luz ultravioleta, como uma EPROM .
  • Versões posteriores (PALCExxx, por exemplo: PALCE22V10) eram dispositivos apagáveis ​​por flash.

Na maioria das aplicações, GALs apagáveis ​​eletricamente são agora implantados como substitutos diretos compatíveis com pinos para PALs programáveis ​​uma vez.

História

Antes de os PALs serem introduzidos, os projetistas de circuitos lógicos digitais usavam componentes de integração em pequena escala (SSI), como os da família TTL ( lógica transistor-transistor ) da série 7400 ; a família 7400 incluiu uma variedade de blocos de construção lógicos, como portas ( NOT , NAND , NOR , AND , OR ), multiplexadores (MUXes) e demultiplexadores (DEMUXes), flip-flops (tipo D, JK, etc.) e outros . Um dispositivo PAL normalmente substituiria dezenas de tais pacotes lógicos "discretos", então o negócio SSI declinou quando o negócio PAL decolou. Os PALs foram usados ​​com vantagem em muitos produtos, como minicomputadores , conforme documentado no livro best-seller de Tracy Kidder , The Soul of a New Machine .

Os PALs não foram os primeiros dispositivos lógicos programáveis ​​comerciais; A Signetics vendia seu array lógico programável em campo (FPLA) desde 1975. Esses dispositivos eram completamente desconhecidos para a maioria dos projetistas de circuitos e eram considerados muito difíceis de usar. O FPLA tinha uma velocidade operacional máxima relativamente lenta (devido a ter matrizes AND programáveis ​​e OR programáveis), era caro e tinha uma reputação ruim de testabilidade. Outro fator que limitou a aceitação do FPLA foi o pacote grande, um pacote duplo em linha (DIP) de 28 pinos de 600 mil (0,6 "ou 15,24 mm) de largura .

O projeto para criar o dispositivo PAL foi gerenciado por John Birkner e o circuito PAL real foi projetado por HT Chua . Em um trabalho anterior (na fabricante de minicomputadores Computer Automation ), Birkner desenvolveu um processador de 16 bits usando 80 dispositivos lógicos padrão. Sua experiência com a lógica padrão o levou a acreditar que os dispositivos programáveis ​​pelo usuário seriam mais atraentes se os dispositivos fossem projetados para substituir a lógica padrão. Isso significava que os tamanhos das embalagens deveriam ser mais típicos dos dispositivos existentes e as velocidades deveriam ser melhoradas. A MMI pretendia que os PALs tivessem um custo relativamente baixo (menos de $ 3). No entanto, a empresa inicialmente teve sérios problemas de rendimento de fabricação e teve que vender os dispositivos por mais de $ 50. Isso ameaçou a viabilidade do PAL como um produto comercial, e a MMI foi forçada a licenciar a linha de produtos para a National Semiconductor. PALs foram posteriormente " terceirizados " pela Texas Instruments e Advanced Micro Devices .

Tecnologias de processo

Os primeiros PALs eram componentes DIP de 20 pinos fabricados em silício usando tecnologia de transistor bipolar com fusíveis de programação de titânio-tungstênio programáveis ​​de uma só vez (OTP). Dispositivos posteriores foram fabricados pela Cypress , Lattice Semiconductor e Advanced Micro Devices usando a tecnologia CMOS .

Os PALs originais de 20 e 24 pinos foram identificados pelo MMI como dispositivos de integração de média escala (MSI).

Arquitetura PAL

Os elementos programáveis ​​(mostrados como um fusível) conectam as entradas verdadeiras e complementadas às portas AND. Essas portas AND, também conhecidas como termos de produto , são combinadas com OR para formar uma matriz lógica de soma de produtos .

A arquitetura PAL consiste em dois componentes principais: um plano lógico e macrocélulas lógicas de saída.

Plano lógico programável

O plano lógico programável é uma matriz de memória somente leitura programável (PROM) que permite que os sinais presentes nos pinos do dispositivo, ou os complementos lógicos desses sinais, sejam roteados para macrocélulas lógicas de saída.

Dispositivos PAL têm matrizes de células de transistor dispostas em um plano "OR fixo, E programável" usado para implementar equações lógicas binárias de " soma de produtos " para cada uma das saídas em termos de entradas e feedback síncrono ou assíncrono de as saídas.

Lógica de saída

Os primeiros PALs de 20 pinos tinham 10 entradas e 8 saídas. As saídas eram ativas baixas e podiam ser registradas ou combinatórias. Membros da família PAL estavam disponíveis com várias estruturas de saída chamadas " macrocélulas lógicas de saída " ou OLMCs. Antes da introdução da série "V" (para "variável"), os tipos de OLMCs disponíveis em cada PAL eram fixados no momento da fabricação. (O PAL16L8 tinha 8 saídas combinacionais e o PAL16R8 tinha 8 saídas registradas. O PAL16R6 tinha 6 registradas e 2 combinacionais, enquanto o PAL16R4 tinha 4 de cada.) Cada saída poderia ter até 8 termos de produto (efetivamente AND gates); entretanto, as saídas combinacionais usaram um dos termos para controlar um buffer de saída bidirecional. Havia outras combinações que tinham menos saídas com mais termos de produto por saída e estavam disponíveis com saídas altas ativas (série "H"). A série "X" de dispositivos tinha uma porta XOR antes do registro. Havia também versões semelhantes de 24 pinos desses PALs.

Essa estrutura de saída fixa freqüentemente frustrava os designers que tentavam otimizar a utilidade dos dispositivos PAL porque estruturas de saída de diferentes tipos eram freqüentemente exigidas por seus aplicativos. (Por exemplo, não era possível obter 5 saídas registradas com 3 saídas combinacionais altas ativas.) Assim, em junho de 1983, a AMD apresentou o 22V10, um dispositivo de 24 pinos com 10 macrocélulas lógicas de saída. Cada macrocélula pode ser configurada pelo usuário para ser combinacional ou registrada, alta ou baixa ativa. O número de termos de produto alocados para uma saída variou de 8 a 16. Este dispositivo pode substituir todos os dispositivos PAL de função fixa de 24 pinos. Os membros da série PAL "V" ("variável") incluíram PAL16V8, PAL20V8 e PAL22V10.

PALs de programação

PALs foram programados eletricamente usando padrões binários (como JEDEC ASCII / hexadecimais arquivos) e um sistema electrónico de programação especial disponível a partir de qualquer fabricante ou um terceiro, como DATA I / O . Além de programadores de dispositivo de unidade única, alimentadores de dispositivo e programadores de gangue eram frequentemente usados ​​quando mais do que apenas alguns PALs precisavam ser programados. (Para grandes volumes, os custos de programação elétrica podem ser eliminados fazendo com que o fabricante fabrique uma máscara de metal personalizada usada para programar os padrões dos clientes no momento da fabricação; MMI usou o termo " lógica de matriz rígida " (HAL) para se referir aos dispositivos programados desta maneira.)

Linguagens de programação (por ordem cronológica de aparecimento)

Projeto PALASM de um contador de 4 bits

Embora alguns engenheiros tenham programado dispositivos PAL editando manualmente os arquivos contendo os dados do padrão de fusível binário, a maioria optou por projetar sua lógica usando uma linguagem de descrição de hardware (HDL), como ABEL de E / S de dados, CUPL de dispositivos lógicos ou PALASM de MMI . Tratava-se de programas de projeto assistido por computador ( CAD ) (agora referido como " automação de projeto eletrônico ") que traduziam (ou "compilavam") as equações lógicas dos projetistas em arquivos de mapa de fusíveis binários usados ​​para programar (e frequentemente testar) cada dispositivo.

PALASM

A linguagem PALASM (de "PAL assembler") foi desenvolvida por John Birkner no início dos anos 1980 e o compilador PALASM foi escrito por MMI em FORTRAN IV em um IBM 370/168. A MMI disponibilizou o código-fonte gratuitamente aos usuários. Em 1983, os clientes MMI executaram versões no DEC PDP-11 , Data General NOVA , Hewlett-Packard HP 2100 , MDS800 e outros.

Foi usado para expressar equações booleanas para os pinos de saída em um arquivo de texto que foi então convertido para o arquivo 'mapa de fusíveis' para o sistema de programação usando um programa fornecido pelo fornecedor; mais tarde, a opção de tradução de esquemas tornou-se comum, e mais tarde ainda, 'mapas de fusíveis' poderiam ser 'sintetizados' a partir de uma HDL (linguagem de descrição de hardware) como o Verilog .

CUPL

A Assisted Technology lançou o CUPL ( C ompiler for U niversal P rogrammable L ogic) em setembro de 1983. O software sempre foi referido como CUPL e nunca como a sigla expandida. Foi a primeira ferramenta de design comercial que deu suporte a várias famílias PLD. O lançamento inicial era para o IBM PC e MS-DOS, mas foi escrito na linguagem de programação C para que pudesse ser transferido para plataformas adicionais. A Assisted Technology foi adquirida pela Personal CAD Systems (P-CAD) em julho de 1985. Em 1986, o pacote de captura esquemática do PCAD poderia ser usado como um front-end para o CUPL. A CUPL foi posteriormente adquirida pela Logical Devices e agora é propriedade da Altium . O CUPL está atualmente disponível como um pacote de desenvolvimento integrado para Microsoft Windows.

A Atmel lança gratuitamente o WinCUPL (seu próprio software de design para todos os SPLDs e CPLDs da Atmel). A Atmel foi adquirida pela Microchip.

ABEL

A Data I / O Corporation lançou o ABEL em abril de 1984. A equipe de desenvolvimento foi Michael Holley, Mike Mraz, Gerrit Barrere, Walter Bright , Bjorn Freeman-Benson, Kyu Lee, David Pellerin, Mary Bailey, Daniel Burrier e Charles Olivier.

A Data I / O desmembrou a linha de produtos ABEL em uma empresa EDA chamada Synario Design Systems e então vendeu a Synario para a MINC Inc em 1997. MINC estava focada no desenvolvimento de ferramentas de desenvolvimento FPGA. A empresa fechou suas portas em 1998 e a Xilinx adquiriu alguns dos ativos do MINC, incluindo a linguagem ABEL e o conjunto de ferramentas. ABEL então se tornou parte do conjunto de ferramentas Xilinx Webpack. Agora, a Xilinx possui ABEL.

Programadores de dispositivos

Entre os programadores de dispositivos populares estão o programador lógico modelo 60A e o modelo 2900 da Data I / O Corporation .

Um dos primeiros programadores PAL foi o Structured Design SD20 / 24. Eles tinham o software PALASM embutido e só exigiam um terminal CRT para inserir as equações e visualizar os gráficos de fusíveis. Após a fusão, as saídas do PAL podem ser verificadas se os vetores de teste foram inseridos no arquivo de origem.

Sucessores

Depois que o MMI teve sucesso com as peças PAL de 20 pinos lançadas por volta de 1978, a AMD lançou o PAL 22V10 de 24 pinos com recursos adicionais. Depois de comprar a MMI (por volta de 1987), a AMD desmembrou uma operação consolidada como Vantis, e esse negócio foi adquirido pela Lattice Semiconductor em 1999.

Altera introduziu o EP300 (primeiro CMOS PAL) em 1983 e mais tarde mudou-se para o negócio de FPGA.

A Lattice Semiconductor introduziu a família da lógica de matriz genérica ( GAL ) em 1985, com equivalentes funcionais dos PALs da série "V" que usavam planos lógicos reprogramáveis ​​baseados na tecnologia EEPROM (memória somente leitura programável apagável eletricamente). A National Semiconductor foi uma segunda fonte de peças GAL.

AMD Palce 16V8H-25JC

A AMD introduziu uma família semelhante chamada PALCE. Em geral, uma parte GAL pode funcionar como qualquer dispositivo PAL de família semelhante. Por exemplo, o 16V8 GAL é capaz de substituir o 16L8, 16H8, 16H6, 16H4, 16H2 e 16R8 PALs (e muitos outros além).

A ICT (International CMOS Technology) introduziu o PEEL 18CV8 em 1986. A peça CMOS EEPROM de 20 pinos pode ser usada no lugar de qualquer um dos PALs bipolares de saída registrada e usar muito menos energia.

Dispositivos lógicos programáveis ​​em larga escala foram introduzidos pela Atmel , Lattice Semiconductor e outros. Esses dispositivos estenderam a arquitetura PAL, incluindo vários planos lógicos e / ou enterrando macrocélulas lógicas dentro do (s) plano (s) lógico (s). O termo dispositivo lógico programável complexo (CPLD) foi introduzido para diferenciar esses dispositivos de seus predecessores PAL e GAL, que às vezes eram chamados de dispositivos lógicos programáveis ​​simples (SPLDs).

Outro grande dispositivo lógico programável é o field-programmable gate array (FPGA). Esses são dispositivos feitos atualmente pela Intel (que adquiriu Altera ) e Xilinx e outros fabricantes de semicondutores.

Veja também

Outros tipos de dispositivos lógicos programáveis:

Fabricantes atuais e antigos de dispositivos lógicos programáveis:

Fabricantes atuais e anteriores de programadores de dispositivos PAL:

Referências

Leitura adicional

  • Birkner, John ; Vincent Coli (1981). PAL Programmable Array Logic Handbook (2 ed.). Monolithic Memories, Inc.
  • Birkner, John; Vincent Coli (1983). PAL Programmable Array Logic Handbook (3 ed.). Monolithic Memories, Inc.
  • Alford, Roger C. (1989). Guia do designer lógico programável . Howard W. Sams. ISBN   0-672-22575-1 .
  • JEDEC Standard JESD3-C, formato de transferência de dados padrão entre sistema de preparação de dados e programador de dispositivo lógico programável , junho de 1994. Documentos JEDEC