1. CIRCUITOS DIGITAIS Os circuitos integrados desenvolvidos em uma pastilha de silcio podem ser divididos em dois grupos de integrao: circuitos integrados padres e circuitos integrados de aplicao especfica (ASIC). Os circuitos integrados padres so compostos pelos circuitos integrados de funes fixas, que correspondem aos componentes digitais bsicos (funes E's, OU's, No E's, OU's Exclusivos, Flip-Flops, etc.), pelos microprocessadores e pelos circuitos integrados reconfigurveis, ou programveis (dispositivos lgicos programveis). Os circuitos integrados de aplicao especfica (ASIC) so subdivididos em circuitos integrados denominados "FULL CUSTOM" e circuitos integrados denominados "SEMICUSTOM". Os componentes SEMICUSTOM se dividem nos arranjos de gates (Gate Arrays) e nos arranjos de clulas (Cell Based). A figura 1 resume esta classificao. 2 Fig.1 - Classificao dos circuitos integrados Os circuitos integrados padres so disponveis no mercado em grande quantidade de itens. So classificados em SSI (integrao de pequena escala) e MSI (integrao de mdia escala), normalmente construidos em lgica TTL, ou CMOS, possuindo funes analgicas e digitais de propsito geral, baixo custo, devido a sua produo em massa, com blocos funcionais bastante simples e, portanto, necessitando de vrios componentes para a realizao de uma funo especfica. Ainda so disponveis os LSI (integrao em grande escala) e os VLSI (integrao em muito grande escala) que possuem funes especficas mais complexas, tais como, perifricos de comunicao de dados, temporizadores, controladores de redes, interfaces de barramentos, blocos para processamento digital de sinais, etc. Microprocessadores so componentes extremamente flexveis devido a sua programabilidade. A programao do componente torna-o flexvel para implementao de vrios tipos de aplicaes, entretanto, a implementao de um algortmo por software ser mais lenta que quando implementada por um hardware equivalente. Assim, para alguns casos, a tarefa dever ser implementada por hardware. Os componentes ASIC so programados atravs de interconexes metlicas usadas na fabricao de circuito integrado, sendo tambm denominados de MPLDs (Mask-Programmable 3 Logic Device, ou seja dispositivos de lgica programvel por mscaras, e portanto, necessitam de ter suas funes definitivas de operao implementadas na prpria construo do componente. Os componentes ASIC's Full Custom tem o seu projeto desenvolvido a nvel de transistores, para se obter uma performance tima, possuem longo tempo de desenvolvimento, alto custo de projeto, alto nvel de integrao e somente poder ter uma alta performance de desenvolvimento se produzido em grande volume. Os componentes ASIC's Semicustom so fabricados em quantidades de milhares de peas e utilizam de ferramentas CAD para o seu desenvolvimento. O projeto do usurio estar baseado em blocos pr-desenvolvidos, ou em clulas contendo blocos lgicos, flip flops, ou funes digitais maiores. O usurio no executa o seu projeto a nvel de transistores, ou de desenvolvimento de clulas. Estes componentes geralmente so classificados em arranjos de blocos (gate arrays), em arranjos de clulas (cell based) e em arranjos gerais de clulas (macro- cells, ou general cells). Em todos os casos, a fabricao final do componente realizada pelo fabricante de circuitos integrados. Macro clulas so construdas com blocos e clulas compondo uma biblioteca de funes, com nenhuma restrio no posicionamento destes itens em uma fila ou em uma matriz. Podem incluir reas de memria RAM e ROM, arranjos lgicos programveis (PLA) e grandes blocos funcionais, equivalentes aos VLSI's, por exemplo, microprocessadores, controladores de CRT, etc. "Gate arrays" so arranjos regulares de blocos que possuem clulas perifricas para possibilitar interligaes de entrada e sada. Podem ser arranjados em blocos, em filas, ou em matriz de blocos (sea-of-gates). Usualmente, somente as camadas de metais que interligam esses blocos que sero desenvolvidas. "Standard Cells" so compostos de uma biblioteca de clulas padres arranjadas em arquitetura de filas e com canais de roteamento desenvolvido de acordo com a necessidade do usurio. Algumas vezes somente se desenvolvem camadas de metais, outras vezes h a necessidade de se desenvolver todas as camadas no componente. 4 A figura 2 apresenta a estrutura de arranjos de blocos organizados por blocos, filas e matriz, com tambm a estrutura de um ASIC composto de clulas padres e blocos funcionais. blocos filas matriz a) b) c) PLA ROM d) clulas e blocos funcionais Fig.2 - Estrutura de gate arrays organizados por a) blocos b) filas c) matriz e de standard cells contendo clulas e blocos funcionais 2. INTRODUO A LGICA PROGRAMVEL Uma funo lgica, seja combinacional ou sequncial, poder ser representada na forma de soma de produtos atravs do uso do Teorema de DeMorgan ou das Leis da lgebra Booleana. Uma funo lgica complexa de multi-nveis poder facilmente ser reduzida a uma configurao de dois nveis usando E's-OU's. Estas propriedades das funes lgicas possibilitaram a implementaes de componentes eletrnicos contendo arranjos uniformes de E's-OU's que podem ser programados, de uma maneira clara e eficiente, para a obteno da funo desejada. Com a finalidade de aumentar a capacidade de implementao lgica nos dispositivos programveis, surgiram novas arquiteturas que incorporam flip-flops em suas estruturas para facilitar o desenvolvimento de mquinas de estado e circuitos com lgica sncrona. Os primeiros dispositivos programveis surgiram na dcada de 70 atravs do desenvolvimento da tecnologia de memrias ROM programveis (PROM's). 5 Os componentes programveis so, portanto, circuitos integrados que podem ser configurados pelo usurio em seu local de trabalho, sendo denomindados de FPLDs (Field- Programmable Logic Device. Os mesmos, por serem fabricados por completo e no apresentarem uma funo lgica definida, at que sejam configurados, diferem dos circuitos integrados personalizveis por mscaras (ASIC, CUSTOM ou SEMICUSTOM), os quais tem um alto fator de tempo de desenvolvimento e de custo. Para poder personalizar um dispositivo programvel, o usurio ter a sua disposio software que permite descrever a funo lgica desejada usando captura de diagramas esquemticos, tabelas verdadeiras de tenso, equaes booleanas, linguagem de descrio de hardware (HDL - Hardware Description Language), formas de ondas de sinais de entrada e sada, ou qualquer outra opo fornecida pelo fabricante do componente. Aps a definio, simulao e validao do funcionamento, haver um hardware especfico que ir programar o dispositivo. A programao do dispositivo feita de maneira serial, ou seja, somente um dispositivo por vez. J para os dispositivos personalizados por mscaras, podem ser implementados paralelamente tantos CI's quantos forem permitidos pelo processo de fabricao. Nestes componentes sempre haver uma perda de elementos no utilizados pela funo desejada. Assim, cabe ao fabricante desenvolver ferramentas que possibilitam melhorar o fator de utilizao do CI, ou seja a relao entre a quantidade de funes lgicas implementadas e a capacidade lgica do componente, atravs de otimizao dos elementos programveis e da escolha adequada do componente a ser utilizado. Entretanto esta perda inevitvel de rea de silcio no utilizada compensada com o baixo custo de desenvolvimento do dispositivo e a sua rpida obteno. Os dispositivos de programao utilizados nestes componentes so elementos de programao que permitem conectar, ou no, dois pontos estratgicos do circuito. Comumente 6 estes elementos so elos fusveis, anti-fusveis, clulas SRAM, transistores EPROM e EEPROM. Assim, alguns destes dispositivos podem ser reprogramados e outros so de programao nica. As denominaes dos fabricantes para estes dispositivos programados pelos usurio, normalmente citadas nas literaturas, so PROM's, PLE's, PAL's, PLA's, EPLD's, FPGA's, e outros. 3. EPLD's Os dispositivos lgicos programveis e apagveis - EPLD's (Erasable Programmable Logic Devices) foram introduzidos pela empresa ALTERA no ano de 1983. Estes dispositivos so circuitos integrados configurveis pelo usurio, os quais visam implementar funes lgicas aleatrias. Nos ltimos anos estes componentes tem sido preferidos nos projetos devido a sua alta integrao, alta performance, baixo custo por funo e o decrscimo de custo que est ocorrendo devido ao seu alto volume de fabricao. Um EPLD pode ser usado, por exemplo, como mquina de estado, ou decodificador de sinais, substituindo vrios componentes discretos que implementariam a mesma funo. As suas principais vantagens so: - Sua programabilidade e reprogramabilidade permite que funes possam ser alteradas facilmente, simplificando o desenvolvimento de prottipos; - Sua pinagem determinada pelo projetista, o que pode simplificar o desenvolvimento de placas de circuito impresso, por movimentao dos sinais conforme desejado; - Desde que so implementados em tecnologia CMOS, eles consomem menos potncia que os dispositivos bipolares; - Desde que uma clula EPROM tem ordem de magnitude menor que a de um fusvel bipolar, ento, pode-se implementar mais funes em uma mesma rea de silcio. Esta alta integrao pode resultar em uma quantidade menor de componentes usados em um projeto; 7 - Um EPLD substitue vrios componentes discretos. Isto implicar na reduo de tamanho da placa de circuito impresso, do tempo de montagem, do nmero de componentes por placa, do estoque de componentes, do tempo de desenvolvimento, entre outras caractersticas; - A programao realizada pelo prprio usurio reduz consideravelmente o tempo de obteno final do circuito e possibilita futuras modificaes; - A tecnologia usada nestes componentes est baseada em clulas EPROM, clulas EEPROM e clulas SRAM. O princpio de funcionamento dos componentes EPLD's est baseado nos PAL's, com estrutura programvel de E's e estrutura fixa de OU's. Entretanto, os EPLD's so compostos de vrios sub-blocos equivalentes a um PAL, com estruturas de somas de produto, interligados por um arranjo de conexes tambm programvel. Com isto, os sub-circuitos podero funcionar independentemente, ou serem interligados internamente, para executarem uma funo maior. A figura 3 apresenta esta estrutura. 'PAL' 'PAL' 'PAL' 'PAL' Fig.3 - Estrutura dos Dispositivos EPLD's 8 A ALTERA oferece vrias famlias de dispositivos lgicos programveis, que so: Clssica, MAX 5000, MAX 7000, MAX 9000, FLEX 8000 e FLEX 10K. A arquitetura MAX usa a estrutura de matriz de arranjos mltiplos com tecnologia de programao baseada nas clulas EPROM, ou EEPROM. A famlia FLEX usa a arquitetura de matriz flexvel de elementos lgicos, com programao baseada em tabelas LUT (look-up table) com clulas SRAM. 4. ARQUITETURA BSICA DE UM EPLD O bloco bsico de um EPLD uma clula lgica de propsito geral que contem uma lgica combinatorial e flip-flop programvel, que pode executar a funo de qualquer tipo de flip-flop (D, T, JK e SR), como tambm, ter a sua operao curto circuitada, deixando a clula executar uma funo puramente combinatorial. Na famlia clssica e na famlia MAX 5000 a estrutura est baseada em clulas lgicas. Na famlia MAX 7000, a estrutura formada por macroclulas que so blocos baseados em termos produtos. Na famlia FLEX 8000, a estrutura composta de uma matriz de elementos lgicos (LE's), baseados em arquitetura "look-up table". Cada LE contem quatro tabelas (LUT - Look-up table) para compor uma funo de quatro variveis e arquitetura de cascateamento para implementar funes combinatoriais complexas e, tambm, contem registro programvel, para implementar funes lgicas sequnciais. Neste curso ser enfatizado a famlia MAX 7000. 5. FAMLIA MAX 7000 Esta famlia a segunda gerao da arquitetura MAX. Possui lgica variando de 1000 e mais de 10000 gates equivalentes. 9 Os componentes tem encapsulamento variando de 44 a 208 pinos, no formato PLCC, PGA, QFP e TQFP. Tempo de atraso lgico de at 5 nseg. pino a pino e frequncias de contadores chegando at 178.6 MHz. Tambm possue bit de segurana programvel e todos os elementos desta famlia so suportados pelo software de desenvolvimento MAX + PLUS II. Possue arranjo de interconexo programvel (PIA) fortalecido, o que possibilita velocidade e atrasos fixos entre uma fonte interna e algum circuito destino. Possue macroclulas avanadas com localizaes lgicas eficientes, para possibilitar velocidades e densidades timas. Os registradores possuem, clear, preset, clock e habilitador de clock independentes. Temporizaes para os registros ser realizada por arranjos internos, ou sinais globais de temporizao. Possue componentes com alimentao para 3,3 volts, para uso em circuitos portteis, por exemplo notebooks. A sua arquitetura inclue os seguintes elementos: arranjos de blocos lgicos (LAB), macroclulas, expansores de termos produto, arranjo de interconexo programvel (PIA) e blocos de controle de I/O. Em adicional, a famlia inclue quatro entradas dedicadas que podem ser usadas como entradas de propsito geral, como sinal de alta velocidade, ou sinais de controle global (clear, clock e habilitadores). A macroclula avanada pode ser configurada para operao combinacional, ou sequncial. composta de trs blocos funcionais: o arranjo lgico, a matriz de seleo de termos produto e o registrador programvel. A figura 4 apresenta esta estrutura. 10 D PR CLR Q ENA Fig.4 - Macroclula da famlia MAX 7000 A lgica combinatorial implementada no arranjo lgico, que contem cinco termos produtos por macroclula. A famlia MAX 7000 possue alocao programvel de termos produtos, fazendo com que um termo produto possa ser usado como entrada lgica primria, aplicada a soma dos elementos (lgica OU e lgica OU exclusiva), para implementar a funo combinatorial, ou ser usado como entrada lgica secundria, sendo aplicada aos controladores de habilitao de temporizao, do clear, do preset, ou do clock. Um termo produto por macroclula pode ser invertido e realimentado no arranjo lgico. O software de desenvolvimento MAX + PLUS II automticamente otimiza a alocao dos termos produtos. A figura 5 apresenta um diagrama de blocos de um EPLD da famlia MAX 7000, contendo o posicionamento dos elementos lgicos na estrutura. 11 LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB LAB Fig.5 - Diagrama de blocos da famlia MAX 7000 A famlia MAX 7000 de alta densidade, com programao de alta performance, fabricada na tecnologia CMOS e com programao baseada em EEPROM. Alm da verso clssica, existem as verses: MAX 7000V, que opera com tenso de alimenrtao de 3,3 volts, MAX 7000E, que a verso com caractersticas fortalecidas, incluindo especificaes de barramento local PCI, e a verso MAX 7000S, que incorpora a interface serial padro IEEE 1149, ou JTAG (Joint Test Action Group), que possibilita a programao na prpria placa de circuito impresso denominada ISP (In-System Programmability), ou seja, pode-se alterar as funes do dispositivo sem ter que retir-lo de sua placa de operao. A programao dos dispositivos da famlia MAX 7000 poder ser efetuada com a unidade de programao mestre, denominada MPU, ou com o dispositivo de programao serial denominado byteblaster, para os dispositivo que possuam a comunicao JTAG. 12 Em parceria com a Unio Digital, a Datapool Eletrnica Ltda desenvolveu um pacote de experincias que visam ensinar as caractersticas bsicas de projeto com o uso de dispositivos lgicos programveis. Neste curso sero usados os dispositivos da famlia MAX 7000S. O pacote contem projetos bsicos que envolvam os recursos do software MAX+PLUS II, nos modos de desenvolvimento por esquemtico, por formas de ondas e por AHDL. O projeto desenvolvido ser programado serialmente no dispositivo, via conexo a um computador PC, atravs de um byteblaster, e um adaptador PLCC para dip, que possibilita a conexo do dispositivo ao protoboard do mdulo digital 8810 da Datapool. Assim, aps a programao do dispositivo, pode-se usar os recursos de entradas e sadas do mdulo 8810 para efetuar a simulao e verificao do projeto. Os dispositivos da famlia MAX 7000S possuem quatro pinos destinados a comunicao para programao, assim em placas que se deseja efetuar a programao de um dispositivo EPLD, deve-se deixar disponveis os pinos que executam estas funes. A figura 6 apresenta esta conexo. Fig. 6 Conexo para programao de dispositivo via JTAG