engenharia electrotécnica 1º semestre 2003/2004fm2007.pbworks.com/f/pals.pdfengenharia...

14
Engenharia Electrotécnica 1º Semestre 2003/2004 Microelectrónica PAL (Programmable Array Logic) Trabalho realizado por: Jorge Viegas n.º 9800408

Upload: trinhnhan

Post on 21-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Engenharia Electrotécnica 1º Semestre 2003/2004

Microelectrónica

PAL (Programmable Array Logic)

Trabalho realizado por:

Jorge Viegas n.º 9800408

PAL

Programmable Array Logic

Uma PAL é um dispositivo lógico programável, que contém uma matriz de AND programável e uma matriz de OR fixa (predefinida).

Diz-se que uma PAL contém lógica Fuzzy programável. Estes dispositvos permitem-nos aplicar tensões mais elevadas em determinadas partes do chip de modo a “queimar” o circuito por forma a ter a programação desejada.

História das PAL Os primeiros dispositivos lógicos programáveis foram produzidos pela AMD (Advanced Micro Devices) corporation. Esses dipositivos foram denominados de PAL (programmable array logic). As PAL contêm portas lógicas fixas, sob forma de função lógica, com interligação programada entre si. Essa interligação é conseguida sob forma de matrizes com número variável de inputs e outputs, onde se podem criar funções Booleanas selecionando um input e obtendo o resultado da função em um dos outputs. Uma única PAL pode substituir um circuito contendo dezenas ou mesmo algumas centenas de portas lógicas individuais. O negócio dos dispositivos lógicos programáveis (PLD) foi iniciado pela AMD. Criou uma divisão própria com o nome de Vantis, que em 1999 foi adquirida pela Lattice Semiconductor. Numa PAL as portas lógicas estão organizadas sob forma de somas de produtos de matrizes. Em termos Booleanos, isto significa que um número variável de portas AND, cujas várias saidas ligam a um OR de várias entradas e cuja saída é única. Ao selecionarmos cada uma das entradas das AND e quais os conjuntos de AND que vão ligar a uma certa OR, podemos criar qualquer função Booleana. Visto isto, todas as funções podem ser reduzidas a soma de produtos, consuante temos funções mais ou menos complexas, temos PAL de menor ou maior dimensão. Para programar-mos uma PAL precisamos de um programador de PAL. Normalmente estes programadores conseguem programar todos os tipos de dispositivos lógicos programáveis, de todos os fabricante. O programador de PAL deve dispôr da descrição dos chips e da sua configuração interna. Estas caracteristicas vem num ficheiro de texto de acordo com um formato standard definido pelo JEDEC (Joint Electron Device Engineering Council). Estes ficheiros podem ser escritos á mão pelo design engineer ou mais vulgarmente, produzidos por um programa de computador, cuja linguagem é similar à linguagem dos compiladores usados pelo software de engenharia. O mais conhecido desses programas para gravação de PAL é o PALASM.

Quais as companhias que produzem dispositivos de lógica programável?

Os maiores faricantes do momento são:

1. Altera 2. Xilinx 3. Vantis (antiga divisão de lógica programável da AMD) 4. Lattice Semiconductor 5. Actel 6. Lucent Technologies 7. Cypress Semiconductor 8. Amtel 9. QuickLogic

Como desenvolver uma lógica programável?

Normalmente o desenvolvimento de um circuito com lógica programável envolve 3 passos:

1. Esboço do circuito pretendido (Design de Entrada) 2. Desenvolvimento do código (Design de Implementação) 3. Gravação da PAL

(a transição pelos diferentes passos é sistemáticamente acompanhada de uma verificação)

Implementação de funções com PAL Para este exemplo utilizei uma PAL 4 inputs por 4 outputs.

Tabela com as funções a implementar:

PAL gravada com a implementação pretendida.

Desenvolvimento de projecto com o PALASM

O PALASM é um software criado para facilitar a vida dos programadores... Como todos os softwares de programação o PALASM tem um editor de texto onde escrevemos o código do programa e tem associado um compilador que nos permite assemblar o código para linguagem máquina. Os ficheiros de texto são guardados com a extensão (.pds) e o ficheiro assemblado pronto a gravar na PAL tem extensão (.jed)

