Dispositivos Lógicos Programáveis 1
Dispositivos Lógicos Programáveis PLDs (Programmable Logic Devices) são circuitos integrados cujas conexões internas podem ser programadas pelo usuário de modo a realizar diferentes projetos de circuitos lógicos. 2
Vantagens facilidade para o desenvolvimento de protótipos simulação do projeto intrínseca (no próprio hardware) baixo risco financeiro de desenvolvimento de projetos facilidade para introduzir mudanças no projeto rápida produção 3
Evolução de Sistemas de Hardware Lógica Estática Lógica Programável Lógica Reconfigurável Computação Reconfigurável Sistemas Evolutivos 4
Terminologia SPLD: simples PLD (PLA ou PAL) CPLD: PLD complexo (FPGA, superpal, megapal) Capacidade Lógica: medida em número de portas 2-input-AND Densidade Lógica: quantidade de lógica/unidade de área Bloco Lógico: bloco lógico replicado em FPGAs Chave Programável: dispositivo que programa a conexão de elementos lógicos e de fios 5
Tipos de PLDs PROM - PLA - PAL - PLS - FPGA - Programmable ROM Programmable Logic Array Programmable Array Logic Programmable Logic Sequencer Field Programmable Gate Array FPAA - Field Programmable Analog Array 6
PROM O primeiro chip programável pelo usuário. linhas de endereço servem como inputs linhas de dados como output PROM pode implementar qualquer circuito combinacional Não volátil Ex: Microprogramação 7
Estrutura da PROM PUC-Rio plano AND fixo: todos os termos produtos: decodificador plano OR programável: codificador 8
PROM Implementando Circuito Lógico 9
PLA Uma PLA consiste de um plano AND programável e um plano OR programável. Plano AND Plano OR termos produtos das variáveis de entrada programável soma de produtos programável quaisquer entradas podem ser combinadas no plano AND qualquer soma de produtos pode ser realizada no plano OR grande versatilidade (planos programáveis) 10
Programmable Logic Arrays (PLAs) Como realizar qualquer lógica combinacional como soma de produtos? Idéia: construir um grande vetor AND-OR com muitas entradas e termos produto e programar as conexões. n entradas gates AND têm 2n entradas -- verdade e complemento de cada variável. m saídas, acionadas por gates OR cada gate AND tem sua conexão aos OR gates programável. p gates AND (p<<2 n ) 11
Exemplo: 4x3 PLA, 6 termos PUC-Rio produto 12
Representação Compacta 13
Alguns termos produto PUC-Rio 14
PLA - Circuito Interno Se Iinha=0 => transistor=off Se Iinha=1 => transistor=on => coluna=0 See Section 5.3.5 -- wired-and logic função NOR A conexão é realizada por máscara de metal e não por fusível 15
Projeto Automatizado em PLA Simplificação da expressão de funções Booleanas complexas a partir do uso de ferramentas computacionais (Espresso); Seleção do menor número de termos produto que cubra todas as funções; Programação da PLA. 16
PAL PUC-Rio Uma PAL consiste de um plano AND programável e um plano OR fixo. Muitas aplicações não requerem a versatilidade da PLA: a PAL é mais rápida, mais fácil de fabricar e de maior densidade lógica. Plano AND Plano OR termos produtos das variáveis de entrada programável soma de produtos fixo quaisquer entradas podem ser combinadas no plano AND vários tamanhos de PALs compensam a pouca generalidade flip-flops conectados à saída implementam circuitos sequenciais 17
Estrutura do PAL plano AND programável plano OR fixo 18
Programmable Array Logic PUC-Rio (PALs) PALs ==> fixed OR array Cada gate AND é permanentemente conectado a um gate OR. Exemplo: PAL16L8 19
10 entradas 8 saídas, com 7 ANDs por saída 1 AND para controle de 3- state 6 saídas disponíveis como entradas Note inversão das saídas: PUC-Rio output é complemento da soma de produtos novas PALs possuem inversão selecionável 20
PAL Termos-produto não podem mais ser compartilhados; Número de termos-produtos por seção da PAL é fixo. 21
PLS PUC-Rio PAL com Flip-Flops incorporados às saídas do plano OR, permite a realização de circuitos sequenciais. 22
FPGA Consiste de um array de blocos lógicos dissociados e de recursos de interconecção, configuráveis pelo usuário. benefícios do VLSI sem:custo inicial, risco, etc possui alta capacidade lógica utiliza SRAM ou Anti-fuse como chave requer ferramentas de software para projetos principais fabricantes: Xilinx, Altera, Actel, QuickLogic está transformando o projeto de circuitos digitais 23
Estrutura da FPGA 24
Bloco Lógico Configurável 25
look-up table: 2 k x1bit RAM realiza funções lógicas de k entradas 2 flip-flops portas lógicas entrada de relógio 26
Canais de Roteamento da FPGA WIRES: single double long 27
Tipos de FPGA Arquitetura Interna: Symmetrical Array Row-Based Hierarchical PLD Sea of Gates Chave: SRAM EPROM/EEPROM Anti-fuse 28
Aplicações de FPGAs controladores codificadores de comunicação filtros grandes sistemas através de várias FPGA interconectadas máquina customizada: FPGA executando software ao invés de compilar o software para executar na CPU 29
Chaves Programáveis CHAVE REPROG.? VOLÁTIL? TECNOL. Fusível não não Bipolar EPROM sim não UVCMOS EEPROM sim não EECMOS SRAM sim sim CMOS Anti-fuse não não CMOS+ 30
Fuse PUC-Rio Alta corrente elétrica na programação; Pouco utilizada nos dias atuais. Anti -Fuse Contrário de Fuse; Derretimento de um material separando dois condutores. Processos irreversíveis. 31
Chaves Controladas por RAM se bit=1-> transistor ON = chave fechada se bit=0 -> transistor OFF = chave aberta PUC-Rio * rápida reprogramação em operação 32
Chaves Controladas por RAM PUC-Rio SRAM utilizada como Look-Up Table: Entradas lógicas = linhas de endereço; Saídas lógicas = Dados; 33
CAD para PLDs PUC-Rio entrada de projeto (esquemático ou HDL) otimização lógica (minimização) adaptação do projeto ao PLD simulação verifica operação correta arquivo de configuração programa o PLD 34
CAD para FPGAs necessita de ferramentas adicionais: um mapeador para transformar o circuito lógico em blocos lógicos da FPGA; uma ferramenta de placement para escolher os blocos específicos da FPGA; um roteador para alocar segmentos de fios na interconecção dos blocos lógicos. 35
Novas Aplicações de FPGAs Computação Virtual: forma de computação escalável onde as partes críticas dos algoritmos são implementadas em hardware (FPGAs) Programação Orientada a Objetos em Hardware: objetos são algoritmos implementados em FPGAs Hardware Evolucionário: projeto através de evolução artificial do circuito sem a utilização de técnicas convencionais (Algoritmos Genéticos) 36
Hardware Evolucionário EVOLVABLE HARDWARE Aplicação de Computação Evolucionária no Projeto, Otimização e Síntese de Sistemas
O Que é Evolvable Hardware? Área que investiga a aplicação de Computação Evolucionária no projeto, otimização ou síntese de sistemas de hardware: circuitos eletrônicos; robôs; controladores; outras estruturas (civil, mecânica, etc); Evoluir ao invés de projetar
Projeto de Sistemas Evolvable Hardware determinação de valores e/ou tipos dos componentes empregados no projeto de um sistema; Otimização determinação dos valores ótimos (semi-ótimos) dos valores ou dimensões dos componentes de um sistema; Síntese identificação da estrutura/arquitetura de um sistema e a determinação dos componentes (tipos e valores).
Projeto e Síntese Simulador ou Circuito Reconfigurável componentes objetivos estrutura avaliação Sistema Evolucionário Hardware Sintetizado
Eletrônica Evolutiva Evolução Extrínseca Avaliação feita por simuladores ( SPICE, SIMON) Requerem muito tempo para avaliar os circuitos Não consideram todas as propriedades da física do meio eletrônico Podem sintetizar circuitos que não funcionam quando implementados no meio real Evolução Intrínseca Avaliação feita em plataformas reconfiguráveis Síntese de circuitos digitais: FPGA Síntese de circuitos analógicos: FPAA
Modelagem de EHW Representação: circuito cromossoma Decodificação: cromossoma circuito Avaliação: erro da saída obtida através de simulação/teste do circuito Operadores Genéticos:crossover, mutação
Avaliação dos Filhos Ciclo do Algoritmo Genético Cromossoma Palavra Aptidão A 100100 1296 B 010010 324 C 010110 484 D 000001 1 Pais f( ) Evolução Filhos Reprodução
Representação por cadeia linear de genes 2 4 C 10uF... 1 2 3 4 1 2 3 NPN... 5 3 5 R 10k.. Cada gene codifica um componente;
Evolução de uma Random Logic Control Unit R Read Main Store Address InputWrite Barramento Gmsr Gmsw Cmar Cmbr Cir Cpc Cdo Calu W MAR MBR IR PC D0 ALU Ealu Embr Gmbr Eir Gir Epc Gpc Edo Gdo Galu
Evolução Intrínseca Avaliação em plataformas reconfiguráveis FPAA: Field Programmable Analogic Array FPAA dispõe de componentes analógicos e recursos para conexão Algoritmo Genético configura interconexões Sinais de saída são lidos, convertidos para digital e o circuito é avaliado