
























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
O desenvolvimento de Dispositivos. Lógicos Programáveis (PLD-Programmable Logic Devices) tem proporcionado a substituição de diversos chips por um único CI, ...
Tipologia: Esquemas
1 / 32
Esta página não é visível na pré-visualização
Não perca as partes importantes!
A tecnologia dos circuitos digitais tem se desenvolvido rapidamente nas últimas décadas. Os avanços constantes têm transformado de forma radical todo o processo de projeto de hardware. A microeletrônica apresenta uma história longa de evolução num período muito curto, passando pelo descobrimento do efeito transistor em 1947 na Bell Labs, e pelo desenvolvimento do processo planar para a fabricação de CI´s (circuitos integrados) em 1959 na Fairchild, resultando nos primeiros CI´s comerciais em 1962. Assim, a idade do CI´s é de apenas aproximadamente 50 anos(2008).
A revolução da microeletrônica foi possível por causa do significativo progresso no desenvolvimento de muitas áreas como: a tecnologia de processos no silício, componentes semicondutores e ferramentas de projeto. Os componentes dos circuitos digitais evoluíram de transistores individuais para circuitos integrados VLSI (very large scale integration). A criação do microprocessador possibilitou uma alavanca para o desenvolvimento de chips de memória de alta densidade, e o avanço na tecnologia de produtos lógicos tais como Dispositivos Lógicos Programáveis (PLDs).
Antigas gerações, de tecnologia de hardware, para projetos digitais apresentavam um grande número de chips contendo portas básicas (AND e OR). Com o avanço tecnológico os projetos mais complexos passaram a usar circuitos de alta densidade, que em geral incluem dispositivos como controladores, contadores, registradores e decodificadores, proporcionando o desenvolvimento de alternativas para obter flexibilidade em uma implementação. Com o uso de módulos programáveis (portas básicas que permitem a implementação de sistemas digitais). Estes módulos têm uma estrutura padrão e são personalizados para uma função particular.
Exemplos de tipos e classes de dispositivos programáveis (configuráveis) com capacidade de implementar funções lógicas são:
PLA (Programmable Logic Array ), PAL (Programmable Array Logic ), CPLD's (Complex Programmable Logic Devices ) MPGA (Mask Programmable Gate Array ) FPGA (Field Programmable Gate Array )
A alta capacidade e a versatilidade dos dispositivos programáveis fazem destes uma alternativa considerável no projeto de sistemas digitais (desde circuitos combinacionais simples até circuitos seqüenciais complexos, p.ex.: microprocessadores).
A utilização de ferramentas EDA (Eletronic Design Automation) ou ECAD((Electronic Computer-Aided Design) tem simplificado e acelerado todo o ciclo de
projeto. Atualmente, não é mais necessário desenhar portas lógicas individuais e planejar todas suas interconexões. As linguagens de descrição de hardware (HDLs) estão hoje consolidadas no meio acadêmico e industrial como forma padrão na elaboração de projetos. Existem também, ferramentas de síntese lógica automática, disponíveis para mapear circuitos em diversas tecnologias.
Todas essas mudanças na tecnologia exigem uma prototipação cada vez mais rápida, pois o ciclo de vida dos produtos modernos está tomando-se cada vez mais curto em relação ao tempo necessário para o projeto e desenvolvimento dos mesmos. As implementações de circuitos podem ser agrupadas em diversas categorias:
Cl’s customizados ou ASICs (application specífic integrated circuits): São aqueles que necessitam de um processo de fabricação especial, que requer máscaras específicas para cada projeto. Outras características desse tipo de implementação são o tempo de desenvolvimento longo e os custos extremamente altos. Em aplicações que requerem um grande volume de produção, o alto custo do projeto e dos testes é amortizado.
MPGAs (mask-progratnmable gate arrays) : Nesse tipo de implementação, o processo de fabricação é agilizado pelo uso de máscaras genéricas de módulos pré-projetados, mas ainda necessita de máscaras especificas para a interconexão dos módulos. O projeto é normalmente facilitado por uma biblioteca de células, proporcionando um tempo de desenvolvimento mais curto e custos mais baixos em relação aos CI’s customizados.
Standard CelIs : Essa tecnologia se assemelha muito a das MPGAs, o projeto também é facilitado pelo uso de módulos pré-projetados. Os módulos (standard cells) são geralmente salvos em bancos de dados. Os projetistas selecionam as células desejadas (nesses bancos de dados) para realizar seus projetos. Em comparação aos CI’s customizados, os circuitos implementados em standard cells são menos eficientes em tamanho e desempenho, entretanto, seu custo de desenvolvimento é mais baixo.
PLDs (programmable logic devices): Essa tecnologia possui como principal característica a capacidade de programação (configuração) pelo usuário, eliminando o processo de fabricação e facilitando assim as mudanças de projetos. Em comparação com outras tecnologias, os PLDs apresentam um ciclo de projeto muito curto e custos muito baixos.
O mercado de PLDs encontra-se em plena expansão, de forma que atualmente existem diversos fabricantes e modelos de dispositivos desse tipo. Uma das principais tarefas do projetista hoje é pesquisar e selecionar, dentre as opções disponíveis no mercado, qual a que melhor atende às suas necessidades.
Figura 2.3.(a) Esquema em blocos de uma PROM de 8x2 bits (b) Esquema de ligação interno de uma memória PROM de 8 x 2 bits (c) Tabela verdade do decodificador (PROM 8X2)
A memória PROM é semelhante a um grande decodificador de endereços, representado pelas portas AND’s de múltiplas entradas e, através de conexões apropriadas da saída do decodificador às entradas dos blocos OR, determina-se se a saída será “UM” ou ZERO”. A tabela verdade é mostrada na Figura 2.3c. A PROM é fabricada com todas as conexões, isto é, como se estivesse com “UM” armazenado em todos os bits e em todos os endereços. Para programar , aplica-se, de forma apropriada, tensões elevadas, entre 10 a 30V, através de um pino especial da pastilha, queimando-se as conexões nos bits cujo conteúdo desejado fosse “ZERO”, mostrado na Figura 2.4.
Inconvenientemente, uma vez queimado o fusível, em uma PROM, não seria mais possível o retorno dele para “UM”. A evolução da tecnologia permitiu contornar esse problema com o desenvolvimento das memórias EPROMs que são PROMs apagáveis por radiação ultravioleta e das EEPROM apagáveis eletricamente.
A memória PROM foi o primeiro tipo de chip programável pelo usuário, que podia implementar circuitos lógicos. As linhas de endereço eram utilizadas como entradas do circuito lógico, e as linhas de dados como saídas desses circuitos. As funções lógicas, entretanto, raramente requerem mais que alguns termos produto, e uma PROM contêm um decodificador completo para seus endereços de entradas. As PROMs, portanto, se mostram como uma arquitetura ineficiente para o projeto e realização de circuitos lógicos, e são raramente utilizadas para esse fim.
Na EPROM, ao invés de fusíveis como na PROM, a programação é feita por armazenamento de carga, onde cada bit da memória possui um transistor MOS com dois Gates, um deles flutuante, não conectado a grade de memória, e isolado por material de altíssima impedância, Figura 2.5.
Figura 2.5 Estrutura do transistor MOS com gate flutuante de uma EPROM.
Em estado “apagado”, como ao sair da fábrica, esses transistores não conduzem quando selecionados, e o conteúdo da posição de memória é levado à “UM”por resistores chamados de “pull-up”. Para gravar um valor “ZERO” aplica-se uma alta tensão no gate-flutuante, o que causa uma ruptura ( break-down) no material isolante, permitindo assim um acúmulo de cargas no gate flutuante, as quais ali permanecem mesmo após o término do pulso de tensão, devido a alta impedância do material isolante. A presença dessas cargas no gate do transistor provoca a condução quando a posição daquele bit for selecionada.
(High Capacity PLD's ). Os primeiros CPLD’s foram introduzidos pela Altera Corporation.
Os HCPLD’s disponíveis atualmente de maior capacidade lógica são os tradicionais Gate Arrays , algumas vezes chamados de MPGA ( Mask - Programmable Gate Array ). Assim como as MPGA’s, as FPGA’s ( Field Programmable Gate Arrays ) são formadas por blocos lógicos e interconexões entre estes blocos, e a diferença está na configuração realizada através de programação pelo usuário final. No ano de 1985, o primeiro FPGA foi disponibilizado para ser comercializado pela empresa Xilinx Inc.
Atualmente os FPGA’s oferecem capacidades lógicas de trabalho elevadas e são os responsáveis pela maior parte das mudanças ocorridas na maneira como os circuitos digitais são desenvolvidos.
No início da década de 80, simples PLDs eram utilizados na implementação de múltiplos dispositivos lógicos discretos. Hoje em dia, PLDs integram em um único dispositivo grande quantidade de blocos capazes de implementar muitas funções lógicas, e são também geralmente preferidos do que os circuitos integrados de aplicações específicas (ASICs). Um dispositivo ASIC é desenhado para atender às características solicitadas pelo projetista de circuitos e terá seu uso exclusivo em tal finalidade, ou seja, é um dispositivo dedicado.
Hoje o custo por unidade dos dispositivos PLDs reduziu devido ao alto volume de fabricação e também por causa da utilização de novas tecnologias, sendo possível encontrar no mercado PLDs com integração, densidade, performance, e custo equivalentes ao de um dispositivo não programável. Tais fatores, combinados com tempo de produção e flexibilidade na programação ajudam a manter o crescimento do uso de PLDs de alta densidade no desenvolvimento projetos de eletrônica digital. Os PLDs são confeccionados em lógica CMOS, o que garente características de confiabilidade. Com a densidade dos PLDs acima de a 250.000 portas (para os mais modernos), é possível projetar subsistemas inteiramente digitais com um único dispositivo PLD.
Com o número enorme de CI’s -padrão que estão disponíveis no mercado, o projetista de sistemas lógicos poderia implementar qualquer função necessária em projetos de computadores. Porém, ele pode se deparar com o uso de uma quantidade imensa de CI’s – padrão, exigindo um espaço considerável na placa de circuito impresso. A redução no número de CI’s em um projeto acarreta em inúmeras vantagens além de menor espaço ocupado na placa de circuito impresso, também um menor consumo de energia, levando a utilização de fontes menores e mais baratas e maior confiabilidade no projeto, uma vez que possui um número menor de interligações, e velocidades mais altas. Para diminuir o número de CI’s de um projeto é necessário colocar mais funções dentro de um chip, o qual foi conseguido com o desenvolvimento de técnicas de
integração LSI, VLSI e ULSI. O desenvolvimento dessas tecnologias e a de programação de hardware, as quais permitem realizar ou desfazer conexões, era o que faltava para desenvolver componentes cuja função fosse programável pelo usuário, para realizar funções diversas e específicas. O desenvolvimento de Dispositivos Lógicos Programáveis (PLD - P rogrammable L ogic D evices ) tem proporcionado a substituição de diversos chips por um único CI, além de poder ser programado pelo usuário, eliminando o processo de fabricação e facilitando eventuais mudanças no projeto, diminuindo o tempo e custo do projeto. Portanto, PLD é todo circuito de lógica digital configurado pelo usuário final, incluindo simples, baixa densidade, e alta capacidade, utilizados para implementar funções lógicas. A programação é feita por meio de campos elétricos induzidos no dispositivo, essa programação é feita via softwares especiais fornecidos pelos próprios fabricantes desses produtos. É um CI que pode conter grande número de portas lógicas,. flip-flop e latches interconectados dentro do chip, além de e registradores. nas entradas e saídas. A maioria de tais conexões é feita através de fusíveis que podem ser queimados ou mantidos intactos.
PLD’s são oferecidos em diferentes arquiteturas, e uma variedade de elementos de memória são disponíveis para a configuração do dispositivo.
A estrutura interna de um PLD é baseado em um array que conecta os barramentos aos blocos lógicos, aos pinos de entrada e saída, e aos blocos de memória. Os PLD’s, em princípio, possuíam apenas um único bloco lógico (que realizava globalmente as operações), conectado aos pinos de entrada e saída do dispositivo. Com o aperfeiçoamento da tecnologia de fabricação, esses dispositivos receberam uma estrutura de interconexões programáveis, que viriam flexibilizar mais ainda a programação.
Na verdade, o grande desafio de Eletrônica Digital é o desenvolvimento do componente “universal” que alie versatilidade com elevada capacidade, alta velocidade, baixo custo e fácil manuseio.
A evolução trouxe uma otimização do aproveitamento de espaço, aumentando ainda mais as interconexões do array de blocos lógicos. A Figura 3.1 mostra a evolução dos PLD’s.
São circuitos que possuem uma estrutura interna baseada em um conjunto de portas AND/OR denominados arranjos lógicos, podendo ou não possuir flip-flops na saída, dependendo da configuração. É a categoria de todos os pequenos PLDs, onde as características mais importantes são baixo custo e alto desempenho.
(ou Matriz programável logicamente em campo (FPLA))
Observando a PROM existem duas matrizes de interconexões AND e OR. Na PROM a matriz AND é fixa, decodificador completo e a matriz OR é programável. A arquitetura da PROM é adequada àquelas aplicações onde cada possível combinação de entrada é necessária à geração da função de saída. Exemplo: conversores de código e as tabelas de dados utilizadas na geração de funções. Uma PLA, Figura 4.1, tem a estrutura semelhante a da PROM com duas diferenças:
Dispõe de menor quantidade de portas AND (não é decodificador completo) Tem duas matrizes de conexão das portas (AND e OR) programáveis (para compensar o número menor de portas AND). A PLA, embora seja o mais versátil de todos os Dispositivos Lógicos Programáveis por possuir dois conjuntos de fusíveis, é mais difícil de fabricar, projetar que a PROM , consequentemente tem um custo mais alto.
Figura 4.1 Uma PLA ainda não programada, com todos os fusíveis intactos
A Figura 4.2 mostra uma PLA programada para a função :
A conexão programável consiste em um fusível o qual intacto apresenta ligação feita, queimado ligação desfeita, rompida.
Figura4.2 PLA de 4 entradas programada
Muitas aplicações não necessitam de que todas as combinações de entrada sejam programáveis, por essa razão foi criada a PAL, a qual é uma simplificação da PLA, sendo apenas a matriz de conexão das portas AND programável, a matriz OR é fixa, como mostra a Figura 4.3. Cada porta AND pode ser programada para gerar qualquer dos produtos AND das duas variáveis de entrada. E de seus complementos. Cada porta OR está ligada somente a duas das saídas ANDs. Isso limita a função a ser implementada a ter no máximo dois produtos AND. Se a função precisar de mais de dois produtos não pode ser implementada nesta PAL devendo ser escolhido outro modelo que tenha mais entradas para as portas OR. Caso sejam necessárias menos de dois termos para a implemtação da função, as saídas não utilizadas devem ser colocadas no nível lógico “0”.
As PALs foram inicialmente fabricada com tecnologia bipolar, portanto possuem alta potência de consumo e configuração da célula de saída que só pode ser usada para lógica combinacional.
A Figura 4.5 mostra um exemplo da simbologia simplificada para uma AND de quatro entradas. Em primeiro lugar observe que os buffers de entrada são representados sem a distinção entre inversores e não inversores. Observe também que uma única linha aparece como entrada da porta AND, representando as quatro entradas existentes. As conexões das variáveis de entrada à porta AND são indicadas ora por um ponto, ora por um X. O X representa um fusível intacto, e o ponto representa uma conexão fixa. A ausência do X e do ponto indica ausência de conexão. Nesse exemplo as entradas A e B estão ligadas à porta AND de maneira a gerar o
produto A B.
Figura 4.5 Simbologia simplificada para os PLDs
AS GAL’s (“ G eneric A rray L ogic”) são estruturas como a PAL, mas possuem macrocélulas de saídas as quais podem ser configuradas como lógica combinacional ou sequencial (registradores), como mostrada na Figura 4.6.
Figura 4.6 Circuito típico de uma GAL
Uma única GAL pode substituir 24 tipos diferentes de PAL. A GAL é construída com a tecnologia CMOS, isso reduz o consumo de potência comparado à dispositivos bipolares, mas possui alta taxa de ruído. A Gal possui a mesma quantidade de pinos do que uma PAL, em torno de 20 e 24 pinos.
Os EPLD’s (“ E reaseable P rogrammable L ogic D evice”) são dispositivos que possuem quantidades de pinos entre 20 a 66, possuem um consumo mais baixo de potência do que as GALs , em torno de metade da potência, mas não são rápidos, porém possuem um custo baixo e são fáceis de usar em desenvolvimento de sistemas. Possuem os registradores programáveis como tipo D, T, JK ou Flip-flop RS com quatro entradas para clocks independentes. O problema dos EPLDs é que possuem arranjo de portas OR fixas e AND programáveis, as quais apresentam baixa utilização de portas. São utilizados em telecomunicações e aplicação industrial. A Figura 4.7 mostra uma macrocélula como decodificador de endereços. A macrocélula tem oito termos de produtos, mas apenas um deles é usado. Entretanto, quando uma aplicação necessita de mais de oito termos de produtos deve ser feito um “loop” de realimentação o qual torna o projeto muito mais lento.
Figura 4.7 Macrocélula como decodificador de endereços
A Matriz Programável de ANDs e ORs é uma estrutura utilizada em PLDs mais simples, desde os PALs. Esta matriz implementa uma função lógica através da soma de produtos (representação em Mintermos).
O Look-Up Table (LUT) é basicamente uma memória pre-programada que fornece uma saída dado um conjunto de variáveis de entrada. Assim, enquanto a matriz de AND e OR produz para cada entrada um valor de saída, o LUT não realiza operação lógica nenhuma, ele apenas consulta a tabela verdade da função que nele foi programada.
A.2 Estruturas de unidades das células internas:
São estruturas que irão especificar a função seqüencial do circuito após a programação, são diferentes em cada tipo de HCPLD e portanto identificam o tipo de HCPLD: CPLD ou FPGA.
Para conexão entre as células e entre as células e os blocos de saída, os HCPLDs possuem estruturas conhecidas como barramentos. Para os CPLDs mais complexos e para os FPGA, verificam-se barramentos horizontais e verticais adjacentes a cada célula. Um CPLD é constituído por barramentos contínuos enquanto que um FPGA, por barramentos segmentados.
CPLD ( Complex Programmable Logic Devices ), Figura 4.8, é um conjunto de múltiplos PLDs em um único chip onde cada bloco lógico comunica com o outro através de interconexões programáveis. Esta arquitetura de dispositivo permite tornar mais aproveitável a área de integração (área em silício) permitindo um desempenho melhor e redução de custo. Um único CPLD pode substituir centenas de componentes 74XX(portas lógicas).
Figura 4.8 estrutura interna de um CPLD.
As interconexões programáveis formam um espécie de barramento que roteia(interliga) sinais das entradas ou saídas para as entradas de um bloco lógico, ou das saídas de um bloco lógico para as entradas do mesmo ou outro bloco. E, cada bloco lógico é equivalente à um SPLD, contendo suas macrocélulas com suas interconexões. Diferente das interconexões configuráveis da SPLD, as interconexões entre os blocos lógicos da CPLD podem não ser totalmente conectáveis, ou seja, algumas conexões entre um bloco e outro, teóricamente pode ser possível, mas na prática não podem ser executadas. Com isso, torna-se difícil utilizar 100% das macrocéculas. A Tabela 1 mostra alguns fabricantes de CPLD.
Tabela 1.
FPGA, Figura 4.9 são circuitos programáveis que não possuem planos AND e OR, mas possuem um grande número(da ordem de milhares) de unidades idênticas(blocos lógicos) configuráveis. As unidades lógicas podem ser vistas como componentes padrões que podem ser configurados independentemente e interconectados a partir de uma matriz de trilhas condutoras e chaves programáveis.
Figura 4.10 Arquitetura de uma FPGA
Ambos são dispositivos lógicos programáveis e ambos, muitas vezes, são produzidos pelas mesmas companhias. Existem, porém, muitas diferenças entre as tecnologias associadas:
FPGAs contém muitos pequenos blocos lógicos com flip-flops (até da ordem de 1000000). CPLDs são compostos por um pequeno número (algumas centenas) de grande blocos lógicos.
FPGAs, tipicamente, são baseados em RAM, isto significa que perdem sua programação após desligar a alimentação. Portanto, precisam ser reconfigurados (reprogramados) após cada corte de energia. CPLDs são baseados em EEPROM mantendo sua programação após desligar a alimentação;
CPLDs têm um tempo de resposta melhor, por ser composto de alguns poucos grande blocos lógicos. Em contrapartida esta característica lhe dá menos flexibilidade.
FPGAs têm recursos de roteamento especiais para implementar de maneira eficiente funções aritméticas e RAM. CPLDs não têm.
FPGAs podem ser usados em projetos grandes e complexos, enquanto CPLDs estão restritos a projetos bem menores.
D Q
SlewRate Control
PassivePull-Up, Pull-Down
Delay
Vcc
OutputBuffer
InputBuffer Q D
Pad
D SDQ ECRD
Control^ S/R
D SDQ ECRD
Control^ S/R
1
1 F'G'H'DIN
F'G'H'DIN
F'
G'H'
H'
Func.^ H Gen.
Func.G Gen.
Func.F Gen.
G4G G2G
F4F F2F
C1 C2 C3C
K
Y
X
H1 DIN S/R EC
A menor granularidade do CPLD, juntamente com sua estrutura de conexão contínua(figura 4.12), facilita sua programação, possibilita melhor desempenho do sistema ( Propagation Delay fixo ) e permite melhor utilização das células lógicas para certas aplicações. A estrutura contínua permite ainda que pequenas modificações na lógica sejam feitas sem degradação no desempenho. Como um FPGA depende fortemente do roteamento, estas mesmas modificações poderiam acarretar numa queda no desempenho devido a necessidade de um novo roteamento. Por outro lado, a granularidade do FPGA dá uma grande flexibilidade e pode ser desejável em certas aplicações. Portanto, a escolha de um ou outro é função direta das necessidades de um projeto. Cabe ao projetista escolher a tecnologia e o dispositivo mais adequado a
implementação em questão.
Figura 4.12 Comparação entre FPGA e CPLD.
Elemento interno de configuração EPROM /FLASH SRAM Interface de configuração JTAG JTAG flexibilidade nas interconexões BAIXA MAIS ALTA Tempos de propagação UNIFORME NÃO UNIFORME