Esquema de Ficheiros no PALASM:

Dentro de um ficheiro (.pds) podemos encontrar:

• Um Segmento Declarativo

(Todas os dados referentes à programação e variáveis, são declaradas neste segmento)

• Um Segmento Funcional

(É neste segmento que se declaram todas as funções que se pretendem implementadas pelo circuito)

Nome.pds

(especificação de entrada)

Nome.xpt

(mapa dos fusíveis a interromper)

Nome.jed

(ficheiro JEDEC para programação)

Nome.rpt

(ficheiro com o relatório da utilização de recursos internos)

Nome.hst

(todos os resultados de simulação)

Nome.trf

(resultados da simulação nos sinais a visualizar)

Palasm.log

(relatório produzido pelo PALASM)

PALASM

PDS

XPT JED RPT HST TRF LOG

;---------------------------------- Declaration Segment ------------ TITLE exemplo.pds PATTERN A REVISION 1.0 AUTHOR JM Martins Ferreira / SD da LEIC COMPANY FEUP/DEEC DATE Junho 1998 CHIP exemplo PAL22V10 PIN 1 CLOCK COMBINATORIAL ; INPUT PIN 2 A COMBINATORIAL ; INPUT PIN 3 B COMBINATORIAL ; INPUT PIN 4 C COMBINATORIAL ; INPUT PIN 5 D COMBINATORIAL ; INPUT PIN 6 E COMBINATORIAL ; INPUT PIN 12 GND PIN 14 F1 COMBINATORIAL ; OUTPUT PIN 15 F2 REGISTERED ; OUTPUT PIN 24 VCC

;---------------------------------- Equations Segment ------------ EQUATIONS F1 = /A + B + C + D*E F2:= /A + B + C + D*E

• Um Segmento de Simulação

(Segmento de verificação do projecto, é onde é efectuada a simulação de toda a lógica)

Aspecto gráfico do PALASM:

(O PALASM é um programa que funciona em ambiente DOS)

• Menu File

;---------------------------------- Simulation Segment ------------ SIMULATION TRACE_ON CLOCK A B C D E F1 F2 SETF /A /B /C /D /E SETF A CLOCKF CLOCK SETF /A B CLOCKF CLOCK SETF /B C CLOCKF CLOCK SETF /C D CLOCKF CLOCK SETF /D E CLOCKF CLOCK SETF /E CLOCKF CLOCK TRACE_OFF

• Menu Edit

• Menu Run

• Menu View

o Waveform display

• Menu Documentation

o Index of topic (Exemplo para o caso do comando FOR)

PALLV16V8-10 Low-Voltage 20-Pin EE CMOS Universal Programmable Array Logic Características:

Descrição Geral:

A PALLLV16V8 é uma PAL com características avançadas, construída para funcionar com baixas tensões, alta velocidade e tecnologia CMOS que permite apagá-la electricamente. Possui 20 pins, 16 são entradas e das quais 8 são partilhados com as saídas. É construída sob os formatos DIP/SOIC e PLCC.

Utiliza uma arquitectura standard universal, as macrocells (são estruturas lógicas predefinidas), são muito usadas porque facilita a toda a programação.

PALLV16V8 Macrocell

A PALLV16V8 possui 8 destas macrocell.

Diagrama de Blocos da PALLV16V8

A familiar arquitectura da soma de produtos (AND/OR), que permite aos utilizadores implementar funções lógicas complexas de forma fácil e eficiente. Multiplos níveis de lógica combinatória podem ser sempre reduzidos a somas de produtos, tirando proveito das multíplas entradas disponíveis numa PAL. As funções ser programadas nas PAL através das portas de entrada que vão dar à matriz de AND e que podem ser apagadas electricamente. As matrizes de OR fixas permitem até 8 resultados de produtos por entrada. A soma destes produtos entram nas macrocell. Cada macrocell pode ser programada como um registo ou função combinatória com saídas activas a 0 ou 1. A configuração das saídas é determinada por 2 bits globais e 1 bit local que controlam 4 multiplexeres em cada macrocell.

Diagrama Lógico da PALLV16V8

(aqui apenas estão representadas 4 das 8 saídas da PALLV16V8)

Características DC e especificações comerciais:

Temperaturas suportadas e Limites de operacionalidade: