Guia de Iniciação Rápida ao WinCUPL

9
Guia de Iniciação Rápida ao WinCUPL Sistemas Digitais Técnico de Eletrónica e Telecomunicações Setembro de 2011 – Mestre Eng. Luís Pires

Transcript of Guia de Iniciação Rápida ao WinCUPL

Page 1: Guia de Iniciação Rápida ao WinCUPL

 

 

 

 

 

 

 

 

Guia de Iniciação Rápida ao WinCUPL

 

 

Sistemas Digitais  

 

 

Técnico de Eletrónica e Telecomunicações  

 

 

 

Setembro de 2011 – Mestre Eng. Luís Pires 

 

Page 2: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          2/9 

 

Índice

1. Ficheiros de Configuração de PLDs .....................................................................................................3

2. Software de Desenvolvimento............................................................................................................3

3. WINCUPL – Configurações Iniciais ......................................................................................................4

4. WINCUPL – Exemplo de Programação de um PLD..............................................................................6

 

 

 

 

Page 3: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          3/9 

 

1. Ficheiros de Configuração de PLDs

Os dispositivos de lógica programável (PLD) são programados através da criação de curto-

circuitos ou de circuitos aberto dentro de um array de dispositivos, permitindo ligar ou

desligar entradas e saídas de determinadas portas lógicas. A maioria dos programadores

recebe como informação um ficheiro de fusíveis em formato ASCII, normalmente gerado

pelo software de desenvolvimento. Este ficheiro, representativo das ligações a efectuar num

PLD, pode ser encontrado em dois formatos diferentes: JEDEC para PLDs (.jed) ou HEX

para PROMs (.hex) e contém toda a informação necessária para que um programador possa

programar o dispositivo.

Os ficheiros JEDEC – que serão utilizados nesta disciplina – contêm um conjunto de ligações

por fusível representadas por um endereço seguido de uma série de dígitos binários 1 e 0, em

que o 1 indica o estado desconectado (sem fusível, ou fusível aberto) e 0 indica o estado

conectado (com fusível, ou fusível fechado).

2. Software de Desenvolvimento

Após o processo de simplificação de uma determinada função Booleana, por via de Mapas de

Karnaugh normalmente, o próximo passo consiste em desenvolver o programa que

implementa a função simplificada. Embora existam vários softwares de desenvolvimento que

permitam implementar essas funções, o programa utilizado na disciplina é o WinCUPL, do

fabricante ATMEL, e aquele que será abordado neste documento.

O desenvolvimento de programas obedece a algumas regras muito simples, nomeadamente a

três grandes blocos de criação de variáveis: Entrada, saída e funções lógicas. Na secção de

Entradas, associam-se os pinos de entrada da PLD a variáveis que serão utilizadas no

desenvolvimento e implementação das funções. Na secção de saídas, definem-se os pinos da

PLD que serão utilizados como saídas e, no fundo, onde irão estar implementadas as funções

resultado. Na secção de funções, definem-se as funções Booleanas que se pretendem

implementar, recorrendo a operadores fixos, integrantes da sintaxe do WinCUPL e definidos

de acordo com o apresentado na Tabela 2.1.

Page 4: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          4/9 

 

Esta sintaxe tem de ser estritamente respeitada, sob pena de serem gerados erros de

compilação aquando do processo de desenvolvimento aplicacional.

Tabela 2.1. Operadores Lógicos e respectiva sintaxe WINCUPL.

3. WINCUPL – Configurações Iniciais

Uma das primeiras configurações que deverão ser feitas ao nível do WINCUPL é a indicação

de que se pretende que o compilador crie os ficheiros JEDEC, para posterior simulação.

Assim, para que o WINCUPL gere esses ficheiros, com o programa aberto deve executar os

seguintes passos:

1 – Ir a Options » Compiler. Debaixo do separador “Output Files” seleccionar a opção

JEDEC e Fuse Plot e Equations, tal como mostrado na Figura 3.1.

Figura 3.1.Opções do WINCUPL.

2 – Seleccionar o separador General e seleccionar JEDEC Name = PLD Name, tal como

mostrado na Figura 3.2.

Page 5: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          5/9 

 

Figura 3.2. Opções do WINCUPL.

O passo seguinte consiste em seleccionar o tipo de PLD que se está a utilizar. Para tal, dever-

se-a seleccionar o menu Options » Devices e escolher a PLD a usar. No caso da Figura 3.3,

optou-se por utilizar a PLD da ATMEL com a referência ATF16V8B.

Figura 3.3. Janela de selecção da PLD que se pretende usar.

Estando estes passos concluídos, tem-se a garantia da correcta configuração do WINCUPL,

podendo passar-se à fase da programação da PLD.

Page 6: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          6/9 

 

4. WINCUPL – Exemplo de Programação de um PLD

Assumamos que se pretende programar a PLD ATF16V8B da ATMEL. Pretende-se,

