Dispositivos Lógicos Programáveis
|
|
|
- Ana Clara Borba Lencastre
- 9 Há anos
- Visualizações:
Transcrição
1 Dispositivos Lógicos Programáveis Maio de 2006
2 Dispositivos Lógicos Programáveis Mário P Véstias Instituto Superior de Engenharia de Lisboa - ISEL ii
3 ÍNDICE 1 Introdução 1 11 Tipos de dispositivos lógicos programáveis 6 2 OM Estrutura interna da OM Implementação de funções lógicas com OM 14 3 OM Programável OM comerciais 20 4 Dispositivo PLA Implementação de funções lógicas com PLA PLA comerciais 25 5 Dispositivo PAL Implementação de funções lógicas com PAL PAL comerciais Arquitectura da PAL combinatória 16L Arquitectura de PAL sequencial PAL Arquitectura de PAL sequencial ATF22V Arquitectura de PAL sequencial ATF750C/CL Configuração das PAL com a linguagem CUPL Configuração da PAL ATF22V10 usando CUPL Configuração da PAL ATF750C/CL usando CUPL 48 6 Dispositivo CPLD CPLD Comerciais Família Xilin XC Dispositivo FPGA FPGA Comerciais Família Xilin Spartan-II 58 8 Bibliografia 62 iii
4 iv
5 1 Introdução A invenção da tecnologia de circuito integrado permitiu fabricar circuitos completos formados por resistências, condensadores e transístores num único integrado Desde o aparecimento do primeiro circuito integrado comercial a meio da década 1960, tem-se verificado o aumento constante da capacidade de integração de elementos eléctricos num único circuito integrado acompanhado da redução dos custos de fabrico Actualmente, é possível integrar aproimadamente 500 milhões de transístores num único circuito integrado Esta evolução foi prevista e modelada pelo fundador da Intel, Gordon Moore, no que ficou conhecido pela lei de Moore segundo a qual o número de transístores por unidade de área num circuito integrado duplica a cada 18 meses, enquanto os custos permanecem constantes (ver figura 1) Moore (21 meses) Itanium 2 Pentium 4 Pentium III Pentium II Transístores i386 i486 Pentium moore Ano Figura 1 Evolução da capacidade de integração de um circuito integrado 1 O mesmo princípio aplica-se a outros elementos de tecnologia, como a capacidade de armazenamento dos chips de memória e dos discos rígidos, a taa de transmissão das comunicações via Internet, etc Dispositivos Lógicos Programáveis 1
6 Espantosamente, tem-se verificado que a capacidade de integração tem duplicado a cada aproimadamente 21 meses, muito próimo do valor previsto por Moore! O circuito integrado tem sido utilizado com grande sucesso na implementação de circuitos e de sistemas digitais de aplicação genérica (eg, microprocessadores, microcontroladores, memórias) e de circuitos de aplicação específica (ASIC Application Specific Integrated Circuit) O ASIC geralmente reduz o custo de fabrico de um produto, comparativamente a um circuito de aplicação genérica, já que reduz o número de elementos lógicos do integrado, o tamanho físico, o consumo de potência e melhora o desempenho Actualmente, os meios para projecto e para implementação de integrados de aplicação específica estão bastante mais acessíveis No entanto, na fase de implementação, o projectista é confrontado com os custos de fabrico que se encontram resumidos no custo NE (Nonecurring Engineering) O NE inclui o pagamento dos serviços do fabricante de circuitos integrados para projecto da estrutura interna do integrado, da criação de máscaras de fabrico, do desenvolvimento de testes e do fabrico dos primeiros circuitos de teste (fabrico full-custom) O custo NE de um ASIC de média compleidade com cerca de portas lógicas pode chegar aos 20 K Este custo eleva-se para valores superiores a 1M quando se pretende uma maior integração que eija tecnologias mais recentes Facilmente se conclui que o projecto de um circuito deste tipo só é comercialmente viável se tiver um volume de vendas suficientemente elevado para compensar o custo NE Com o objectivo de reduzir o custo NE, os fabricantes desenvolveram bibliotecas de células lógicas típicas, como descodificadores, registos, contadores, memórias, processadores, etc A utilização destas células durante o projecto do circuito reduz o trabalho do fabricante na geração das máscaras de fabrico e, consequentemente, o custo NE Consegue-se, deste modo, reduzir o custo final do projecto em quase 50% No entanto, apesar desta redução, os custos continuam altos para muitas das aplicações Consequentemente, os fabricantes criaram o conceito de matriz de portas Uma matriz de portas é um circuito integrado formado por uma estrutura interna regular de portas independentes O projectista que pretenda implementar circuitos sobre esta estrutura terá de especificar o tipo de portas lógicas e a interligação entre portas Dispositivos Lógicos Programáveis 2
7 Tipicamente, o projecto será feito com base em células ou macrocélulas desenhadas sobre a matriz de portas (fabrico semi-custom) Com esta abordagem, o fabricante reduz os custos finais do projecto para valores a rondar um terço dos verificados na primeira abordagem de fabrico e ainda consegue reduzir os tempos de projecto A principal desvantagem do processo semi-custom é que a disposição prévia das células não permite obter uma solução tão optimizada quanto a que seria obtida sem restrições de colocação, como acontece no fabrico full-custom, levando a que o circuito seja maior e consequente mais dispendioso 11 Dispositivos lógicos programáveis Com os métodos de fabrico de ASIC descritos, uma vez fabricado o circuito integrado, a função para que foi projectado não pode ser alterada (circuito hardwired) Se for necessário alterar a função, terá de se recomeçar todo o processo de projecto incluindo o fabrico de um novo integrado Face a esta rigidez de projecto, surgiu, paralelamente à solução de integração hardwired, uma abordagem de projecto de circuitos e de sistemas integrados baseada em dispositivos integrados programáveis Um integrado programável consiste numa matriz de células lógicas cujas funções, juntamente com as interligações entre células, são programáveis pelo utilizador As células pode ser portas lógicas simples ou elementos lógicos com funções mais compleas geralmente designadas macro-células A implementação de um circuito sobre estes dispositivos configuráveis consiste na programação das células e das interligações entre células Desde o aparecimento do conceito de chip programável que têm sido propostas várias arquitecturas programáveis fazendo variar o tipo e o número de células programáveis, bem como o tipo e a quantidade de interligações Genericamente, todos estes dispositivos são designados dispositivos lógicos programáveis (DPL) De entre os vários tipos de DPL, o presente documento aborda os mais conhecidos e utilizados, nomeadamente a OM (ead-only Memory), a PLA (Programmable Logic Array), a PAL (Programmable Array Logic), o CPLD (Comple Programmable Logic Devices) e a FPGA (Field-Programmable Gate Array) O projecto de circuitos e sistemas com base em dispositivos lógicos programáveis apresenta diversas vantagens comparativamente a um projecto hardwired Uma das Dispositivos Lógicos Programáveis 3
8 vantagens está associada ao facto de os projectos baseados em DPL não terem custos NE, uma vez que não é necessário pagar a um fabricante de circuitos integrados, ecepto o custo da compra do próprio dispositivo programável No entanto, apesar de ter custos NE nulos, verifica-se que o custo por unidade de volume cresce mais rapidamente que no caso dos dispositivos hardwired (ver eemplo para uma FPGA na figura 2) NE + Custo acumulado das unidades FPGA 25u FPGA 15u ASIC 15u ASIC 25u Ponto crítico de rentabilidade Volume de unidades Figura 2 Custos de fabrico das tecnologias hardwired e FPGA Pelo gráfico da figura, verifica-se que o custo total dos dispositivos programáveis começam mais baios que os dispositivos hardwired, mas aumentam mais rapidamente Isto significa que deiam de ser rentáveis para um volume de produção superior aos correspondentes aos pontos de cruzamento das duas curvas (pontos críticos de rentabilidade) O número de unidades associado ao ponto crítico de rentabilidade aumenta com as novas tecnologias, ou seja, a tecnologia de dispositivos programáveis torna-se mais rentável com o avanço das tecnologias Uma outra vantagem dos dispositivos lógicos programáveis é o terem um tempo de projecto mais reduzido, uma vez que não necessitam da fase de fabrico e, além disso, uma nova iteração de projecto é bastante menos demorada que no caso dos circuitos hardwired Este aspecto é bastante importante quando temos em linha de conta que o tempo de mercado, ou seja, o tempo disponível para colocar um produto no mercado a partir do momento em que surge o conceito, tem vindo a sofrer uma redução considerável devido à curva de mercado dos produtos (ver tabela 1) Dispositivos Lógicos Programáveis 4
9 Produto # anos para vender 10 6 unidades TV preto e Branco 17 TV cores 10 PC 6 DVD 1 Tabela 1 Evolução do número de anos para vender um milhão de unidades Pela tabela, verifica-se que o período de tempo necessário à venda de um milhão de unidades de um determinado produto tem vindo constantemente a reduzir, tendo já atingido a meta de um milhão de unidades no primeiro ano Desta forma, do ponto de vista do projecto, o tempo que o produto demora a ser lançado no mercado não pode ultrapassar os 4 a 6 meses Os dispositivos lógicos também são claramente mais fleíveis, ou seja, o esforço, o tempo e os custos necessários à alteração de um projecto baseado em dispositivos lógicos programáveis são inferiores aos verificados com circuitos hardwired As vantagens são tanto maiores quanto maior for o retrocesso de projecto Por eemplo, se as alterações tiverem de ser feitas após o fabrico do integrado com tecnologia hardwired, os custos são bastante elevados Em muitos casos, este retrocesso inviabiliza todo o projecto Por fim, apontamos uma outra vantagem associada à facilidade de uso dos dispositivos lógicos programáveis As ferramentas e as tecnologias necessárias ao projecto de circuitos e sistemas integrados baseados em tecnologia programável são bastante acessíveis a custos reduzidos Produzir um circuito integrado para um fim específico deiou de ser um privilégio para um número reduzido de organizações e passou a constituir um meio dinamizador do projecto de sistemas digitais ao alcance de sectores empresariais de pequena dimensão e até de particulares Como contraponto a todas estas vantagens, há um conjunto de desvantagens que pesam na escolha da tecnologia a usar num determinado projecto Uma das desvantagens está relacionada com o facto do custo por unidade de volume ser superior ao da tecnologia hardwired a partir do ponto crítico de rentabilidade Desta forma, para um volume de produção superior ao correspondente ao ponto crítico, o uso de tecnologia programável deia de ser vantajoso Nesta situação, é necessário recorrer aos Dispositivos Lógicos Programáveis 5
10 serviços de um fabricante de circuitos integrados para conseguir o melhor rendimento do produto Além disso, um circuito baseado em circuitos programáveis tem um desempenho pior e um maior consumo de potência, uma vez que, nos circuitos programáveis, os elementos necessários à reprogramação introduzem atrasos nos caminhos críticos e consomem potência Além disso, o facto de a reprogramação se fazer sobre estruturas regulares pré-definidas conduz a que a solução final não esteja tão optimizada quanto a obtida com tecnologia hardwired Uma última desvantagem que vale a pena referir é de que a função do DPL é volátil, ou seja, após ser alimentado só funcionará correctamente depois de ser programado com a funcionalidade desejada Esta característica implica a necessidade de uma memória para armazenar o ficheiro de configuração do dispositivo e uma fase inicial de programação antes de entrar em funcionamento 12 Tipos de dispositivos lógicos programáveis Os circuitos integrados podem ser classificados de acordo com a tecnologia de fabrico (ver figura 3) Aplicação Específica Aplicação Genérica Full-custom Semi-custom Feito à mão Biblioteca de células Mask programmable Field programmable Matriz portas OM POM EPOM EEPOM PLA PAL CPLD FPGA Figura 3 Classificação das tecnologias de circuito integrado Dispositivos Lógicos Programáveis 6
11 Considerando apenas o grupo dos circuitos ASIC, eistem os circuitos full-custom, em que é projectada e desenhada toda a estrutura interna do integrado de raiz ou baseada em bibliotecas de células, e os circuitos semi-custom, em que o desenho do circuito integrado é feito sobre uma estrutura regular de células lógicas pré-definidas e já implantadas no circuito integrado No grupo dos circuitos semi-custom, identificam-se dois tipos de dispositivos lógicos: máscara programável (ou especificado pelo utilizador) e programável no campo (ou programável pelo utilizador) Num projecto implementado sobre um dispositivo de máscara programável, o utilizador envia ao fabricante um ficheiro com informação de quais as interligações entre elementos lógicos que fazem parte do circuito Com base nesta informação, o fabricante realiza as ligações lógicas usando um processo de programação de máscara, daí o nome usado na designação deste tipo de dispositivos Apesar de a sua estrutura regular permitir acelerar o processo de produção, não deia de ser um processo que requer algumas semanas até estar concluído O eemplo mais comum e mais conhecido de um circuito de máscara programável é uma memória OM O dispositivo programável no campo permite ao utilizador programar o seu próprio dispositivo de forma bastante mais rápida que o anterior Basicamente, a programação deste tipo de dispositivos faz-se através da aplicação de tensões ou correntes a determinados pinos do dispositivo de acordo com uma sequência especificada pelo fabricante do dispositivo Dependendo do dispositivo, este processo pode necessitar de um dispositivo adicional, designado programador, que se liga a um computador de onde recebe comandos de programação Eistem vários tipos de dispositivos programáveis no campo de acordo com o tipo de células lógicas utilizadas na estrutura regular do circuito, com o tipo de interligações entre células lógicas e com o modo como são programadas elativamente às interligações, consideram-se os dispositivos em que inicialmente não eistem quaisquer ligações entre os elementos lógicos e os em que inicialmente eistem todas as ligações disponíveis entre as células No primeiro caso, as ligações são adicionadas de acordo com as necessidades de interligação do circuito a implementar No caso dos dispositivos inicialmente com ligações, são removidas as interligações que não forem necessárias O método mais utilizado para adicionar ligações consiste em colocar transístores com a função de interruptores entre dois elementos lógicos No caso de se querer Dispositivos Lógicos Programáveis 7
12 estabelecer a ligação, basta activar o transístor Caso contrário, mantém-se o transístor cortado para que não haja passagem de corrente A programação das interligações pode ser mantida numa memória AM cuja saída estabelece o estado dos transístores Um dos dispositivos programáveis mais conhecidos que utiliza esta técnica é a FPGA (Field Programmable Gate Array) Nos dispositivos que iniciam com um vasto conjunto de interligações já estabelecidas, a programação consiste na remoção das interligações desnecessárias Nestes casos, as ligações são realizadas usando condutores de metal designados ligações fusíveis Uma ligação fusível está preparada para conduzir as correntes usadas durante o funcionamento normal do circuito No entanto, quando sujeitas a correntes elevadas, o fusível evapora-se devido ao aumento de temperatura Para configurar as interligações necessárias, o programador acede sequencialmente a cada uma das ligações programáveis que pretende remover através de um conjunto de linhas de endereçamento e depois aplica uma tensão elevada, na ordem dos 10 a 30 V, usando um pino especial de entrada do integrado Este tipo de dispositivo é geralmente identificado com a designação POM (Programmable ead-only Memory) Na tecnologia POM, o processo de remoção de ligações é irreversível, ou seja, não é reprogramável Para fleibilizar o processo de projecto com a possibilidade de reprogramar o dispositivo, surgiram outras tecnologias em que é possível repor todas as ligações para serem de novo removidas selectivamente de acordo com a programação pretendida Este tipo de dispositivo é designado EPOM (Erasable Programmable ead-only Memory) Na EPOM, a reposição do estado inicial das ligações é feita com a eposição a raios ultravioletas A tecnologia de interligação utilizada já não é a ligação fusível, mas antes uma tecnologia diferente designada floating-gate MOS Neste tipo de tecnologia, o transístor contém duas portas A porta adicional, designada porta flutuante, está rodeada de um material isolante e colocada entre a porta normal e o substrato uando se pretende remover a ligação, aplica-se uma tensão elevada sobre a porta flutuante que quebra o isolamento e permite a acumulação de uma carga negativa na porta flutuante Esta carga negativa impede que o transístor passe ao estado activo (não há ligação) Para repor o transístor no estado inicial (há ligação), basta epor a porta a luz ultravioleta, a qual torna o material isolante ligeiramente condutor, libertando a carga negativa Dispositivos Lógicos Programáveis 8
13 A desvantagem desta tecnologia está na necessidade de utilização de um programador próprio com geração de luz ultravioleta Para evitar este aparato, surgiu um outro tipo de dispositivo designado EEPOM (Electrically Erasable Programmable ead-only Memory) em que a reposição do estado inicial é feita electricamente A tecnologia é similar, mas desta vez o material isolante da porta flutuante é mais fino e, como tal, o estado pode ser reposto com a aplicação de uma tensão com polaridade inversa à carga negativa guardada Os dispositivos OM, POM, EPOM e EEPOM são maioritariamente usados como elementos de memória não volátil Actualmente, os dispositivos EEPOM são bastante utilizados devido às suas características de reprogramação eléctrica e são geralmente designados flash EPOM ou memória flash No entanto, também podem ser usados para implementar funções lógicas, como veremos mais à frente, pelo que surgem na nossa classificação de dispositivos programáveis para implementação de circuitos e sistemas integrados Apesar desta funcionalidade, também iremos concluir que este método de implementação de funções lógicas é pouco eficiente na maioria dos casos Neste sentido, surgiram tecnologias de DPL dedicadas à implementação de funções lógicas digitais, nomeadamente as PLA (Programmable Logic Array), as PAL (Programmable Array Logic), os CPLD (Comple Programmable Logic Device) e as FPGA (Field Programmable Gate Array) Os dispositivos PLA foram os primeiros a surgir no mercado, sendo formados por uma estrutura lógica de dois níveis com portas AND e O para implementação de funções na forma AND-O e com ligações programáveis Ao permitir implementar funções na forma standard AND-O, a PLA pode ser usada para implementar funções genéricas com uma compleidade limitada pelo número de entradas das portas lógicas e pelo número de portas lógicas do dispositivo Apesar do sucesso das PLA, cedo se concluiu que era possível reduzir os custos e aumentar a capacidade lógica original com uma escolha mais cuidada do conjunto de ligações programáveis Surgiu, desta forma, o dispositivo PAL (uma marca registada da AMD Advanced Micro Devices, Inc) As PAL baseiam-se no mesmo princípio de implementação da forma AND-O No entanto, fiam a estrutura O, pois consideram que a fleibilidade de programação associada a esta estrutura não traz grandes benefícios à capacidade de produção de funções lógicas Dispositivos Lógicos Programáveis 9
14 Com o aumento da capacidade de integração, surgiu a possibilidade de fabricar dispositivos programáveis com maior capacidade No entanto, por razões técnicas que discutiremos mais à frente, a estrutura AND-O não é escalável para as dimensões dos novos integrados Surgiram, assim, outras arquitecturas de dispositivos programáveis, nomeadamente o CPLD e a FPGA O CPLD é basicamente formado por múltiplos blocos lógicos com a estrutura da PLA ou da PAL que podem ser interligados entre si A FPGA optou por uma arquitectura com um maior número de blocos lógicos, mas mais pequenos, e uma estrutura de interligação distribuída ao longo do integrado A estrutura de cada um dos blocos lógicos depende do tipo de FPGA, mas é formada basicamente por LUT (look-up table), para implementação de funções lógicas, flip-flops e multipleers para estabelecer ligações internas ao bloco lógico Nas secções seguintes, ir-se-á descrever com mais detalhe as arquitecturas dos dispositivos programáveis, de que forma podem ser programados e como podem ser usados na implementação de funções lógicas Os dispositivos abordados são a OM, a OM programável, a PLA, a PAL, o CPLD e a FPGA Dispositivos Lógicos Programáveis 10
15 2 OM Uma OM é a implementação de uma tabela com n entradas e m saídas (ver figura 4) OM 2 n m Entradas A 0 A 1 A n-2 A n-1 A n-2 A 1 A 0 D m-1 D m-2 D 1 D D 0 D 1 D m-2 Saídas A n-1 D m-1 Figura 4 Diagrama de blocos de uma OM com n entradas e m saídas Para cada uma das 2 n combinações de entrada, a OM coloca à saída uma palavra de m bits, de acordo com a tabela inicialmente programada Por eemplo, para implementar uma tabela com oito linhas e 2 colunas (ver tabela 2), ter-se-ia de utilizar uma OM de ou maior A2 A1 A0 D1 D Tabela 2 Eemplo de uma tabela de verdade para ser implementada em OM Desta forma, uma OM pode ser vista como um circuito combinatório que implementa uma função lógica de n entradas e m saídas cuja tabela de verdade corresponde à tabela armazenada na OM Por outro lado, uma vez que a OM armazena o conteúdo de uma tabela de verdade, também pode ser vista como um dispositivo que armazena informação, ou seja, como um elemento de memória Adicionalmente, uma vez que não perde a informação armazenada mesmo que deie de ser alimentada, é designada memória não volátil No eemplo da tabela 2, a OM tem Dispositivos Lógicos Programáveis 11
16 armazenada as linhas da tabela em posições definidas pelas entradas A2, A1, A0 (zona da tabela a cinzento) NOTA: O nome geralmente utilizado para identificar as entradas e as saídas da OM estão associados ao facto de ser identificada como um dispositivo de memória As entradas são identificadas como endereços (Address) que identificam univocamente uma posição de memória onde se encontra a palavra a ser colocada nas saídas de dados (Data) A OM é usada principalmente como dispositivo de memória No entanto, também é bastante usada na implementação de funções lógicas sempre que seja economicamente vantajosa quando comparada com outras soluções de implementação de funções lógicas Por eemplo, na implementação de funções de conversão de códigos (eg, para ecrãs alfanuméricos), funções trignométricas, gerador de funções, etc 21 Estrutura interna da OM Os mecanismos usados para armazenar informação numa OM variam com a tecnologia usada (ver figura 5) Vcc Vcc X 0 X 0 X 1 X 1 X 2 X 2 X3 X 3 D0 D1 D2 D 0 D 1 D 2 a) b) Figura 5 Implementação de um OM 4 3; a) com díodos, b) com transístores MOS Dispositivos Lógicos Programáveis 12
17 Na figura 5a, temos a implementação de uma OM com tecnologia baseada em díodos com capacidade de armazenamento de quatro palavras (quatro linhas, X 0, X 1, X 2, X 3 ) com 3-bits cada (três colunas, D 0, D 1, D 2 ) A eistência de um díodo é equivalente ao armazenamento de um bit Em cada momento só é possível ler uma das palavras colocando a linha respectiva ao nível lógico 0 (0 Volt), pelo que as restantes linhas terão de ser colocadas ao nível lógico 1 (5 Volt) Consideremos, como eemplo, que pretendemos ler a palavra guardada na posição X 1 (110) Começamos por colocar o valor lógico 1011 nas linhas X 0 X 1 X 2 X 3, respectivamente Desta forma, todos os díodos com o cátodo ligado às linhas X com valor lógico 1 estão no estado cortado Por outro lado, todos os díodos com o cátodo ligado à linha seleccionada, X 1, ficam no estado activo Consequentemente, a eistência de um díodo ligado à linha activa força a coluna ligada ao seu ânodo a aproimadamente 0 V, uma vez que os restantes díodos ligados a esta coluna estão cortados A não eistência de um díodo entre a linha seleccionada e uma determinada coluna leva a que apareçam aproimadamente 5V (valor lógico 1) na coluna respectiva devido à resistência de pull-up Os valores das colunas são depois invertidos para que a saída surja em lógica positiva No eemplo da figura, teríamos o valor 110 nas saídas D As OM do tipo MOS usam transístores em vez de díodos Neste caso, as linhas são activas a HIGH, ou seja, a selecção de uma linha é feita com o valor lógico 1 Numa linha activa, todos os transístores com a porta ligada a essa linha ficam no estado on, forçando o valor lógico 0 na coluna ligada ao dreno destes transístores Os transístores com a porta ligada às linhas não seleccionadas ficam no estado cortado Também nesta configuração, uma coluna com todos os transístores no estado cortado é forçada ao valor lógico 1 através de uma resistência de pull-up implementada com um transístor MOS NOTA: Sempre que não for relevante a identificação do componente usado nas ligações, este é representado por uma cruz na intersecção respectiva Assim, é usada uma cruz sempre que se pretende armazenar um bit a 1 Caso contrário, é armazenado um bit a 0 A utilização correcta da matriz de armazenamento da OM implica que apenas uma das linhas está activa em cada momento Para garantir este comportamento, usa-se um Dispositivos Lógicos Programáveis 13
18 descodificador para gerar os sinais de activação das linhas em função dos bits de entrada (entradas de endereço) que identificam o código da linha respectiva (ver figura 6) Dec 24 0 X0 A X 1 A X 2 3 X 3 D 0 D 1 D 2 Figura 6 Descodificação das linhas da OM Por eemplo, para seleccionar os dados da linha 1, aplica-se o valor binário 01 nas entradas de endereço A 1,A 0 Por sua vez, o descodificador gera o valor binário 0100 que activa apenas a linha 1 No caso de uma OM implementada com díodos, o descodificador tem as saídas activas a LOW, já que a linha é activa a LOW 22 Implementação de funções lógicas com OM No início da secção, concluiu-se que uma OM 2 n m pode ser usada para implementar m funções lógicas de n, uma vez que permite armazenar tabelas de verdade (n m) correspondentes a funções lógicas Pode-se chegar à mesma conclusão através de uma análise mais cuidada à estrutura da OM, que permite concluir que se trata de uma implementação na forma AND-O de todas as m funções de saída (ver figura 7) Dispositivos Lógicos Programáveis 14
19 Dec 24 0 X 0 X 0 A X 1 A 0 X1 A X 2 A1 X 2 3 X 3 X 3 D 0 D0 D1 D 1 D 2 D2 Figura 7 epresentação lógica da funcionalidade de uma OM O descodificador da OM gera os 2 n mintermos correspondentes às n entradas de endereços Por outro lado, uma saída toma o valor lógico 1 sempre que a linha activa tem um transístor ligado à coluna respectiva, ou seja, o mintermo associado à linha activa faz parte da função A função de saída é assim o O de todos os mintermos ligados à coluna respectiva Desta forma, a implementação de cada uma das saídas da OM pode ser modelada por uma estrutura AND-O Um leitor mais atento também pode verificar que uma OM é representável com um descodificador seguido de um codificador, cuja implementação corresponde a uma estrutura AND-O No eemplo da figura 7, as funções lógicas de saída são dadas por: D 0 = A1 A 0 + A1 A 0 D 1 = A1 A 0 + A1 A 0 + A1 A 0 D 2 = A1 A 0 + A1 A 0 Para eemplificar o processo de implementação de funções com OM, vamos considerar duas funções combinatórias bem conhecidas: conversão de código binário puro de 4 bits para código reflectido: (G 3, G 2, G 1, G 0 ) = gray(i 3, I 2, I 1, I 0 ) Dispositivos Lógicos Programáveis 15
20 e multiplicação de dois números binários de dois bits cada (M 3, M 2, M 1, M 0 ) = (I 3, I 2 ) (I 1, I 0 ) Vamos iniciar o projecto das duas funções com a especificação das suas tabelas de verdade (ver tabela 3) I3 I2 I1 I0 G3 G2 G1 G0 M3 M2 M1 M Tabela 3 Tabelas de verdade das funções de conversão e multiplicação As funções de saída na forma AND-O são: G3 = I3; G2 = I3 I2 + I3 I2 ; G1 = I2 I1 + I2 I1 ; G0 = I1 I0 + I1 I0 ; M3 = I3 I2 I1 I0; M2 = I3 I2 I1 + I3 I1 I0 ; M1 = I3 I1 I0 + I3 I2 I0 + I3 I1 I0 + I2 I1 I0 ; M0 = I2 I0 ; Para implementar as duas funções são necessárias duas OM de 2 4 4, uma vez que se tratam de funções de 4 entradas e 4 saídas (ver figura 8) Dispositivos Lógicos Programáveis 16
21 OM OM I0 A0 D0 G0 I0 A0 D0 M0 I1 A1 D1 G1 I1 A1 D1 M1 I2 A2 D2 G2 I2 A2 D2 M2 I3 A3 D3 G3 I3 A3 D3 M3 Figura 8 Diagrama de blocos da implementação das duas funções com OM O conteúdo de cada uma das AM pode ser obtido directamente das tabelas de verdade (zonas a cinzento) ou através das funções de saída na forma AND-O com a identificação dos mintermos activos (ver implementação da função de multiplicação na figura 9) I0 I1 I2 I3 Dec M0 M1 M2 M3 Figura 9 epresentação lógica da funcionalidade de uma OM O projecto terá agora de ser enviado para fabrico Para tal, além do tamanho da OM, é necessário enviar um ficheiro de dados com a especificação do conteúdo da OM Este ficheiro é geralmente especificado como uma lista de endereços (combinações de entrada) e respectivos conteúdos em headecimal (ver tabela 4) Dispositivos Lógicos Programáveis 17
22 Conversão código reflectido 00: C D F E A B 9 8 Multiplicador de 2 bits 00: Tabela 4 Especificação do conteúdo das OM para as duas funções do eemplo Os ficheiros de teto para o nosso projecto são pequenos, uma vez que se tratam de funções com apenas 16 combinações de entrada A especificação é feita por linhas, em que cada linha n especifica o conteúdo das posições no intervalo [n 16, (n + 1) 16 1] Dispositivos Lógicos Programáveis 18
23 3 OM Programável Numa OM não programável pelo utilizador, o fabricante coloca um elemento activo numa intersecção de linha e coluna sempre que pretende armazenar o bit 1 e omite o elemento quando pretende guardar o bit 0 Numa OM programável (POM), o fabricante coloca um elemento activo em todas as intersecções de linhas e colunas Adicionalmente, adiciona um fusível em série com cada um dos elementos activos da POM Depois, o utilizador queima os fusíveis de acordo com os dados que pretende armazenar, deiando fusíveis intactos apenas nos pontos em que pretende manter o elemento activo, ou seja, guardar o bit 1 Nas OM programáveis do tipo EPOM e EEPOM, não são usados fusíveis, mas antes elementos activos com porta flutuante Mais uma vez, o fabricante coloca dispositivos em todas as intersecções, deiando ao cuidado do utilizador a programação de cada um dos transístores de acordo com os bits que pretende armazenar Caso se optasse por usar uma EPOM para implementar a função de multiplicação do eemplo anterior, teria de se determinar todos os pontos em que se mantêm as ligações dos elementos activos e retirar todos os outros, ou seja, colocá-los no estado cortado (ver figura 10) I 0 I 1 I 2 I 3 Dec I0 I1 I2 I3 Dec M 0 M 1 M 2 M 3 M 0 M 1 M 2 M 3 Figura 10 Implementação da função de multiplicação de 2-bits com uma POM No eemplo, as cruzes nas intersecções representam um elemento activo em série com um fusível ou um transístor com porta flutuante Dispositivos Lógicos Programáveis 19
24 31 OM comerciais Os fabricantes disponibilizam OM programáveis com configurações standard, tais como 4K 4 bits, 4K 8 bits, 2K 8 bits, etc Alguns dos eemplos mais comuns de OM programáveis comerciais são as EPOM 2716 (2K 8 = 16Kbits), 2764 (8K 8 = 64Kbits), (16K 8 = 128Kbits), (32K 8 = 256Kbits) e as EEPOM 2816 (2K 8), etc Para além dos sinais de endereço e de dados, as OM contêm ainda uma entrada CS (Chip Select), para controlar o estado de actividade da OM, e uma entrada de OE (Output Enable), para controlar o estado das saídas de dados, activo ou em alta impedância No caso de dispositivos POM, EPOM ou EEPOM, os pinos de dados são bidireccionais para permitir a escrita de dados usando os mesmos pinos de leitura de dados Eiste no mercado OM programáveis com muito maior capacidade de armazenamento e com palavras maiores, 32 ou 64 bits Por eemplo, já é possível encontrar memórias flash com 1GByte Dispositivos Lógicos Programáveis 20
25 4 Dispositivo PLA Um dispositivo PLA assenta num conceito similar ao da OM com uma estrutura funcional AND-O A diferença é que a PLA não permite gerar todos os mintermos de uma só vez, ou seja, para n entradas, o número de mintermos disponíveis em cada momento é inferior a 2 n Por eemplo, uma OM com 8 entradas e 8 saídas é uma OM com bits, ou seja, consegue armazenar 256 palavras de oito bits cada Uma PLA com o mesmo número de entradas e de saídas tem uma capacidade de armazenamento muito inferior à da OM (eg, um décimo da capacidade) Consequentemente, quando se pretende um dispositivo para armazenar informação, a OM é a melhor opção Por outro lado, se o objectivo é implementar funções, a utilização de OM é bastante ineficiente, pois grande parte das localizações de memória da OM não são utilizadas, ou seja, não são necessários todos os mintermos Para este objectivo, a PLA apresenta-se como uma solução de implementação mais eficiente A arquitectura da PLA tem número limitado de portas AND em substituição do descodificador da OM, que implementa todos os mintermos Devido ao número limitado de portas AND, e para que se consiga gerar qualquer mintermo, as ligações às portas AND passam a ser programáveis Assim, a programação da PLA eige não só a configuração das ligações às portas O - matriz de saída - mas também a configuração das ligações às portas AND - matriz de entrada (ver figura 11) Matriz de entrada I1 I 2 In M termos O 1 O2 Matriz de saída O p Figura 11 Arquitectura da PLA Dispositivos Lógicos Programáveis 21
26 A estrutura da PLA da figura 11 indica todas as ligações programáveis da PLA com uma cruz O dispositivo é designado de acordo com o número de entradas, de saídas e de termos de produto De acordo com a figura, a PLA seria designada N M P Uma PAL com estas características só implementa no máimo P funções, em que cada função pode ter no máimo N entradas e no conjunto de todas as funções só são necessários no máimo M termos de produto diferentes As entradas estão ligadas a um buffer que gera a versão complementada e não complementada dos sinais de entrada O dispositivo tem ainda a capacidade de complementar ou não a função à saída das portas O Para tal, usa portas XO com uma das entradas configurável NOTA: Numa porta XO, quando se liga uma das entradas ao nível lógico 0, a saída é toma o valor da outra entrada Se, pelo contrário, ligarmos uma das entradas ao nível lógico 1, a saída é igual ao complemento do valor presente na outra entrada 41 Implementação de funções lógicas com PLA O processo de implementação de funções lógicas em dispositivos PLA começa com a representação das funções a implementar na forma AND-O Por eemplo, para implementar o multiplicador de dois bits do eemplo anterior, temos as quatro funções lógicas, M3, M2, M1, M0, de quatro variáveis, I3, I2, I1, I0: M3 = I3 I2 I1 I0 ; M2 = I3 I2 I1+ I3 I1 I0 ; M1 = I3 I1 I0 + I3 I2 I0 + I3 I1 I0 + I2 I1 I0 ; M0 = I2 I0 ; Uma análise directa das funções lógicas permite concluir que são necessários oito termos de produto para implementar o conjunto de funções, nomeadamente: ( I2 I0, I3 I1 I0,I3 I2 I0,I3 I1 I0,I2 I1 I0, I3 I2 I1,I3 I1 I0, I3 I2 I1 I0 ) Dispositivos Lógicos Programáveis 22
27 Assim, é necessária uma PLA com pelo menos 4 entradas, 4 saídas e 8 termos de produto: PLA (ver figura 12) I 0 I1 I 2 I 3 M 0 M 1 M2 M 3 Figura 12 Implementação do multiplicador de dois bits com uma PLA No eemplo da figura, a matriz de entrada é configurada por forma a gerar os oito termos de produto necessários Por eemplo, a primeira AND gera o termo de produto I2 I0 A matriz de saída é configurada por forma a gerar a soma de produtos das quatro funções Por eemplo, a saída M0 é igual à soma lógica de apenas um termo de produto, de acordo com a epressão lógica da função M0 As portas XO encontram-se todas ligadas a 0 para deiar passar as funções não complementadas, uma vez que as epressões lógicas geradas à saída das portas O foram a versão não complementada das funções respectivas No eemplo descrito, as funções lógicas foram implementadas directamente na PLA sem ter o cuidado de procurar minimizar o número de termos de produtos A minimização não é importante nos casos em que não temos restrições sobre o tipo de PLA a utilizar e em que uma determinada PLA é suficientemente grande para suportar a realização de todos os termos de produto do conjunto de funções Contudo, se estamos restringidos a uma determinada PLA ou se temos como objectivo de projecto a minimização do custo final do circuito, então devemos considerar um processo de minimização do número de termos de produto necessários à implementação do conjunto de funções Em geral, os fabricantes disponibilizam ferramentas para minimização do conjunto de funções tendo como alvo uma determinada arquitectura PLA Este é um problema bem conhecido de minimização de epressões lógicas multifunção que sai Dispositivos Lógicos Programáveis 23
28 fora do âmbito deste teto Contudo, apresentamos um eemplo bastante simples para ilustrar os detalhes envolvidos no processo de minimização Considere que pretende implementar as funções F 1 (A, B, C) = m(0, 2, 4, 5) e F 2 (A, B, C) = m(0, 1, 6, 7) usando uma PLA com o menor número de termos de produto possível Começamos por simplificar as funções com mapas de Karnaugh, a partir dos quais tiramos a função complementada e não complementada A A C C B B F 1 = A C + AB F 2 = A B + AB F 1 = AC + AB F 2 = AB + AB A seguir, para cada uma das funções tem de se optar pela versão complementar ou não complementar tendo como objectivo a minimização do número de termos de produto Por eemplo, se escolhermos para ambas as funções as versões não complementadas, são necessários quatro termos de produto ( A C, A B, A B, AB ) para gerar as duas funções Como temos apenas duas funções diferentes, podemos tentar todas as combinações possíveis entre as versões complementares e não complementares das funções, para verificar qual a opção de implementação necessita de menos termos de produto: (F 1, F 2 ) 4 termos de produto; (F 1, F 2 ) 3 termos de produto; ( F, 1 F 2 ) 3 termos de produto; ( F, 1 F 2 ) 4 termos de produto; As combinações com o menor número de termos de produto são a (F 1, F) 2 e a ( F, 1 F 2 ) Optando pela primeira, necessitamos dos termos de produto A C, A B e A B A implementação final com uma PLA é ilustrada na figura 13 Dispositivos Lógicos Programáveis 24
29 A B C F 1 F 2 Figura 13 Implementação do eemplo de simplificação com uma PLA No seu conjunto, o processo de minimização procura não só minimizar o número de termos de produto de cada uma das funções, como também maimizar os termos de produto comuns a várias funções Obtidas as funções, basta programar a matriz de entrada e de saída por forma a gerar a soma de produtos de cada uma das funções, bem como a matriz associada às portas XO para complementar o sinal à saída das portas O caso se tenha usado a versão complementada de uma qualquer função Na implementação final do eemplo, a função obtida à saída da segunda porta O é o complemento da função F 2 Como tal, tem de ser invertida usando a porta XO da saída 42 PLA comerciais Uma das primeiras PAL introduzidas no mercado pela Signetics foi a 82S100 com 16 entradas, 48 portas AND e 8 saídas Apesar das vantagens da PLA relativamente à OM na implementação de funções lógicas, a sua utilização foi rapidamente substituída por outros dispositivos programáveis mais eficientes, nomeadamente a PAL Dispositivos Lógicos Programáveis 25
30 5 Dispositivo PAL A PAL é um dispositivo programável cuja marca foi registada pela American Micro Devices (AMD) Os primeiros dispositivos programáveis PAL surgiram no final da década de 70 e o seu sucesso crescente levou a PAL a ser actualmente um dos dispositivos lógicos programáveis mais utilizado As PAL baseiam-se no mesmo princípio de implementação da forma AND-O No entanto, consideram que a fleibilidade de programação associada à matriz de saída não traz grandes benefícios à capacidade de produção de funções lógicas Consequentemente, enquanto que na PLA as matrizes de entrada e de saída são ambas programáveis, na PAL apenas a matriz de entrada é programável A matriz de saída tem uma estrutura fia não programável Por este motivo, a PAL é mais fácil de programar e tem um custo mais baio quando comparada com a PLA No entanto, não é tão fleível em termos de programação, pois a matriz de saída é fia Para ilustrar a arquitectura típica de uma PAL, consideremos uma configuração eemplo com apenas quatro entradas e quatro saídas (ver figura 14) Célula Lógica O 1 I 1 Célula Lógica O 2 I 2 Célula Lógica O 3 I 3 Célula Lógica O 4 I 4 Figura 14 Eemplo de arquitectura de uma pequena PAL Dispositivos Lógicos Programáveis 26
31 O dispositivo da figura apresenta uma estrutura regular formada pela matriz de entrada programável, por quatro entradas (I n ) complementadas e não complementadas e por quatro saídas Cada uma das saídas é gerada por uma estrutura AND-O que, neste caso particular, é idêntica para todas as saídas e formada por três portas AND com entradas programáveis Cada uma das portas AND tem dezasseis ligações de entrada programáveis cujos sinais provêm das quatro entradas, complementadas e não complementadas, e das quatro saídas, complementadas e não complementadas, que são reintroduzidas na matriz de entrada através de um buffer Ao conjunto de lógica associada a cada uma das saídas (no eemplo, a estrutura AND-O com três portas AND e o buffer de realimentação) designa-se célula ou macrocélula O número de entradas e de saídas, bem como a estrutura da macrocélula, são os principais parâmetros lógicos diferenciadores do tipo de PAL 51 Implementação de funções lógicas com PAL A implementação de um conjunto de funções com uma determinada PAL está dependente do número de entradas e de saídas e do número de termos de produto Devido à limitação do número de termos de produto por célula, as funções devem ser previamente simplificadas antes de serem implementadas na PAL Se, mesmo após simplificação, o número de produtos for superior ao eistente numa única célula, então é necessário usar duas ou mais células para implementar a função recorrendo à realimentação das saídas das células através dos buffers Ao contrário da PLA, em que um termo de produto podia ser directamente partilhado por duas ou mais portas O, na PAL isso não é possível Como tal, as funções podem ser simplificadas individualmente sem ter em conta a partilha de termos de produto (simplificação multifunção) Por outro lado, uma vez que é possível realimentar o valor da função de saída, pode ser útil identificar termos AND-O comuns a duas ou mais funções Consideremos, como eemplo, a utilização da PAL implementação de quatro funções lógicas, F 0, F 1, F 2, F 3 : da figura 14 para F 3 = A BC + ABCD; F 2 = AB + ACD + ABCD ; F 1 = F 0 = A D + BC ; A D + BC + ABD + BD ; Dispositivos Lógicos Programáveis 27
32 A PAL tem entradas suficientes para implementar as funções de quatro variáveis cada Além disso, numa primeira aproimação, o número de saídas também é suficiente para implementar as quatro funções No entanto, o número de termos de produto da função F 0 é superior ao de uma única célula, que tem apenas três Neste caso, é necessário usar mais do que uma célula para implementar a função F 0 Consequentemente, à primeira vista, a PAL proposta não seria solução, pois apenas suportaria a implementação de apenas três das quatro funções Contudo, ao analisarmos as funções, verificamos que a epressão lógica da F 1 ( A D + BC ) faz parte da epressão lógica de F 0 ( A D + BC + A BD + BD ) Assim, a função F 0 pode ser escrita como: F 0 = F 1 + A BD + BD e desta vez já só tem três termos de produto, suportável por uma única célula da PAL Caso o conjunto de funções fosse formado apenas por F 3, F 2 e F 0, apenas teríamos de criar uma nova função que realizaria parte de F 0 Por eemplo, F 5 = B C + ABD + BD ou F 5 = A D + BC Depois de simplificar as funções, basta programar a matriz da PAL (ver figura 15) Célula Lógica F 0 A Célula Lógica F 1 B Célula Lógica F 2 C Célula Lógica F 3 D Figura 15 Implementação das quatro funções na PAL Dispositivos Lógicos Programáveis 28
33 Na implementação ilustrada na figura, a representação das ligações é idêntica à usada nos dispositivo anteriores, ou seja, uma cruz na intersecção indica que o sinal dessa coluna entra na porta AND da linha respectiva Felizmente, como acontece com todos os outros dispositivos programáveis, o fabricante disponibiliza ferramentas de CAD para geração do ficheiro de programação a partir da descrição das funções lógicas e para programação da PAL, tendo como entrada o ficheiro de programação 52 PAL comerciais As PAL comerciais são consideravelmente maiores que a utilizada no eemplo anterior De entre as PAL comerciais, eistem as que apenas implementam lógica combinatória e as que também implementam lógica sequencial, pois incluem elementos de memória nas macrocélulas Nesta secção, vamos descrever a estrutura de uma PAL combinatória, PAL16L8, e duas PAL sequenciais bastante utilizadas, PAL22V10 e ATF750C 521 Arquitectura da PAL combinatória 16L8 A PAL16L8 suporta um máimo de 16 entradas e 8 saídas (daqui advêm os números usados na designação 16L8) e tem uma matriz programável com 64 linhas e 32 colunas, perfazendo um total de 2048 ligações programáveis (ver figura 16) As células de saída são formadas por: - uma estrutura AND-O com 7 portas AND de 32 entradas cada, correspondentes ao conjunto das 16 entradas complementadas e não complementadas; - uma porta three-state inversora à saída da porta O cuja entrada de enable é controlada por uma oitava porta AND também com 32 entradas As entradas não conectadas são interpretadas pela porta AND como sendo o valor lógico 1 Assim, por eemplo, caso se pretenda que a porta three-state esteja sempre activa, basta não ligar nenhum sinal à porta AND de controlo; - um buffer de realimentação da saída respectiva para a matriz de entrada Embora a PAL tenha 16 pinos de entrada e 8 pinos de saída, o encapsulamento do integrado apenas tem 20 pinos, incluindo os dois pinos de alimentação Para que tal seja Dispositivos Lógicos Programáveis 29
34 possível, 6 dos 20 pinos são bidireccionais, podendo ser usados como entrada, como saída ou como entrada/saída I 1 O 1 I 2 IO 2 I 3 IO 3 I 4 IO 4 I 5 IO 5 I 6 IO 6 I 7 IO 7 I 8 O 8 I 9 I 10 Figura 16 Arquitectura da PAL 16L8 Dispositivos Lógicos Programáveis 30
35 Os pinos bidireccinais podem ser usados de várias formas, dependendo da função que se atribui ao pino: - pode ser usado como entrada Para tal, é necessário que a porta three-state de saída esteja sempre inactiva; - pode ser usado como saída Para tal, basta activar o three-state Neste caso, o sinal à saída pode ser realimentado para a matriz, através do buffer de realimentação, como se se tratasse de uma entrada Esta realimentação é usada sempre que o número de termos de produto de uma célula não é suficiente para implementar uma função, como foi visto na secção anterior; - pode ser usado como pino de entrada/saída Nesta configuração, o estado do pino é controlado pela porta three-state de saída uando se quer enviar dados para o eterior, activa-se a porta three-state No caso de se querer receber dados pelo pino, desactiva-se a porta three-state e a entrada de dados é feita através do buffer de realimentação; - uma outra configuração interessante, é a de realimentação da função de saída para a mesma célula que produziu a saída Isto permite implementar circuitos lógicos com realimentação NOTA: Uma questão que se coloca nesta altura é a de saber se uma PAL com m termos de produto suporta ou não a implementação de todas as funções de n entradas (na PAL16L8, temos 16 entradas e 7 termos de produto) De facto, como era de esperar, o número de termos de produto disponibilizados por uma PAL está longe de suportar todas as funções com o mesmo número de entradas da PAL Sabemos que a função que necessita de mais termos de produto é o XO, sendo que um XO de n entradas requer 2 n-1 termos de produto (eg, para 8 entradas, seriam necessários 128 termos de produto!) O que se passa é que, na maioria dos casos, não somos confrontados com funções tão etensas Na maioria dos projectos de pequena e média compleidade, em que a PAL é tida como implementação preferencial, na pior das hipóteses surge a necessidade de recorrer à realimentação das funções de saída para implementar uma estrutura AND-O-AND-O A desvantagem desta realimentação reside na duplicação do atraso de propagação da função lógica Para ilustrar a utilização da PAL16L8 na implementação de funções lógicas combinatórias, vamos implementar o multiplicador de dois bits, a partir das suas Dispositivos Lógicos Programáveis 31
36 funções complementares que se apresentam de seguida (não esquecer que a saída da célula inverte a função): M3 = I3 + I2 + I1+ I0 M2 = I3 + I1+ I2 I0 M1= I3 I1+ I1 I0 + I3 I2 + I2 I0 + I3 I2 I1 I0 M0 = I2 + I0 Estas funções são facilmente implementáveis na PAL sem recorrer à realimentação, uma vez que o número de termos de produto de qualquer uma das funções é inferior a 7 (ver implementação na figura 17) I 0 M 0 I 1 M 1 I 2 M 2 I 3 M 3 I 5 IO 5 Figura 17 Implementação do multiplicador de 2-bits na PAL 16L8 No eemplo, todos os three-states associados às saídas das funções têm de estar activos Para tal, basta não ligar qualquer entrada às AND de controlo respectivas Dispositivos Lógicos Programáveis 32
37 522 Arquitectura de PAL sequencial PAL168 A PAL 16L8 apenas implementa funções combinatórias porque não tem elementos de memória, como latches ou flip-flops Com o objectivo de implementar circuitos sequencias em PAL, surgiu a primeira geração de PAL sequenciais com a designação PAL168 Este dispositivo programável tem 8 entradas e 8 oito saídas, uma entrada de relógio comum a todos os flip-flops tipo D e uma entrada de controlo comum a todos as portas three-state de saída (ver figura 18) SD O 1 CL I 1 SD O 2 CL I 2 SD SD CL CL O 3 O 6 I 6 SD O7 CL I 7 SD O 8 CL I 8 OE_L Figur a 18 Arquitectura da PAL 168 As saídas complementares dos flip-flop tipo D são realimentadas para a malha, facilitando a implementação de contadores, de registos de deslocamento, etc Note-se que as saídas dos flip-flops estão disponíveis sem passar pelas portas three-state Assim, os flip-flops podem mudar para um outro estado função do estado presente, independentemente do estado das portas three-state, porque as saídas são realimentadas antes dos three-states Dispositivos Lógicos Programáveis 33
38 Apesar da sua aplicabilidade, as PAL 16L8 e 168 estão limitadas pelo facto de apenas poderem ser usadas unicamente na implementação de circuitos combinatórios ou de circuitos sequencias e nunca em simultâneo Uma vez que muitas aplicações necessitam de saídas combinatórias juntamente com saídas sequenciais, surgiram depois variantes destas PAL em que algumas das saídas eram combinatórias, a célula não tinha flip-flop, e outras eram sequencias, a célula continha um flip-flop (eg, PAL166) Apesar da sua aplicabilidade, o facto de uma saída estar à partida definida como combinatória ou sequencial restringia consideravelmente o tipo de PAL ao projecto Para ultrapassar esta limitação, surgiram as famílias de PAL em que cada macrocélula podia ser configurada individualmente como combinatória ou como sequencial Nas secções seguintes, descrevem-se duas destas PAL, nomeadamente a ATF22V10 e a ATF750C 523 Arquitectura de PAL sequencial ATF22V10 A ATF22V10 tem as seguintes características (ver figura 19): - 12 pinos de entrada dedicados e 10 pinos de saída que podem ser configurados como entrada, saída ou entrada/saída As entradas não utilizadas devem ser ligadas a Vcc ou a GND; - 10 macrocélulas programáveis como combinatórias ou sequenciais e activas a HIGH ou activas a LOW; - número de termos de produto por macrocélula variável de 8 a 16 termos Pela figura 19 é possível identificar o número de termos de produto associados a cada uma das macrocélulas através do número escrito na linha de entrada Por eemplo, a macrocélula associada à saída IO 1 tem 8 termos de produto, enquanto que a associada à saída IO 4 tem 14 termos de produto; - Cada um dos flip-flops recebe sinais comuns de relógio (activo no flanco ascendente), de reset assíncrono e de preset síncrono; - Os termos de produto com todas as ligações em aberto assumem o estado lógico HIGH; - As saídas incluem um buffer three-state controlado por um termo de produto Sempre que o pino é usado para entrada, o three-state é configurado por forma a Dispositivos Lógicos Programáveis 34
39 estar sempre inactivo Caso o pino seja configurado como saída, o three-state está sempre activo É ainda importante referir que a realimentação combinatória é feita a partir da saída do three-state Como tal, a realimentação combinatória só é possível se o pino for configurado como saída Através do controlo do three-state, é possível usar um pino como bidireccional I 1 / eset assíncrono Preset síncrono 8 Macrocélula IO 1 10 I 2 Macrocélula IO2 12 I 3 IO 3 Macrocélula 14 I 4 Macrocélula IO4 /IN IN IN IN IN IN IN IN IN IN IN GND PAL 22V VCC IN 16 I 5 IO 5 Macrocélula Matriz Programável I 6 IO6 Macrocélula 14 I 7 IO 7 Macrocélula 12 I 8 Macrocélula IO8 10 I 9 IO 9 Macrocélula 8 I 10 IO 10 Macrocélula I 11 I 12 Figura 19 Arquitectura da PAL ATF22V10 Dispositivos Lógicos Programáveis 35
40 A macrocélula de saída pode ser configurada de acordo com uma de quatro configurações diferentes: saída combinatória activa a HIGH, saída combinatória activa a LOW, saída sequencial activa a HIGH ou saída sequencial activa a LOW A escolha da configuração é feita de acordo com a aplicação do utilizador e é conseguida através de dois bit de configuração: S0 e S1 (ver figura 20) SD A CL S1 S0 S1 S0 Configuração 0 0 Sequencial/activa a LOW 0 1 Sequencial/activa a HIGH 1 0 Combinatória/activa LOW 1 1 Combinatória/activa HIGH Figura 20 Arquitectura da macrocélula da PAL 22V10 A configuração sequencial activa a LOW é conseguida com ambos os bits de S1 e S0 ao nível lógico 0 Neste caso, o multipleer de saída coloca à entrada do three-state o sinal proveniente da saída do flip-flop Por outro lado, o de entrada (em baio, na figura), realimenta a matriz programável com a saída complementada do flip-flop (ver figura 21) Na mesma figura, está ilustrado o circuito lógico equivalente após a configuração da macrocélula SD A CL S1 S0 SD A CL Figura 21 Configuração sequencial activa a LOW da macrocélula da ATF22V10 Para obter uma saída registada activa a HIGH, o multipleer encaminha a saída complementada do flip-flop que depois é invertida pelo three-state (ver figura 22) Dispositivos Lógicos Programáveis 36
41 SD A CL S1 S0 SD A CL Figura 22 Configuração sequencial activa a HIGH da macrocélula da ATF22V10 Para ter saídas combinatórias, basta seleccionar as entradas do multipleer que não passam pelo flip-flop Para a saída activa a LOW, selecciona a entrada negada e o multipleer de entrada selecciona o sinal vindo da saída do three-state (ver figura 23) SD A CL S1 S0 Figura 23 Configuração combinatória activa a LOW da macrocélula da ATF22V10 Para a saída activa a HIGH, selecciona a entrada não negada e o multipleer de entrada selecciona o sinal vindo da saída do three-state (ver figura 24) SD A CL S1 S0 Figura 24 Configuração combinatória activa a HIGH da macrocélula da ATF22V10 Dispositivos Lógicos Programáveis 37
42 A figura 25 ilustra a arquitectura completa da PAL ATF22V10 Figura 25 Arquitectura completa da PAL ATF22V10 (imagem etraída de [7]) Dispositivos Lógicos Programáveis 38
43 524 Arquitectura de PAL sequencial ATF750C/CL A PAL ATF22V10 foi um passo em frente na fleibilização da arquitectura da PAL No entanto, ainda apresenta algumas limitações, como o número reduzido de flip-flops, um sinal de relógio comum a todos os flip-flops, inviabilizando a implementação na mesma PAL de máquinas sequencias com relógios diferentes, tipo de flip-flop fio, não permitindo optimizar a lógica combinatória com a utilização de flip-flops mais adequados ao problema, etc Com vista a melhorar todos estes aspectos, surgiu recentemente uma nova família de PAL - ATF750C/ATF750CL - mais fleível e com maior densidade de integração que ultrapassa as limitações descritas anteriormente A ATF750C(L) tem as seguintes características principais: - É uma etensão à lógica da 22V10 e é compatível com as PAL ATV750B/BL e ATV750/L (versões anteriores desta família de PAL ); - Tem 12 pinos de entrada dedicados e 10 pinos de saída que podem ser configurados como entrada, saída ou entrada/saída; - Tem 20 flip-flops que pode ser configurados individualmente como sendo do tipo D ou do tipo T As saídas dos flip-flops podem realimentar a matriz programável de entrada Todos os flip-flops são inicializados a 0 após activação da alimentação; - Tem 10 macrocélulas programáveis como combinatórias ou sequenciais com termos de soma combinados ou separados; - Tem um total de 171 termos de produto e dois termos de soma por saída Os termos de soma têm associados entre quatro e oito termos de produto Pela figura 26 é possível identificar o número de termos de produto associados a cada uma das macrocélulas através do número escrito na linha de entrada; - O sinal de relógio e de reset de cada um dos flip-flops pode ser controlado individualmente por um termo de produto Adicionalmente, cada um dos flip-flops pode ser configurado individualmente com uma entrada de relógio proveniente do pino de entrada directa de relógio O preset de todos os flip-flops é controlado por um sinal síncrono comum a todos proveniente de um termo de produto; Dispositivos Lógicos Programáveis 39
44 I 1 / CK0 Macrocélula CK1 A 0 A1 OE IO1 5 CK0 Macrocélula IO 2 I 2 CK A 0 A1 OE 1 0 I CK0 Macrocélula CK1 A0 A1 OE IO IO 4 7 CK0 Macrocélula I 4 CK1 A0 A1 OE /IN IN IN IN IN IN IN IN IN IN IN GND 1 PAL ATF VCC IN I 5 Matriz Programável Macrocélula IO CK0 6 I 6 CK1 7 CK0 Macrocélula IO 7 I CK0 Macrocélula CK1 A 0 A1 OE A 0 A1 OE 1 0 CK1 A0 A1 OE IO CK0 Macrocélula IO 8 I 8 CK1 6 A 0 A1 OE CK0 Macrocélula IO I CK1 A0 A1 OE CK0 Macrocélula IO 10 I 10 4 CK1 A0 A1 OE I 11 I 12 Figura 26 Arquitectura completa da PAL ATF750C/CL Dispositivos Lógicos Programáveis 40
45 - Os termos de produto com todas as ligações em aberto assumem o estado lógico HIGH; - As saídas incluem um buffer three-state controlado por um termo de produto Sempre que o pino é usado para entrada, o three-state é configurado por forma a estar sempre inactivo Caso o pino seja configurado como saída, o three-state está sempre activo É ainda importante referir que a realimentação combinatória é feita a partir da saída do three-state Como tal, a realimentação combinatória só é possível se o pino for configurado como saída Através do controlo do three-state, é possível usar um pino como bidireccional Os pinos de saída incluem ainda um controlo para programação da polaridade uando comparado com a PAL 22V10, a ATF750C(L) tem o dobro da densidade lógica, incluindo o dobro do número de flip-flops, e é mais fleível A fleibilidade traduz-se por ter sinais de relógio e sinais de reset independentes para cada um dos flipflops e caminhos de realimentação a partir das saídas dos flip-flops que permitem a utilização destes sem utilizar pinos de entrada/saída Além disso, ao poder configurar os flip-flops como sendo do tipo D ou do tipo T facilita a implementação de contadores neste tipo de PAL A macrocélula da ATF750C(L) é formada pelos termos de produto (o número de termos de produto da macrocélula depende do pino a que esta associada Na figura 26 é possível identificar o número de termos de produto associados a cada uma das macrocélulas através do número escrito na linha de entrada Por eemplo, a macrocélula associada à saída IO 1 tem 4 termos de produto associados a cada um dos termos de soma), por dois termos de soma, por dois flip-flops e por lógica de programação para configurar a célula como combinatória ou sequencial, bem como o tipo de polaridade associado à saída Eiste ainda um multipleer que selecciona a origem do sinal de relógio aplicado a cada um dos flip-flops (ver figura 27) Na figura, é possível identificar os termos de produto associados a cada um dos termos de soma, os dois flip-flops e o three-state de saída A escolha entre sequencial e combinatório é feita pelo multipleer de saída através do selector Sel1 configurável Dispositivos Lógicos Programáveis 41
46 Dependendo do valor deste selector, a saída vem do flip-flop (sequencial) ou do termo de soma (combinatório) 1 0 D/T S CL 0 Sel1 0/ 1 CK0 A0 Sel0 A Sel3 D/T S CL 1 CK1 A1 OE Sel 2 A Figura 27 Arquitectura da macrocélula de saída da PAL ATF750C/CL O número de termos de produto do termo de soma superior pode ser aumentado com a utilização dos termos de produto associados ao termo de soma inferior Para tal, basta ligar o selector Sel3 A origem do sinal de relógio é controlada pelo multipleer ligado à entrada de relógio dos flip-flops que escolhe entre o sinal de relógio síncrono ligado ao pino 1 da PAL (), comum a todos os flip-flops, ou o sinal gerado por um termo de produto (0 e 1) A polaridade de saída é configurada através de uma porta XO que funciona como buffer inversor ou não inversor Os sinais de reset assíncrono (A0 e A1) e de controlo do three-state de saída (OE) são provenientes de um termo de produto Todas as células têm três caminhos de realimentação para a matriz configurável (representado na zona superior da figura 27), um vindo de cada um dos flip-flops e outro do pino de saída No caso de uma saída combinatória, a realimentação vem sempre do próprio pino No caso de uma saída sequencial, a realimentação pode vir do pino ou do registo A macrocélula da ATF750C/CL permite várias configurações De seguida, descrevemos algumas das mais utilizadas: Dispositivos Lógicos Programáveis 42
47 a) Saída combinatória; b) Saída combinatória mais um flip-flop; c) Saída sequencial; d) Saída sequencial mais um flip-flop; e) Utilização de dois flip-flops com pino de usado como entrada; f) Saída combinatória com registo do valor no flip-flop Em todas as configurações, um flip-flop não associado a um pino de saída é designado flip-flop interno Na PAL ATF750 o flip-flop 1 é sempre interno, enquanto que o flip-flop 0 pode ser interno ou estar associado a um pino a) Configuração com saída combinatória Esta é a configuração mais simples, em que não são utilizados flip-flops (ver figura 28) 1 0 D/T S CL 0 Sel1 0/ 1 CK0 A0 Sel3 Sel0 A D/T S CL 1 OE CK1 A1 OE Sel 2 A Figura 28 Configuração com saída combinatória O multipleer de saída é configurado para a entrada combinatória O Sel3 é ligado caso sejam necessários mais termos de produto para produzir a saída combinatória A utilização dos termos de produto provenientes do termo de soma inferior é possível porque o segundo flip-flop não está a ser usado b) Configuração com saída combinatória mais um flip-flop Nesta configuração, é produzida uma saída combinatória com o termo de soma superior e o termo de soma inferior é suado juntamente com o seu flip-flop para produzir uma variável 1 registada (ver figura 29) Dispositivos Lógicos Programáveis 43
48 1 0 CK0 D/T S CL 0 A Sel0 Sel1 0/ 1 1 A0 Sel3 D/T S CL 1 D/T S CL 1 CK1 Sel 2 A CK1 Sel 2 A A1 A1 OE OE Figura 29 Configuração com saída combinatória mais um flip-flop Nesta configuração não é possível associar os termos de produto do termo de soma inferior aos do termo de soma superior, uma vez que estão a ser usados pelo flip-flop inferior Esta configuração pode ser usada, por eemplo, quando o circuito a implementar inclui uma saída combinatória e uma variável registada que não tem de ser enviada para um pino de saída c) Saída sequencial O modo mais simples de gerar uma saída sequencial é utilizando o flip-flop superior que tem um caminho directo para o pino de saída Também é possível usar o flip-flop inferior, mas, neste caso, a saída do flip-flop não tem um caminho directo para uma saída, tendo de ser realimentado para a matriz para poder aparecer numa saída combinatória (ver figura 30) D/T S CL 0 Sel1 0/ 1 D/T S CL 0 CK0 Sel0 A CK0 Sel0 A A0 A0 Sel3 D/T S CL 1 CK1 Sel 2 A OE A1 OE Figura 30 Configuração com saída sequencial Dispositivos Lógicos Programáveis 44
49 Também nesta configuração, pode-se adicionar os termos de produto inferiores ao O superior, uma vez que o flip-flop inferior não está a ser usado d) Saída sequencial mais um flip-flop Esta configuração usa o flip-flop superior para gerar uma saída registada e o inferior para registar uma variável interna (ver figura 31) CK0 A0 1 0 D/T S CL 0 Sel0 A Sel1 0/1 CK0 A0 1 0 D/T S CL 0 Sel 0 A CK1 A1 OE Sel3 D/T S CL 1 Sel 2 A CK1 A1 OE D/T S CL 1 Sel2 A Figura 31 Configuração com saída sequencial mais um flip-flop interno e) Utilização de dois flip-flops com pino de usado como entrada A ATF750C/CL tem a vantagem de ter realimentações directamente das saídas dos flipflops Como tal, os flip-flops podem ser usados sem estarem associados a qualquer pino, libertando o pino para poder ser usado como entrada (ver figura 32) CK0 A0 1 0 D/T S CL 0 Sel0 A Sel1 0/1 CK0 A0 1 0 D/T S CL 0 Sel 0 A 0 0 CK1 A1 OE Sel3 D/T S CL 1 Sel 2 A CK1 A1 D/T S CL 1 Sel2 A Figura 32 Configuração com dois flip-flops internos e o pino usado como entrada combinatória Dispositivos Lógicos Programáveis 45
50 epare que nesta configuração o three-state de saída está sempre inactivo (entrada de controlo a 0) Isto permite que se utilize o pino como entrada sem gerar qualquer conflito com o valor à saída do flip-flop superior f) Saída combinatória com registo do valor no flip-flop Esta última configuração ilustra a utilização de uma macrocélula com saída combinatória, em que o valor de saída é registado no flip-flop respectivo (ver figura 33) CK0 A0 0 D/T S CL 0 Sel0 A Sel1 0/1 CK0 A0 0 D/T S CL 0 Sel0 A Sel3 D/T S CL 1 CK1 Sel 2 A OE A1 0 OE Figura 33 Configuração com saída combinatória registada num flip-flop interno Neste caso, o segundo flip-flop pode ser usado ou não No eemplo da figura não foi utilizado, permitindo usar os seus termos de produto no termo de soma superior 53 Configuração das PAL com a linguagem CUPL Esta secção descreve o modo de configuração das PAL recorrendo à linguagem de descrição de hardware Atmel-CUPL Nesta descrição, vamos considerar apenas as PAL ATF22V10 e ATF750C/CL 531 Configuração da PAL ATF22V10 usando CUPL ecordando a macrocélula da ATF22V10 (ver figura 34), verifica-se que na sua configuração tem de se indicar se se trata de uma saída combinatória ou sequencial com flip-flop tipo D No caso de ser uma saída sequencial, é ainda necessário configurar os sinais ligados às entradas A, e D do flip-flop Para qualquer tipo de saída, tem de se indicar a função lógica associada à entrada de controlo do three-state de saída Por omissão, o valor é colocado no valor lógico 1 Dispositivos Lógicos Programáveis 46
51 O sinal de relógio não eige qualquer configuração pois é comum a todos os flipflops e está sempre associado ao pino 1 da PAL SD A CL S1 S0 Figura 34 Macrocélula da ATF22V10 Deste modo, as etensões CUPL válidas para este dispositivo programável são: OE (controlo do three-state de saída), A, e D (sinais associados ao flip-flop) Para configurar a saída como combinatória, basta indicar a função lógica associada a essa saída Por eemplo: O21 = I1 # I2; Para configurar a saída como sequencial, é necessário indicar as epressões lógicas associadas à entrada do flip-flop Por eemplo: O21d = I1 # I2; O21ar = reset; O21sp = b 0; Adicionalmente, pode-se especificar um sinal de controlo do three-state de saída, quer seja uma saída combinatória, quer seja sequencial Por eemplo: O21oe = enable; A indicação de que se pretende usar o valor presente numa saída combinatória ou sequencial para realimentação da matriz é feita utilizando o nome associado ao pino no lado direito de uma epressão sem qualquer etensão Por eemplo: O22 = O21 & I2; significa que a saída combinatória O22 é igual ao produto lógico entre a entrada I2 e a função lógica da saída O21 Dispositivos Lógicos Programáveis 47
52 532 Configuração da PAL ATF750C/CL usando CUPL A programação da macrocélula da PAL ATF750 inclui a configuração do pino como entrada, saída ou entrada/saída e do sinal de controlo do three-state de saída Além disso, um pino de saída ou de entrada/saída pode ser configurado como combinatório ou sequencial Sempre que se utiliza um flip-flop, é necessário configurar as entradas de reset (A), preset () e de relógio, bem como o tipo de flip-flop (D ou T) Deste modo, as etensões CUPL válidas para este dispositivo são: OE (controlo do three-state de saída), A,, D, T, DFB (sinais associados aos flip-flops), CK, CK (sinais associados à configuração do sinal de relógio) e IO (sinal associado à identificação da realimentação do pino) Para melhor percebermos a configuração da macrocélula, recorda-se a sua configuração na figura D/T S CL 0 Sel1 0/1 CK0 A0 Sel0 A Sel3 D/T S CL 1 CK1 A1 OE Sel 2 A Figura 35 Macrocélula da ATF750X ATIBUIÇÃO DE NÓS E PINOS O flip-flop 1 interno é identificado por um número de nó O flip-flop 0 é identificado por um número de nó quando usado como interno e um número de pino quando associado a um pino (ver tabela 5) Na tabela, uma linha corresponde a uma macrocélula Por eemplo, o registo 0 do pino 17 (ou do nó 38) e o registo 1 do nó 28 pertencem à mesma macrocélula Dispositivos Lógicos Programáveis 48
53 Pino 0 Nó 0 Nó Tabela 5 identificação dos nós e dos pinos Considere os eemplos seguintes: pin [2, 3, 4, 5] = [I1, I2, I3, I4]; pin [20, 21, 22, 23] = [O20, O21, O22, O23]; pinnode [34, 31, 44] = [O231, O201, O230]; Na primeira declaração atribuíram-se quatro pinos de entrada Depois, de acordo com a tabela 5, atribuíram-se quatro pinos 20, 21, 22 e 23 que podem ser usados como combinatórios ou sequencias Na declaração seguinte atribuíram-se três nós internos, dois com o registo 1 e um terceiro com o registo 0 O primeiro registo 1 e o registo 0 definidos como nós pertencem à mesma macrocélula, de acordo com a tabela 5 IDENTIFICAÇÃO DAS EALIMENTAÇÕES Cada macrocélula tem três caminhos de realimentação para a matriz de entrada: um de cada um dos registos e um terceiro do pino Para um flip-flop interno 1, o caminho de realimentação é identificado pelo nome do nó Para um flip-flop associado a um pino de saída, o caminho de realimentação pode vir do registo ou do pino No primeiro caso, é identificado pelo nome do pino No segundo caso, é identificado pelo nome do pino acompanhado da etensão IO (ver figura 36) CK0 1 0 Macrocélula O23IO (nó 23) O23 (nó 34) O23 (nó 23) Sel 0 D/T S CL 0 A Sel 1 0/1 O23 Figura 36 Identificação dos pontos de realimentação Dispositivos Lógicos Programáveis 49
54 Para uma saída combinatória, a realimentação vem do pino, pelo que é identificada pelo nome do pino Por eemplo: O22d = I1 $ I2; O231d = I2 # I3 # I4; O21 = O23 & O231 & O23io; No eemplo, definiram-se as epressões de entrada dos registos 0 (O23) e 1 (O231) de uma macrocélula De seguida, atribuiu-se à saída O21 o produto lógico entre o valor da saída do registo 0 (O23), o valor da saída do registo interno 1 (O231) e o valor do pino O23 (O23io), todos pertencentes à mesma macrocélula NOTA: Se um pino de for usado como entrada, esta é identificada apenas com o nome do pino A etensão IO é usada apenas para realimentação do valor de um pino de saída registado Eiste um caso particular de realimentação, associado à configuração f) descrita e ilustrada na secção anterior, correspondente à configuração em que temos uma saída combinatória cujo valor é registado no flip-flop associado a essa saída Sendo uma saída combinatória, esta é identificada pelo nome do pino Como tal, a realimentação a partir do flip-flop não pode usar o mesmo nome Para ultrapassar esta dificuldade, utiliza-se a etensão DFB associada ao nome do pino para identificar a saída do flip-flop 0 (ver figura 37) 1 0 O23 (nó 23) O23 (nó 34) O23dfb (nó 23) D/T S CL 0 O23 CK0 Macrocélula A Sel 0 Figura 37 Identificação do ponto de realimentação com flip-flop e saída combinatória Por eemplo, O21 = I2; O23d = O21dfb; Dispositivos Lógicos Programáveis 50
55 Neste eemplo, atribuiu-se a entrada I2 à saída O21 (saída combinatória) e atribuiuse ao flip-flop 1 (O23) o valor realimentado vindo da saída do flip-flop 0 (O21dfb) pertencente à macrocélula associada à saída combinatória O21 ATIBUIÇÃO DOS SINAIS A, e OE Os sinais A (reset assíncrono) dos flip-flops são configurados individualmente com um termo de produto O sinal (preset síncrono) dos flip-flops é comum a todos e é configurado como um único termo de produto Os three-states de saída também são configurados individualmente através dum termo de produto A configuração destes sinais faz-se com as etensões do CUPL A, e OE Por eemplo: O23ar = I1 & I2; O23sp = I3; O23oe = I2 & I4; CONFIGUAÇÃO DOS SINAIS DE ELÓGIO Cada um dos registos pode ser configurado com um sinal de relógio independente proveniente de um termo de produto ou directamente do pino de relógio (pino 1 da PAL ) A configuração do sinal de relógio é feita com as etensões CK e CK No caso de se pretender usar o sinal directamente do pino de relógio, é necessário associar um nome ao pino 1 que depois é atribuído à entrada de relógio do flip-flop usando o nome do nó ou do pino a que está associado o flip-flop seguido da etensão CK No caso de se pretender usar um relógio proveniente de um termo de produto, deve-se usar o nome do nó ou do pino a que está associado o flip-flop seguido da etensão CK por eemplo: pin 1 = sync_clk; pin 2 = async_clk; O22ckmu = sync_clk; O23ck = async_clk & I1; O231ck = sync_clk; Neste eemplo, o flip-flop associado à saída O22 recebe um sinal de relógio directo do pino 1 O flip-flop 0 associado ao pino O23 (O23) recebe um sinal de relógio vindo de um termo de produto (async_clk & I1) O flip-flop 1 associado ao nó O23 (O231) Dispositivos Lógicos Programáveis 51
56 recebe um sinal de relógio de um termo de produto, que neste eemplo é formado apenas pelo sinal aplicado ao pino 1 (sync_clk) epare que embora o O22 e o O231 recebam o mesmo sinal de relógio, o primeiro recebe o sinal directamente, enquanto que o segundo recebe o sinal através de um termo de produto IDENTIFICAÇÃO DO TIPO DE FLIP-FLOP Na PAL ATF750, o flip-flop pode ser configurado como sendo do tipo D ou do tipo T Para tal, basta usar a etensão D ou T, respectivamente, quando se definem as funções de entrada dos flip-flops Por eemplo, O23d = I1 & I2; O22t = I1 & I2; O primeiro caso configura o flip-flop como tipo D e o segundo como tipo T Dispositivos Lógicos Programáveis 52
57 6 Dispositivo CPLD Apesar do avanço da tecnologia aumentar a capacidade de integração, o dispositivo PAL não consegue tirar proveito deste aumento porque a sua arquitectura não é escalável Por eemplo, se considerarmos um dipositivo com 128 termos de produto por cada uma de 128 macrocélulas, teríamos termos de produto com 256 entradas! Devido aos efeitos capacitivos, esta porta AND seria aproimadamente uma ordem de grandeza mais lenta que um dispositivo com apenas 16 termos de produto Além disso, teríamos associado um grande número de termos de produto a uma única saída, com a consequente redução da eficiência de utilização da área de silício Por estas razões, a melhor opção para aumentar a densidade de integração de uma arquitectura baseada numa estrutura AND-O será considerar muitas réplicas interligadas de uma mesma estrutura simples Esta configuração deu origem às arquitecturas dos dispositivos CPLD (ver figura 38) Bloco de interface PLD PLD PLD PLD Interligações programáveis PLD PLD PLD PLD Bloco de interface Figura 38 Arquitectura de um dispositivo CPLD Um CPLD é formado por um conjunto de blocos lógicos programáveis (PLD) interligados com uma estrutura de interligação programável As diferentes arquitecturas dos diferentes fabricantes variam na estrutura de cada bloco PLD, nos blocos de interface com os pinos de entrada/saída e na estrutura de interligação Dispositivos Lógicos Programáveis 53
58 61 CPLD Comerciais Há vários fabricantes de CPLD, em particular a Altera, a Atmel e a Xilin Nesta secção, vamos descrever brevemente a estrutura de uma família de CPLD do fabricante Xilin designada XC Família Xilin XC9500 A família XC9500 da Xilin designa um conjunto de dispositivos CPLD com uma arquitectura similar, mas com um número distinto de pinos e de PLD internas (a Xilin usa a designação blocos funcionais, FB - Functional Block, em vez de PLD) A estrutura interna típica de um CPLD contém um número variável de blocos funcionais e de blocos de interligados entre si através de uma matriz de interligações (ver figura 39) FB 1 18 macrocélulas FB 2 18 macrocélulas /GTS /GS /GCK 2/4 1 3 Bloco de FB 3 18 macrocélulas FB n-1 18 macrocélulas Matriz de Interligação FB 4 18 macrocélulas FB n 18 macrocélulas Bloco de Figura 39 Arquitectura da família XC9500 O número de blocos funcionais (FB) e de macrocélulas (MC) por bloco funcional depende do elemento da família (ver tabela 6) CPLD XC9536 XC9572 XC95108 XC95144 XC95216 XC95288 FB/MC 2/36 4/72 6/108 8/144 12/216 16/288 Tabela 6 Número de blocos funcionais/macrocélulas da família XC9500 O número de pinos também varia dentro de cada elemento da família Um bloco funcional tem uma matriz programável com 90 termos de produto, o que dá cinco termos de produto por célula (ver figura 40) Dispositivos Lógicos Programáveis 54
59 5 Alocador de 11 termos de produto Macrocélula SM OUT PTOE SM 36 Matriz programável com 90 termos de produto 5 Alocador de 11 termos de produto 5 Alocador de 11 termos de produto Macrocélula Macrocélula SM OUT PTOE SM OUT PTOE Figura 40 Estrutura do bloco funcional da família XC9500 Para aumentar o número de termos de produto por função lógica, eiste um bloco designado alocador de termos de produto que permite a utilização de termos de produto não usados por células vizinhas pertencentes ao mesmo bloco funcional A macrocélula é formada por lógica de programação, pelo termo de soma e por um flip-flop (ver figura 41) Set global M U X 1 0 M U X S S D/T M U X SM clk global M U X CL reset global M U X OUT PTOE Figura 41 Estrutura da macrocélula da família XC9500 A estrutura da macrocélula é bastante semelhante à de uma PAL, como seria de esperar Os sinais de entradas da macrocélula à entrada dos multipleers provêm dos cinco termos de produto associados à macrocélula A porta O também recebe os sinais provenientes dos cinco termos de produto mais um termo de soma que recebe os sinais dos termos de produto vizinhos A porta XO é usada para inverter a polarização do sinal de saída O flip-flop pode ser programado como tipo D ou tipo T A entrada de Dispositivos Lógicos Programáveis 55
60 relógio pode vir directamente de um dos três pinos de entrada de relógio (G) ou de um termo de produto O flip-flop inclui ainda sinais assíncronos de reset e set que podem vir directamente do pino de entrada (GS) ou de um termo de produto O multipleer de saída configura a célula como combinatória ou sequencial A macrocélula gera sinais para a matriz de interligação (SM) e para o bloco de Este último consiste num sinal de dados (OUT) e num sinal de controlo de um buffer threestate localizado no bloco de (PTOE) O bloco de é formado por um buffer three-state que pode ser controlado pelo sinal de uma macrocélula (PTOE), por um dos sinais globais de controlo provenientes directamente dos pinos (GTS) ou pode ser fio ao nível lógico 0 ou 1 (ver figura 42) Vcc SM Pull-up OUT 0 PTOE GTS 1 M U X Controlo Slew -rate Ground programável Figura 42 Estrutura do bloco de da família XC9500 O bloco de inclui ainda um conjunto de controlos analógicos: controlo do slewrate dos sinais, controlo de uma resistência de pull-up e controlo de um sinal de ground, para ligar um pino a ground Dispositivos Lógicos Programáveis 56
61 7 Dispositivo FPGA Uma das características dos dispositivos lógicos FPGA (Field Programmable Gate Array) que os diferencia dos CPLD é que, em vez de implementarem funções lógicas combinatórias com interligação de portas lógicas, utilizam tabelas de look-up Uma tabela de look-up não é mais do que a implementação de uma tabela de verdade com os valores lógicos de saída para todas as combinações de entrada Uma tabela de look-up pode ser interpretada como uma pequena OM A maioria das tabelas de look-up usadas em FPGA têm quatro entradas para implementação de funções com um máimo de quatro variáveis Este método de implementação de funções lógicas permite realizar um dispositivo programável com grande densidade lógica A FPGA é formada por um grande número de blocos lógicos programáveis (CLB Configurable Logic Block) distribuídos pelo integrado no meio de uma matriz de interligações que estabelecem ligações entre blocos lógicos e entre um bloco lógico e um de Os blocos de estão colocados em torno do integrado (ver figura 43) SM SM SM SM SM CLB CLB CLB CLB SM SM SM SM SM CLB CLB CLB CLB SM SM SM SM SM CLB CLB CLB CLB SM SM SM SM SM CLB CLB CLB CLB SM SM SM SM SM CLB Bloco Lógico Configurável SM Matriz de ligação configurável Figura 43 Arquitectura genérica de uma FPGA Os CLB encontram-se dispostos ao longo do integrado numa estrutura regular No cruzamento das ligações horizontais e das verticais, eiste um módulo configurável designado matriz de ligação (SM) em que se programam as inteligações Dispositivos Lógicos Programáveis 57
62 O número de CLB, de SM e de blocos de, bem como a estrutura interna de cada um destes blocos, varia com o fabricante e depende da família e do tipo de FPGA Em algumas FPGA, podem eistir ainda blocos pré-integrados, como blocos de memória distribuída (BAM Block AM), multiplicadores, blocos dedicados de processamento de sinal e até mesmo processadores 71 FPGA Comerciais Há vários fabricantes de FPGA, destacando-se a Altera e a Xilin ualquer um destes fabricantes já possui FPGA com capacidades de integração que podem ir até cerca de 10 milhões de portas equivalentes, incluindo blocos integrados dedicados Nesta secção, vamos descrever brevemente a estrutura da FPGA XC2S15 pertencente à família de FPGA do fabricante Xilin designada Spartan TM -II Para informação mais detalhada, deve consultar o documento respectivo da Xilin [9] 711 Família Xilin Spartan-II A família Spartan-II da Xilin designa um conjunto de dispositivos FPGA com uma capacidade de integração entre e portas lógicas (de 96 a 1176 CLB e entre 4 a 12 blocos BAM, cada um com capacidade para armazenar 4Kbits) a muito baio custo A XC2S15 é a Spartan-II mais pequena com 8 12 CLB, 86 pinos de disponíveis para o utilizador e quatro blocos de AM de 4Kbits (ver figura 44) Figura 44 Arquitectura da FPGA XC2S15 (imagem retirada de [8]) Dispositivos Lógicos Programáveis 58
63 Na figura é possível ver a distribuição de CLB, de blocos de e de BAM Eistem ainda quatro módulos DLL (Delay-Locked Loop) para distribuição do sinal de relógio com compensação de atraso Todos estes elementos estão interligados por uma rede de ligações configuráveis A Xilin, bem como os fabricantes de FPGA mais importantes, usa a tecnologia SAM para armazenar os bits de programação Após aplicação da alimentação ao dispositivo, a informação de configuração da lógica e das interligações da FPGA é carregada em SAM A FPGA permanece com uma determinada configuração até que seja reprogramada ou desligada Com este método de programação não eiste um limite do número de reconfigurações do dispositivo Os bits de configuração controlam transístores de passagem, para configuração das interligações, multipleers de controlo, para controlo do caminhos de dados do bloco lógico configurável (CLB) e a implementação das tabelas de look-up Os CLB das FPGA da Xilin estão divididos em blocos idênticos designados slices Na XC2S15 eistem dois slices por CLB (ver figura 45) G4 G3 G2 G1 F5 LUT Lógica Controlo (eg, ) SD S CE CL Y S BY F4 F3 F2 F1 LUT Lógica Controlo (eg, ) S D S CE CL X CE Figura 45 Estrutura do CLB da FPGA XC2S15 Por combinação de LUT e da lógica de controlo é possível implementar funções de cinco ou de seis entradas Dispositivos Lógicos Programáveis 59
64 Os geradores de função são implementados com LUT de quatro entradas Adicionalmente, a LUT pode ser usada como uma AM síncrona de 16 1 bit Por combinação das duas LUT, é possível implementar AM síncrona de 16 2 bits, 32 1 bit ou AM síncrona de porto duplo com 16 1 bit Com a LUT também é possível implementar directamente um registo de deslocamento de 16 bits Os flip-flops podem ser configurados como sendo sensíveis ao flanco ou como latches sensíveis ao nível Os sinais de reset e de set podem ser configurados como síncronos ou assíncronos A lógica de controlo também possui lógica de geração de sinais de transporte (carry) para implementação de módulos aritméticos Um bloco de está ligado a um pino que pode ser usado como entrada, saída ou bidireccional (ver figura 46) T SD S M U X TCE S CE CL Controlo Slew -rate S D S M U X Polaridade programável OCE CE CL I I S S D Atraso programável ICE CE CL Figura 46 Estrutura do bloco de da FPGA XC2S15 O bloco inclui três registos que podem ser configurados como flip-flops tipo D sensíveis ao flanco ou latches sensíveis ao nível com sinais independentes de inibição de relógio (CE) e com sinais comuns de set e reset (este sinal pode ser configurado como set ou reset e como síncrono ou assíncrono) A entrada de sinal é feita através de um buffer e entra directamente na lógica ou através de um flip-flop O bloco de atraso programável é usado para eliminar o tempo Dispositivos Lógicos Programáveis 60
65 de hold entre PAD A saída de sinal é feita através de um buffer three-state O sinal de dados e o de controlo do three-state podem ir directamente para o buffer ou através de um flip-flop O buffer three-state também inclui um bloco de controlo do slew-rate do sinal de saída O último elemento configurável da FPGA é a matriz de interligações As ligações entre CLB e IO utilizam canais horizontais e verticais espalhados entre os CLB Algumas das linhas são longas, percorrem toda a matriz, outras são curtas e apenas percorrem um único CLB As linhas curtas são configuradas usando o módulo SM que é formado por uma matriz de transístores programáveis através do controlo da tensão da suas portas (ver figura 47) Figura 47 Estrutura simplificada do bloco SM da FPGA XC2S15 Cada intersecção é formada por seis transístores uando se pretende fechar uma ligação, é guardado o valor lógico 1 na SAM no bit correspondente à programação da porta do transístor de ligação Para deiar o transístor em aberto, é armazenado o valor lógico 0 Com esta configuração, tem-se várias ligações possíveis (ver figura 48) Dispositivos Lógicos Programáveis 61
66 Figura 48 Eemplo de ligação do bloco SM da FPGA XC2S15 A ligação inferior esquerda estabelece uma ligação comum entre as linhas horizontal e vertical O cruzamento seguinte não estabelece qualquer ligação Depois, temos duas ligações independentes e, finalmente, na intersecção superior temos apenas uma ligação Adicionalmente, eistem outras linhas especiais para ligação de sinais de relógio e buffers three-state para acesso às linhas longas, que não serão abordadas neste documento Para mais informação deve consultar [9] 8 Bibliografia [1] M Morris Mano and Charles M Kime, Logic and Computer Design Fundamentals, 2 nd Edition, Prentice Hall, 2001 [2] David J Comer, Digital Logic an State Machine Design, 3 rd Edition, Oford University Press, 1995 [3] John F Wakerly, Digital Design: Principles and Practice, 3 rd Edition, Prentice Hall, 2002 [4] William Kleitz, Digital and Microprocessor Fundamentals: Theory and Applications, 4 th Edition, Prentice Hall, 2003 [5] Herbert Taub and Donald Schilling, Digital Integrated Electronics, McGraw-Hill, 1977 [6] Engineering Staff, High-speed Comple Programmable Logic Device: ATF750C, ATF750CL, Atmel, 2006 [7] Engineering Staff, Erasable Programmable Logic Device: Using the ATV750 and ATV750B, Atmel, Application Note, 1999 [8] Engineering Staff, PALCE22V10 Family, AMD, 1996 [9] Engineering Staff, Spartan-II 25V FPGA Family: Introduction and Ordering Information, Xilin, 2004 Dispositivos Lógicos Programáveis 62
Sistemas Digitais. Módulo 15 Prof. Celso PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS
1 PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS Os projetos com circuitos digitais mais complexos podem se tornar inviáveis devido a vários problemas, tais como: - Elevado número de C.I. (circuitos integrados)
Microelectrónica (ME)
Microelectrónica (ME) LEEC (opção) Lic. Lic. Engª. AeroEspacial (Aviónica) Tipos de projecto de CIs Marcelino Santos ([email protected]) 2004/05 Tipos de projecto de CIs ASIC - Application Specific
Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)
Memórias O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Essas informações são guardadas eletricamente em células individuais. Chamamos cada elemento
Dispositivos Lógicos Programáveis
Dispositivos Lógicos Programáveis Circuitos Lógicos DCC-IM/UFRJ Prof. 2009 1 Família de Sistemas Digitais 2 Comparação: Velocidade e Consumo VLSI Personalizado ASIC Célula-Padrão ASIC Estruturado CPLD
Sistemas Digitais Contadores. João Paulo Carvalho
Sistemas Digitais Contadores João Paulo Carvalho Contadores Assíncronos Um contador binário de 3 bits é um circuito que evolui controladamente ao longo da seguinte sequência (de contagem): Sequência de
Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP 13083-860, Campinas, SP, Brasil. [email protected].
Circuitos Lógicos Profa. Grace S. Deaecto Faculdade de Engenharia Mecânica / UNICAMP 13083-860, Campinas, SP, Brasil. [email protected] Segundo Semestre de 2013 Profa. Grace S. Deaecto ES572 DMC / FEM
Os dispositivos lógicos programáveis (PLD Programmable Logic Device) são circuitos integrados programáveis pelo usuário, que
Dispositivos Lógicos Programáveis (PLD) Os dispositivos lógicos programáveis (PLD Programmable Logic Device) são circuitos integrados programáveis pelo usuário, que possui um grande número de portas lógicas
ARQUITETURA DE COMPUTADORES
1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula
Controlo de iluminação local multifuncional
Controlo de iluminação local multifuncional I Controlo de iluminação local multifuncional A nível mundial, sensivelmente 20 % do consumo total de energia diz respeito à iluminação. Dependendo do tipo de
FEDERAÇÃO PORTUGUESA DE TIRO
Circular n.º 023/2014 Portal F.P.T. - Inscrições Exmo. Sr. Presidente, No seguimento da Circular Nº 021/2014 Inscrições em Provas F.P.T. e depois de disponibilizarmos a possibilidade de testar/treinar
Escola Superior de Tecnologia de Setúbal. Modelação e Identificação de Sistemas. Controlo. Ângelo Carmo - 1579 Luis Santos - 2717
Escola Superior de Tecnologia de Setúbal Curso de Licenciatura em Engenharia de Automação, Controlo e Instrumentação Modelação e Identificação de Sistemas Controlo Sistema de Transporte e Compactação de
Arquitetura de processadores: RISC e CISC
Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo
Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto
Circuitos de Memória: Tipos e Funcionamento Fabrício Noveletto Memória de semicondutores São dispositivos capazes de armazenar informações digitais. A menor unidade de informação que pode ser armazenada
Organização. Trabalho realizado por: André Palma nº 31093. Daniel Jesus nº 28571. Fábio Bota nº 25874. Stephane Fernandes nº 28591
Organização Trabalho realizado por: André Palma nº 31093 Daniel Jesus nº 28571 Fábio Bota nº 25874 Stephane Fernandes nº 28591 Índice Introdução...3 Conceitos.6 Princípios de uma organização. 7 Posição
Abordagem simples aos modos de falha com recurso a um software de organização e gestão da manutenção
Abordagem simples aos modos de falha com recurso a um software de organização e gestão da manutenção Marcelo Batista (1), José Fernandes (1) e Alexandre Veríssimo (1) [email protected]; [email protected];
ENERGIA DO HIDROGÊNIO - Célula de Combustível Alcalina
Universidade Federal do Pará Instituto de Tecnologia Programa de Pós Graduação em Engenharia Elétrica PPGEE0030 - INTRODUÇÃO ÀS ENERGIAS RENOVÁVEIS Docente: Professor Doutor João Tavares Pinho Discente:
Memórias. Considerações iniciais Tipos de memórias RAMs Estrutura das RAMs Expansão das RAMs 12/3/10. Mário Serafim Nunes Guilherme Silva Arroz
Memórias - Taguspark Considerações iniciais Tipos de memórias RAMs Estrutura das RAMs Expansão das RAMs 2 1 - Taguspark Em muitas situações, é necessário armazenar um conjunto muito grande de palavras
MEMÓRIAS. Sistemas Digitais II Prof. Marcelo Wendling Set/10
MEMÓRIAS Sistemas Digitais II Prof. Marcelo Wendling Set/10 1 Definição São blocos que armazenam informações codificadas digitalmente números, letras, caracteres quaisquer, comandos de operações, endereços
Resposta da Sonaecom Serviços de Comunicações, SA (Sonaecom) à consulta pública sobre o Quadro Nacional de Atribuição de Frequências 2010 (QNAF 2010)
Resposta da Sonaecom Serviços de Comunicações, SA (Sonaecom) à consulta pública sobre o Quadro Nacional de Atribuição de Frequências 2010 (QNAF 2010) I. Introdução O espectro radioeléctrico é um recurso
Fontes de Alimentação
Fontes de Alimentação As fontes de alimentação servem para fornecer energia eléctrica, transformando a corrente alternada da rede pública em corrente contínua. Estabilizam a tensão, ou seja, mesmo que
Marketing e Publicidade 2ºANO 1º SEMESTRE
INSTITUTO POLITÉCNICO DE SANTARÉM ESCOLA SUPERIOR DE GESTÃO E TECNOLOGIA DE SANTARÉM Marketing e Publicidade 2ºANO 1º SEMESTRE FINANÇAS Docente: Professor Coordenador - António Mourão Lourenço Discentes:
1 Introdução simulação numérica termoacumulação
22 1 Introdução Atualmente o custo da energia é um dos fatores mais importantes no projeto, administração e manutenção de sistemas energéticos. Sendo assim, a economia de energia está recebendo maior atenção
VALOR DOS DIREITOS DE PROPRIEDADE INTELECTUAL NO SECTOR CULTURAL E CRIATIVO
VALOR DOS DIREITOS DE PROPRIEDADE INTELECTUAL NO SECTOR CULTURAL E CRIATIVO A presente Nota Estatística visa apresentar informação relativa ao valor dos direitos de propriedade intelectual 1 no sector
Utilização do SOLVER do EXCEL
Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de
Circuitos Digitais 144L
Circuitos Digitais Notas de Aula - 02 INSTITUTO: CURSO: DISCIPLINA: Instituto de Ciências Exatas e Tecnologia Ciência da Computação e Sistemas de Informação Circuitos Digitais 144L 1.0 Circuitos Combinacionais.
Desenvolvimento Sustentável para controlo da população humana.
Desenvolvimento Sustentável para controlo da população humana. O aumento da população humana é frequentemente citado como a principal causa de problemas para o planeta. De facto a humanidade está a crescer
Visão Artificial Para a Indústria. Manual do Utilizador
Visão Artificial Para a Indústria Manual do Utilizador Luis Fonseca Carvalho de Matos ( [email protected] ) Julho de 2007 Índice de conteúdos 1. Apresentação......1 1.Conceito de Funcionamento......1 2.
0111100 + 0011111 1011011
ESOL SUPERIOR DE TENOLOGI E DE GESTÃO - INSTITUTO POLITÉNIO DE RGNÇ 200 07 4. a. gama de variação de um número em complemento para 2 é: -2 - n 2 -, em que é o número de bits do número representado. ssim
CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO
4 CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO CONCEITOS BÁSICOS MS-DOS MICROSOFT DISK OPERATION SYSTEM INSTALAÇÃO E CONFIGURAÇÃO DE UM SISTEMA OPERATIVO LIGAÇÕES À INTERNET O que é um sistema operativo?
Aula 19. Conversão AD e DA Técnicas
Aula 19 Conversão AD e DA Técnicas Introdução As características mais importantes dos conversores AD e DA são o tempo de conversão, a taxa de conversão, que indicam quantas vezes o sinal analógico ou digital
CAPÍTULO 1 REVISÃO DE LÓGICA COMBINACIONAL
1 CAPÍTULO 1 REVISÃO DE LÓGICA COMBINACIONAL Sumário 1.1. Sistemas de Numeração... 3 1.1.1. Conversão Decimal Binária... 3 1.1.2. Conversão Binária Decimal... 3 1.1.3. Conversão Binária Hexadecimal...
C5. Formação e evolução estelar
AST434: C5-1/68 AST434: Planetas e Estrelas C5. Formação e evolução estelar Mário João P. F. G. Monteiro Mestrado em Desenvolvimento Curricular pela Astronomia Mestrado em Física e Química em Contexto
Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.
Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos
Rotas da Leitura. Biblioteca Municipal de Beja. Cristina Taquelim. Introdução
Rotas da Leitura Biblioteca Municipal de Beja Cristina Taquelim Introdução A promoção da leitura nas bibliotecas portuguesas públicas sofreu nos últimos anos uma forte expansão e alberga hoje um conjunto
CAPÍTULO 2. Grafos e Redes
CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que
SISTEMAS DIGITAIS. Memórias. Prof. Guilherme Arroz Prof. Carlos Sêrro Alterado para lógica positiva por Guilherme Arroz.
SISTEMAS DIGITAIS Memórias Alterado para lógica positiva por Guilherme Arroz Sistemas Digitais 1 Tipos de memórias Existem vários tipos de memórias em sistemas digitais As memórias internas dos dispositivos,
Sistemas Operativos I
Arquitectura de um Computador Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sumário Arquitectura de um Computador Estrutura de I/O Estrutura de Armazenamento Hierarquia de Armazenamento Protecção
MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL
MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL Quando se caminha no sentido da memória secundária encontramos memórias com maior capacidade, maior tempo de acesso e mais baixo custo/bit. Fig
ELT601 Eletrônica Digital II
Graduação em Engenharia Eletrônica Universidade Federal de Itajubá IESTI Dispositivos Lógicos Programáveis (DLPs) Prof. Rodrigo de Paula Rodrigues DLP Conteto Grau de integração EIB - SSI EIM - MSI EIA
8. Perguntas e Respostas
Arquimedes Manual do Utilizador 185 8. Perguntas e Respostas 8.1. Aparência Para conservar a disposição na qual estão expostas as B.D. no ecrã e para que em posteriores sessões de trabalho tenham a mesma
Manual de Utilizador Plataforma de Estágios TIC. www.estagiostic.gov.pt
Manual de Utilizador Plataforma de Estágios TIC www.estagiostic.gov.pt 1 Índice 1 Introdução 3 1.1 Programa de Estágios TIC 3 1.2 Objectivo da plataforma 3 1.3 Perfis 4 1.3.1 Escola 4 1.3.2 Empresa 4 1.3.3
FEUP - 2010 RELATÓRIO DE CONTAS BALANÇO
relatório de contas 2 FEUP - 2010 RELATÓRIO DE CONTAS BALANÇO FEUP - 2010 RELATÓRIO DE CONTAS 3 4 FEUP - 2010 RELATÓRIO DE CONTAS DEMONSTRAÇÃO DOS RESULTADOS POR NATUREZAS DEMONSTRAÇÃO DOS FLUXOS DE CAIXA
A Importância do Desenho de Construção Mecânica e da Concepção e Fabrico Assistidos por Computador ao nível da Indústria Metalomecânica *
1 A Importância do Desenho de Construção Mecânica e da Concepção e Fabrico Assistidos por Computador ao nível da Indústria Metalomecânica * José António Almacinha ** 1 Visão geral do problema Antigamente,
OS 7 KPIs MAIS COMUNS PARA MONITORIZAÇÃO DA PRODUÇÃO
OS 7 KPIs MAIS COMUNS PARA MONITORIZAÇÃO DA PRODUÇÃO A GESTÃO VISUAL NA GESTÃO DA PRODUÇÃO WHITE PAPER ÍNDICE Introdução O que são KPIs indicadores chave de desempenho? O que é Gestão Visual? 7 KPIs comuns
Estes sensores são constituídos por um reservatório, onde num dos lados está localizada uma fonte de raios gama (emissor) e do lado oposto um
Existem vários instrumentos de medição de nível que se baseiam na tendência que um determinado material tem de reflectir ou absorver radiação. Para medições de nível contínuas, os tipos mais comuns de
Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase
Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia
EXERCÍCIO - ROMA : Modelar Capitel de uma Coluna Clássica
FACULDADE DE ARQUITECTURA UNIVERSIDADE TÉCNICA DE LISBOA SEMESTRE VIII ANO LECTIVO 2012/2013 MODELAÇÃO GEOMÉTRICA PROFESSOR LUÍS MATEUS RAFAELA MEZEIRO 20091261 MIARQ 4ºE EXERCÍCIO - ROMA : Modelar Capitel
Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII
A ocorrência tamanho ASCII codificação de Huffman é um A Codificação método de compactação de Huffman caracteres (American e a variável codificação dos usado símbolos Standard para por cada muitas no Code
Modelos, em escala reduzida, de pontes e barragens. Simuladores de voo (ou de condução), com os quais se treinam pilotos (ou condutores).
SIMULAÇÃO 1 Introdução Entende-se por simulação a imitação do funcionamento de um sistema real recorrendo a uma representação desse sistema. Com essa representação modelo, pretende-se realizar experimentações
Barómetro Regional da Qualidade Avaliação da Satisfação dos Utentes dos Serviços de Saúde
Avaliação da Satisfação dos Utentes dos Serviços de Saúde Entidade Promotora Concepção e Realização Enquadramento Avaliação da Satisfação dos Utentes dos Serviços de Saúde Índice RESUMO EXECUTIVO...
Aula 11. 1. Memória principal e 2. Memória de armazenagem em massa.
Aula 11 Memórias Semicondutoras Introdução Em termos gerais, a memória de um computador pode ser dividida em dois tipos: 1. Memória principal e 2. Memória de armazenagem em massa. A memória principal é
Como foi visto no tópico anterior, existem duas formas básicas para representar uma função lógica qualquer:
ELETRÔNI IGITl I FUNÇÕES LÓGIS Formas de representação de uma função lógica omo foi visto no tópico anterior, existem duas formas básicas para representar uma função lógica qualquer: Soma de Produtos Produtos
Trabalho sobre No-breaks
Trabalho sobre No-breaks Grupo: Leandro Porto Cristiano Porto Diego Martins Diogo Rubin Os nobreaks protegem os equipamentos contra quatro problemas principais causados pela variação da energia elétrica.
implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos, 2014 2015
Sistemas de ficheiros: implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Descrever algunsdetalhes daimplementação deumsistema de ficheiros Discutir algoritmos
ESTUDO STERN: Aspectos Económicos das Alterações Climáticas
Resumo das Conclusões Ainda vamos a tempo de evitar os piores impactos das alterações climáticas, se tomarmos desde já medidas rigorosas. As provas científicas são presentemente esmagadoras: as alterações
1. Criar uma nova apresentação
MANUAL DO Baixa da Banheira, 2006 1. Criar uma nova apresentação Para iniciar uma sessão de trabalho no PowerPoint é necessário criar uma nova apresentação para depois trabalhar a mesma. Ao iniciar uma
Aspectos Sócio-Profissionais da Informática
ESCOLA SUPERIOR DE TECNOLOGIA I N S T I T U T O P O L I T É C N I C O D E C A S T E L O B R A N C O ENGENHARIA INFORMÁTICA Aspectos Sócio-Profissionais da Informática Jovens Empresários de Sucesso e Tendências
Alguma das vantagens e desvantagens dos computadores ópticos é apresenta a seguir.
Computação Óptica Introdução Um dos grandes obstáculos para aprimorar o desempenho dos computadores modernos está relacionado com a tecnologia convencional dos semicondutores, que está alcançando o seu
Especificação Operacional.
Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite
BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
MOSFET. Fábio Makihara 710921. Gustavo de Carvalho Bertoli 610992. Luís Gustavo Fazzio Barbin 712418. Luiza Pio Costa da Silva 712001
MOSFET MOSFET tipo depleção (MOSFET-D) Curvas do MOSFET-D Amplificadores com MOSFET-D MOSFET tipo intensificação (MOSFET-E) Curvas de Dreno Tensão Porta-Fonte máxima Fábio Makihara 710921 Gustavo de Carvalho
Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.
3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos
SISTEMA DE CLIMATIZAÇÃO
AUTOMAÇÃO SEGURANÇA SOM SISTEMA DE CLIMATIZAÇÃO MANUAL DO UTILIZADOR www.only-pt.pt INTRODUÇÃO... 4 EQUIPAMENTOS... 4 CONTROLOS E INDICAÇÕES... 5 CONFIGURAÇÃO ATRAVÉS DO OTC-CLIMA... 6 1. Ajuste de data
Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit
Manual de Instalação da Plataforma Scorpion 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit Para começar a ler este manual, é bom que você conheça os componentes desta conexão. Plataforma
PAINEL DE ADMINISTRADOR
PAINEL DE ADMINISTRADOR IMPORTANTE: O Painel de administrador APENAS deverá ser utilizado pelo responsável do sistema. são: Nesta aplicação, poderá configurar todo o sistema de facturação. As opções do
Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger
Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.
Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade
Base de dados I O que é? Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade Para que serve? Serve para gerir vastos conjuntos de informação de
Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores. Projecto de. Arquitectura de Computadores.
Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores Projecto de Arquitectura de Computadores Jogo dos Blocos (variante do Arkanoid) (Versão 1.0) 2008/2009 Índice 1 Objectivo...
Introdução à estrutura e funcionamento de um Sistema Informático
Introdução à estrutura e funcionamento de um Sistema Informático Elementos que constituem o Computador O funcionamento do computador é possível devido aos vários elementos interligados que o constituem:
Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)
Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) http://curriculum.degois.pt Março de 2012 Versão 1.5 1 Introdução O objectivo deste guia é auxiliar o utilizador
Exemplos de Exercícios da Cadeira Gestão de Projectos. Qualidade e Manutenção. Ano Lectivo 2006/2007
Exemplos de Exercícios da Cadeira Qualidade e Manutenção Ano Lectivo 2006/2007 1. Gestão da Qualidade 1.1 28 de Junho de 2000 (6 valores) Um fabricante de placas gráficas de computadores especificou que
TÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Introdução ao Controlo Numérico Computorizado I Conceitos Gerais
Introdução ao Controlo Numérico Computorizado I Conceitos Gerais João Manuel R. S. Tavares Joaquim Oliveira Fonseca Bibliografia Controlo Numérico Computorizado, Conceitos Fundamentais Carlos Relvas Publindústria,
L 129/52 Jornal Oficial da União Europeia 28.5.2010
L 129/52 Jornal Oficial da União Europeia 28.5.2010 REGULAMENTO (UE) N. o 461/2010 DA COMISSÃO de 27 de Maio de 2010 relativo à aplicação do artigo 101. o, n. o 3, do Tratado sobre o Funcionamento da União
FERRAMENTAS DA QUALIDADE
FERRAMENTAS DA QUALIDADE Docente: Dr. José Carlos Marques Discentes: Estêvão Andrade N.º 2089206 Maria da Luz Abreu N.º 2405797 Teodoto Silva N.º 2094306 Vitalina Cunha N.º 2010607 FERRAMENTAS DA QUALIDADE
3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
4.1. UML Diagramas de casos de uso
Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca [email protected] Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema
Modelagem Matemática Aplicada ao Ensino de Cálculo 1
Modelagem Matemática Aplicada ao Ensino de Cálculo 1 Milton Kist 2, Ireno Antonio Berticelli 3 RESUMO: O presente trabalho visa contribuir para a melhoria do processo de ensino e aprendizagem de Matemática.
NCE/12/00971 Relatório final da CAE - Novo ciclo de estudos
NCE/12/00971 Relatório final da CAE - Novo ciclo de estudos Caracterização do pedido Perguntas A.1 a A.10 A.1. Instituição de Ensino Superior / Entidade Instituidora: Universidade Do Minho A.1.a. Outra(s)
Medição tridimensional
A U A UL LA Medição tridimensional Um problema O controle de qualidade dimensional é tão antigo quanto a própria indústria, mas somente nas últimas décadas vem ocupando a importante posição que lhe cabe.
Automatismos Industriais
Automatismos Industriais Introdução à Pneumática Nos actuais sistemas de automação a pneumática é um elemento muito importante pois está presente num vasto numero de aplicações, seja como sistema totalmente
Análise de Regressão Linear Simples e Múltipla
Análise de Regressão Linear Simples e Múltipla Carla Henriques Departamento de Matemática Escola Superior de Tecnologia de Viseu Carla Henriques (DepMAT ESTV) Análise de Regres. Linear Simples e Múltipla
BREVE INTRODUÇÃO AO SISTEMA DA GESTÃO DE DOCUMENTOS DA CÂMARA MUNICIPAL DE MACAU PROVISÓRIA
Administração n.º 47, vol. X III, 2000-1.º, 263-271 BREVE INTRODUÇÃO AO SISTEMA DA GESTÃO DE DOCUMENTOS DA CÂMARA MUNICIPAL DE MACAU PROVISÓRIA Iong Chi Seng, Lao Chon Pio e Lao Sok Chi* A Câmara Municipal
Controle II. Estudo e sintonia de controladores industriais
Controle II Estudo e sintonia de controladores industriais Introdução A introdução de controladores visa modificar o comportamento de um dado sistema, o objetivo é, normalmente, fazer com que a resposta
PARLAMENTO EUROPEU. Comissão do Meio Ambiente, da Saúde Pública e da Política do Consumidor
PARLAMENTO EUROPEU 1999 2004 Comissão do Meio Ambiente, da Saúde Pública e da Política do Consumidor 31 de Março de 2004 PE 340.787/1-10 ALTERAÇÕES 1-10 Projecto de relatório (PE 340.787) Hans Blokland
UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica
UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica Apostila de Automação Industrial Elaborada pelo Professor M.Eng. Rodrigo Cardozo Fuentes Prof. Rodrigo
NCRF 19 Contratos de construção
NCRF 19 Contratos de construção Esta Norma Contabilística e de Relato Financeiro tem por base a Norma Internacional de Contabilidade IAS 11 - Contratos de Construção, adoptada pelo texto original do Regulamento
Manual do Gestor da Informação do Sistema
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga
7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.
CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.
JURINFOR JURIGEST Facturação e Mapas
JURINFOR JURIGEST Facturação e Mapas Índice Índice 1. Facturação...1 1.1. Gestão de Notas de Honorários...2 1.1.1. Emitir uma Nota de Honorários...3 1.1.2. Consultar Notas de Honorários Emitidas... 18
Auxílio estatal n SA.32012 (2010/N) Portugal Alteração do regime de auxílios para a modernização empresarial (SIRME)
COMISSÃO EUROPEIA Bruselas, 16.11.2011 C(2011)8317 final Assunto: Auxílio estatal n SA.32012 (2010/N) Portugal Alteração do regime de auxílios para a modernização empresarial (SIRME) Excelência, Procedimento
Documento SGS. PLANO DE TRANSIÇÃO da SGS ICS ISO 9001:2008. PTD3065 - v010-2008-11 Pág 1 de 6
PLANO DE TRANSIÇÃO da SGS ICS ISO 9001:2008 PTD3065 - v010-2008-11 Pág 1 de 6 1 Introdução A ISO 9001:2008 e o Processo de Transição da SGS ICS A International Organization for Standardization (ISO) publicou,
