Eletrônica Digital II ELT013 Engenharia de Computação Aula 2 ARQUITETURA DE DISPOSITIVOS LÓGICOS PROGRAMÁVEIS ELT013 - Eletrônica Digital II 2 O que são dispositivos lógicos programáveis? (1) Dispositivos Lógicos Programáveis, ou PLDs, são dispositivos configuráveis a fim de implementar um grande número de funções lógicas Configuráveis pelo usuário Funções combinacionais e/ou sequenciais. PLD é um chip que contém um grande número de portas lógicas, flip-flops e registradores, que estão interconectados, uns com os outros, por meio de fusíveis (ou chaves) especiais que podem ser programados e com isso, implementar uma função lógica. ELT013 - Eletrônica Digital II 3 O que são dispositivos lógicos programáveis? (1) PLD é um chip que contém um grande número de componentes lógicos Portas lógicas, flip-flops e registradores interconectados A conexão é feita por meio de fusíveis (ou chaves) especiais para esta função A conexão podem ser programadas e com isso implementar uma função lógica. ELT013 - Eletrônica Digital II 4 Qual a diferença entre um microprocessador/controlador/DSPs e os outros sistemas digitais? MICROPROSSADORES/MICROCONTROLA DORES/DSPs Seguem instruções especificadas pelo projetista Organização interna complexa “Lentos” Inflexível Desenvolvimento do hardware é caro (CI MSI) e demorado ELT013 - Eletrônica Digital II OUTROS SISTEMAS DIGITAIS Não são limitados por funções especificadas Fornece respostas mais “rápidas” Flexível Possibilita a prototipagem “Desenvolvimento” do hardware é mais barato e rápido 5 Árvores da Famílias de Sistemas Digitais A decisão de projeto sobre qual família utilizar depende de muitos fatores Velocidade de operação, custo, consumo de energia, potência, tamanho, tempo disponível para projeto, etc. ELT013 - Eletrônica Digital II 6 http://algol.dcc.ufla.br/~lacerda/projetos/index.html ELT013 - Eletrônica Digital II 7 http://algol.dcc.ufla.br/~lacerda/projetos/index.html ELT013 - Eletrônica Digital II 8 Lógica padrão (1) Refere-se a componentes digitais funcionais básicos Portas lógicas, flip-flops, decodificadores, multiplexadores, registradores, contadores etc.), disponíveis como CIs SSI e MSI. Projetos de complexidade média utilizariam centenas de componentes ELT013 - Eletrônica Digital II 9 Lógica padrão (2) TTL Tecnologia madura, não usada em novos projetos mas muito presente em sistemas digitais ainda utilizados CMOS Mais popular nos dias de hoje pois tem baixo consumo de energia ECL Projetos de alta velocidade ELT013 - Eletrônica Digital II 10 Sistemas Microprocessados e Processamento Digital de Sinais (DSP) Dispositivos que podem ser controlados eletronicamente e os dados manipulados pela execução de um programa de instruções. Flexíveis porém com baixa velocidade Hardware é sempre mais rápido do que software ELT013 - Eletrônica Digital II 11 ASICs Application Specific Integrated Circuit Circuitos integrados de aplicação específica Solução moderna de projetos de hardware para sistemas digitais ELT013 - Eletrônica Digital II 12 Dispositivos lógicos programáveis (PLDs) Ou dispositivos de campo de lógicas programáveis (FPLDs) Podem ser configurados para criar qualquer circuito digital desejado para sistemas simples ou complexos. Componentes e software de desenvolvimento são de baixo custo se comparados com matrizes de portas, célula padrão e full custom ELT013 - Eletrônica Digital II 13 Dispositivos lógicos programáveis (PLDs) A arquitetura de PLD selecionada depende de sua aplicação, pois são muito diversificadas e dinâmicas: SPLD - dispositivos lógicos programáveis simples (600 portas). CPLD - dispositivos lógicos programáveis complexos. FPGA - matrizes de portas programáveis em campo. CPLDs e FPGAs , também são chamadas dispositivos lógicos programáveis de alta capacidade (HCPLDs). ELT013 - Eletrônica Digital II 14 Matrizes de portas (MPGAs) As funções lógicas são criadas por interconexões de centenas de milhares de portas pré-fabricadas (circuitos ULSI). Uma máscara de design customizada é usada, muito parecida com os dados armazenados em uma ROM programada por máscara. Individualmente são menos caras do que PLDs com mesmo número de portas. Processos de programação customizada são muito caros e requerem um longo período de espera. ELT013 - Eletrônica Digital II 15 Célula Padrão Usam blocos de construção da função de lógica predefinidos para criar o sistema digital desejado Os custos do projeto para as células padrão ASICs são superiores aos MPGAs, com maior tempo de espera. Funções baseadas em células são projetadas para serem muito menores que as funções equivalentes em matrizes portas: Permitem a operação, geralmente com maior velocidade e custos de fabricação mais baixos. ELT013 - Eletrônica Digital II 16 Totalmente Personalizados (full-custom) São a melhor escolha ASIC Todos os componentes e interconexões são personalizadas pelo projetista do CI. Requerem uma quantidade significativa de tempo e dinheiro Resultar em CIs que podem operar na maior velocidade possível e exigem a menor área de chip, o que reduz significativamente o custo de produção. ELT013 - Eletrônica Digital II 17 Arquitetura de um FPGA Blocos podem sem programados como sendo: Entrada ou saída; ou Bidirecionais (I/O) Programados por codificação do projetista; ou Blocos pré-definidos (IPs) ELT013 - Eletrônica Digital II 18 IPs Intelectual Property Projetos de blocos digitais complexos pré-definidos Disponibilizados pelos fabricantes do FPGA ou terceiros Avaliação é grátis Uso comercial necessita de licenciamento Incluem processadores embutidos, blocos de construção DSP e circuitos de núcleo padrão para funções periféricas e de interface Encurta o tempo de projeto ELT013 - Eletrônica Digital II 19 FUNDAMENTOS DOS CIRCUITOS DE PLDS ELT013 - Eletrônica Digital II 20 Estrutura Básica ELT013 - Eletrônica Digital II 21 Fundamentos dos circuitos de PLDs (1) Cada função de saída é programada com os fusíveis posicionados entre as portas AND e cada uma das portas OR. Linhas de entrada: cada entrada A e B está conectada a um buffer inversor e outro não-inversor que são ligados a uma matriz de portas AND Linhas produto: saídas das portas AND ELT013 - Eletrônica Digital II 22 Fundamentos dos circuitos de PLDs (2) Cada linha produto está ligada a uma das quatro entradas de cada porta OR por fusíveis Com todos os fusíveis intactos, casa saída de porta OR apresenta um nível constante 1. O1 AB AB AB AB O1 A( B B) A( B B) O1 A A 1 ELT013 - Eletrônica Digital II 23 Fundamentos dos circuitos de PLDs (3) Cada uma das saídas O1, O2, O3 e O4 pode ser programada para ser função de A e B queimando seletivamente os fusíveis apropriadas Cada entrada aberta atua como um nível lógico 0 Pode-se programar cada saída OR para executar qualquer função desejada Depois de programado o dispositivo realiza a lógica desejada. Exemplo: queimando os fusíveis 1 e 4 da por OR número 1, a saída O1 se torna: O1 AB AB AB AB 0 AB AB 0 AB AB ELT013 - Eletrônica Digital II 24 Simbologia Simplificada Diminuir a complexidade do diagrama do circuito Neste arranjo, as saídas estão programadas como: O1 AB AB O2 AB O3 0 O4 1 ELT013 - Eletrônica Digital II 25 ARQUITETURA DE PLDS ELT013 - Eletrônica Digital II 26 PROMs ELT013 - Eletrônica Digital II 27 PROMs (1) PROMs têm como objetivo a implementação de uma expressão lógica de soma-de-produtos em vez de armazenamento de dados em posições de memória. ELT013 - Eletrônica Digital II 28 PROMs ELT013 - Eletrônica Digital II 29 Procedimento de Análise 1º Passo: Tabela verdade para todas as combinações de valores das variáveis de entrada ELT013 - Eletrônica Digital II 30 Procedimento de Análise 2º Passo: Selecionar as saídas de interesse (fusíveis intactos) ELT013 - Eletrônica Digital II 31 Procedimento de Análise 3º Passo: Realizar um OR das saídas da matriz AND intactas para encontrar o valor da saída O ELT013 - Eletrônica Digital II 32 Lógica de Arranjo Programável (PAL) ELT013 - Eletrônica Digital II 33 Lógica de Arranjo Programável (PAL) Cada porta AND pode ser programada para gerar qualquer produto desejado de quatro variáveis de entrada. A família PAL também contém dispositivos com variações do circuito soma-de-produtos básico Conectam o circuito lógico de soma-deprodutos às entradas de FFs D e usam um dos pinos como entrada de clock para disparar os flip-flops de saída sincronamente. ELT013 - Eletrônica Digital II 34 ELT013 - Eletrônica Digital II 35 Arranjos de lógica genérico (GAL) Usam uma matriz EEPROM na matriz programável que determina as conexões para as portas AND. Os interruptores EEPROM podem ser apagados e reprogramados pelo menos 100 vezes. Podem ser usado como um genérico, com substituição de pinos compatível para a maioria dos dispositivos PAL. ELT013 - Eletrônica Digital II 36 FAMÍLIA MAX7000S DA ALTERA ELT013 - Eletrônica Digital II 37 Diagrama em bloco da família MAX7000S ELT013 - Eletrônica Digital II 38 Recursos dos dispositivos da Família MAX7000S As principais estruturas da MAX7000S são os blocos de matrizes lógicas (LABs) e o arranjo de interconexão programável (PIA). Um LAB contém um conjunto de 16 macrocélulas e se assemelha muito a um dispositivo SPLD único. Cada macrocélula consiste de um circuito programável AND/OR e um registro programável (flip-flop). ELT013 - Eletrônica Digital II 39 Diagrama em bloco da família MAX7000S ELT013 - Eletrônica Digital II 40 Estruturas principais dos dispositivos da Família MAX7000S (1) Blocos de Matriz Lógica (LABs) com 16 macrocélulas, número determinado a partir do nº de peças (EPM7128S têm 128, em oito LABs). Sinais lógicos roteados entre LABs pelo PIA. PIA é um barramento global que conecta qualquer fonte de sinal a qualquer destino dentro do dispositivo. Pinos I/O são conectados a macrocélulas específicas (o número de pinos I/O disponíveis depende do pacote). ELT013 - Eletrônica Digital II 41 Diagrama em bloco da família MAX7000S ELT013 - Eletrônica Digital II 42 Estruturas principais dos dispositivos da Família MAX7000S (2) A programação no – sistema pode ser feita através de pinos JTAG e uma porta paralela do PC. Macrocélulas não conectados a pinos de I/ O podem ser usadas pelo compilador para a lógica interna. Os quatro pinos só de entrada podem ser configurados como sinais de alta velocidade de controle ou como entradas gerais do usuário. GCLK1 - entrada de clock global primária para todas as macrocélulas. GCLK2 - relógio global secundário. OE1- habilitação de saída tristate primária. GCLRn - clear assíncrono para qualquer registrador de macrocélula. ELT013 - Eletrônica Digital II 43 Diagrama em bloco da família MAX7000S ELT013 - Eletrônica Digital II 44 ELT013 - Eletrônica Digital II 45 Estruturas principais dos dispositivos da Família MAX7000S (3) Os blocos de controle I/O configuram todos os pinos I/O de entrada, saída ou operação bidirecional. Todos os pinos I/O têm um buffer de saída que permanentemente ativado ou desativado, controlado por um dos dois pinos de habilitação de saída global ou por outras entradas ou funções geradas por macrocélulas. Durante a programação no sistema os pinos de I/O serão transformados em tristate e receberão um pull-up interno, para eliminar conflitos de placa ELT013 - Eletrônica Digital II 46 Diagrama em bloco da família MAX7000S ELT013 - Eletrônica Digital II 47 Estruturas principais dos dispositivos da Família MAX7000S (4) FFs de macrocélulas podem implementar operações D, T, JK, ou SR. Todos os registradores programáveis têm seu clock ativado de três modos diferentes: Com sinal de clock global. Com sinal de clock global quando FF está habilitado. Com sinal de clock de matriz produzido por uma macrocélula ou um pino de entrada (não-global). Cada registrador pode ser apagado com o pino GCLRn. Todos os registradores do dispositivo serão resetados automaticamente ao serem energizados. ELT013 - Eletrônica Digital II 48 ELT013 - Eletrônica Digital II 49