também, implementar funções lógicas simples, nomeadamente, o funcionamento de uma

porta AND e OR.

Assim, deseja-se programar a PLD por forma a que numa das suas saídas implemente a tabela

de verdade de uma porta AND e noutra saída a tabela de verdade de uma porta OR.

O primeiro passo consiste em consultar o Datasheet da PLD que se pretende usar. A Figura

4.1, mostra o pinout da PLD que se usa como exemplo neste documento.

Figura 4.1. Pinout da PLD ATF16V8B.

Como é visível, trata-se de um PLD com 10 entradas dedicadas (I0 a I9, pinos 1 a 11), com 8

pinos que podem ser utilizados como entradas ou saídas (I/O0 a I/O7, pinos 12 a 19) e com

dois pinos de alimentação VCC e GND, pinos 20 e 10, respectivamente. Note-se que, caso se

pretenda implementar uma função que necessite de clock, o pino 1 deverá ser utilizado para

tal.

Tal como referido anteriormente, pretende-se implementar duas funções lógicas, AND e OR,

cada uma com duas entradas e uma saída, tal como mostrada no Figura 4.2.

Page 7: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          7/9 

 

Figura 4.2. Portas lógicas fundamentais.

Para implementar as duas funções X e Y, definem-se como entradas e saídas das portas

lógicas os pinos do PLD, tal como apresentado na Tabela 4.1.

Tabela 4.1. Correspondência entre entradas e saídas das portas lógicas e os pinos do PLD.

Porta Lógica PLD

Entrada A do AND Entrada I1, Pino 2

Entrada B do AND Entrada I2, Pino 3

Saída X do AND Saída I/O0, Pino 19

Entrada C do OR Entrada I3, Pino 4

Entrada D do OR Entrada I4, Pino 5

Saída Y do OR Saídao I/O1, Pino 18

Depois de identificadas as correspondências em termos de PLD, passa-se à parte do

desenvolvimento do programa usando o WINCUPL. Assumindo que o mesmo se encontra

em execução, é necessário criar um novo projecto e desenvolver o programa. Para tal, será

necessário executar o seguinte:

1 – Options » WinCUPL » General e seleccionar a pasta onde se pretende que fiquem

os ficheiros de programação e JEDEC.

2 – Para iniciar um novo projecto, File » New » Project e introduzir o nome do

projecto, como por exemplo, AND_e_OR. (Figura 4.3).

Page 8: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          8/9 

 

Figura 4.3. Características do novo projecto.

3 – O programa irá ter 4 pinos de entrada e dois pinos de saída. Inserir estes valores nas

janelas seguintes. Como pinnodes colocar 0, porque não existem nenhuns.

4 – O programa irá gerar automaticamente um ficheiro de texto, com a informação

introduzida nos pontos anteriores, tal como mostrado na Figura 4.4.

Figura 4.4. Código automático gerado pelo WINCUPL.

5 – O passo seguinte consiste em definir quais são as entradas e saídas a utilizar e respectivas

variáveis. Neste caso dever-se-á seguir as correspondências da Tabela 4.1.

/* *************** INPUT PINS *********************/

PIN 2 = A;

PIN 3 = B;

PIN 4 = C;

PIN 5 = D;

Page 9: Guia de Iniciação Rápida ao WinCUPL

Sistemas Digitais – M5                                                                                                                                             Guia de Iniciação Rápida ao WinCUPL 

Mestre Eng. Luís Pires                                                                                                                                                                                                          9/9 

 

/* *************** OUTPUT PINS *********************/

PIN 19 = X;

PIN 18 = Y;

Nota: “PIN 2=A;” é uma instrução, que termina sempre com ponto e vírgula. Qualquer texto

entre /* e */ é interpretado como comentário e assim ignorado pelo compilador. Os

comentários servem para explicar o código a outros programadores e para lembrar o

programador que desenvolveu o código daquilo que se pretende, em caso de consulta

posterior.

6 – Por fim, será necessário definir as funções lógicas, recorrendo aos operadores

apresentados na Tabela 2.1. Neste caso, são duas funções a implementar, um AND e OR,

pelo que as duas linhas de código seguintes são:

/* *************** FUNCOES LOGICAS *********************/

X = (A&B); /* AND */

Y = (A#B); /* OR */

7 – E assim se conclui o primeiro programa em WINCUPL. O passo seguinte consiste em

compilar o código para gerar o programa a colocar no chip do PLD. Para tal seleccionar: Run

» Device Dependent Compile. Se não houver erros, deverão ser gerados ficheiros .jed, .pld,

.abs, entre outros, na directoria especificada no passo 1.

8 – O último passo consiste em transferir o ficheiro .pld ou .jed para o PLD ou para o

programa simulador.

Para este último ponto, sugere-se a leitura do Manual Teórico sobre Dispositivos Lógicos

Programáveis – Atmel ATF22v10C, onde é explicado a ambiente de programação do

GALEP32, assim como o programador GALEP4.