Upload
luis-pires
View
153
Download
15
Embed Size (px)
Citation preview
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
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
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.
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.
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.
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.
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).
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;
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.