Sei sulla pagina 1di 23
—TFn TL CAPITULO 12 eee Aplicagoes de um Dispositivo de Légica Programavel fe ee SUMARIO TLL tat cat to vee (arranjo tégic0 12-4 Compilado anaes les genéri Légica Pro 12-2 Programando PLDs 12-5 Comentarios 12-3. Software de Desenvolvimento sla foram eproduzkdos por cones ds Late Ser 488 Sistemas Digitats Prinetpio e Aplicaghes @ OBJETIVOS Ao completar este capitulo, vocé deverd estar apto a 1 Identificar as aplicagdes dos dispositivos de logica pro- eramavel, 1 Compreender a organizacao interna de um dispositive de logiea programavel tipico, 1 Utilizar ferramentas de software capazes de programar luma grande variedade de dispositivos de légica progra- mavel 8 Implementar um projeto l6gico completo usando PLDs @ INTRODUCAO ‘Ao longo deste livro, examinamos varios blocos basicos de sistemas digitals. A medida que cada bloco era descrito, um Circuito integrado disponivel era citado como um meio de se Implementar a funcdo Igica em questo. Muitos mas em operacao hoje Sao combinacdes de circultos inte, radios que realizam as funcdes para as quiais 0 sistema foi especificado. Imagine por um momento que vocé & um pro- jetista de circuitos e que desenvolveu um eireuito que & composto de portas légicas, decodificadores, contadores, registradores etc. Como vocé iré Implementar este circui to? Como voo® vai demonstrar que o seu projeto funciona? Uma vez que os componentes tenham sido especiticados ¢ © diagrama esquemético final esteja desenhado, voce pro- vavelmente iré construir um prototipo. se processo é. por natureza, sujeito a erros na con ‘x40 dos componentes. 0 uso de Varios tipos diferentes de Circuitos integrados tende a criar um grande miimero de conexdes. Mesmo com técnicas de protétipo altamente or- ganizadas, em geral & muito dificil identificar visualmente uma conexdio no protétipo. Utilizando as téenicas de pe quisa de falhas apresentadas neste livro, vocé pode isolar © problema, mas corrigir uma ligacao errada no prot6tipo pode ser bastante dificil Imagine que voeé fosse capaz. de agrupar varios compo- hentes em um tinico circuito integrado que foi “programa- do” para funclonar conforme especificado no seu projeto, Os dispositivos de I6gica programével, que foram introdu- zidos no Cap. 11, oferecem essa funcionalidade, Com esses dispositivos, a posstbilidade de erros se desloca das cone- des para a programaczo do dispositive, Conseqilentemen- te, um dispositive que & capaz de ser apagado e reprogra- mado ¢ ideal para situacdes em que mudangas e revises sergio Feitas com freqiténcia, O objetivo deste capitulo é for- necer informacdes mais detalhadas sobre dispositivos de l6gica programdvel (PLDs) que sao reprogramavels. Tam- ‘ém discutiremos ferramentas e métodos para desenvolver projetos Igicos em circuitos funcionais usando légica programével A maior parte deste capitulo é sobre um dispositive par- ticular, a GAL 16V8A. Bla foi selecionada por ser compati- vel com quase todos os dispositivos PAL, ter um custo ra- zoavel e ser apagavel e reprogramdvel. Estes recursos sao bastante titeis para ambientes de laboratério € no desen- volvimento de protétipos. Os conceitos que se aplicam a esse dispositivo sao igualmente aplicaveis a outros tipos de PLDs. 0 CUPL, um dos varios pacotes de software usados par programar PLDs, também seré descrito para permitir que vocé monte o seu sistema de desenvolvimento. Ele fol esco- Inido porque € f4cll de usar e é bastante popular na indiis- twa. 12-1 A GAL 16V8A (ARRANJO LOGICO GENERICO) A GAL 16V8A foi introduzida pela Lattice Semiconductor Sua arquitetura & bem similar a clos dispositivos PAL des- critos no Cap. 11 (Fig. 11-22). Consequentemente, ela pode ser usada como um substituto genérico, compativel pino 2 pino, para a maioria dos dispositivos PAL. Em vez de uti- lizar ligagdes que sto programaveis uma tinica vez part selecionar as entradas que irto produzir os termos produ- to apropriados, os dispositivos GAL usam uma matriz EEPROM, Certas posigdes desta meméria sio designads para controlar as conexdes programaveis para a mateiz de entrada, Cada bit na matriz de entrada representa uma conexo programavel entre uma linha e uma coluna, Isto permite que 0 dispositivo possa ser apagado e reprogra- mado. A tecnologia CMOS permite que 0 componente opere com baixo consumo ¢ velocidade comparivel 2 dos dispositivos TTL. Felizmente nao € necessario saber os enderecos de cada bit na matriz. O software de programa ‘ao se encarrega desses detalhes de uma maneira bastan te amigivel para usuario, (© diagrama logico completo da GAL 16V8A pode ser visto na Fig. 12-1. Este dispositivo tem oito pinos dedica- dos para entrada (pinos 2.2.9), dois pinos de entrada com funcoes especiais (pinos 1 € 11), € oito pinos que podem ser usados como entradas ou sadas (pinos 12 a 19). Os componentes principais de dispositivos GAL sao @ matriz de entrada, as portas AND, que geeam os produtos das entradas: eas macrocélulas da Iogica de saida (OLMCs output logic macro cells). Note que cada um dos vito pinos de entrada (2 a 9) esto conectados @ uma coluna da matriz. de entrada. © complemento de cada uma des- sas entradas também esti conectado a uma coluna da matriz de entrada. Esses pinos devem ser sempre idemtificados como entrada quando estivermos programando @ 16V8A, ‘Um nivel Igico e seu complemento sio realimentados de cada OLMC para uma coluna da matriz.de entrada. A fon- te desses niveis légicos ¢ determinada pela configura de cada OLMC, como serd visto mais adiante contabiliza 32 varidveis de entrada (colunas na mattiz de tentrada) que podem ser conectadas &s 64 portas AND de multiplas entradas. No Cap. 11 vimos que a tinica linha mostrada como uma entrada das portas AND na verdade representa até 32 en tradas em cada porta (vide Fig. 11-20). Qualquer Coluna ‘mostrada como estando conectada (dlesignada por um X)a uma linha ¢ uma entrada de uma porta AND, juntamente com qualquer outra coluna que esteja conectada a esta ‘mesma linha, Na matriz de entrada, qualquer coluna pode Isto Aplicagdes de um Dispositivo de Logica Programavel 489 LATTICE Fig. 12-1 Diagram logico de uma GAL 16V8A. 490 Sistemas Digitals Principios e Aplicagdes ser conectacla & entrada de uma posta AND durante o pro- cesso de programacio. A flexiblidade da GAL 16V8A se baseia no fato de sua ‘OLMC ser programavel. Oito diferentes produtos (said portas AND) sto fomecidos como entradas de cada tuma das macrocélulas. Dentro de cada OLMC, € gerada uma expres- 10 na forma de soma de produtos, fazendo uma operacdo OR com esses produtos. Lembre-se de que no Cap. 4 vimos ‘que qualquer fungao pode ser escrita na forma de soma de produtos. Dentro da OLMC, o resultado dessa soma de pro- dutos pode ser direcionado para um pino de sida para implementar um circuito combinacional ou pode set sincro- nizada com o auxilio de um flip-flop D para implementar tum cireuito seqquenctal Para compreender a operagaio de uma OLMC, veja a Fig. 12-2, que mostra a estrutura da OLMC(), onde 1 represen a um ntimero entre 12 € 19. Observe que sete dos produ- tos esto incondicionalmente conectados as entradas da porta OR. O oitavo termo produto é conectado a um ‘multiplexador de termos produto de duas entradas (PTMUX) que aciona a oitava entrada da porta OR. O oitavo termo produto também € conectado a uma das quatro entradas de um multiplexador de quatro entradas CISMUX) que ha- bilita 0 inversor com saida tristate, que, por sua vez, aciona © pino de saida {/O(). O multipiexador de sada (OMUX) € um MUX de duas entradas que seleciona entre a saida combinacional (porta OR) ea saida do flip-lop D. Um quarto multiplexador seleciona se o sinal légico deve ser realimentado para a matriz de entrada. Este € chamado de multiplexador de realimentagao (FMUX), Cadla um desses multiplexadores & controlado por bits programéveis na EEPROM. E desse modo que a configura- 20 da OLMC pode ser alterada pelo programador. Um outro bit que € programavel € o da entrada da porta XOR. Ele possibilita que a polaridade da saida seja programavel, conforme foi visto no Cap. 11 (veja Fig. 11-23). Lembre-se de que a porta EX-OR pode ser usada para complementar tum sinal I6gico de modo seletivo, como pode ser visto na Fig. 12-3 Podemos compreender as virias opgdes de configura. fo estudando as possiveis entradas de cada um dos multiplexadores. O TSMUX controla a entrada de habilita- io do buffer tristate. Se a entrada V,, esta selecionada, a saida esti sempre habilitada, como uma porta légica ‘combinacional comum. Se a entrada aterrada est nadia, a saida tristate do inversor esta sempre em alta im- pediancia (permitindo que seu pino I/O seja utilizado como entrada). Uma outra entrada que pode ser selecionada vem, da entrada OE que esti no pino 11. Isto permite que a saida seja habilitada ou desabilitada por um sinal logico exter- no aplicado ao pino 11. 4 tiltima entrada que pode ser selecionada € 0 termo produto proveniente da oitava porta AND. Isto permite que uma combinagio AND de termos da matriz de entrada possa habilitar ou desabilitar a sa da, ‘© FMUX seleciona o sinal que é realimentado para a matriz de entrada 150, existem r€5 Selegdes Poss veis, Selecionando a entrada do MUX que est conectada 0 estigio adjacente ou a entrada do MUX conectada a0 seu proprio pino de 1/0, podemos realimentar um estado exis- Tente para a matriz de entrada em alguns modos de opera- io. Esse recurso fornece 4 GAL 16VBA a habilidade de implementar circuitos sequenciais como 0 circuito latch com portas NAND descrito no Cap. 5. Essas opcodes de realimen- tagao também permitem que pinos de /O sejam usados ‘como entradas dledicadas em vez ce saidas. Um desses dois caminhos de realimentagio é escolhido, dependendo do ‘modo para o qual 0 chip foi programado. A terceira opcao lecio: oY + Lvefw x Paraa aco TT 5 / ais CRE ie ole See t—+0 = 4 Sa / - fee asec | . seca cux oe ous sdosane Fig. 12-2 Macrocélula da lgica de saida de uma GAL 168A, OU-Exclusive Aplicagées de um Dispositiva de Légica Programével 491 contRoue | ENTRADA | SADA im x ENTRADA - : 2 ® shia Nao invertiso ‘ —t 4 ° | eines 1 ° 1 CONTROLE i Invertido Buffer Inversor ies | Hua seleciona a saida de um flip-flop D, permitindo que o esta- do atual do flip-flop (que pode ser usado para determinar © proximo estado) sefa realimentado para a matriz. de trada, Isso permite que circuitos seqtienciais sejam imple- mentados, tais como contadores ¢ registradores de deslo~ camento. ‘Com todas essas opgdes, parece que existe uma longa lista de configuracdes possiveis. Na pritica, todas as de sbes de configuragao serdo feitas pelo software, como ve- remos mais acliante neste capitulo, Na verdade, a GAL 16V8A tem apenas tr8s modos, mas € muito importante compre- ender como o hardware € configurado em cada um deles para que seja possivel entender as capacidades € as limita- Ges do dispositive. Os trés modos de configuraga0 sao: (1) ‘modo simples, que € usado para implementar express0es ta forma de soma dle produtos sem saidas do tipo tristate ‘modo complexo, que implementa expressoes na forma de soma de produtos com safdas do tipo tristate que Sto hak litadas por um produto AND, € (3) modo registrador, que permite que OLMCs individuais operem em uma configura- ‘Gio combinacional com saidas tristate (semelhante ao modo Complexo) ou em modo sincrono com flip-flops D sincro nizados por um sinal de clock comum. A linha 60 da matriz EEPROM armazena a palavra de controle da arguitetura. Cada bit desta palavra tem um papel na determinacio da configuracio de hardware das OLMCs A Fig, 12-4 mostra como esses bits estio organizados. A no ser que Vocé v4 programar manualmente a GAL 16V8A (0 que quase nunca é feito), ndo teri que se preocupar com a organizagao dos bits nessa palavra de controle. O software de programacao se encarregara disso, Vocé deve, entretan- to, compreender as fungdes de cada bit. Os bits SYN € ACO sao usados para especificar um dos trés modos de configu- racio para todo o chip. Os bits ACI( (um por OLMC) determinam a operacao de cada OLMC individual naquele médulo. Os oito bits XOR() sto usados para complemen- tar seletivamente as respectivas saidas das OLMCS, Os 64 12-3 Usando um EX-OR para complemer de modo seletivo. bits de desabilitagto de termos produto (PTD) sao usados para desabilitar as portas AND que nao esta sendo usi- Modo Simples © chip esta programado no modo simples quando SYN 1 ACO = Ona palavra de controle, Neste modo, duas con- figuragoes sto possiveis para cada macrocélula (OLMC): Entrada dedicada [quando ACIG) = 1 Safda combinacional dedicada [quando ACL) o Cada OLMC pode ser programada de modo independente ‘em uma dessas duas configuracoes, A configuragao de en- trada dedicada conecta um pino de I/O de uma OLMC na matriz de entrada através do redirecionamento do sinal por uma OLMC adjacente, como por exemplo o pino 18 na Fig 12-5. 0 inversor trstate deste pino esta incondicionalmente desabilitado (alta impedaincia). Os pinos 11 € 1 servem como entradas que sto redirecionadas através clas OLMCs 12 € 19, respectivamente. Neste modo, os pinos 15 ¢ 16 nao podem ser usados como entradas dedicadas, uma vez que eles nao tém uma conexao com uma célula adjacen- fa A configuragio com saida dedicada para uma OLMC tem seu inversor tristate sempre habilitado, como pode ser visto na Fig, 12-5 para a OLMC 19, Esta € a Unica configuragao capaz de agrupar os oilo termos produtos em uma expres- so na forma de soma de produtos para gerar uma sada combinacional, As OLMCs 15 € 16 estio sempre na confi- guracio de saida dedicada sem realimentagio no modo simples. As outras seis OLMCs podem ter suas saidas rea- limentadas para a matriz de entrada por meio de uma cé- lula adjacente. Por exemplo, observe que a saida da OLMC 19 € realimentada para a matriz de entrada através da OLMC 18, pres prs rst pro wos sua tina | oESABILTAGAO | 4 yt , , ve | BESABIITAGAO me) Sostenmes’ | tte, | ioe | oie | rae | ate | SESS es PRODUTOS oe im o ‘PRODUTOS (rr) 0) ane ae Sree Fig. 12-4 4 arquitetura da palavra de controle da GAL 16V8A, 492 Sistemas Digitais Princfpios e Aplicagdes Modo Simples GAL16V8A ealmenogéo 18 6 coe a aa 2 " Fig. 12-5 Configuracdes das OLMCs no modo simples. Aplicagdes de um Dispositive de Logica Programavel 493 MPLO 12-1 O cireuito do Cap. 3, Fig, 3-17, pode ser representado por uma expresso booleana y= AC+ BC + ABC: Sea GAL 16V8A fosse usaida para implementar este circuito, que modo seria usado, ¢ como 0 hardware seria programa- do? Solucao Esta expresso € uma soma de produtos simples sem ne- cessidade de saidas do tipo wistate, portanto © modo sim: ples € usado (SYN = 1, ACO = 0), O hardware esta confi gurado como mostrado na Fig, 12-6. A OLMC 19 esti con- figurada como uma saida dedicada [ACIG9) = 0}, Observe as conexdes da matriz. que gera a expressio desejada, As linhas de entrada de todas as portas AND nao-utilizadas Sto nna verdade conectadas a todas as colunas. Isso assegura que ssaida da porta AND seja igual a 0, uma vez que ela tem como entradas as varkiveis ¢ seus complements. Os sim- holos de conexao (X) foram omitidos nesse diagrama para maior clareza Todas as colunas conocido Fig. 12-6 implementacio de Por que € to importante saber tantos detalhes se 0 sof ware vali se encarregar de toda a progeamacio? O projetista deve decidir quais 0s pinos que sero conectados (e pro. gramados) como entradas € como saidas, Se 0 projetista declarar 6 pino 15 como uma entrada e também especificar ito termos produtos diferentes em uma Gnica expressio, 0 software vai gerar uma mensigem de erro. Isso acontece porque o modo simples € necessirio para se ter oito ter mos produtos, mas 0 pino 15 nao pode ser usado como uma entrada neste modo, Entretanto, se 0 pino 15 for usado como saida e o pino 14 como entrada, 0 software pode progr mar o dispositive para operar no modo simples. Modo Complexo 0 modo complexo € definide por SYN = 1€ ACO = 1.0 bit ACI para cada OLMC estd no nivel logico 1. A Fig. 12. logica combinacional simples, 7 mostra o diagrama logico para a 16V8A. O inversor tristate que aciona o pino de saida é habilitado por uma expresso produto. Em outras palavras, uma expressio logica deve ser especificada para habilitar a saida. Isto deixa sete termos produtos, que podem ser usados para formar uma expresso como soma de produtos, Os esta- dos ldgicos dos pinos de saida das OLMCs 13 a 18 tam- bém so realimentados através dle sua respectiva OLMC para a matriz de entrada, As OLMCs 12 e 19 nao podem ser realimentadas e nem podem ser usadas como entra- das, uma vez que o caminho de realimentagao € usado para permitir que os pinos 11 € 1 possam ser usados como, entradas. Nesta figura, © pino 19 € mostrade como uma saida cledicada sem realimentagao, © pino 18 € uma en- trada, € © pino 17 € uma saida com realimentagio. Este pino também pode servir como entrada quando o inver- Sor tristate estiver desabilitado. 494 Sistemas Digitats Pr Modo Complexo GAL16V8/16V8A 2 ceipesronaies 3 entity ae | 5 18 6 Tee, 14 7 ett 4g Sguitn 1" Fig. 12-7 Configuragdes das OLMCs no modo complexo, Aplicagdes de um Dispositivo de Logica Programével 495, EXEMPLO 12-2 Determine 0 modo de operagio, escreva as equacdes l6gi hhabilitagao da saida = C31 » ZZ ssenhe a configuragao de hardware cle um latch trans- Q= D-EN+ Q- EN parente tipo Dcom saidas tristate habilitadas por CSI e C82, como se pode ver na Fig. 12-8(0) A configuragio da GAL 16VBA € mostrada na Fig. 12-8(b) ae com a OLMC 17 usada para gerar sinal Q. Observe as cone Solucio xOes na mateiz para implementar as equiagdes. Uma vez que saidas sincronas nao sio necessdrias, mas saidas tristate estio especificadas, o modo complexo é usa- do, AS equacdes sao: cst ox —{ > o —______—_» 0 a ENABLE ————_______len. (a “Todas as colina conectd nhs b) Fig. 12-8 (a) Latch ransparente com saidas tristate, (b) Implementago do latch no modo complexo. 496 Sistemas Digitals Principios ¢ Aplicagdes Modo Registrador 1. Configuracio sinerona (quando ACL = 2. Configuragdo combinacional (quando ACL = 1) © modo regisirador ¢ caracterizado por SYN = 0.¢ ACO = A operagto da configuracio combinacional (Fig. 12-9, 1, Existem cas configuragoes possiveis para cada LMC OLMCs 12. 18) € semelhante a operagio de uma OLMC no neste modo: modo complexo. A habilitagao da saida € controlada por Modo Registrador GAL16V8/16V8A, 19 a= 8 3 | 7 | : a | Saati 1 | i} 4 18 2 " Fig. 12-9 Configuracdes das OLMC no modo registrador luma expressio produto da matriz de entrada. Isto fornece habilidade de usar sinais bidirecionais em aplicagoes de barraumentos. O sinal de saida também ¢ realimentado atra- vés de sua OLMC correspondente A configuracio sincrona (OLMCs 13. 17 ¢ 19) usa um flip- flop D em cada OLMC para sincronizar todas as saidas dos Apllcagdes de um Dispositivo de Logica Progeamavel 497 flip-flops a transicao de um sinal de clock comum. O pino 1 uma entrada dedicada para o sinal de clock. Todos os in- versores tristate para as OLMCs que foram configuradas com sstidas seqiienciais sto controlados pelo pino 11 (OE) Estas sitidas seqtienciais podem ter até oito termos produtos em uma expressio logica que aciona a entrida D do flip-flop. EXEMPLO 12-3 Determine o modo de operagio de uma GA 16VBA, escre- va as equacdes ldgicas € desenhie a configuragaio de hard- ware para um contador de médulo 4 de 2 bits com uma saida decodificada para © estado QB, Q: Fig. 12-10(a), 11, conforme a Todas as colunas conectadas a lishas b) Fig. 12-10 (a) Contaclor bindrio de médulo 4 com saida decodificaday DECODE OE somente () implementagao do contador no modo registrdor, 498 Sistemas Digitais Prine‘pios ¢ Aplicagoes Solugdio Um contador de médulo 4 necesita do modo registrador As equacoes para as entradas clos flip-flops De para a saida decodificada sao: Dd, Dy bEcobe A (a eninada D do FF A) OB (QB © QA (a entruds D do FEB) A configuragao de hardware pode ser vista na Fig. 12-100b), Vocé deve verificar que as expresses foram implementa das corretamente, Questées de Revisio 1. Diga duas vantagens dos dispositivos GAL em relacao aos dispositives PAL. 2. Diga os ués modos de operacto de uma GAL 16V8A. 3. Dé o nome de cada configuragao da OLMC em cada modo. 4, Em qual modo a saida tristate € controlada pelo pino 1 5. Em qual modo o pino 1 € dedicado para a entrada de clock? 12-2 PROGRAMANDO PLDs Estudamos a programagio cle PROMs, EPROMs, EEPROMs ¢ PLDs no Cap. 11. Obviamente, deve existir uma maneira melhor de especilicar a programaglo de um PLD do que desenhar X's e O'S no diagrama da matriz. Para compreen- der e apreciar 0 papel do software de desenvolvimento, vamos examinar alguns detalhes do processo dle programa ‘ao de um PLD. \Virios elementos sto necessaries para projetar e cons- truir circuitos usando PLDs: Um computador (PC) Software de desenvolvimento para PLDs Programador Software para acionar o programador W Dispositivo de logica programavel AFig. 12-11 mostra um sistema de desenvolvimento tipi- co. O projeto inicial é fornecido como entrada ao software de desenvolvimento, conforme seri visto mais adiante, Este software traduz © projeto inicial em um arquivo chamado ‘mapa de fusiveis”. Este mapa indica quais fusiveis devem permanecer abertos € quais devem ficar intactos, © mapa de fusiveis € entao transformado para um outro arquivo de sida, cujo formato € mais adequado para a sua transmis- sio para 0 programador © software de programacto que se comunica com 0 programador é entio chamado no PC, Isso permite que 0 Uusuirio informe a0 programador 0 tipo de dispositive que vai ser programado. O arquivo de saida é enviado através, de um cabo para o programador, Este processo é chamado de downloading, Finalmente, o PLD é colocado no soquete do programador ¢ um comando € enviado do computador para programar o PLD. Os programadores geralmente tm lum soquete especial que permite que voce coloque o chip depois prenda os pinos entre seus contatos. Ele é chama- do de soquete ZIF (ZIF —zero-insertion force). Progr madores universais que podem programar praticamente todos os tipos de dispositivos, incluindo PROMSs, EPROM: microcontroladores e virios tipos cle PLDs, estao disponi veis por diversos fabricantes. Felizmente, 3 medida que os componentes programéveis comecaram a proliferar, os fabricantes viram a necessidade de padronizar as pinagens e os métodos de programagio. Um dos resultados dessa necessidade foi a criagao do C selho Unificado de Engenharia de Dispositivos Eletrénicos GEDEC — Joint Electronic Device Engineering Council) Uma de suas realizagdes foi o padrio JEDEC 3, um formato padrlo para transferéncia de dados de programagio para PLDs, independentemente do fabricante ou do software de programac2o. As pinagens para os varios encapsulamentos de citcuitos integracos também foram padronizadas, toman- do 08 programadores universais menos complicados. Con- seqiientemente, os programadores sio capazes de progr mat virios tipos de PLDs. O software que permite ao proje- tista especificar a configuriglo para um PLD precisa sim- plesmente produrir um arquivo de saida segundo o padra0 JEDEC. Entio este arquivo JEDEC pode ser carregado em {qualquer programador de PLDs compativel com JEDEC ¢ que seja capaz dle programar o tipo de PLD desejado, Questies de Revisio 1. Diga os nomes de dois pacotes de software que sao usados para implementar circuitos com PLDs. 2, Defina os seguintes termos: (a) mapa de fusiveis_(b) arquivo de saida 3. que € um arquivo JEDEC? Software = . de Dasenvol- Software de vimento Programagao | para PLD mae Cabo Gabo Programador Fig. 12-11 Um sistema de desenvolvimento para PLDs. 12-3 SOFTWARE DE DESENVOLVIMENTO © processo de gerar um arquivo JEDEC para depois trans- fer-lo para o programador pode Ser um processo extrema- mente tedioso se for feito manualmente, Nestes ihtimos vinte anos, muitos pacotes de software foram desenvolvidlos para permitir as usuarios um modo conveniente de projetar seus Circuitos e gerar automaticamente 0 arquivo JEDEC. O pri- ‘meio software desse tipo, desenvolvido pela Monolithic Memories, Inc. (MMD, foi chamado PALASM, que é uma abreviacio de PAL assembler (montador para PALS). Ver- sbes desse software ainda poem ser encontradas em do- minio publico para desenvolvimento de projetos simples ‘com PLDs, Entretanto, © mercado tem produzido softwares para projeto com PLDs muito mais poderosos. Essas ferr mentas sa conhecidas como compiladores logicos, Montadlores © compiladores sio programas que rodam em computadores pessoais. O usuario fornece um arquivo de entrada em um formato que o programa pode interpretar. [A principal diferenca entre montadoses e compiladores est no método usado para relag2o entre as entradas © as 52 das, Um montador necessita de um arquivo de entrada que define cle um modo bastante especifico a operacao do dls- positivo em termos que estio muito proximos ao hardware que esti sendo programado, como por exemplo equagdes légicas booleanas. Um compilador pode aceitar uma repre- sentacio mais abstrata do mesmo projeto ¢ traduzi-la em termos mais prOximos ao hardware que esta sendo progea- mado, ‘Todos os montadores € compiladores permitem que 0 ususrio fomeca seu projeto na forma de equacdes booleanas que definem a saida em fungio das entradas disponivei Neste caso, 0 arquivo de entrada é um arquivo texto no formato ASCIL, que pode ser gerado em qualquer editor genérico do seu computador, Neste arquivo estdo especifi- cados, juntamente com outras informagoes, o nome do pro- jetista, a data e o ntimero da versio do projeto. Os pinos a serem utilizados também deve estar especificados € de- rominados com os nomes dos sinais de entrada e de said. ‘A seguir, um conjunto de equagdes booleanas é relaciona- do e deve especificar 0 funcionamento logico desse dispo- sitivo. A maioria dessas ferramentas € capaz.de simplificar as equacdes que estio no arquivo de entrada, utilizando algoritmos similares aqueles que vocé aprendeu. nos ca tulos anteriores. Este recurso auxilia 0 projetista, pois per- mite que a l6gica a ser implementada seja especificada na sua forma mais simples, sem nenhuma tentativa de mini- mizacao das equacées. Se a forma minimizacla necessitar de ‘um maior nlimero de portas que aquele que o dispositive programivel possui, uma mensagem de erro € enviada (Os compiladores de alto nivel tém diversas opgdes para cespecificar © comportamento do circuito. Uma dessas op- ‘Goes € chamada cle captura do esquematico. Este modo pemnite que a operagao do circuito seja especificada sim- plesmente por meio do desenho de um diagrama esque- matico de um circuito logico usando um CAD. Este arquivo grafico ¢ traduzido em uma lista de ligacdes que especifi nao $6 0s tipos de componentes utilizados mas também como eles esto conectados. Varios programas diferentes podem ser necessirios para colocar os varios tipos de de- senhos em CADs em uum formato que possa ser aceito pelo Aplicagdes de um Dispositivo de Lagiea Programavel 499 compilador. Esse método é bastante ttil quando queremos implementar um circuito ji existente em PLDs. Como voce deve ter aprendido nos capitulos ante res, 08 circuitos l6gicos sto projetados a partir de tabelas verdade e de tabelas de estado. Estas tabelas sito utiliza- das para simplificar 0 problema e produzir as expressoes logicas que slo usadas para implementar 0 circuito real Voce também sabe que esse processo pode ser longo e te- dioso. Os compiladores logicos permitem que voce entre com 0 seu projeto na forma de tabelas-verdade ou de tabe- las de estado, Alguns compilacdores poclem até mesmo aceitar dliagramas de tempo como entrada, O compilador passa a se encarregar de todos os passos de reducio, da geracao das expressoes logicas e da producio do tipo apropriado de arquivo de saida para programacao do PLD que vocé tem em mente. Esses métoclos de entrada de dados pata projetos com PLDs tém servido muito bem as necessidacles da inchistria durante 0 periodo de transica0 dos chips l6gicos discretos para 0 uso de dispositivos programaveis. Durante a tltima década, os sistemas digitais tomaram-se cada vez mais com- plexos. No inicio dos anos 1980, o Departamento de Defe- clos Estados Unidos estava trabalhando no seu programa de circuitos integrados de velocidade muito alta (VHSIC — Very High-Speed Integrated Circuib. Durante esse progra- ma, foi desenvolvida uma “linguagem de descrigio de hard- ware” para especificar esses sistemas muito complexos. Essa Jinguagem evoluiu para um padrio do IEEE de descricao de circuitos logicos para fins de projeto e documentacio, Ela € conhecida como VHDL, Linguagem de Descricao de Hardware VHSIC (VHDL — VHSIC Hardware Description Language). Pode-se notar que ela € uma ferramenta de alto nivel porque seu acronimo ja contém um outro acrOnimo, A VHDL e outras linguagens de desericao de hardware pa- recem ser a dire¢a0 para a qual a industria esti se movendo para a descricao de projetos com PLDs, especialmente para sistemas mais complexos que usam CPLDs € FPGAs, Questées de Revisio 1. Descreva a diferenca entre um montador e um com- pilador, 2. Diga quatro maneiras de se entrar com um projeto em um compilador. 3. O que a sigla VHDL significa? 12-4 COMPILADOR UNIVERSAL PARA LOGICA PROGRAMAVEL (CUPL) Muitos programas para desenvolvimento com PLDs esti0 disponiveis. Todos eles compartiham algumas semelhan- ‘cas, assim como possuem diferencas que os distinguem uns dos outros. Para fomecer exemplos reais de desenvolvimen- tos simples com PLDs, utilizaremos um dos compiladores logicos mais populares disponiveis atualmente, Ele € cha- mado CUPL, e € fornecido pela Logical Devices. O CUPL & capaz de produzir arquivos para programacio de uma gran- de variedade de dispositivos. Ele também possui muitos dos modos de entrada de dados descritos anteriormente. 500 Sistemas Digitals Principios ¢ Aplicacdes © arquivo de entrada contém um cabecalho padeio que € usado pelo software para produzir o arquivo de saida para fornecer a documentacao do projeto. A Fig, 12-12 mostra um modelo patra. um arquivo de entrada tipico para © compilador CUPL, incluindo 0 cabecalho. Normalmente, um modelo de arquivo de entrada como este € criado e salvo utilizando um editor de texto. Cada vez que um novo pro- jew € inieiado, o modelo € editado para que as lacunas sejam, preenchidas, Observe que 0 /* e 0 */ sao usados para deli mitar os comentitios; estes, por sua vez, vao facilitar a com- preensio do arquivo de entrada. Observe também que toda linha de comand € delimitada por ponto-e-virgula (). O CUPL permite que a declaragao de cada pino seja for- necida de modo individual ou por meio de uma notagao compacta para a definicao de conjuntos de pinos. As entra ds € saidas ativas em nivel BAIXO podem ser especifica- das na secao de defini¢ao dos pinos, utilizando um ponto dees (Wem frente ao nome do pino. Este recurso adicional permite que as equagdes sejam escritas em fun- ‘a0 de quando elas esto “ativas” sem se preocupar se 0 nivel ativo € representado por um nivel ALTO ou um nivel BAIXO. Alguns exemplos de declaragao dos pinos feita de modo individual podem ser vistos na Tabela 12-1, onde também se pode ver a notacdo compacta Name Partno Date Revision Designer company XH Notagio Compacts PIN PIN 1 = CLK; PIN [CLR SET] DIN 3 = 'SET; [90.3 PIN 4 = QO: PINS = QL: PING = Q2: PIN7 = Q3: Uma vez que todas as entradas e saidas estejam declara- das, as equacdes ligicas que definem a operacio do circui to podem ser apresentadas. O formato geral de todas as equacoes é varidvel = expressao légica O lado esquerdo da equacio pode ser qualquer nome de uma sada ou qualquer outro nome de varidvel ou sinal de controle que esta definido no projeto. © lado direito da equaglo (expressio légica) consiste em uma combinacao ERE R EERE EERE REE IEEE USSU UO U ESSE EES SSSI OHSS Kea / i i EET TTETETTTeTTEreTeeeeeee i errr y entradas */ pina = pin pin pin pin pin pin pin pin pin i Saidas */ pin pin pin pin pin pin pin pin ‘positive a ser Programe, ad " [EEE RHEE REE OSES S SURE USE SUES UTES UTI In aaa Aaa] i Equacées RSE R ESOS SSR SSSR O DUB SU OEE O HOG OOS RAIA Raina aR, ” Fig. 12-12 Um “modelo” de um arquivo de entrads para 0 compilador CUPL, TABEL\ 122 Sintaxe CUPL para as operagdes lOgicas. Formato Formato Fungio Operator curl Convencional AND & ASB AB ‘OR = ASB A+B Not ! 1a a EXOR s ASB A@B logica qualquer (AND, OR, NOT, EX-OR) das variiiveis de- finidas no projeto. A sintaxe apropriada para este operado- res pode ser vista na Tabela 12-2. Ent alguns casos, uma equagao deve ser escrita para definir a operacao de um ponto interno do circuito (nd) no PLD, Por exemplo, a GAL 16V8A tem um buffer tristate as. sociaclo com cada saida. Nos modos de aperacao comple- x0 € registrador, a habilitaglo da saida tristate € controlada por um termo produto da matriz de entrada, O CUPL € muitos outros sistemas de desenvolvimento fornecem esse recurso permitindo extensoes no nome da variével de sar da, Por exemplo, admita que um pino de saida & denomi- nado DECODE, como pode ser visto na Fig. 12-13. A equa- cao l6gica para DECODE aciona esta saida com nivel l6gi- oI somente quando A esti em ALTO e B esti em BAIXO. A equa logica para DECODE.OF define as condigdes part at habilitagao da saida tristate, Neste exemplo, a saida esti em alta impedncia sempre que « entrada Cestiver em ni vel ALTO e estar habilitada quando Cestiver em BAIXO. Se desejassemos habilitar incondicionalmente a saida, teri amos que escrever a equagio DECODE.OE = 'b'l Ela indica que a entrada de habilitacio do butfer tristate sempre em nivel ldgico 1. A notagio “b” € usada para indi- Matriz de entrada Aplicagies de um Dispositivo de Légica Programavel 501 car 0 CUPL que o valor especificado esti em *bindrio", e nao em decimal ou hexadecimal Um outro exemplo do uso de extensdes pode ser visto 1a implementacio de circuitos seqtienciais sincronos. Voce deve se lembrar do Cap. 7 que miquinas de estado eram projetadas escrevendlo-se equiagdes para as entradas de um flip-flop. No modo registrador tht GAL I6VBA, as equagdes levem ser escritas para a entrada D de cada flip-flop, que, por sua vez, iri determinar a saida do flip-flop na proxima transigio do clock, Isto € feito utilizando a extensdo .D no nome do pino de said, Por exemplo, a equacao para a saida Q, do flip-flop D que esti conectado em modo de comuta- Gio seria: QD = 120 Esta equagio pode ser express em palavras da seguinte forma: a entrada Do Mlip-flop Q, isto €, Q0.D) esta conee- tada a0 inverso da saida Q, Outros PLD que no a GAL 16VBA podem necessitar de outras extensdes Ciclo de Desenvolvimento © primeiro paso em qualquer projeto € definir cuidado- samente o problema ¢ seu escopo. A determinag:io de todas as entradas e saidas necessitrias ¢ resultado deste pa relacdo entre todas as saidas e entradas também esti defi- nida © pode ser expressa de diversos modos, tais como: tabelas-verdade, tabelas de estado, equagdes I6gicas, ov mesmo diagramas logicos. © segundo passo consiste em criar um arquivo de entrada, também chamado de “arqui: vo fonte’, no formato exigido pelo compilador. A seguir, © compilador € chamado ¢ Ihe € fornecido o nome do arquivo de entrada. O proceso de compiligio produz varios arquivos de saida diferentes. © arquivo de docu- mentagao (extensd0 .DOC para 0 CUPL) contém qualquer mensagem dle erro que tenha sido gerada pelo compila dor, O arquivo do mapa de fusiveis mostra os fusiveis que DECODE.OE DECODE EQUAGOES LOGICAS DECODE = A815: DECODE OE = 1C: {OECODE = 4-3) {HABILITAGAO DA SAID/ Fig. 12-13 Usando extensoes para especificar 0 controle de habilitacto da said, 502 temas Digitais Prine‘plos e Aplicagbes serio queimados no PLD. Este arquivo € convertido em uum agquivo JEDEC para que possa ser usado por um pro- sgramador Se 0 compilador gerar qualquer mensagem de erro, a ca- sa deve ser determinada e corrigida usando um editor de textos para alterar 0 arquivo de entrada, Esse processo & repetido até que ndo haja mais erros, Neste ponto, 0 proje- to pode ser testado usando-se um simulador. Um sirmul- dlor € um programa que determina os estados l6gicos cor- retos das saidas a partir da descrigto do circuito Togico ¢ dlos valores aniais das entradas, E fomecido um conjunto dle entradas hipoteticas qu iro demonstrar que 0 disposi- tivo trabalha como esperado. Estes sto chamados de Veto- res de teste, Se os vetores de teste forem suficientemente detalhados, 0 projeto pode ser experimentado antes que © primeiro dispositivo seja programado. Quando o projetista estiver convencido de que o projeto vai funcionar, o arqui- vo JEDEC é gerado ¢ o software de programacao chama- do, O arquivo JEDEC serve como arquivo de entrada para 0 software de programagio, € 0 PLD € colocado no progra- mador. Muitos programadores e seus respectivos software silo capazes nao s6 de programar 0 PLD mas também dle fornecer os vetores de teste e monitorar as saidas. Esta ve- rificacao nos diz que o PLD esta funcionando corretamen- te. O PLD € entao colocado em um circuito e testada a sua funcionalidade, juntamente com os outros componen- tes do circuito. © fluxograma da Fig. 12-14 mostra 0 pro- cesso de desenvolvimento completo, Depurar ae . A : ; Crier arquivo JEDEC| I Programar PLO | Teste no sistema {TERMINADO| Fig. 12-14 Fluxograma do ciclo de desenvalvimenta com PLDs. Aplicagdes de um Dispasitivo de Légica Programavel 503, Exemplos TabeLA 123 Tabela-verdade de uma logica combinacional, Um exemplo simples usando 0 CUPL serviri pata ilustaro. KBD DX processo. Veja a tabela-verdade da Tabela 12-3, que repre- senta o resultado da descricio de um problema eda espe- 0 0 0 0 [0 cificagao dlo escopo para um determinado projeto. Se est 9 0 0 111 + ABCD vvéssemos usando chips logicos SSI, 0 proximo passo SG ao |G a simplilicagao usando mapas de Karnaugh,Geralmentemio 9) 1 fg € necessirio simplificar 0 projeto quando estamos usando PLDs, uma ver que €0 compilador que vai realizata‘sim~ 91 9 @ | @ plifieacao. Eniretanto, equagdes na forma de soma de pro- za dutos devem ser escritas a partir da tabela-verdade, eee ee eee ~- © proximo passo € criar um arquivo fonte (de entrada) © 1 1 0 |o fe gD + el usando um editor de textos. © cabecalho do arquivo fonte 9 1 1 1 | 0 + ABCD + ABCD deve ser preenchido para fornecer a docomentacio com- [eae pleta, como se pode ver na Fig. 12-15. 8 primeira grande 1 © 9 © decisio que deve ser tomada € a selegao dos pinos deen- 1 0 0 1 | 0 trada e sada, Isto requer alguma compreensio do funcio 1 9 1 0 | 0 rnamento da arquitetura do dispositive que esti sendo pro yg 4a | gramado. Neste simples projeto usando a GAL 16VBA, pra- jo ticamente quaisquer pinos que nao V,,e terra poderiamter 1100 | 0 sido usados como entradas. O pino de saida deve seresco- 10100 01 | 1 Ihido entre os pinos 12-19. Finalmente, escreve-se umaex- 1 1 1 0 | 0 pressio na forma de soma de produtos para especificara 1 1 1 1 | 1 operagao do pino de saida, Observe os simbolos que fo- ram usados para representar as operagdes logicas, O arquivo fonte mostrado na Fig. 12-15 esti em um for- mato muito simples e pode ser utilizado com maioria das ferramentas de desenvolvimento, desde que sejam feitas algumas pequenas modificagdes. O compilador, na verda- de, simplifica as equagdes ¢ gera um arquivo de documen- tacio que mostra as equagoes simplificadas © © mapa de Name combo. pla; Partno 32-17 Date 0106, Revision 01; Designer N. Widmer; Company Purdue University; Assembly Cap. 127 Location Liveo Toced; Device Gievea; Format, ti [+ JEDEC “/ [SERA S AMAR ARE L ELEN NESS SRSA EEA LEELA EEE ETEEERERRRREEREEEAEER / 7* Este é um exemplo de iégica conbinacional com 4 entradas e uma eaida */ I ” i * [OS I SO RR IU OO ESO an aa U oon aon amino iaitie) i Dispositive a Ser Programado Gal 16V8A * [EMO ROU O ORE SIUC EEE En SO Aaa aan attte) /* entradas +/ pint =A j [# Observe 0 uso do PINO 1 como entradas/ pin2 = 8 } /#B, Ce D séo entradas normais */ ping =¢ foes *” pind =D be * I fdas #/ pin 19 =x ; /# Pino 12 6 a saida */ [EERO IIE SUR Uae tii ekaanennneneeee | an Equacées * [EERE ARE SEES CHRO DESC USOT SIS MRI Raii nai] x AGIBGICED # LAGBEICED # AGBSICED # AGBECKD; Fig. 12-15 Arquivo de entrada para o circuito combinacional 504 Sistemas Digitals Prineipios e Aplicacies combo. pla Expanded Product Terms x= 1A & eae BED toad Fuse Plot syn 02192 = Aco 02193 x Pin #19 ‘00000 00032 00064 ‘00096 00128, 00160 00192 00224 02048 Pol - 02120 Aci x SORBOGIIAHOIHA INARI I IIHS, 3200920 000HKHOIH TAIT I IAT III, 08B002OHHOOODH III IE, 300000000098200000000 2000 RADAR 008HIHNHIHHAIHH IHR III, 3018080000200 B0ADOIAOH HAIN RI I fusiveis para a programacdo do dispositive, Partes cesse arquivo de documentagao para esse projeto podem ser vis tas na Fig, 12-16, Observe que a expresso simplificada igual & que teria sido obtida com o mapa de Karnaugh. O mapa de fusiveis mostra as conexoes na matriz de entrada identificando cada bit programivel por um endereco. Cada Fig. 12-16 Arquivo de documentagio com mapa de fusiveis. posicio marcaca com um “x” indica uma conexao da linha com a coluna da matriz (fusivel nio deve ser aberto). Cada posigio marcada com um *—" indica um fusivel aberto e que jato, nao hd conexdo entre a linha e a coluna. A Fig, ‘mostra as primeirts duas colunas do mapa de fusi- sama interno da GAL 16V8A para por 1 veis superposto ao diags Todas as colunas estio conectadas 4 linhas Fig. Implementagio do circuito em um PLD. este projeto, Os bits de selegao de modo (SYN = 1, ACO = 0) esto configurados para o modo simples, ¢ ACL = 0 para a OLMC 19 faz com que a saida seja combinacional (O exemplo anterior é bastante trivial e serve apenas part demonstrat os detalhes do desenvolvimento de um projeto usando PLD. Este circuito poderia ser implementado util zando portas ldgicas convencionais, com um menor custo fe requisitos dle poréncia e espaco em placas semelhantes. A. Aplicagées de um Dispositive de Léglea Programvel 505, grande vantagem no uso de PLDS aparece quando imple- ‘mentamos circuitos que no possuem alternativas conven- Gionais ou que necessitam de um grande numero de chips convencionais. © proximo exemplo mostra o projeto de um circuit convencional que necessita de uma combinacao ‘monstruosa” de portas TTL para ser implementada. Este Circuito é bastante funcional e ainda assim pode ser imple- ‘mentado em uma tinica GAL 16VBA @ um custo rizoavel, EI PLO 12-4 Projete um circuito que indica qual dos concorrentes em um concurso de perguntas e respostas deve responder primei- name GAME.PLD; Partno 12-20; Date 01/06; Revision 03; Designer N. Widmer; Company Purdue University; Assembly cap. 127 Location Livzo Toces; Device Gievea; Format u is SEDEC ro’ pergunta. O circuito deve ter como entradas um boo de contato momentdneo p a cada um dos seis concorren- tl RE On iin aaa tices eed / Ja ESTE DISPOSTEIVO DENSRMINA QUE 0 BOTKO FOL APERTADO PRIMEIRO EE ey J USNDO EM CONCURSO DE PERGUNTAS E RESFOSTAS * is *) [DAMA aaa Riaeanennaaananinaat] Dispositivo a Ser Programado GAL 16V8A 7 [ARES RG CCE SCC SRR ASO CODERS IEE y* Entradas */ pin (2..7] = (81..6] /*Estas seis entradas (51-s6) */ ]#s%0 usadas por seis jogadores. + [Blas estariam conectadas a botées de +/ J*contato momentaneo, normainente em nivel */ /*BATXO. */ i ” ping = RESET ; [taste botdo ¢ usado pelo animador para apagar os LEDs. ” I” saidas */ pin 12 = 11a : /* Betas saidas vao para os LEDs = +/ pin 13 = 1L2 i 7* que indicam que jogador oy pin 16 = 123 : /* deve responder primeiro. 7 pin 17 = 114 ; J*observe que eles 280 * pin 18 = ILS i 7*ativos em nivel BAIXO pelo uso de !#/ pin 19 = 116 i [tna definicac da saida. * TARAAAAA;AAASREKAAAAAAAAAAISKKAAAAAA GAO RRR RESIS SCa SS RRS RRR] it Bquagdes. *y RARER ARAMARK ARRAS RRA] La = IRESET & Si & tha & 13 & Ine & ILS L2 = {RESET & 82 & !21 & 103 & 1L6 & ILS L3 = IRESET & 83 & Il & 112 & tha & 125 LA = (RESET & 546 !11 & ins 85 & 11 & 112 & 1L3 & ttt & 86 & ILL & 102 & 103 & IE4 & ILS & Ile # IRESED & ta; ie # IRESED 6 12; 6 tue # IRESET & 13; Sine # IRESED & La; tue # IRESED & 15; Fig. 1218 0 arquivo de # IRESER & Le; ee 506 Sistemas Digitais Prinefpios e Aplicagoes tes ¢ seis LEDs para indlicar qual dos concorrentes apertou © boto primeiro. Um botto de reset € utilizado pelo ani mador do concurso para apagar todas as luzes (LEDs), Solugao combinacional, Este problema possui clementos de logic: bem como de logica sequiencial. Considere as condigdes sob as quais um LED que representa um determinado concor- rente deve ser aceso. © LED N deve ser aceso se ocorrer uma das condigdes citads a seguir; 1. 0 concorrente Vesta apertando 0 botio E nenhum outro concorrente esti com seu LED acest E 0 animador nao esti tentando apagar os LEDs, ou 2. O concomtente Nest com © LED aceso E animador nao esti tentando apagar os LEDs. A primeira condigao especifica uma combinagao de entra das para acender 0 LED. A segunda condicio gera uma a de armazenamento (seqiiencial) para manter 0 LED aceso apés todos os botdes terem sido liberados, O primeiro passo para implementar uma solugao basea- da em PLD € dar nome a todas as entradas ¢ saidas e espe- Gificar 08 niveis l6gicos ativos, Os botdes 1-6, denominados 6, sito ativos em nivel ALTO. A entrada de RESET tam. bem é ativa em ALTO, As saidas sa denominadas LI-L6 & devem ser ativas em nivel BAIXO para acender os LEDS, uma vez que as saidas podem absorver mais corrente do que podem fomnecer (vide Cap. 8). Usando esses nomes, as alirnagdes acima podem ser escritas da seguinte forma para 15 RESET + 11 RESET Condigao 2 Condigao 1 © arquivo de entrada para 0 CUPL pode ser visto na Fig. 12-18. As entradas estio declaradas usando a notacio de conjunto (compacta) do CUPL. Qualquer um dos pinos de entrada (1-9, 11) poderia ter sido utilizado. Os pinos de saicla foram selecionados conforme mostrado porque sstamos operando no modo simples. Neste modo, os pi- nos 15 ¢ 16 nao podem ser realimentados, ¢ portanto eles devem ser evitados. Observe que, para especificar uma safda como ativa em BAIXO, 0 operador de inversao (I) € usado antes da definigao da declaracao do nome do pino, Isto diz ao compilador para fazer com que a saida va para BAIXO quando ela estiver ativa, enquanto a expressio logica indica que € necessiria logica positiva para tomar a saida ativa. © CUPL automaticamente se encarrega de com- plementar as sa qualquer termo de realimentac jo que Imagine tentar implementar esse circuito usando l6gica TTL! Ele pode ser completamente implementado usando uma tnica GAL 16V8A. Gitcuitos com saidas sincronas também podem ser im- plementados usando GAL 16V8A. No Cap. 7, estudamos © projeto de contadores sincronos com flip-llops JK. Todos 08 estadlos atuais possiveis foram relacionados em uma ta bela, juntamente com seus “proximos estados”, Entdo, de- fterminamos as entradas neces para fazer com que 0 estado atual fosse para o proximo estado desejado, resul tando em equagdes ogi a cada entrada Je K. © mesmo procedimento é usado quando projetamos cir- cuitos sineronos com PLDs. Entretanto, & GAL 16V8A possui flip-flops D em vez de flip-flops JK. Isso na verdade faz. com {que © processo se tome mais simples, uma vez que voce precisa escrever apenas ums equacao para cada entrada D. ‘A equacao para cada entrada Dé simplesmente a soma de todos os estaclos presentes (termos produto) que devem fa- zet com que o flip-flop vii para ALTO no proximo estado. EXEMPLO 12-5 Para ilustrar esse processo, implementamos © contador sincrono da Secao 7-14 (Fig, 7-33) usando PLDs, O primei- ro passo ainda ¢ criar uma tabela retacionando o estado atual com © proximo estado, conforme foi visto no passo 3 do provedimento de projeto de circuitos sincronos, na Secio 7-14, Voce pode pensar essa tabela como sendo um con- junto de trés tabelas-verdade, cada uma especificando o pro- ximo estado de cada flip-flop com base no estado atual de todas as entradas. Para essa tabela, as expresses na forma de soma de produtos nao-simplificadas para 0 proximo sstado de cada saida Sto: Proxim estado de C Bea Proximo estado de B B-a+C-B-® Proximo estado de C BeA+C-B-R Ima vez que o prdximo estado de um flip-flop D é deter minado pelo estado atual em sua entrada D, estas também Silo as equacoes necessirias para excitar as entradas D. O arquivo de entrada resultante pode set visto na Fig, 12-19. Lembre-se de que C.D é a notago usaca pelo CUPL para a entrada Ddo flip-flop G, ¢ também usada para os flip-flops AcB(ADe BD). Aplicagies de um Dispositivo de Liglca Programével 507, wane counter. PLD; Partno 32-21; pate 01706; Revision 01; Designer N. Wigner; Company Purdue University: Assembly cap. 12; Location Liveo Tecei; Device caevea; Format 33 [ARRRRIORAR EERE USES ERE ERRATA RARER AREER [Bete disposivive vai funciona cone um contador de modulo 5. * #0 >1>2>3>4> 0 Todos os outros estados véo para 0. + [RARRRRAAA RRR SIRRR RR AE EERE EA TAREE EEA EERE AAAAA RY i Dispositive a Ser Progranado GAL 16V8A [ea ARERR HA /* Entradas #/ PIN 1 = cK; Jtentrada de clock (tem que ser o pino 1)#/ /* wlio hd entradas combinacionais para este contador de nédulo 5 */ J+ saidas #/ pin 19 =c ; [* Saida mais significativa */ pin 18 = 3 3 is ” pind? =A 7 /* saida menos significativa */ JD RE Ina aEEEEnEaaneE net eaniaaeeetns / i quac6s * PUR RE Ena R REAR Raa aRAR AER EaE EAE] c.D= 1c eB EA; B.D= ICE IBEA # IC KBE IA; AD=ICkIBEIRE [CEB EI Fig. 12-19 Arquivo de entrada para 0 contador de médulo 5 © compilador CUPL € bastante versitil, € praticamente Questdes de Revisio 41. Para que os caracteres /* */ sa usados em um arqui- vo de entrada? 2. Qual é 0 significado de usar OE em um nome de uma sada? 3. Explique 0 que representa QA.D. 4, Defina arquivo fonte. | 5. Qual o arquivo de saida que identifica erros de com- pilacao? 6. Em qual arquivo voce corrige os erros de compilacao? 12-5 Neste capitulo, fornecemos uma descrigio detalhada de um determinado tipo de dispositivo de légica programivel, a GAL 16V8A, Embora essa descri¢ao seja adequada para nos iniciarmos no uso de PLDs, ela nao fornece uma ampla cobertura nem sobre © CUPL nem sobre a GAL 16V8A. ‘Uma melhor compreensio do assunto pode ser obtida uti lizando-se as ferramentas de desenvolvimento enquanto se experimenta com PLDs, COMENTARIOS FINAIS qualquer dispositivo pode ser programado pelo pacote de software fornecido pela Logical Devices. & sintaxe que Voc aprendeu neste capitulo se aplica a muitos outros tipos de dispositivos que podem ser programados pelo CUPL, ‘A medida que vamos apreciando as vantagens desse PLD em particular sobre os chips SSI e MSI, devemos lembrar ue este dispositivo (GAL 16VSA) representa apenas um dos dispositivos de Iogica programavel mais simples. Outros Gispositivos, maiores e mais poderosos, estio disponiveis ‘Um PLD muito comum e que € amplamente utiizado hoje € 4 22V10. Varios fabricantes oferecem este dispositivo, & ele esti disponivel em versdes reprogramaveis ou nao, Ele ossui mais entradas e mais OLMCs. Entretanto, sua arqui Tetura € bastante similar a da GAL 16V8A. jponentes foi desenvolvida pela Lattice, ¢ eles sio “programaveis no sistema’. A ISPGAL22V10 € 0 dispositivo mais simples desta linha. A grande vanta. gem de componentes ISP (Jn-System Programable programaveis no sistema) é que eles nao precisam de um programador: basta um cabo para conexio do dispositive 2 porta paralela de um PC. A tnica desvantagem desses dlis- positivos € que eles estio disponiveis apenas em encapsu- lamentos do tipo PLCC. Isto significa que seriam necessari- ‘5 modificagSes nas priticas de laborat6rio que envolves- 508. Sistemas Digitals Prinefpias e Aplicacoes TAMELA 12-4 Fabsicantes € revendas de ferramentas de desenvolvimento com PLDs. Software e Prouramadores| Soreware Programadores| PL® Minc, Ine EMP-20 Logical Devices, Inc 6755 Earl Dr. Needham’s Electronics 130 Capital Dr. Suite A Golden, CO 80401 1-800-331-7766 hhtp://logicaldevices.com ABEL Synaio 1-888-796-2746 Data VO® Corp. 1-800-332-8246 10525 Willows Rd, NE Redmond, WA 981052 Igp/data-io.com 1-719-590-1155 hp: 1-503-671-9500 ep: Colorado Springs, CO 80918 1-916-524-8037 Disponivel através da Di 1-800-344-4539 hapi//www dligikey.com ORCAD Systems, Ine: 19300 SWW Nimbus Ave. Beaverton, OR 97008 ‘ww orcad.com sem proioboards. Entretanto, a possibilidade de reprogri- mar 0 dispositive apos ele ter sido colocado no sistema abre :minho para uma nova abordagem no projeto de sistemas igitais com a possibilidade de termos hardware reconfigu- rivel. Por exemplo, um sistema baseado em um micropro- cessador seria capaz. de determinar quais as opcdes est20 acualmente instalacas e ento reconfigurar a interface I6gi- ca de acordo, Existem ainda outras linhas de componentes com caracteristcas especiais, como por exemplo stidas com alta capacidade de coreente ‘© campo dos dispositivos de l6gica programével vai continuar crescendo, Estes dispositivos irio ocupar 0 espa- 0 dos circuitos logicos SSI e MSI, que tém nos servido tao bem nos tltimos 25 anos. Este capitulo forneceu uma base 4 partir da qual voce poder evoluir nessa sirea excitante € de continuo desenvolvimento. A Tabela 12-4 relaciona al que fornecem materiais de que voce pre- alhar nessa area. RESUMO 1. 0s dispositives de légica programaivel (PLDs) serao de gran- de importaneia no futuro dos sistemas digas. 2. Os PLDs redhzem a quantidade de pegas necessirias em es- toque, simplificam 0 prot6tipo de circuitos, reduzem o tama rho e'a poténeia necessiria de um produto © permitem que este Sef facilmente atualizado. 3. A GAL LOVBA ¢ um dos PLDs disponiveis mais simples, mas ainda € bastante uilizado e demonstra 0s principios basicos ‘que estao por tnis de todos os PLDs. 4. AGAL 16V8A tem uma matriz ce conexoes progeamiveis que so usidas para selecionar 0s fermos de entrada pars um gu pode ports AND. Efeita uma operacio OR com as sidas destas ponas AND em uma macrocélula ca l6gica de saida (OLMC), 5. A OLMC também pode ser programada para complementar 0 valor do bit resultante, armazenar este bit em um flip-flop D. usizarum butfer de sudla tissate ou realimenti-lo para a matriz de entrada. A combinagao desejad desses recursos & seleci- fonada programando-se © componente em um dos trés mo- dlos de opera ¢ escolhendo-se uma das configunides pos- siveis para 0 modo programado, 6 No modo simples, cada OLMC pode ter oito termos produ- tos, Nenhuma das saidas pode ser do tipo trstate, e 0s flip: flops nao sto usados para armazenae a saida. Todos os pi fos, exceto 0 15 € 16, podem ser realimentados. 7. No modo complexo, cada OLMC pode ter sete termos produ- tos, As sada trstate esto habilitadas por uma equagao loa -1 3 parte. Todos os pinos, exceto 0 12 ¢ 19, podem ser rea Jimenados 8 No modo registrador, cada célula pode ter oito termos pro- dutos de entrada, O bit resultante ¢ armazenado no flip-flop D. O sinal de clock e o de habiltagao de saida para estas ce Iulas estao nos pinos 1 € 11, respectivamente. As células que esto contiguradas como combinacionais funcionam do mes mo modo descrito para 0 modo complexo, 9. Para utilizar PLDs, voce precisa de um sistema de desenvolv mento que consiste em um computador, um programa para desenvolvimento de projetos com PLDs ¢ um programador ‘com um sofiware para acioné-lo, 10, Asequacdes logicas estio descritas no arquivo de entrada em uum formato que € ditado pelo software de desenvolvimento, Fle raduz as equagdes logieas para o formato JEDEC que pode: set usido pelo progrimador. O arquivo JEDEC ¢ enviada para © programador, e 0 componente & programado, 11, Os PLDs sto feels de aprender e usar, ¢ estio disponiveis ‘com recursos que excedem em mito 08 da GAL 16VSA. TERMOS IMPORTANTES smatiz dle entrada -macrocelula da légica de sada downloading soquete ZIF JEDEC ‘compilador simulador vetor de teste PROBLEMAS SEGAO 12-1 1241, Faca uma tabela relacionando cada modo e configuragio para a OLMC de uma GAL juntamente com seus bits de controle (SYN, ACO, AC. Identfique quais OLMCS po- dem ser usadas em cada configuracto, 12.2, Escreva todas os modos que polem ser usados para im plementar os recursos a seguir: (@) Um latch D com saidas uisate () Um fipsttop DB (©) Um contador sincrono (2) Lim cizcuito decodiicador Para cada modo e configuracao, diga qual é 0 nomero :miximo de termos em uma expresso dopo soma de pro- dos Identifique a fonte do sinal de realimenta cada modo e configura. 5. Identiique a fonte do sina de habilitago das saidas tite CISMUN) paca cada modo e configueagao Mosire que, programando o bt XOR em nivel ALTO, o nivel do pino de sata seri © mesmo que 0 da saida da porta OR'n# OLMC pars os Exemplos 12-1, 12-2 ¢ 1253 123. 124. 10 CEMEX) pasa 126, SBCAO 12-2 12-7. Rekacione os equipamentos necessirios para desenvolver circuitos usando PLDs SEQAO 12-4 128, Escreva um arquivo de entrada que programaria uma GA 16VBA para funcionar como um decodificador 741138 de 3 linhas para 8 linas, 12.9, Deseahe o diageama completo para o circuito do Exem- plo 12-4 se este fosse implementado usando chips conven- 1. Escrexai um arquivo de entrada pars 0 CUPL que prow maria uma GAL 16V8A para funcionar como um contador hinirio de modulo 8, {Um motor de passo pode ser movimentado energizando- se seus enrolamentos na seguinte seqiléncia 1010 boot o1oL cite Excreva as equacdes no formato CUPL que irio exiar © contador que podera acionar 6 motor de passe, 12-12, Passando pela seqtiéneia de estados do Problems 12-11 na diregic oposta, o motor de passo vai girar na digesta ‘oposta, Escreva as equagoes que recebam uma entrada eextemna (dir) © que fagam girar 0 motor no sentido hors rio quando dir = 0 ¢ no sentido antichorisio quando dir Co motor avanga um passo na transicao do clock). Aplicago ‘de um Dispasitivo de Loglea Programavel 509 Escreva 0 arquivo de entrada para programar a GAL 16VBA. 1243. Projete uma fechacura cletrOnica, Seu ciecuito deve ter como entrada uma combinagao de trés bits ¢ um botdo ENTRA. Se a seqiiéneia correia de valores de tr2s bits & fornecida (101 , 100 , 111 ), © bit de saida deve ir para ALTO, e a porta deve ser destrancada, RESPOSTAS PARA AS QUESTOES DE REVISAO DAS SEGOES 1. Apagivel e reprogramivel 21 simples, complexo e registrador Veja o texto. 4, Registrador configuracio sincrona 5. Registrador SEGAO 12-2 1. Software de desenvolvimento; software de programacao 2, (a) Um arquivo produzido pelo software de desenvolvimento, {que mostra que fusiveis devem ser queimados (b) A mesma infor ‘magao & traduzida em um formato apropriado para transmissi0 para o programador 3. Um arquivo de saida (mapa de fusiveis) de acordo com o pa Grae JEDEC SHGAO 12-3 1. tim compilador tem varias opedes para a entrada de dados sobre 0 projeto de um circuit. 2, Arquivo ASCIL captura de esquemstico; tabelas-verdade; tabe- las de estado diagramas de tempo tagem de descricio de hardware VHSIC SEGAO 12-4 1, Para delimitar comentiios, 2, Para indicar que este sinal aciona a habilitacio da sada 3. Acentrada Ddo Hlip-op Q, 4. O arquivo de entrada que especit e saidas 1s relagdes entre as entra 5. Arquivo de documentaao 6. Fonte (arquivo de entrada)

Potrebbero piacerti anche

  • Sumário e Prefácio
    Sumário e Prefácio
    Documento12 pagine
    Sumário e Prefácio
    simonei
    Nessuna valutazione finora
  • Glossario
    Glossario
    Documento8 pagine
    Glossario
    api-19796086
    Nessuna valutazione finora
  • Indice de CI
    Indice de CI
    Documento2 pagine
    Indice de CI
    api-19796086
    Nessuna valutazione finora
  • Indice
    Indice
    Documento7 pagine
    Indice
    api-19796086
    Nessuna valutazione finora
  • Capitulo 13
    Capitulo 13
    Documento17 pagine
    Capitulo 13
    api-19796086
    Nessuna valutazione finora
  • Capitulo 11
    Capitulo 11
    Documento69 pagine
    Capitulo 11
    api-19796086
    Nessuna valutazione finora
  • Capitulo 10
    Capitulo 10
    Documento42 pagine
    Capitulo 10
    api-19796086
    Nessuna valutazione finora
  • Capitulo 07
    Capitulo 07
    Documento62 pagine
    Capitulo 07
    api-19796086
    Nessuna valutazione finora
  • Capitulo 09
    Capitulo 09
    Documento62 pagine
    Capitulo 09
    api-19796086
    Nessuna valutazione finora
  • Capitulo 08
    Capitulo 08
    Documento61 pagine
    Capitulo 08
    api-19796086
    Nessuna valutazione finora
  • Capitulo 05
    Capitulo 05
    Documento55 pagine
    Capitulo 05
    api-19796086
    Nessuna valutazione finora
  • Capítulo 06
    Capítulo 06
    Documento31 pagine
    Capítulo 06
    Fabricio Julio
    Nessuna valutazione finora
  • Capitulo 04
    Capitulo 04
    Documento42 pagine
    Capitulo 04
    api-19796086
    Nessuna valutazione finora
  • Portas Lógicas e Álgebra Booleana
    Portas Lógicas e Álgebra Booleana
    Documento34 pagine
    Portas Lógicas e Álgebra Booleana
    Francoil
    Nessuna valutazione finora
  • Capitulo 02
    Capitulo 02
    Documento15 pagine
    Capitulo 02
    api-19796086
    Nessuna valutazione finora
  • Apêndice
    Apêndice
    Documento33 pagine
    Apêndice
    china.081692
    Nessuna valutazione finora
  • Capitulo 01
    Capitulo 01
    Documento13 pagine
    Capitulo 01
    api-19796086
    Nessuna valutazione finora