Departamento de Engenharia Mecatrnica e de Sistemas Mecnicos
PMR 2433 Eletrnica Analgica e Digital 2 o Semestre 2014
Experincia 3 CIRCUITOS SEQUENCIAIS & FPGA (REV. A) A FPGA (Field Programmable Gate Array) uma das tecnologias mais avanadas para a implementao de circuitos lgicos digitais. So dispositivos facilmente programveis, de alta densidade, com os quais podemos implementar a um custo muito baixo sistemas digitais equivalentes a milhes de transistores. Esta experincia uma introduo ao ambiente de desenvolvimento Foundation Series para a programao de FPGAs. Vamos programar e testar uma FPGA utilizando a placa de desenvolvimento Digilab, da Digilent. O projeto do circuito feito no computador com o programa Foundation Series, e o arquivo de configurao resultante transferido para a FPGA atravs da porta paralela do computador. Alm desta apostila, voc vai precisar do manual de usurio da placa de desenvolvimento Digilab XL, que ser utilizada no laboratrio para testar nossos projetos em FPGA. Opcionalmente, voc pode obter o manual do software Foundation Series, que usaremos para projetar os circuitos. Esse manual est disponvel no endereo http://www.poli.usp.br/d/pmr2433. No estritamente necessrio ler esse manual, mas essa leitura prvia certamente facilitar sua vida durante a aula. Usaremos esse sistema de desenvolvimento para estudar alguns circuitos sequenciais utilizando latches e flip-flops. Portanto, faa uma reviso do captulo 6 do livro texto. PARTE I TEORIA 3.1 FPGA (Field Programmable Gate Array) Internamente, uma FPGA composta por clulas padro que podem ser programadas individualmente para constituir funes lgicas de n entradas e m sadas, chamadas de PLB (programmable logic block). As m sadas de um PLB podem ser conectadas a suas prprias entradas (formando circuitos realimentados) ou a entradas de outros PLBs, atravs de matrizes de interconexes denominadas de SM (switch matrix). As SMs tambm podem ser programadas individualmente. Como uma FPGA possui milhares de PLBs e SMs, temos um dispositivo capaz de implementar desde funes lgicas simples a sistemas digitais bastante complexos. A Figura 3.1 ilustra a estrutura simplificada de uma FPGA. Neste exemplo, cada PLB contm duas memrias programveis (do tipo RAM), cada uma contendo 16 posies de 1 bit. Essa memria chamada LUT (look up table), e cada uma delas permite implementar qualquer funo booleana de 4 variveis de entrada, como se fossem tabelas da verdade eletrnicas. Note que, neste exemplo, temos n = 8 e m = 2. Observe que a estrutura desse exemplo de PLB no permite realizar qualquer funo lgica de 8 variveis, e sim duas funes de 4 variveis cada. Alm disso, a matriz de interconexo SM no permite conectar quaisquer PLBs. Mas estas restries podem ser superadas, interconectando-se vrios PLBs. A Figura 3.2 mostra como implementar um somador completo de 1 bit em uma PLB. Repare que a LUT superior (G) reproduz a tabela da verdade do vai-um (ci+1) e a inferior (H) contm a tabela da verdade do i-simo bit da soma (si). Como so funes de trs variveis, uma das entradas de cada LUT no utilizada. No caso da LUT G, por exemplo, a entrada g1 foi deixada em aberto, e portanto o contedo da LUT deve ser o mesmo tanto para g1 = 0 como para g1 = 1 (na figura, isto indicado com X na coluna g1 de endereos). Analogamente, na LUT H, a entrada h4 no foi utilizada. Uma FPGA tem vrios pinos que podem ser configurados para servir de entradas ou de sadas para as funes programadas. A programao de PLBs, SMs e pinos armazenada internamente em memria voltil, o que significa que uma pastilha pode ser reprogramada milhares de vezes. Isso as torna uma excelente tecnologia para a prototipagem rpida de sistemas digitais. Projetistas de circuitos integrados, por exemplo, costumam utiliz-las para testar por partes o projeto de CIs complexos, como um microprocessador moderno. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 2
(a) (b) Figura 3.1 a) Estrutura matricial de uma FPGA, com PLBs interconectadas por SMs b) Exemplo de PLB, composta por duas LUTs de 4 variveis
Figura 3.2 Somador completo (ci+1 si) implementado com uma PLB 3.2 Programao A programao interna de PLBs e SMs normalmente bastante complexa, mesmo para se implementar funes lgicas bem simples. Para facilitar a sua vida, os fabricantes de FPGAs investem pesadamente no desenvolvimento de softwares integrados para a programao automtica desses dispositivos. So os chamados compiladores de silcio. A ideia permitir que voc faa o projeto utilizando portas lgicas e bibliotecas de funes, de forma hierrquica. O compilador cuida de converter seu projeto em sequncias de bits que posteriormente so transferidas para a memria da FPGA. Em linhas gerais, o ciclo de desenvolvimento com uma FPGA envolve as seguintes etapas. Projeto digital (design entry): o projeto propriamente dito do circuito que ser implementado dentro da FPGA. Em projetos mais simples, utilizam-se normalmente editores grficos para se desenhar o diagrama lgico do circuito o chamado modo de captura esquemtica (schematic entry). Em casos mais complicados, podem ser utilizadas linguagens de programao (HDL, hardware description language), como as linguagens ABEL, VHDL e Verilog. So linguagens que lembram C, por exemplo, onde funes lgicas so definidas por expresses algbricas (do tipo Y = A & B) e chamadas de sub-rotinas. Simulao funcional: simula o funcionamento do circuito projetado com portas lgicas, sem considerar os atrasos de propagao, para que se possa verificar se a lgica implementada corresponde ao esperado. Implementao: quando o projeto compilado para formar os bits de programao da FPGA. hora de se verificar se o modelo de FPGA a ser utilizada (target) comporta o projeto, isto , se o CI contm PLBs e SMs em quantidade suficiente para implementar o circuito desejado. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 3 Verificao: simula eletricamente o circuito implementado na FPGA, considerando tempos de atraso, para se verificar se o circuito capaz de operar na velocidade desejada, e se problemas como harzard no afetam o funcionamento do circuito. Nesta experincia, utilizaremos o software Foundation Series, da Xilinx. Trata-se de um ambiente de desenvolvimento profissional bastante complexo. Nesta aula, procuraremos aprender a usar as funes elementares do programa. Ao utiliz-lo em sala, procure ler os manuais on-line disponveis no menu Help e, em algumas situaes, teclando-se F1 aps selecionar algum elemento das janelas. As dicas desta apostila visam dar a voc um ponto de partida, mas ao se limitar apenas a elas, voc acabar com uma viso muito fragmentada do poderoso sistema que ter em mos. 3.3 Placa de Desenvolvimento Digilab No laboratrio, vamos testar os circuitos projetados utilizando a placa de desenvolvimento Digilab XL, da Digilent. Ela contm uma FPGA Spartan XCS10 PC84, da Xilinx, de 84 pinos, capaz de acomodar circuitos equivalentes a at 10.000 portas lgicas, aproximadamente. A programao da FPGA feita por um cabo conectado porta paralela de um computador. A placa contm ainda vrios conectores e dispositivos que permitem verificar o funcionamento do circuito programado na FPGA. Dentre eles, temos 4 displays de 7 segmentos, 8 chaves de duas posies, 8 leds (Light-Emitting Diodes), 4 botes de contato momentneo (push buttons). Veja, em anexo, o manual de usurio da placa. Nesta experincia, utilizaremos apenas esses dispositivos citados. Veja a pgina 12 do manual. A tabela indica em que pinos da FPGA esses dispositivos esto conectados, e essa informao deve ser levada em conta no projeto do circuito. Por exemplo, para acender e apagar o led LD1, devemos conectar o pino 69 da FPGA a uma sada do circuito projetado. Veja na pgina 13 do manual um exemplo de um circuito que controla o led LD1 atravs de um AND entre as chaves SW1 (pino 28 da FPGA) e SW2 (pino 27). Note que, para configurar um pino da FPGA como entrada, devemos incluir no projeto dois elementos: o IPAD e o IBUF. O primeiro determina o nmero do pino a ser usado, e o segundo insere um circuito eltrico (buffer) que permite utilizar o sinal presente no pino como entrada de portas lgicas. Analogamente, a configurao de um pino da FPGA como sada exige os elementos OBUF (buffer eltrico de sada) e OPAD (definio do pino). 3.4 Contadores Sncronos Uma aplicao bastante simples porm muito importante dos flip-flops a construo de contadores binrios. A Figura 3.3 mostra como construir um contador de um bit, usando um flip-flop tipo D com a sada invertida realimentada na entrada. A cada borda de subida do sinal C, a sada Q se inverte de 0 para 1 e de 1 para 0, sucessivamente.
C D Q Q 0 1 3 2 Q D C
Figura 3.3 Contador de um bit Repare que este circuito somente funciona porque h atrasos envolvidos. Se todos os sinais mudassem instantaneamente, o valor de Q ficaria indefinido pois D igual a Q e teramos Q = Q (estranho, no?) aps a borda de clock. No entanto, como o sinal D leva alguns nano-segundos para se inverter aps uma mudana em Q, o prximo valor da sada Q aps a borda de clock ser o inverso do valor atual depois de um pequeno atraso, conforme mostra a carta de tempos da Figura 3.3. Ou seja, para o instante k, temos Q k+1 = (Q k ). Repare que o sinal C uma onda quadrada ideal, enquanto que mudanas nos sinas D e Q aparecem como bordas inclinadas, indicando que as mudanas de nvel levam algum tempo para se consumarem. Note que exageramos o atraso do sinal D com relao a Q. Como mostra a figura, instantes antes da borda 0 do clock, temos Q = 0 e (devido ao inversor) D = 1. Aps a borda 0, a sada Q do flip-flop copia o valor de D, e depois de um certo atraso D se inverte. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 4 Podemos cascatear vrios contadores de 1 bit para formar um contador binrio de n bits. Mas para isso vamos usar flip-flops tipo JK, que so mais adequados para esta aplicao. A Figura 3.4 ilustra um flip-flop JK com entrada de clear (CLR) assncrono, que zera a sada Q quando em 1, independentemente do sinal de clock C. Com CLR = 0, a sada Q atualizada na borda de subida do clock, conforme o valor das entradas de comando J e K. A entrada J leva a sada a 1, enquanto que K zera a sada; para JK = 00, a sada se mantm no valor atual, e para JK = 11 a sada se inverte.
CLR C J K Q k+1
1 X X X 0 (clear assncrono) 0
0 0 Q k (mantm) 0
0 1 0 (reset) 0
1 0 1 (set) 0
1 1 (Q k ) (inverte)
Figura 3.4 Flip-flop tipo JK e sua tabela caracterstica Podemos usar esse flip-flop para construir um contador sncrono de 2 bits, denominado xxCB2, ilustrado na Figura 3.5. A entrada CLR zera o contador, assincronamente com o sinal de clock C. A entrada CE, chamada count enable, habilita a contagem quando em 1, fazendo as sadas Q1 Q0 contarem ciclicamente de 00 a 11 nas bordas de subida do clock. Na tabela, a notao Q[1:0] representa a palavra de dois bits Q1Q0 (nessa ordem), e a notao usada pelo software de programao de FPGA Foundation Series para dar nomes a barramentos (ou buses) constitudos por vrios bits numerados, como o caso dos bits Q1 e Q0.
CLR CE C Q[1:0] k+1 CEO TC 1 X X 0 0 0 0 (clear assncrono) 0 0 X Q[1:0] k 0 Q1.Q0 (clock desabilitado) 0 1
Q[1:0] k + 1 Q1.Q0 Q1.Q0 (incremento mdulo 4)
Figura 3.5 Contador sncrono de 2 bits, com clear assncrono (CLR) e count enable (CE) As sadas TC (terminal count) e CEO (count-enable output) so sadas de status (ou flags) do contador. A sada TC quando em 1 indica que a contagem atingiu o valor mximo (ou seja, Q[1:0] = 11). O flag CEO tambm indica o fim de contagem, mas vale 1 somente se, alm de termos Q[1:0] = 11, o contador tambm se encontra habilitado (CE = 1). Por esse motivo, a sada CEO geralmente usada para fazer o cascateamento desses contadores, como se ver mais a frente. A Figura 3.6 mostra do diagrama lgico do circuito do contador. Repare que, por ser um circuito sncrono, o sinal de clock o mesmo para os dois flip-flops. O primeiro flip-flop complementa a sada Q0 a cada borda de clock, desde que esteja habilitado (CE =1) e no haja sinal de clear (CLR = 0). Nessas mesmas condies (CE = 1 e CLR = 0), o segundo flip-flop complementa a sada Q1 sempre que a anterior for 1, ou seja, quando o bit menos significativo atinge seu final de contagem. As portas AND2 geram as sadas TC e CEO, seguindo a tabela da Figura 3.5.
Figura 3.6 Circuito do contador sncrono de dois bits A carta de tempos da Figura 3.7 ilustra a diferena entre CEO e TC. A contagem em Q1Q0 atinge 11 no instante de clock 3, ao mesmo tempo em que o contador desabilitado (CE = 0), fazendo com que CEO permanea em zero. A sada CEO vai para 1 somente aps o instante 4, em que o contador novamente habilitado (CE = 1). Por sua vez, a sada TC vai a 1 j no instante 4, to logo a contagem atinge 11. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 5
X X 0 1 2 3 4 5 6 C Q[1:0] CEO CE TC ... ... ... ... ... 00 10 01 01 00 11 XX CLR
Figura 3.7 Carta de tempos do contador de dois bits Para deixar a carta de tempos mais concisa, representamos apenas as bordas de subida do sinal de clock por um trem de impulsos, e os bits Q1 e Q0 so representados na forma de barramento condensado (Q[1:0]), onde indicamos apenas as transies e o valor da contagem em binrio. Essa carta de tempos tambm ilustra um fato comum em circuitos sncronos. Repare que a entrada CE tambm varia sincronamente com o sinal de clock C nas bordas 0, 3 e 4. Na borda 0, a contagem em Q[1:0] no se altera porque temos CE = 0 no instante imediatamente anterior borda, e o mesmo acontece na borda 4. J na borda 3, CE = 1 antes da borda e o contador incrementa Q[1:0]. Concluindo: em circuitos sncronos, considere o valor presente nas entradas no momento anterior borda de clock. 3.5 Cascateamento de contadores sncronos A sada CEO serve para cascatear contadores. Nesse caso, basta interligar todas entradas C ao mesmo sinal de clock, e ligar a sada CEO entrada CE do contador seguinte, como mostra a Figura 3.8. Fazendo a entrada CE igual a zero, o primeiro contador desabilitado e a sada CEO_A tambm vai a zero, garantindo que o segundo contador tambm seja desabilitado. Quando CE estiver ativo e o primeiro contador atingir o final de contagem (Q1Q0 = 11), teremos CEO_A = 1 e o segundo contador ser habilitado. Na borda seguinte do clock, as sadas Q3Q2 sero incrementadas juntamente com Q1Q0.
Figura 3.8 Contador de quatro bits usando dois contadores em cascata. A carta de tempos da Figura 3.9 ilustra o mecanismo de cascateamento usando os mesmos sinais de entrada da Figura 3.7, na qual inclumos os sinais CEO_A e Q[3:2]. Na borda de clock 3, o primeiro contador desabilitado, desabilitando tambm o segundo (CEO_A = 0), e a contagem de ambos se mantm a mesma na borda 4. No instante 5, ambos esto habilitados e a contagem nos bits Q[3:2] e Q[1:0] passa de 00 11 para 01 00.
Figura 3.9 Carta de tempos resumida do contador de quatro bits em cascata PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 6 3.6 Divisores de Freqncia Contadores tambm so conhecidos como divisores de frequncia. Suponha, por exemplo, que o sinal de clock C na Figura 3.6 seja uma onda quadrada peridica de frequncia fC. Como a sada Q0 se inverte a cada borda de subida do clock, temos em Q0 uma onda quadrada de frequncia fC/2 (ou com o dobro do perodo). Analogamente, em Q1 teramos uma frequncia fC/4 e assim por diante. 3.7 Aplicao: Acionamento do Mostrador de Sete Segmentos A placa Digilab tem quatro mostradores de sete segmentos. Cada segmento formado por um led, um dispositivo semicondutor que estudaremos futuramente, representado na Figura 3.10 pelos tringulos com traos. Por hora, acredite que um led se acende quando uma corrente eltrica o atravessa no sentido apontado pelo tringulo. O terminal de entrada da corrente (base do tringulo) se chama anodo, e o de sada (trao) se chama catodo. H quatro terminais de alimentao (chamados de anodo comum), sendo um para cada mostrador, que so acionados atravs sinais A1 a A4 ligados aos pinos P44, P40, P39 e P38 respectivamente (confira na pgina 12 do manual da placa). Os sinais CA, CB, ... CF e DP comandam cada um dos sete segmentos e o ponto decimal. Por exemplo, o segmento a (trao superior) se acende sempre que fazemos CA = 0, aterrando o catodo do led a e permitindo que uma corrente flua atravs dele.
a b c d e f g dp A i CA CB CC CD CE CF CG DP A i ... CA CB CG DP a b g dp
Figura 3.10 Estrutura do mostrador de sete segmentos Hexa 0 1 2 3 4 5 6 7
Caracter
Hexa 8 9 A B C D E F
Caracter
Figura 3.11 Padro de apresentao de dgitos hexadecimais em 7 segmentos (sem o ponto decimal) A Figura 3.11 mostra como esse mostrador pode ser utilizado para apresentar (de forma um tanto precria) dgitos hexadecimais, de 0 a F. Dessa forma, para mostrar o dgito 0, por exemplo, devemos fazer os sinais de CA a CF em zero para acender os leds de a a f, e fazer CG e DP iguais a um para apagar os leds g e dp; para mostrar o dgito 2 fazemos apenas CB e CC iguais a zero, e assim por diante. Na FPGA, os catodos CA a CF esto ligados aos pinos P51 a P45. O catodo DP (do ponto decimal) no est ligado FPGA, mas est disponvel no conector J1 da placa (confira na pgina 11 do manual). Note, no entanto, que os catodos (CA a CG) so comuns aos quatro mostradores. Ou seja, ativando os quatro anodos (A1 a A4) ao mesmo tempo, os mostradores mostraro o mesmo dgito imposto nos catodos CA a CG. Como faramos, ento, para mostrar dgitos diferentes nos mostradores? A soluo acionar um anodo de cada vez, ciclicamente, e utilizar multiplexadores para colocar nos catodos o padro de cada dgito, de forma sincronizada com a ativao dos anodos. Ou seja, cada mostrador piscaria um dgito diferente, um de cada vez. Se a taxa de varredura dos mostradores for alta (acima de trinta vezes por segundo, aproximadamente), ficaremos com a impresso que os mostradores esto sempre ligados, j que no conseguiremos mais observar o efeito pisca-pisca. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 7 A Figura 3.12 mostra um circuito para mostrar quatro dgitos hexadecimais (DA a DD) nos mostradores da placa Digilent. Os dgitos entram em um multiplexador qudruplo de 4 bits (bloco H2), que a cada instante passa adiante apenas um deles. O bloco H3 faz a converso do nmero em binrio para o padro correspondente para apresentao no mostrador de sete seguimentos (o ponto decimal foi omitido no esquema). O bloco H1 representa um contador cclico de 2 bits, que gera os bits de seleo do multiplexador e tambm do decodificador (bloco H3), garantindo a sincronizao entre o dgito selecionado no mux e o mostrador a ser ligado.
Figura 3.12 Circuito para acionamento dos mostradores de sete segmentos. O sinal de CLOCK deve ter uma frequncia superior a 4 x 30 = 120 Hz. Essa a taxa mnima necessria para que cada mostrador seja ligado pelo menos 30 vezes por segundo. O sinal ENABLE permite ligar e desligar todos os mostradores conjuntamente, desabilitando o decodificador e o contador. Para construir esse circuito no laboratrio, voc poder usar os componentes mostrados na Figura 3.13.
Figura 3.13 Componentes para o projeto do acionador de mostrador de sete segmentos O CB2CE um contador de dois bits, com entradas de Clock Enable (CE = 1 habilita a contagem) e Clear assncrono (CLR = 1 zera o contador, independentemente do sinal de Clock). A sada TC (Terminal Count) vai a 1 sempre que a contagem em Q1Q0 atinge o valor mximo neste caso, 11 em binrio. A sada CEO simplesmente um AND entre TC e a entrada CE. As macros MUX4_4_1 e 7SEG implementam o multiplexador qudruplo e o conversor de cdigo para sete segmentos. Os diagramas lgicos destas duas macros esto em anexo. Finalmente, o bloco D2_4E um decodificador 2:4 com entrada de Enable (E). Quando o decodificador se encontra habilitado (E = 1), a sada Di endereada pelas entradas A1A0 vai a um, enquanto as demais permanecem em zero; quando E = 0, todas as sadas permanecem em zero. Observe que este decodificador diferente do 74138 usado em experincia anterior, que tinha sadas ativas em zero. 3.8 PR-RELATRIO O pr-relatrio composto pelos EXERCCIOS a seguir e os contidos na Parte II. Voc dever entregar o pr- relatrio at o comeo da aula de sua turma, caso contrrio no poder fazer a experincia. Trata-se de um documento de sua autoria que voc estar submetendo avaliao. Portanto, faa-o com esmero. Os exerccios podem ser resolvidos a lpis, mas as respostas finais devem ser escritas caneta. Faa-os com antecedncia, para ter tempo para tirar dvidas e fazer todos os exerccios. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 8 Durante a aula, voc dever elaborar o relatrio das atividades, fazendo as ANOTAES pedidas na parte prtica. O relatrio tambm individual. Procure faz-lo mo livre e com esmero: isto uma habilidade importante para quem vai precisar se comunicar graficamente em reunies de trabalho! Leia com ateno todas as atividades da Parte II antes da aula, e no apenas os exerccios. Assim, voc ter uma noo das atividades a serem desenvolvidas e perder menos tempo durante a aula. Traga para a aula a apostila IMPRESSA. Os pontos importantes das atividades devem estar destacados ou grifados. Na aula, essas anotaes sero avaliadas e contaro na nota final da experincia. PARTE II PRTICA LEIA tudo com ateno NO tente apenas REPRODUZIR as figuras sem ler a apostila.
ATENO: h um problema de configurao no Windows Vista que IMPEDE que o primeiro projeto implementado no computador seja reimplementado uma segunda vez! Para contornar, sempre que o computador for religado ou seja feito um login, primeiramente carregue o projeto XLA5, clique em Project | Clear Implementation Data e implemente, conforme descrito a seguir. Atividade 1 Teste da placa Anotao 1a Anote no cabealho do relatrio: nome dos integrantes da equipe, nmero da bancada, nmero da placa XLA5 e a hora de incio das atividades. Veja o diagrama lgico XLA5 em anexo. No canto esquerdo, h trs blocos, CB8 e CB16 e CD4CE, conectados em sequncia. Isto forma um contador, cuja funo dividir a frequncia do clock de entrada presente em P13. Por hora, acredite apenas que CD4CE conta ciclicamente de 0 a 9, em binrio, e o bloco H4 faz a converso para acionar os displays de 7 segmentos, que esto ligados aos pinos P45 a P51. Atente para o restante do circuito, concentrado na parte inferior direita. Ele implementa uma lgica que acende os leds atravs das chaves e dos botes da placa. Vamos testar a placa XL com esse circuito. Os arquivos necessrios para este teste se encontram compactados no arquivo XLA5.ZIP, disponvel no servidor, no endereo \\ts02-00\pmr2433. (Lembre-se: os resultados finais dos exerccios devem ser escritos caneta!) Exerccio 1 Determine a equao lgica que faz o i-simo led LDi acender, em funo das chaves (SWi) e dos botes (BTNi). Copie o arquivo XLA5.ZIP do servidor para o diretrio C:\PMR2433\_ARQ (e SOBREESCREVA se ele j existe). Carregue o software de programao: menu Start Programs Xilinx Foundation Series Project Manager. Na janela de abertura (Getting Started), clique em Cancel, para iniciar o programa sem carregar nenhum projeto. Na barra de menus do Project Manager, clique em File, e em seguida em Restore Project... Entre no diretrio C:\PMR2433\_ARQ, e abra o arquivo XLA5.ZIP. Na janela Restore Project Wizard..., localize o campo Destination e digite C:\PMR2433\seugrupo, onde seugrupo o nome de guerra do seu grupo. Ateno: ao dar nomes a elementos, arquivos e diretrios dentro do Foundation, no use nomes com mais de 8 caracteres, nem acentos ou espaos em branco! Deixe o box Open restored project selecionado e clique em Avanar. Clique em Yes to All para ignorar todos os arquivos j existentes. O projeto ser descompactado e carregado pelo programa. Abra o editor esquemtico, dando um duplo clique no arquivo XLA51.SCH que aparece na sub-janela Files ( esquerda). Voc ver o diagrama lgico do circuito de teste (anexo XLA5). Vamos agora programar a FPGA com este projeto. Retorne janela principal do programa Project Manager, e clique no menu Project Clear Implementation Data. Isso fora o programa a passar por todos os passos da implementao (e vai convenientemente ativar o bug do Windows em cima do desse projeto de teste, que no poder mais ser alterado). Caso contrrio, se algum j tiver implementado o projeto XLA5 antes de voc, o programa detectar que no necessrio fazer nada e o bug do Windows aparecer quando voc for trabalhar no seu projeto! Ainda na janela do Project Manager, clique agora no boto Implementation que aparece na janela Flow direita, e em seguida no boto RUN na janela que se abre (no clique em OK, pois isto apenas fecha a janela). O programa vai implementar o projeto (ou seja, compilar a descrio do circuito) para gerar o arquivo PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 9 de configurao (ou programao) da FPGA. Acompanhe os passos dessa transcrio: Translate e Map: converte seu projeto em funes lgicas que podem ser implementadas nos PLBs Place and Route: decide em quais PLBs da FPGA as funes lgicas sero programadas e faz a programao das interconexes entre elas (SMs). Configure: gera o arquivo binrio (extenso bit) que ser enviado FPGA para program-la.
VERIFIQUE: se o programa no mostrou os passos citados sendo executados, RELEIA as instrues desta atividade at este ponto! Exerccio 2 Por que deve-se clicar em Project | Clear Implementation Data antes de implementar o projeto? Conecte o cabo da porta paralela do PC na placa e ligue a fonte de alimentao. ATENO: NO deixe coisas metlicas sob a placa! Isso pode causar um curto-circuito entre os pontos de solda. Agora, verifique se a chave SW9 est na posio PROG e transfira o arquivo bit gerado para a FPGA da placa. Isso feito com o programa C:\Xilinx4\XLA5\ConfigXP.pif (h um link na rea de trabalho). Esse aplicativo deve ser executado com as prerrogativas de administrador para poder acessar a porta paralela do computador. Para isso, clique sobre ele com o boto da direita do mouse e clique em seguida em Executar como Administrador. Na janela Configure Digilab que o programa abre, clique no menu Control Configure Device from File, e selecione o arquivo C:\PMR2433\seugrupo\XLA5\XLA5.bit. Verifique se o circuito est funcionando corretamente. Em funcionamento normal, os displays mostraro os dgitos de 0 a 9, ciclicamente. Acione os leds atravs das chaves e dos botes e verifique se isso condiz com o previsto no exerccio. Verifique se todos os botes, chaves e leds esto funcionando. ATENO: Ao contrrio do painel LSD utilizado nas experincias anteriores, uma chave da placa Digilab envia FPGA o nvel lgico 0 quando est para frente, e 1 quando est para trs. O boto envia 1 quando pressionado. Anotao 1b Verifique se a resposta no seu pr-relatrio condiz com o funcionamento dos leds observado nesta atividade. Caso contrrio, comente os erros detectados. Atividade 2 Restaurando os Arquivos de Projeto O disco de seu computador contm alguns arquivos que sero utilizados nessa experincia, tais como macros prontas e esquemticos incompletos. Copie o arquivo 2433_E3.ZIP do servidor (\\ts02-00\pmr2433) para o diretrio C:\PMR2433\_ARQ (mesmo que ele j exista). Volte janela do programa Project Manager. Clique no menu File Restore Project... Selecione o arquivo 2433_E3.ZIP no diretrio C:\PMR2433\_ARQ. Na janela Restore Project Wizard... , campo Destination, digite C:\PMR2433\seugrupo, onde seugrupo o nome de guerra do seu grupo. Deixe o box Open restored project selecionado e clique em Avanar. Clique em Yes to All para ignorar todos os arquivos j existentes. O projeto ser descompactado e carregado pelo programa. No vamos trabalhar com esse projeto. Ao invs disso, vamos copi-lo com outro nome para o seu diretrio de trabalho. Clique no menu File | Copy Project. O campo Source Project, j deve estar preenchido com C:\PMR2433\seugrupo\2433_E3.PDF. No campo Destination Directory, digite c:\PMR2433\seugrupo. No campo Destination Name, digite algo como xxFF, onde xx so as 2 primeiras letras do nome seugrupo. Clique em OK. Podemos agora carregar o projeto copiado no Project Manager. Clique no menu File | Open Project, e localize o arquivo xxFF.PDF no diretrio C:\PMR2433\seugrupo. Selecione o arquivo e clique em Open. Estamos prontos para comear a experincia. Anotao 2a Acrescente o nome do diretrio de trabalho no cabealho do relatrio. Atividade 3 Latch RS Negativo Vamos construir uma macro para implementar um latch RS negativo. Uma macro como uma sub-rotina, que pode ser inserida vrias vezes em outros projetos. Dispare o editor de esquemticos: no menu Tools, selecione Design Entry | Schematic Editor (ou clique no cone correspondente na sub-janela Flow). O editor cria o arquivo de nvel hierrquico mais alto do projeto, xxFF1.sch. O latch ser uma macro, de nvel hierrquico inferior (a famosa caixa-preta). Para criar a macro, no menu Tools, selecione Symbol Wizard. Esse mdulo define as interfaces de entrada e sada da macro, e cria um smbolo (a cara da caixa-preta). Passe pela janela de apresentao do mdulo e avance para a janela Design Wizard Contents. No campo Symbol Name, digite xxNRS (xx so as iniciais do PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 10 seu grupo) e selecione Schematic no campo Contents. Clique em Next. Na janela Design Wizard Ports, defina os sinais _R e _S de entrada e os sinais _Q e Q de sada (o trao indica que os sinais so ativos em 0). Clique em New, e digite _R no campo Name, e selecione Input no campo Direction. Repita esse processo para criar a entrada _S. Em seguida, crie a sada _Q (clique em New, digite _Q no campo Name e selecione Output no campo Direction) e Q. Neste ponto, a definio de sua macro deve ter o aspecto mostrado na Figura 3.14. Avance para a janela seguinte com Next.
Figura 3.14 Definio da macro xxNRS Na janela seguinte, Attributes, digite no campo Longer Comment algo como Latch RS negativo (deixe o campo Shorter em branco). Clique em Next, e na janela seguinte em Finish. O programa constri o esqueleto da macro, j com os pontos de entrada e sada rotulados. Complete o esquema, conforme mostra a Figura 3.15, e salve o arquivo (menu File | Save). Uma dica: insira primeiro todos os smbolos (no caso, dois NANDs), acionando o modo de inserso atravs do menu Mode | Symbols, ou clicando no cone de um AND que aparece na barra lateral esquerda. Voc ver uma extensa lista de nomes mneumnicos dos smbolos. Digitando no campo inferior dessa janela, fica mais fcil para encontrar o smbolo desejado. Selecione e inclua-o no projeto, clicando na posio desejada. Para incluir outras cpias, clique em um smbolo j posicionado e posicione a nova cpia.
Figura 3.15 Macro xxNRS OBSERVE: a sada Q deve ser a da porta NAND ligada entrada _S! Ao incluir um smbolo, estamos instanciando a macro correspondente a ele, ou seja, estamos fisicamente inserindo no nosso projeto os componentes do circuito representado pela macro. Esses componentes sero repetidos tantas vezes quanto a macro for instanciada no projeto. Complete as conexes ativando o menu Mode | Draw Wires. Clique num terminal de um smbolo e depois em outro para lig-los. Clicando em posies intermedirias, possvel definir uma rota. Para inserir uma derivao em um fio, basta clicar sobre ele no ponto desejado. ATENO: para conectar o terminal de um smbolo ao terminal de outro, no basta sobrep-los ao posicionar os smbolos. Uma conexo somente se d atravs de um fio. Por isso, posicione os smbolos mantendo uma certa distncia entre os terminais a serem conectados. Voc ainda pode mover os smbolos e fios, copiar, colar... etc. Consulte o manual on-line do editor, no menu Help | Schematic Editor. Verifique se est tudo em ordem. Clique no menu Options | Integrity Test for Current Sheet. Se houver PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 11 algo errado, aparecero mensagens na tela (Console) do Project Manager. Nesse caso, corrija, teste de novo, e salve. IMPORTANTE: se precisar alterar a macro mais tarde, NUNCA a abra com o comando File | Open... use o comando File | Open macro, ou clique sobre ela com o boto da direita e clique em Hierarchy Push. Agora, vamos fazer um teste rpido na macro xxNRS que voc acabou de editar, ligando uma instanciao da macro s chaves e leds da placa Digilab, e ver se est funcionando direito. Volte folha xxFF1. Insira nela a macro xxNRS: clique no menu Mode | Symbols, ou clique no cone correspondente na barra esquerda. O smbolo xxNRS est no fim da lista, debaixo da hierarquia do nosso projeto (xxFF). Complete as ligaes, como mostra a Figura 3.16. Atente para a ordem dos pinos de entrada e sada nas faces laterais do smbolo U1. Se voc no incluiu os sinais na ordem descrita anteriormente, provavelmente eles estaro diferentes. Voc pode corrigir isso, atravs do editor de smbolos: no Schematic Editor, clique no menu Tools | Symbol Editor. Na janela do Symbol Editor, abra o arquivo xxNRS atravs do menu File | Open, e reordene os terminais arraste um por vez para a posio correta.
Figura 3.16 Circuito de teste do latch xxNRS Lembre-se que necessrio mapear cada IPAD e OPAD em um pino da FPGA. Clique duas vezes em um deles para abrir a janela Symbol Properties. Na parte inferior da janela (Parameters), selecione LOC no campo Name, e digite a identificao do pino no campo Description (por exemplo, P59). Clique em Add, caso contrrio isso no ter efeito. Veja a Figura 3.17. Clicando sobre a marca preta direita de LOC, voc pode ajustar a forma como esse parmetro ser exibido no desenho: uma marca exibir apenas o valor do parmetro (P59), duas exibir LOC=P59, e nenhuma marca far com que o programa no exiba o parmetro. Experimente.
Figura 3.17 Configurao de um IPAD Os identificadores dos fios, tais como BTN1 e LD1, podem ser inseridas clicando-se duas vezes sobre os fios. Isto abre a janela Net Name. Digite o nome e clique em OK. VEFIRIQUE: se na barra de ttulo da janela do Schematic Editor contar algo como Schematic Editor [Non-Project xxNRS.SCH], voc NO est editando a macro! Volte ao comeo desta atividade e RELEIA-A at este ponto. Por fim, salve o arquivo. Clique no boto Implementation do programa Project Manager para gerar a implementao do circuito. Descarregue o arquivo bit (c:\pmr2433\seugrupo\xxFF\xxFF1.bit) na placa, com o programa ConfigXP, conforme descrito na Atividade 1. Teste o funcionamento do latch acionando os botes. O boto BTN1 seta o latch, acendendo o led LD1 e apagando o led LD2. J o boto BNT2 causa o reset do latch, apagando LD1 e acendendo LD2. Anotao 3a Faa uma tabela da verdade em funo do estado dos botes BTN1 e BNT2 (0 ou 1) e tabele os correspondentes valores de _R, _S , Q e _Q. Lembre-se que os botes em repouso fornecem nvel lgico 0 e que esto ligados s entradas _R e _S do latch por meio de inversores. Anotao 3b Verifique o que acontece quando os dois botes so pressionados ao mesmo tempo. Em seguida, tente soltar os botes tambm ao mesmo tempo. O estado final sempre o mesmo em vrias tentativas? Discuta a razo do comportamento observado. Anotao 3c Anote a hora atual. Apresente o circuito funcionando e suas concluses para o professor. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 12 Exerccio 3 Faa a tabela caracterstica (ou da verdade) do latch RS negativo. Exerccio 4 Por que foram inseridos inversores entre os botes BTN 1 e 2 e as entradas _R e _S do latch? Atividade 4 Contador Sncrono com 4 Flip-Flops tipo JK Projete um contador sncrono de 4 bits, adicionando mais dois flip-flop JK e portas lgicas no circuito da Figura 3.6 (no utilize dois contadores de 2 bits em cascata!). No pr-relatrio, desenhe um circuito de teste no qual o boto BTN1 esteja ligado entrada de clock C, o boto BTN4 entrada CLR, e a chave SW1 entrada CE. As sadas Q3Q2Q1Q0 devem ser ligadas aos leds LD5 a LD8; TC e CEO devem ser ligados aos leds LD2 e LD3; e o sinal de clock C deve ser ligado ao led LD1. Inicialmente, encerre o simulador e o Schematic Editor. Na janela do Project Manager, remova o arquivo xxFF1.SCH da hierarquia do projeto. Para isso, clique sobre ele para seleciona-lo e clique no menu Document | Remove, confirmando em seguida (o arquivo no apagado e permanece no disco; apenas retirado da lista de arquivos que compe o projeto). Em seguida, clique no menu Document | Add... e selecione o arquivo TestCB4.SCH (que deve estar no seu diretrio de projeto c:\pmr2433\seugrupo\xxFF). Abra esse arquivo no Schematic Editor. Repare que o sinal de clock C do contador gerado por um latch RS positivo, denominado XXRS. O boto BTN1 zera o clock, enquanto que o boto BTN2 o leva a 1. O boto BTN4 permite zerar o contador, e a entrada count enable CE pode ser controlada pela chave SW1. Abra em seguida a macro XXCB4; para isso, clique sobre ela com o boto da direita e clique em Hierarchy Push, ou clique no menu File | Open macro... e selecione essa macro (lembre-se: NO use o comando File | Open...). Note que ela contm apenas o contador de 2 bits que foi descrito no incio da apostila. Complete e modifique esse circuito seguindo o seu projeto, e salve. VERIFIQUE: se no tab Files da janela do Project Manager constar outros arquivos com extenso .sch na hierarquia do projeto (que deveria se chamar algo como xxFF), alm do arquivo TestCB4.sch, voc DEIXOU DE REMOVER o arquivo anterior da hierarquia. Volte e RELEIA esta atividade at este ponto. Complete e modifique esse circuito seguindo o seu projeto, e salve. Feche o Schematic Editor, implemente o contador e configure a FPGA (usando o programa ConfigXP). Teste o circuito: mantenha a chave SW1 em 1, pressione alternadamente os botes BTN1 e 2 para gerar o sinal de clock e acompanhe as sadas nos leds. Coloque a chave SW1 em 0 algumas vezes antes de fazer o clock subir, e verifique se o contador fica desabilitado corretamente. Em particular, teste o contador com os sinais CLR e CE mostrados na Figura 3.18: desabilite o contador quando a contagem atingir 3 (Q[3:0] = 0011) e o valor mximo 15 (Q[3:0] = 1111). Note: quando Q[3:0] chegar a 1111, as sadas TC e CEO (leds LD2 e 3) devem ir para 1; fazendo CE = 0 (chave SW1), apenas CEO deve zerar.
CE CLR C 15 16 17 18 4 5 6 0 1 3 2 . . . . . .
. . .
Figura 3.18 Sinais de excitao. Anotao 4a Faa mo livre a carta de tempos do contador para o caso particular descrito acima (CE muda de 1 para 0 com Q[3:0] igual a 0011 e 1111). NO necessrio desenhar todos os clocks entre 0 e 18 indique a continuidade por reticncias. Desenhe as formas de onda das sadas Q[3:0] de forma condensada. Anotao 4b Anote a hora atual e mostre o contador funcionando para o professor. Caso encontre algum erro no projeto dos pr-relatrios de membros da equipe, aponte-o e descreva o efeito causado. Exerccio 5 Faa o diagrama lgico do contador e do circuito de teste conforme descrito acima, incluindo os elementos necessrios (I/O PADs, I/O BUFs, LOCs) para ligar o contador placa. Veja quais pinos usar no enunciado desta atividade. Exerccio 6 Considere que os sinais da Figura 3.18 sejam aplicados s entradas do contador da Figura 3.8 (NO o contador de 4 bits que voc projetou o contador construdo com 2 contadores em cascata!). Desenhe as formas de onda das sadas Q[1:0], CEO_A, TC_A, Q[3:2], nesta ordem desenhe Q[1:0] e Q[3:2] de forma condensada, e com capricho! Elas devem estar sincronizadas com o sinal de clock, caso contrrio sero de pouca utilidade. LEMBRE-SE: considere o estado de um sinal de entrada no instante imediatamente anterior a uma borda por exemplo, na borda 0 de clock, o sinal CE vale 1. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 13 Exerccio 7 Determine o valor de contagem nas sadas Q[3:0] aps as bordas de clock em 3, 4 e 5. Atividade 5 Controlador do Display de 7 Segmentos Vamos criar uma macro para implementar o acionador de mostrador de sete segmentos. Comece ativando a ferramenta Symbol Wizard (menu Tools do Schematic Editor), e d ao smbolo um nome como xxDsDrv (no esquea de definir Contents como Schematic). A Figura 3.19 mostra o smbolo resultante ao final da definio dos pinos. As entradas DA, DB, DC e DD so barramentos (buses), de quatro bits cada. Para defini-las, clique em New na janela Ports, digite o nome do bus no campo Name (por exemplo, DA), e ajuste a dimenso do bus para [3:0] no campos Bus (ao lado do campo Name). Defina as demais entradas e sadas da macro: habilitao EN e clock CLK. As sadas so os sinais de ativao dos anodos (A1 a A4) e dos catodos (CA a CG) dos mostradores.
Figura 3.19 Definio do smbolo xxDsDrv As linhas grossas indicam barramentos (buses). Os barramentos de entrada podem ser ligados diretamente aos barramentos da macro MUX4_4_1, como mostra a Figura 3.20. Para desenhar um barramento no Schematic Editor, clique em Mode | Draw Bus (ou clicando no cone correspondente). Para terminar o bus, clique duas vezes sobre ele.
Figura 3.20 Ligao entre barramentos As macros MUX4_4_1 e 7SEG j esto disponveis no disco do seu computador, como parte da biblioteca xxFF, e podem ser instanciadas (isto , inseridas) dentro do seu circuito. Complete o esquema do circuito e salve. Dica: os barramentos de entrada podem ser ligados diretamente aos barramentos da macro MUX4_4_1, como mostra a Figura 3.20. Nota: para impor entradas em 0 ou 1, existem os componentes GND e VCC na biblioteca. Vamos testar o acionador utilizando o circuito de um cronmetro, mostrado na Figura 3.21. O sinal de clock gerado pelo smbolo OSC4, cuja sada F490 fornece um sinal de 400 Hz. Esse sinal ser utilizado para fazer a varredura do mostrador, e portanto cada mostrador piscar a uma taxa de 100 vezes por segundo. O contador CB2CE divide a frequncia do sinal por 4, resultando em uma base de tempo de um centsimo de segundo. frente deste, temos quatro contadores CD4CE de quatro bits que contam ciclicamente de 0 a 9 (so os chamados contadores de dcada ou contadores BCD). Portanto, cada um deles divide a frequncia por 10. Como o primeiro contador acionado a cada 0,01 s, temos no barramento DD a contagem decimal em centsimos de segundo. Analogamente, em DC temos a contagem em dcimos de segundo, e assim por diante. PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 14
Figura 3.21 Circuito do cronmetro PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 15 Note como o cascateamento dos contadores feito. O sinal de clock de 400 Hz conectado em todas as entradas C, mas apenas o contador CB2CE (de mdulo 4) est habilitado continuamente. A sada CEO deste contador habilita o primeiro contador CD4CE. Como vimos na Parte I, essa sada CEO vai a um somente nos perodos em que a contagem passa pelo mximo (3, neste caso) e portanto o primeiro contador CD4CE incrementado apenas a cada 4 ciclos de clock. Pelo mesmo princpio, o segundo contador CD4CE incrementado a cada 40 ciclos, o terceiro a cada 400 ciclos, e o ltimo a cada 4000 ciclos. O boto BTN4 est ligado s entradas CLR (Clear) dos contadores. Dessa forma, o cronmetro zerado sempre que pressionamos esse boto. No Project Manager, remova do projeto o arquivo utilizado na atividade anterior: clique sobre o nome do arquivo na rvore do projeto e clique no menu Document | Remove, e confirme. Voc no precisar construir todo o circuito da Figura 3.21. No diretrio do projeto j existe um arquivo parcialmente feito. No Schematic Editor, use o menu File | Open para abrir o arquivo CronSemi.SCH no diretrio C:\PMR2433\seugrupo\xxFF. Em seguida, salve-o com outro nome, por exemplo xxCron.SCH (onde xx so as iniciais do seu grupo), no diretrio do seu projeto, usando o menu File | Save as. Para incluir o arquivo no projeto, clique no menu Hierarchy | Add Current Sheet to Project. Complete o esquemtico com a instanciao da macro xxDsDrv que voc criou. Para conectar os pinos do primeiro CD4CE ao bus DD, clique no menu Mode | Draw Bus Taps. Em seguida, basta clicar num pino que o programa automaticamente faz a ligao com o bus que estiver em frente. Em seguida, necessrio indicar qual via do bus foi ligada (por exemplo, DD0). Para isso clique duas vezes no fio e digite o nome da via no campo Net Name. Implemente o circuito e transfira para a FPGA. Verifique o funcionamento do circuito. Anotao 5a Se o seu projeto do acionador de display (feito no pr-relatrio) apresentou algum erro, descreva-o no relatrio, juntamente com a correo feita. Exerccio 8 Analise o diagrama da macro 7SEG em anexo, que converte um nmero binrio de 0 a 15, codificado nos 4 bits de entrada B3B2B1B0, para o padro de acionamento de um mostrador de 7 segmentos com anodo comum. Uma sada Ci em 0 faz o led i correspondente acender, e vice-versa. Inspecionando o circuito, indique que leds sero apagados quando nas entradas B3B2B1B0 tivermos: a.1) 0010 a.2) 0111 a.3) 1101 Exerccio 9 Faa o diagrama lgico do circuito de acionamento do mostrador de sete segmentos, mostrado na Figura 3.12. O circuito a ser implementado o que se encontra delimitado pela linha tracejada; o display de 7 segmentos no faz parte dele, j que um componente separado. No seu projeto, utilize os elementos mostrados na Figura 3.13. No se esquea de aterrar a entrada CLR do contador, que no ser usada. Atividade 6 Run / Stop Modifique o circuito do cronmetro para incluir mais dois botes: Run (BTN1) e Stop (BTN2). Ao se pressionar o boto Run, o cronmetro deve disparar. Pressionando-se Stop, a cronometragem se detm; nessa condio, pressionando-se Run novamente o cronmetro continua a partir da contagem em que parou. Ateno: o boto Clear (BTN4) somente pode zerar o cronmetro quando este estiver parado. Dica: use um latch para controlar a habilitao dos contadores (pino CE). Anotao 6a Faa o diagrama lgico do circuito modificado de forma resumida: no inclua PADS e BUFS; havendo componentes repetidos com ligaes iguais, desenhe somente o primeiro e o ltimo com reticncias entre eles. No entanto, indique os botes e leds da placa XLA usados nas entradas e sadas do circuito. Anotao 6b Anote a hora atual e mostre o circuito funcionando para o professor. Atividade 7 Finalizao Deixe a bancada em ordem e limpa. Falhas nesse procedimento sero penalizadas. Check list Verifique e anote no relatrio os seguintes itens. i. Equipamentos Liste todos os equipamentos usados. Todos esto desligados? Em especial, certifique-se que o COMPUTADOR e o MONITOR estejam DESLIGADOS (NO deixe o computador em STAND-BY). PMR2433 Eletrnica Analgica e Digital Experincia 3 (rev. A) Celso M. Furukawa Escola Politcnica da USP Departamento de Engenharia Mecatrnica 2 o sem. 2014 16 ii. Multmetro Os cabos das pontas de prova do multmetro esto arrumados? Deixe o multmetro sobre o tampo baixo da bancada, para que possamos conferir facilmente se est desligado. iii. Osciloscpio Os cabos das pontas de prova do osciloscpio esto arrumados? iv. Cabos Liste todos os cabos de conexo usados. Os cabos foram recolocados nos lugares de origem? (O cabo paralelo da placa deve ser deixado conectado ao computador) v. Placa XLA a placa foi embalada no plstico anti-esttico e guarda da na caixa com sua fonte? vi. Emprstimos Usou alguma coisa de outra bancada? O qu? Foi devolvido? vii. Defeitos Encontrou algum defeito? Preencheu a Comunicao de Defeito? viii. Limpeza A bancada est limpa?
Equipamentos com defeito devem ser deixados na prpria bancada. Cabos, cabinhos e outros acessrios com defeito devem ser entregues ao professor, juntamente com a Comunicao de Defeito.
Entregue o relatrio feito em sala e o seu pr-relatrio Copyright Digilenet, Inc. Digilab XL Users Manual 3/3 Board Graphic C 2 4 L D 9 J 8 U 6 C 2 3 C 2 0 S W 9 PROG PORT C22 C21 C19 R3 R P 1 5 R P 1 6 R P 1 2 R P 1 4 RP13 C 1 8 U 4 J 3 R 4 R 6 R 5 C L K 2 CLK1 C 1 7 C 1 3C12 C16 C 1 1 U 3 C 1 0 C 9 C 1 4 C 1 5 J 7 C 8 C 7 R P 1 1 R P 1 0 R O M R 2 C 3 C 5 J 6 C 2 J 5 C 4 C 6U 2 J 4 A U D J 2 R P 8 R P 9R 1 U 1 C 1 J 1 B N C B T N 1 B T N 2 B T N 3 B T N 4 R P 7 R P 6 L D 1 L D 2 L D 3 L D 4 L D 5 L D 6 L D 7 L D 8 R P 5 R P 4 S W 1 S W 2 S W 3 S W 4 S W 5 S W 6 S W 7 S W 8 Q 4 Q 3 Q 2 Q 1 RP1 R P 2 R P 3 DSP2 DSP1 WWW.DIGILENT.CC DIGILAB XL D I G I L E N T ,
I N C
2 0 0 0 VDD GND SW1 SW2 SW3 SW4 SW5 SW6 SW7 SW8 LD1 LD2 LD3 LD4 LD5 LD6 LD7 LD8 LDG BTN1 BTN2 VDD GND O2 O1 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 GND ASFT ATIP VDD GND DP CA CB CC CD CE CF CG A1 A2 A3 A4 RXD TXD O4 O5 CLK2 BTN3 BTN4 VDD GND O3 PINT PAS PDS PWE VDD VDD VDD GND GND GND BNCS BNCP PWE PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 PAS PINT PRS PWT PDS GND GND O1 O2 O3 O4 O5 R G B HS VS RXD TXD PS2C PS2D 1 Copyright Digilenet, Inc. Digilab XL Users Manual 12/12 FPGA The Digilab board can accommodate a Xilinx Spartan XCS05, XCS10, XCS05XL, and XCS10XL FPGA in the 84-pin PLCC socket (the XL parts require a 390 ohm R6 for 3.3V operation). Any of these SRAM-based FPGAs may be programmed using a parallel cable or an SPROM (see above). The parallel cable provides an inexpensive programming solution that is compatible with the Xilinx CAD- tool cable detection software, so that the FPGA can be programmed without leaving the Xilinx environment. Refer to the Xilinx Spartan data sheet (http://www.xilinx.com/partinfo/spartan.pdf) for technical data regarding the FPGAs. Pin # Function Pin # Function Pin # Function 1 GND 29 O1 57 BTN3 2 Vdd 30 M1_NC 58 BTN2 3 PWE 31 GND 59 BTN1 4 PD0 32 MODE 60 LD8 5 PD1 33 Vdd 61 LD7 6 PD2 34 M2_NC 62 LD6 7 PD3 35 CLK2 63 Vdd 8 PD4 36 O2 64 GND 9 PAS 37 O3 65 LD5 10 PRS 38 A4 66 LD4 11 Vdd 39 A3 67 LD3 12 GND 40 A2 68 LD2 13 CLK1 41 INIT (O4) 69 LD1 14 PDS 42 Vdd 70 LDG 15 PWT 43 GND 71 DIN (O5) 16 PD5 44 A1 72 DOUT (RXD) 17 PD7 45 CG 73 CCLK 18 PD6 46 CF 74 Vdd 19 SW8 47 CE 75 TXD (PINT) 20 SW7 48 CD 76 GND 21 GND 49 CC 77 R 22 Vdd 50 CB 78 G 23 SW6 51 CA 79 B 24 SW5 52 GND 80 HS 25 SW4 53 DONE 81 VS 26 SW3 54 Vdd 82 PS2C 27 SW2 55 PROG 83 PS2D 28 SW1 56 BTN4 84 PINT The table on the right shows all FPGA pin connections. In this pin-list, gray boxes indicate dedicated pins that are not available for use. Italicized names indicate dual-purpose pins; for these pins, the Xilinx function is shown first followed by Digilabs assignment in parenthesis. Some FPGA signals, including the LED drive signals and the unassigned (or open) signals are available on the J1 prototyping connector. Care should be taken to ensure that these signals are not simultaneously driven by both the FPGA and by other drivers. If the FPGA is loaded in the U3 socket and external circuits must drive these signals, it would be best to tri-state the FPGA signals. The parallel port connector can be used as the FPGA programming port or as a parallel port. When downloading a circuit that drives the parallel port data signals, ensure that the signals are not driven until SW9 has been moved to the PORT position. See the parallel port demo project on the Digilent web site. 2 Copyright Digilenet, Inc. Digilab XL Users Manual 13/13 Any CAD-tool-designed circuit that requires fewer than about 5K 10K gates can be programmed into the Xilinx FPGA. However, the circuit description must first be transformed into the format required by the FPGA. This transformation proceeds in several steps, typically beginning with an EDIF, VHDL, or Verilog file format and ending with a Xilinx bit file format. Xilinx (of course) produces a tool that accomplishes this transformation, which is available in the Xilinx Alliance and Foundation products (see the Xilinx web site). Although other methods of transforming files may be available, only the Xilinx solution has been used with the Digilab board. Although the use of the Xilinx tools is beyond the scope of this document, Xilinx has several good tutorials and helpful documentation available at their web site. All signals on the Digilab board that connect the buttons, switches, and LEDs to the J1 connector are connected to the Xilinx FPGA chip as well. Any circuit implemented in the FPGA can use the buttons and switches as inputs and the LEDs as outputs. When the Digilab board was fabricated, the buttons, switches, and LEDs were connected to particular pins on the FPGA (see the table in the previous section for all FPGA pin definitions). To connect an FPGA-based circuit to these devices, you must include information in your schematic to map circuit inputs and outputs to particular FPGA pins. Mapping is accomplished by including special components in your schematic called IPADs, IBUFs, OPADs and OBUFs. These components exist solely to allow you to define physical pin connections, and so they only need be used in circuit schematics that you intend to download. Once you have a complete and error-free schematic, you may add IBUFs and IPADs to all inputs, and OBUFs and OPADs to all outputs. Then, the IPADs and OPADs can be connected to particular pins by double-clicking the pads and entering the LOC parameter and pin number in the appropriate fields (Name and Description, respectively). In the example circuit below, two switches (SW1 on pin P28 and SW2 on pin P27) are connected via an AND gate to LED1 (LD1 on pin P69). If this circuit were downloaded to the FPGA, then LD1 would illuminate whenever SW1 and SW2 were asserted. Once all IPADs, IBUFs, OPADs, and OBUFs have been added and edited with pin locations, you can begin the implementation process by choosing the Implementation button from the Xilinx main screen. In the first dialog box that appears, choose Yes to update the netlist from the schematic editor. In the second dialog box, make sure the device is S10PC84 and speed is 3 before proceeding; the version and revision names can use the defaults. Press the Run button, and then wait for the status window showing Translate, Map, Place & Route, Timing, and Configure processes to terminate. Before proceeding, make sure that the Digilab board is powered on and connected to the PC via the parallel cable, and that SW9 is in the PROG position. Then select the Programming option from the Xilinx main window, and hardware debugger from the subsequent dialog box. The cable should be auto-detected; if not, manually choose the parallel cable in the Cable communications dialog box. AND2 IBUF IBUF OBUF OPAD IPAD IPAD LOC=P28 LOC=P27 LOC=P69 For simulation purposes, labes can be added to wires between the IBUF's and the circuit. Labels are added by doule-clicking the wire and entering the name in the dialog box. "LOC" parameters are added by double-clicking the pad symbol and entering LOC in the Parameters Name feild and Pnn in the Parameters Description feild, and then pressing Add and OK. 3 Celso M. Furukawa Escola Politcnica da USP PMR Project: PMR2433 Macro: 7SEG Date: 8/21/00 Date Last Modified: 9/10/02 D4_16E A0 A1 A2 A3 D0 D1 D10 D11 D12 D13 D14 D15 D2 D3 D4 D5 D6 D7 D8 D9 E OR4 OR6 OR4 OR5 OR6 OR5 OR4 VCC CG CA CB CC CD CE CF B0 B2 B1 B3 Celso M. Furukawa Escola Politcnica da USP PMR Project: PMR2433 Macro: MUX4_4_1 Date: 5/5/02 Date Last Modified: 9/10/02 M 4 _ 1 E D 0 D 1 D 2 D 3 E O S 0 S 1 VCC M 4 _ 1 E D 0 D 1 D 2 D 3 E O S 0 S 1 M 4 _ 1 E D 0 D 1 D 2 D 3 E O S 0 S 1 M 4 _ 1 E D 0 D 1 D 2 D 3 E O S 0 S 1 DA[3:0] DB[3:0] DC[3:0] DD[3:0] S0 S1 Z0 Z1 Z2 Z3 DA0 DA1 DA2 DA3 DB0 DB1 DB2 DB3 DC0 DD0 DC1 DD1 DC2 DD2 DC3 DD3 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 A A B B C C D D E E F F G G H H Xilinx Corporation 2100 Logic Drive San Jose, CA 95124 Project: XLA5 Sheet: XLA51 Date: 8/21/00 Date Last Modified: 4/18/02 OBUF P69 OPAD OR2 OR2 OBUF P68 OPAD OR2 OR2 OBUF P67 OPAD OR2 OR2 OBUF P66 OPAD OR2 OR2 OBUF P65 OPAD IBUF IBUF OBUF P62 OPAD P19 IPAD P20 IPAD OBUF P61 OPAD P23 IPAD IBUF OBUF P60 OPAD H4 B0 B1 B2 B3 CA CB CC CD CE CF CG P24 IPAD CD4CE C CE CEO CLR Q0 Q1 Q2 Q3 TC IBUF OR4 P57 IPAD IBUF P28 IPAD P59 IPAD P58 IPAD CB8CE C CE CEO CLR Q[7:0] TC P40 OPAD P39 OPAD OBUF OBUF OBUF OBUF P51 OPAD P50 OPAD P49 OPAD P48 OPAD IBUF P56 IPAD P25 IPAD IBUF OBUF P38 OPAD IBUF OBUF P13 IPAD OBUF BUFG OBUF CB16CE C CE CEO CLR Q[15:0] TC P46 OPAD P47 OPAD OBUF P45 OPAD OBUF OBUF VCC P44 OPAD P26 IPAD IBUF P27 IPAD IBUF IBUF IBUF Q[7:0] VCC VCC Q7 GND