Projecto de Sistemas Digitais (EEC4279)
|
|
|
- Aníbal Bonilha Ribeiro
- 9 Há anos
- Visualizações:
Transcrição
1 Projecto de Sistemas Digitais (EEC4279) Licenciatura em Engenharia Electrotécnica e de Computadores Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Electrotécnica e de Computadores 4º ano, 2º semestre 1 Projecto de Sistemas Digitais Sistemas Digitais. Importantes? Claro! vastas áreas de aplicação custo continua a descer Um SD incorporado num equipamento deve ser (numa perspectiva industrial) bom: satisfazer a funcionalidade com fidelidade e fiabilidade barato: custo mais baixo possível, sem comprometer a qualidade Projectar um SD if it wasn t hard they wouldn t call it hardware, J.F. Wakerly ferramentas computacionais ajudam the little gray cells mas não substituem 2
2 Fluxo de projecto (típico) Ideia um luminoas controlador para ligar de intensidade luzes de casa sempre e que desligar anguem do cao que entra se ou chama sai da bobi casota tambem 1 - receptor um gato que se chama e tem tareco 2 - um cpu para calcular a luz 3 - interface de potência interface processador memória particionamento desenho do circuito validação mapeamento tecnológico validação D Q D Q implementação lixo teste 3 Concepção Ideia vale a pena fazer algo que já existe? talvez... clarificar e estruturar a ideia, definir especificações um produto é mais do que um sistema digital geralmente um projecto é iniciado com especificações incompletas Exequibilidade boas ideias podem não ser praticáveis custo ou risco elevado tecnologia não acessível, não dominada ou não adequada tempo de desenvolvimento demasiado longo Implementação tecnologia(s) a decidir o mais cedo possível no ciclo de projecto 4
3 Aspectos tecnológicos Particionamento arquitectural geralmente um sistema não cabe num único componente divisão da funcionalidade selecção dos componentes e da tecnologia de montagem? funcionalidade rapidez disponibilidade LSI número de pinos interface CPU ASIC encapsulamento fabricante(s) µp memória RAM?PCB I/O proc. co-proc. COB MCM wire-wrap 5 Selecção da tecnologia Critérios a ter em conta acessibilidade à tecnologia (projecto e fabrico) custo (protótipagem, produção) fiabilidade testabilidade rapidez evolução tamanho consumo dissipação térmica compatibilidade electromagnética resistência mecânica 6
4 Ferramentas computacionais CAD/CAE (computer aided design/computer aided engineering) fundamentais para projectar em tempo útil circuitos complexos não competem em qualidade com um projectista experiente (geralmente) Ferramentas CAD/CAE trabalham com representações electrónicas de SDs (modelos) alguns tipos de ferramentas... captura esquemática (mais do que desenhar o circuito lógico...) síntese (lógica, RTL, alto nível) mapeamento tecnológico desenho físico (layout), verificação de regras geométricas simulação lógica (verificação funcional) análise temporal análise eléctrica modelação e simulação de faltas geração de vectores de teste análise térmica 7 Modelos de circuitos digitais Representações electrónica de SDs usadas e transformadas por ferramentas CAD/CAE Um modelo é uma aproximação! que pode ser boa e pode ser má rigor detalhe aproximação da tecnologia a simulação de um modelo nunca é igual ao seu funcionamento real Modelos (mais frequentemente) tratados por humanos modelos estruturais (esquemáticos) detalham a estrutura do circuito, interligando componentes entre si nível do sistema, RTL, lógico ou dispositivo modelos comportamentais (HDLs, state charts, tabelas, BDDs) descrevem o comportamento do sistema não contêm informação estrutural 8
5 Y- chart estrutural processadores, memórias registos, muxs portas lógicas transistores dispositivo transferências entre registos expressões booleanas funções de transistores layout de transistores fluxogramas, algoritmos comportamental sistema RTL lógico níveis de abstracção células módulos, chips placas, MCMs físico 9 Especificação de um SD Tradicionalmente captura esquemática (estrutural) interligação de portas lógicas, flip-flops, componentes RTL, bibliotecas de componentes específicas de uma tecnologia anotação do desenho com atributos nomes, parâmetros de componentes, restrições para implementação captura a estrutura (física) do circuito transformado de forma optimizada para uma tecnologia alvo tabelas de verdade, expressões booleanas (comportamental) conveniente para blocos de lógica combinacional ou FSMs minimização lógica codificação de estados representação textual, tradução automática para um circuito lógico independente do meio de implementação 10
6 Especificação de um SD Actualmente... projecto a níveis de abstracção mais elevados representações comportamentais ao nível RTL e algorítmico linguagens normalizadas para descrição de hardware suportadas por ferramentas de síntese automática combinam modelação estrutural com comportamental permitem ao projectista abstrair-se da tecnologia alvo (não totalmente!) portabilidade e facilidade de manutenção redução do ciclo de projecto permite explorar diversas alternativas com diferentes compromissos comparando com a programação de computadores... nível de abstracção crescente código máquina assembly C, Pascal layout portas lógicas HDLs } ainda se justifica? 11 Projecto estruturado Hierarquia e modularidade conceitos semelhantes aos empregues em programação estruturada objectivos: estruturação do projecto permitir a reutilização de módulos facilitar a verificação do projecto simplificar a produção da documentação (geralmente esquecida!) quanta hierarquia? nem 1 nem 1000! como se faz em programação? porquê? critérios principais: funcionalidade e granuralidade (complexidade dos módulos) uma diferença importante da hierarquia em software: não significa reduzir a complexidade do hardware geralmente desaparece durante o percurso até ao nível lógico ou dispositivo 12
7 Metodologias de projecto Abordagens típicas bottom-up (capture-and-simulation) hierarquia criada de baixo para cima (lógico RTL sistema) ciclo de projecto: manual desenhar os circuitos mais simples (ou usá-los se existirem) validar com simulação esses circuitos usá-los na construção de outros circuitos mais complexos top-down (describe-and-synthesize) hierarquia criada de cima para baixo (sistema RTL lógico) ciclo de projecto automático especificar o sistema de forma comportamental sintetizar e avaliar as soluções resultantes de diferentes restrições na prática, top-down e bottom-up tocam-se! 13 Validação do projecto Simulação funcional verificação funcional da especificação ao nível mais abstracto geralmente são usados modelos unit-delay ou zero-delay verificar que é satisfeita a funcionalidade desejada se não funciona? detecção e depuração de erros (debug) problemas: como definir os vectores de simulação? como se sabe que o resultado é correcto? quão exaustivo é o teste? fontes de erro mais comuns é bom lembrar que os computadores não erram, os humanos sim mas são humanos que criam as ferramentas de software! especificações incompletas, ligações erradas ou nomes trocados uso incorrecto de ferramentas de síntese automática má organização das várias versões de um projecto (save before quit? oops!) 14
8 Validação do projecto Análise temporal circuitos lógicos introduzem atrasos a simulação dá resultados correctos considerando os atrasos? qual o desempenho? o que limita o desempenho? modelos de atrasos específicos de uma tecnologia dependem do circuito em que um componente se insere (fan-out) quanto mais completo é o modelo, mais complexa é a simulação tp LH, tp HL, t r, t f (mínimos, típicos e máximos) interligações também introduzem atrasos função do comprimento e da forma só são conhecidos após a implementação ao nível físico 15 Teste Teste do sistema fabricado testar para quê? minimizar ( 0%) o número de sistemas defeituosos vendidos detectar e diagnosticar defeitos de fabrico melhorar o sistema ou o processo produtivo como testar? construir um modelo de faltas do circuito criar vectores de simulação que as consigam detectar saídas diferentes na presença ou ausência da falta ferramentas para ATPG - Automatic Test Pattern Generation teste é uma fatia importante do custo de produção projecto orientado para a testabilidade (DFT - Design for Testability) auto-teste (BIST - Built-in Self Test) teste de PCB (boundary scan test, norma IEEE ) 16
9 Linguagens de descrição de hardware Modelação de um circuito (digital) descrições comportamentais permitem nível elevado de abstracção metodologia de projecto top-down: ferramentas de síntese automática representação textual: portabilidade, edição e documentação a favor do esquemático: uma figura diz mais do que mil palavras um esquema captura melhor a ideia estrutural ferramentas gráficas front-end produzem descrições em HDLs editores de esquemático: netlist em HDL (estrutural, gate-level ou RTL) editores de diagramas de estados: descrições comportamentais sintetizáveis duas perspectivas na construção de um modelo descrever o seu funcionamento apenas para simulação construir uma descrição sintetizável ($monitor( ) não é sintetizável!) um modelo sintetizável deve descrever bem o seu funcionamento subsets das linguagens e regras de modelação dependem das ferramentas 17 HDLs - exemplos VHDL - VHSIC Hardware Description Language (IEEE ) desenvolvida para simulação, usada para síntese, fortemente tipada Verilog (IEEE ) mais simples do que VHDL, poucos tipos de dados, próxima de C ABEL - Advanced Boolean Equation Language (TM Data I/O) programação de PLDs, equações lógicas, descrição de FSMs HardwareC (univ. Berkeley) derivada da linguagem C, orientada para a representação de hardware ISPS - Instruction Set Processor Specification descrição do conjunto de instruções de processadores Silage (IMEC) aplicações de DSP, pouco controlo, data-flow EDIF - Electronic Data Interchange Format (IEEE standard para representação de circuitos electrónicos ao nível estrutural XNF - Xilinx Netlist Format (TM XILINX) proprietária da XILINX para descrever netlists, estrutural, permite hierarquia 18
10 Verilog e VHDL - história VHDL 80: por necessidade de normalização, documentação e portabilidade, e DOD funda projecto para criar linguagem de programação para descrever hardware 83: início do desenvolvimento do VHDL (IBM, Texas, Intermetrics) 87: o DOD impõe que todos os SDs fossem descritos em VHDL; standard IEEE 1076; os sistemas electrónicos do F-22 foram um dos primeiros projectos em VHDL 93: VHDL é revisto e adoptado como o standard IEEE : adopção generalizada por ferramentas EDA; package para ferramentas de síntese (IEEE ); modelação de bibliotecas para ASIC e FPGA (IEEE ) Verilog 81: Gateway Design Automation, Philip Moorby cria GenRad HDL e o simulador HILO 83: Gateway lançou a linguagem Verilog HDL e um simulador de Verilog 85: linguagem e simulador são enriquecidos (Verilog-XL) 87: Synopsys adopta Verilog como formato de entrada para ferramentas de síntese 89/ 90: Cadence compra Gateway e separa o simulador da linguagem; a linguagem é libertada para o domínio público; é criado o OVI (Open Verilog International) 93: neste ano, de todos os circuitos submetidos a fundições de silício, 85% foram desenvolvidos e submetidos em Verilog. 95: Verilog é revisto e adoptado como o standard IEEE Verilog e VHDL - comparação capacidade de modelação semelhante para modelos estruturais VHDL oferece melhor suporte para modelos abstractos e modelos de atrasos Verilog tem melhores construções para modelar ao nível lógico e primitivas de bibliotecas de ASICs e FPGAs tipos de dados VHDL suporta tipos de dados abstractos criados pelo utilizador em Verilog os tipos são muito simples e mais próximos do hw (wire e reg) aprendizagem VHDL é fortemente tipada, menos intuitiva, mais verbosa Verilog é mais simples e fácil de ler; código é mais curto do que em VHDL parameterização VHDL tem construções para parametrizar número de bits, replicar estruturas e configurar modelos Verilog suporta apenas modelos com parâmetros, instanciação com redefinição de parâmetros 20
11 VHDL VHDL-Verilog (comportamental) library IEEE; use IEEE.STD_Logic_1164.all; entity MUX_2_1 is port(s1,a1,b1,s2,a2,b2,s3,a3,b3:in std_logic; Y1,Y2,Y3:out std_logic); end entity MUX_2_1; Verilog module MUX_2_1(S1,A1,B1,Y1, S2,A2,B2,Y2, S3,A3,B3,Y3); input S1,A1,B1,S2,A2,B2,S3,A3,B3; output Y1,Y2,Y3; reg Y2,Y3; architecture COND_DATA_FLOW of MUX_2_1 is begin Y1 <= A1 when S1= 1 else B1; TWO_2_1_MUXES: process(s2,a2,b2,s3,a3,b3) begin Y2<=B2; if (S2= 1 ) then Y2<=A2; endif; if (S3= 1 ) then Y3<=A3; else Y3<=B3; endif; end process TWO_2_1_MUXES end architecture COND_DATA_FLOW; assign Y1=S1?A1:B1; or A2 or B2 or S3 or A3 or B3) begin Y2=B2; if (S2) Y2=A2; if (S3) Y3=A3; else Y3=B3; end endmodule 21 VHDL VHDL-Verilog (estrutural) library IEEE; use IEEE.STD_Logic_1164.all; entity HALF_ADDER is port(a,b:in std_logic; sum,carry:out std_logic); end entity HALF_ADDER; Verilog module HALF_ADDER(a,b,sum,carry); input a,b; output sum,carry; xor X1(sum,a,b); and A1(carry,a,b); architecture STRUCT of HALF_ADDER is endmodule component xor2 port(a,b:in std_logic; c:out std_logic); end component; component and2 port(a,b:in std_logic; c:out std_logic); end component; begin X1: xor2 port map(a=>a,b=>b,c=>sum); A1: and2 port map(a=>a,b=>b,c=>carry); end STRUCT; 22
12 Modelação em HDL Modelo sintetizável vs. modelo não sintetizável ferramentas de síntese automática inferem a estrutura de um circuito o modelo (comportamental ou estrutural) vai ser hardware regras, restrições e recomendações das ferramentas de síntese como é interpretado e traduzida a descrição em HDL simulação e implementação devem concordar construções específicas da tecnologia de implementação modelos não sintetizáveis não são traduzidos para hardware definem estímulos para simulação, e permitem a monitorização de sinais modelam o comportamento de outros circuitos para simulação do sistema circuito de relógio memórias ou CPUs circuitos de interface (por exemplo conversores A/D ou D/A) 23 Modelação em HDLs recomendações gerais Antes de iniciar a construção do modelo definir a arquitectura e estruturação do projecto (particionamento) ferramentas de síntese não processam bem circuitos infinitamente grandes! Escrever o código de modo a reflectir a arquitectura estruturado em módulos e funções, ter em mente a reusabilidade favorecer a legibilidade: nomes, comentários, parêntesis, parâmetros Garantir a precisão da simulação deve traduzir fielmente o comportamento do hardware gerado modelar correctamente o comportamento das partes não sintetizáveis 24
13 Construção de modelos sintetizáveis (em Verilog, para Synopsys FPGA Express) Atrasos são sempre ignorados o seu uso pode tornar incoerente a simulação e o comportamento do circuito Sinais do tipo reg nem sempre são traduzidos em registos podem ser traduzidos em wire, D-flip-flops ou latches transparentes Atribuição contínua (assign sum=a^b^cin;) traduzida para um bloco de lógica combinacional Operadores aritméticos e lógicos apenas para inteiros sem sinal, dimensão dos resultados depende dos operandos são gerados circuitos combinacionais que os implementam podem ou não ser partilhados para diferentes operações do mesmo tipo os operadores / e % só podem ser usados com operandos constantes 25 Construção de modelos sintetizáveis (em Verilog, para Synopsys FPGA Express) always - duas formas os sinais tipo reg são traduzidos para Dffs clock or negedge reset) begin if (!reset) acc = 8 b ; else acc = data_in; end reset assíncrono; tem de ser avaliado no primeiro if(...) or b or...): sinais do tipo reg são latches ou wires or sel) begin if (sel) out = a; end out é uma latch or b or sel) begin if (sel) out = a; else out = b; end lista de sensibilidades pode ser omitida só para síntese out é uma função combinacional de sel, a e b 26
14 Construção de modelos sintetizáveis (em Verilog, para Synopsys FPGA Express) inferência de latches em construções always - regra geral latches são geradas para sinais do tipo reg que não sejam completamente especificados para todos os casos de instruções condicionais (por exemplo if (sel) out = a; e quando sel==0? ) no caso contrário é apenas gerado um circuito combinacional sem elementos de memória latches podem ser indesejáveis aumento do espaço ocupado degradação do desempenho ferramentas de síntese ignoram a lista de sensibilidades o simulador não! Só avalia o bloco quando algum sinal muda se não for usada há (geralmente) incoerência entre a simulação e o circuito sintetizado. 27 Construção de modelos sintetizáveis (em Verilog, para Synopsys FPGA Express) inferência de buffers de 3-estados atribuindo z a um sinal (do tipo reg) module three_state(in, out, en); input in, en; output out; reg out; in or en) if (en) out = in; else out = 1 bz; endmodule assign out = en? in : 1 bz; 28
15 Construção de modelos sintetizáveis (em Verilog, para Synopsys FPGA Express) ciclos for(...): só são suportadas 4 formas: crescente ou decrescente de passo constante (...;index=index±step) condição de terminação com <, >, <= ou >= a or b or carry ) for(i=0;i<=31;i=i+1) begin s[i] = a[i]^b[i]^carry; carry = a[i]&b[i] a[i]&carry b[i]&carry; end while (...): cria um ciclo combinacional; deve ser quebrado clock) posedge clock ) while (x<y) clock); x=x+z; end 29 Síntese de Sistemas Digitais estrutural processadores, memórias registos, muxs portas lógicas transistores arquitectural alto nível dispositivo lógica circuito layout de transistores comportamental fluxogramas, algoritmos transferências entre registos expressões booleanas funções de transistores sistema lógico RTL níveis de abstracção físico células módulos, chips placas, MCMs 30
16 Problemas de síntese Síntese estrutural transformação do domínio comportamental para o domínio estrutural acrescenta detalhe estrutural dependente da tecnologia mas não define a realização física sujeita a restrições: estimativas de área, desempenho ou potência Síntese física transformação do domínio estrutural para o domínio físico nos 4 níveis de abstracção (Y-chart) dispositivo: produção dos desenhos das máscaras de células (layout) célula: tradução de portas lógicas em agregados de células e interligações RTL: organização física de módulos (floorplanning) sistema: particionamento em componentes, PCBs, MCMs 31 Síntese de Alto Nível ou síntese RTL origem descrição comportamental ao nível RTL: um algoritmo variáveis (registos) operações entre variáveis (aritméticas, lógicas ou deslocamento) decisões (if-then-else, ciclos) restrições tempo de execução: número de ciclos de relógio e frequência do relógio espaço ocupado: número e tipo de elementos, número de células ou área destino - arquitectura básica um datapath ao nível RTL (síncrono) rede de registos, multiplexers, unidades funcionais e barramentos uma unidade de controlo produz uma sequência de sinais de selecção e abilitação para o datapath 32
17 Síntese de Alto Nível descrição comportamental (algorítmica, RTL) estrutura RTL registos while (x<a) begin xl=x+dx; ul=u-(5*x*u*dx)-(3*y*dx); yl=y+(u*dx); x=xl; u=ul; y=yl; end mux mux R R R mux mux mux * + - unidade de controlo muxs e barramentos datapath unidades funcionais 33 Síntese de alto nível medidas de qualidade Objectivos importantes simplificar o hardware e minimizar o tempo de execução minimizar tempo explorar paralelismo complicar hardware Medidas de qualidade da solução RTL avaliadas antes da implementação física, baseadas em estimações número e complexidade das unidades funcionais e registos número de ciclos de relógio, período de relógio complexidade da unidade de controlo espaço ocupado pelas interligações, barramentos e multiplexers potência consumida área Compromisso área-tempo espaço de soluções típico tempo 34
18 Síntese de alto nível Exemplo: 3 adições independentes - duas soluções alternativas: a x1 z b x2 t y1=a+b; y2=x1+x2; y3=z+t; mux mux a b x1 x2 z t R R R y1 y2 y3 uma unidade funcional 3 ciclos espaço ocupado pelo datapath? complexidade da unidade de controlo? duração do ciclo de relógio? potência consumida? testabilidade? R R R y1 y2 y3 3 unidades funcionais 1 ciclo 35 Síntese de Alto Nível problemas transformações de alto nível semelhantes às realizadas pelos compiladores propagação de constantes, simplificações algébricas, optimização de ciclos sequenciamento (scheduling) atribuição das operações a ciclos de execução (ciclos de relógio) minimizar o número de ciclos necessário para completar a operação explorar o paralelismo natural do algoritmo alocação e colagem (allocation e binding) selecção de registos e de um conjunto de unidades funcionais minimizar a complexidade do hardware escolher entre diversos compromissos de unidades funcionais depende do sequenciamento e influencia-o colagem das operações a unidades funcionais que as realizem uma operação pode demorar diferentes tempos em diferentes FUs 36
19 Transformações de alto nível Compilação da descrição comportamental representação interna baseada em grafos DFG (Data Flow Graph) representa as operações e as dependências entre dados e resultados b a c y=a+b; z=y*c; + k=a+y; y * + k z CFG (Control Flow Graph) representa a sequência de controlo de blocos de operações if (a==b) z=y+c; else k=a+y; z=y+c a==b k=a+y 37 Sequenciamento ASAP e ALAP ASAP - As Soon As Possible atribuir cada operação ao primeiro ciclo ciclo 1 * * * * + ALAP - As Late As Possible atribuir cada operação ao último ciclo ciclo 1 * * ASAP com restrições, fixando o número e tipo das unidades funcionais ciclo 1 * * + 2 * * + < 2 * * 2 * * < * * * * < multiplicadores 1 subtractor 1 somador 6 unidades funcionais 2 multiplicadores 2 subtractores 1 somador 5 unidades funcionais 2 multiplicadores 1 subtractor 1 somador 4 unidades funcionais 38
20 Sequenciamento heurísticas Lista de prioridades (list scheduling) operações ordenadas por função de prioridade caminho mais longo, número de sucessores, mobilidade das operações em cada iteração são sequenciadas as operações prontas uma operação pronta tem todos os antecessores sequenciados pela ordem ditada pela lista de prioridades FDS - Force Directed Scheduling distribui as operações de forma a balancear a utilização das Fus baseada na probabilidade de cada operação ser atribuída a cada ciclo requer o conhecimento de ASAP e ALAP: mobilidade determina um sequenciamento num número fixo de ciclos 39 Alocação e colagem Conhecido um sequenciamento escolher um conjunto de unidades funcionais que realizem as operações nos ciclos determinados pelo sequenciamento em cada ciclo uma FU só pode realizar uma operação Formulação básica determinação do número mínimo de sub-grafos completos grafo de compatibilidades: operações 1 e 3 são compatíveis FU FU2 5 FU3 40
21 Sequenciamento e alocação optimização conjunta Programação Linear Inteira (PLI) formulação básica baseada em variáveis inteiras binárias: xij = 1 se a operação i é atribuída ao ciclo j 0 caso contrário restrições no número de ciclos ou de unidades funcionais computacionalmente pesado Métodos heurísticos arrefecimento simulado (simulated annealing) flexibilidade para tratar restrições complexas associadas às FUs necessário número elevado de iterações, soluções sub-óptimas computacionalmente pesado algoritmos genéticos 41 Unidades funcionais modelo básico uma FU só faz um tipo de operação num ciclo modelos mais realistas diferentes tipos de operações durações dependentes do tipo de operação disponibilidade de diferentes implementações para a mesma operação diferentes operadores pipelined unidades funcionais reconfiguráveis dinâmicamente 42
22 Verificação do projecto Tradicionalmente verificação era (e por vezes ainda é) feita com um protótipo do sistema é dispendioso, demora tempo a ser construído protótipos de CIs construídos com componentes discretos não são fiéis é uma implementação do sistema, funciona próximo da velocidade real permite verificar o sistema com estímulos complexos de sistemas físicos Verificação por simulação protótipo substituído por um modelo do sistema, permitindo: verificar condições de erro (sinais não ligados, conflitos de barramentos) verificar o sistema com diferentes modelos de atrasos dos componentes observar o estado de qualquer nó ou componente do sistema forçar qualquer sinal a estados desejados iniciar a simulação em qualquer estado controlar de forma precisa a temporização de eventos assíncronos construir o conjunto de estímulos para testar o sistema fabricado Baseado em Digital Systems Testing and Testable Design, capítulo 3, M. Abramovici, M.A. Breuer, A.D. Friedman, Computer Science Press, Simulação estímulos simulador resultados? modelo especificação 44
23 Simulação Verificação do projecto comparar o funcionamento de um modelo do sistema com os resultados esperados pela especificação verificar se a operação do sistema é: correcta e independente do estado inicial dos elementos de memória insensível a variações dos atrasos dos componentes livre de contenções, oscilações, entradas ilegais ou estado suspensos...e também: estudar e avaliar compromissos de custo e desempenho avaliar alterações ao projecto produzir documentação (por exemplo diagramas temporais) 45 Simulação - problemas Como se constroem estímulos? não há procedimentos formais para gerar estímulos processo heurístico, baseado na intuição e conhecimento do sistema não é praticável a verificação exaustiva um circuito com 75 entradas 2 75 testes (1.2x10 9 anos@1µs/teste) Como se sabe se os resultados são correctos? só verifica a funcionalidade exercitada pelos estímulos Estímulos para verificação e para teste verificação: detectar e diagnosticar erros de projecto não é possível enumerar todos os erros de projecto teste: detectar e diagnosticar defeitos de fabrico defeitos de fabrico (faltas) são modelados como erros lógicos 46
24 Simulação - compiled-code simulação compilada (compiled-code) executa um modelo compilado do circuito o circuito é traduzido em instruções executáveis por um processador simulador oferece suporte para fornecer estímulos de simulação orientada para verificação funcional, não suporta análise temporal o comportamento de componentes é modelado por instruções máquina ou subrotinas exemplo (modelo estrutural): para cada transição de clk (código 8086): A B Y clk D Q Z F MOV AL,A AND AL,B MOV Y,AL MOV AL,B AND AL,Y NOT AL MOV Z,AL MOV F,AL 47 Simulação - event-driven simulação de eventos (event-driven) usa um modelo estrutural do circuito para gerar e propagar eventos eventos nas entradas são produzidos pelos estímulos eventos nos restantes nós são gerados pela avaliação dos componentes modelo do circuito é mantido em estruturas de dados um evento é uma mudança do estado de um sinal num tempo dado os componentes que usam esse sinal são activados e avaliados as mudanças resultantes das avaliações geram novos eventos outros eventos: controlo do simulador, monitorização de sinais em Verilog: $finish; $display(...), $monitor(...) permite processar estímulos e sinais assíncronos análise do comportamento com os atrasos dos componentes avaliação do funcionamento com eventos não sincronizados (interrupções) 48
25 Simulação event-driven - fluxograma todos os eventos produzidos pelos estímulos já foram introduzidos na lista até ao primeiro evento pendente actualiza o valor dos sinais modificados pelos eventos deste tempo propaga o valor dos sinais activos até aos componentes que os usam e activa esses componentes a avaliação dos componentes activados produz novos eventos em tempo futuro (atrasos dos componentes) ou no mesmo tempo início avançar tempo de simulação extrair eventos para este tempo actualiza sinais activos propaga mudanças dos sinais avalia componentes activados introduz os novos eventos na lista não há eventos fim 49 Simulação - o valor lógico desconhecido Quando um circuito lógico é ligado, memórias e flip-flops ficam com valores lógicos não definidos é necessário prever um mecanismo de iniciação (reset) geralmente associado ao power-up iniciar os conteúdo de registos e RAMs iniciar máquinas de estados num estado determinado Valor lógico desconhecido: u representa o estado de sinais lógicos não iniciados resultantes de não iniciação de registos e memórias indefinição do estado de entradas primárias do circuito a simular é processado juntamente com os valores lógicos 0 e 1 operadores lógicos são generalizados para tratar o valor lógico u 50
26 Simulação - o valor lógico desconhecido Generalização dos operadores lógicos valor u é representado pelo conjunto {0,1} u pode ser qualquer elemento do conjunto que o representa 1 e 0 são representados pelos conjuntos {1} e {0}, respectivamente uma operação lógica B entre p e q, com p,q {0,1,u} é definida como uma operação entre os conjuntos que representam p e q o resultado é a reunião dos resultados de todas as operações B entre todos os elementos dos dois conjuntos and(0,u)=and({0},{0,1})={and(0,0),and(0,1)}={0,0}={0}=0 or(0,u)=or({0},{0,1})={or(0,0),or(0,1)}={0,1}=u para um operador unário U, o resultado U(q) é a reunião de todos os resultados de U aplicada a cada elemento do conjunto que representa q not(u)=not({0,1})={not(0),not(1)}={1,0}=u 51 Simulação - o valor lógico desconhecido Tabelas de verdade para AND, OR e NOT AND 0 1 u u u 0 u u OR 0 1 u u u u 1 u NOT 0 1 u 1 0 u Perda de informação propagando o valor lógico u u 0 1 u u u desconhecidos, mas sempre com valores contrários u é sempre 1! não, não é factorial... não serve usar u e u u Q u Q 1 Q u u Q desconhecido 52
27 Simulação - o valor lógico Z Modelação de buffers com saída tristate E Tabela de verdade: I I E 0 1 u 0 Z 0 {0,Z} 1 Z 1 {1,Z} u Z u {u,z} O se E=1, O=I se E=0, O=Z Tabela de verdade de um barramento com 2 entradas Um sinal com o nível lógico Z pode ser forçado com 1 ou 0 (pull-up ou pull-down) é sempre interpretado como u por uma entrada a b o a b 0 1 Z u 0 0 u 0 u 1 u 1 1 u Z 0 1 Z u u u u u u em que casos pode ocorrer contenção no barramento? 53 Simulação - modelos de atrasos atraso de transporte um atraso na propagação do nível lógico atrasos de subida e de descida diferentes atrasos para as transições 0-1 e 1-0 atrasos ambíguos mínimos e máximos para os atrasos 0-1 e 1-0 atraso inercial duração mínima de uma entrada para ser reflectida na saída setup time e hold time para flip-flops setup time: tempo mínimo para D estar estável antes de clock hold time: tempo mínimo para D permanecer estável após clock 54
28 Prototipagem Prototipagem de Sistemas Digitais construção física dispendiosa e demorada (componentes off-the-shelf) fase de protótipo: prováveis iterações ao projecto custos elevados e tempos longos de re-desenho recurso a dispositivos programáveis do tipo PLA 1985/86: Xilinx introduz nova família de PLDs FPGA - Field Programmable Gate Array agregados regulares de blocos lógicos configuráveis blocos configuráveis de complexidade reduzida configuração rápida (escrita em SRAM, volátil, in-circuit) Sistemas reconfiguráveis baseados em FPGAs construídos uma vez, re-utilizáveis um número arbitrário de vezes prototipagem, circuitos para aplicações específicas, computadores dedicados 55 FPGA - Field Programmable Gate Array A0 S0 A0 B0 S0 B0 S1 S1 A1 B1 S2 A1 S2 B1 bloco lógico configurável interruptores programáveis interligações bloco de entrada/saída 56
29 FPGAs - características Programação eléctrica anti-fuse (programador, definitiva) EPROM, EEPROM (programador ou in-circuit, não volátil) SRAM (in-circuit, volátil) Arquitecturas de FPGAs correntes Xilinx Actel Algotronix Altera bloco lógico configurável 57 FPGAs - arquitecturas de blocos configuráveis Look-up tables A B C D RAM multiplexers mux portas lógicas e muxs A B A B mux mux pares de transistores mux blocos PLA 58
30 FPGAs - aplicações circuitos para aplicações específicas (ASICs) substituir um circuito integrado fabricado por medida emulação e prototipagem de hardware acelerar simulação (3 a 5 ordens de magnitude) emulação de sistemas mistos digital-analógico processadores dedicados (Custom Computing Machines) especificamente desenhados para acelerar partes de aplicações paralelismo das operações natureza das operações (por exemplo manipulação de bits) associados a processadores convencionais uma plataforma reconfigurável (física) para diferentes processadores lista de sistemas baseados em FPGAs consultar 59 FPGAs - Xilinx XC4000 Família XC4000 da XILINX ( considerado um standard industrial (versão HardWire TM ) configuração por SRAM blocos lógicos configuráveis baseados em LUTs de 4 e 3 entradas abundância de flip-flops arquitectura do tipo array, canais de interligação abundantes capacidade de implementar blocos de RAM circuitos dedicados para geração e propagação de carry interconexões hierárquicas capacidade de readback (configuração e nós internos) capacidades actuais até 500 K portas lógicas equivalentes XC4085XLA-08: 85 K gates = $00 (Outubro 1998) 60
31 Síntese do datapath S.D. - controlo e processamento de informação unidade de processamento (datapath) processamento e comunicação de dados registos, ALUs, outros operadores dedicados (FUs), barramentos controlo activa os elementos do datapath, define as operações a realizar FSMs, controladores microprogramados Control dominated sistemas onde predominam as estruturas de controlo controlador de microondas, semáforos, microprocessador,... Data flow dominated sistemas onde predomina o datapath, controlo reduzido aplicações de DSP, unidades de cálculo dedicadas 61 Sistemas Digitais síncronos Sistema síncrono simplicidade em separar o controlo do datapath todos os registos têm o mesmo sinal de relógio o datapath efectua operações de registo a registo transferências entre registos na transição de relógio em cada ciclo de relógio o controlador define: clk controlo FUs registos que registos são carregados agulhamento de barramentos e multiplexers operações a realizar pelas unidades funcionais mux R mux R mux mux mux + * / sqrt and or R 62
32 Datapath síncrono Lógica combinatória entre registos entrada assíncrona entrada síncrona saída assíncrona saída síncrona clock T delay1 T delay2 T delay3 frequência de relógio freq. clock < 1 / max(t delay1,t delay2,t delay3 ) controlo do datapath também condiciona o desempenho clock controlo datapath 63 Datapath síncrono todos os registos têm o mesmo relógio elevado fanout: necessário buffers para distribuir o relógio problemas clock skew: variação da fase do relógio em diferentes registos atrasos introduzidos pelas interligações, só conhecidos após routing circuitos dedicados para distribuir relógio (p.ex. em FPGAs) carregamento condicional de registos (abilitação ou enable) não usar gated clocks (depende da tecnologia de implementação) flip-flops com controlo clock enable síncrono necessário garantir tempos de hold e setup dos flip-flops tratamento de entradas assíncronas (p.ex. interrupções) análise de metaestabilidade sincronização com o relógio circuitos CMOS consomem energia (quase apenas) nas transições 64
33 Datapath síncrono - clock skew variação da fase do relógio em diferentes registos R1 R2 R1 R2 clk clk atraso clk1 clk clk R1 a b c R2 x a b clk1 R1 a b c R2 x b c atraso 65 Datapath síncrono - clock skew Motivado por assimetria do circuito de relógio características físicas das ligações (comprimento, RC) R1 R2 clk clk1 diferente fanout R1 R2 R3 R4 clk clk1 lógica combinatória no caminho do relógio R1 R2 clk ce clk1 gated clock 66
34 Datapath síncrono - clock skew Em FPGAs as interligações programáveis introduzem atrasos importantes difícil (mas não impossível) equilibrar os atrasos de diferentes nets rede de interligações dedicadas para distribuir sinais de relógio também servem para outros sinais com elevado fanout exemplo: na família XC4000E (consultar o databook ) 4 buffers primários (BUFGP) e 4 buffers secundários (BUFGS) um par de buffers em cada canto do die (TL, TR, BL e BR) cada buffer pode alimentar as entradas clk de todos os FFs com skew mínimo não utilizar um desses buffers para distribuir o relógio é FATAL! no ambiente de síntese da XILINX (Foundation+Express) são identificados os sinais de relógio: sinais que alimentam entradas clk de FFs é alocado um buffer global (BUFGP ou BUFGS) para cada um não podem existir mais de 8 sinais de relógio diferentes 67 Datapath síncrono - gated clock Carregamento condicional de um registo solução errada: usar um AND para deixar ou não passar o clock ce clk R solução correcta clock enable síncrono ce 0 1 clk ce.clk flip-flops primitivos com controlo clock enable R clk ce ce.clk R1 a b? R1 é carregado duas vezes! Só funciona se ce ocorrer antes de clk. Como é possível garantir? Se ce é produzido por uma máquina de estados síncrona com clk, ce é mudado sempre após clk. Problema adicional: o atraso introduzido pela porta AND 68
35 Datapath síncrono - gated clock Solução (mais) segura para um gated clock controlo ce1 ce2 clk clk gclk1 gclk2 portas NAND com atrasos idênticos atrasos iguais de clk até cada NAND... e de cada NAND até aos buffers garante clock skew mínimo clk sinais ce gerados na unidade de controlo unidade de controlo síncrona com clk em FPGA requer routing cuidado clk ce gclk = ce.clk 69 Datapath síncrono - gated clock Outra solução segura: registar os sinais enable controlo en1 en2 ens1 D Q gclk1 ens2 gclk2 D Q clk clk en ens gclk 70
36 Síntese do datapath - pipelining datapath síncrono (não-pipelined vs. pipelined) não-pipelined: uma operação por ciclo de relógio: f clk oper/s clk reg in reg out T delay di0 di1 di2 di3 di4 X do0 do1 do2 do3 do4 di clk reg in lógica combinatória reg out do pipelined: partir o circuito lógico e inserir registos T delay clk reg in reg0 reg1 reg out Tp delay max di0 di1 di2 di3 di4 X d0 d1 d2 d3 d4 X X d0 d1 d2 d3 X X X do0 do1 do2 di clk lógica combinatória reg in reg0 reg1 reg out do Latência: 3 ciclos clk Tp delay max 71 Síntese do datapath - pipelining No circuito pipelined Tp delay max menor do que T delay Tp delay max é o maior atraso de uma partição do circuito combinatório define uma frequência de clk maior do que para o circuito combinatório 3xTp delay max maior do que T delay para além da lógica combinatória há atrasos introduzidos pelos registos um resultado demora 3 períodos de clk a aparecer na saída é consumido um dado e produzido um resultado em cada clk aumento de desempenho para sequências de operações iguais mas não compensa para realizar uma única operação. 72
37 Síntese do datapath - unidades funcionais Unidades funcionais do datapath operadores aritméticos operandos inteiros, vírgula fixa ou vírgula flutuante operadores com constantes, mais eficientes do que operadores genéricos operadores lógicos, manipulação de bits funções lógicas, rotações, deslocamentos, bitreverse operadores específicos de uma aplicação A*B-(C+D), x[k]*x[k+t1]*x[k+t2] Numa abordagem top-down (HDL+síntese) operadores inferidos e construídos no processo de síntese nem todos os operadores disponíveis FPGA Express suporta apenas divisões entre constantes (!) arquitecturas dos operadores com poucas alternativas FPGA Express só constrói multiplicadores unsigned 73 Síntese do datapath - operadores aritméticos Somadores e subtractores ripple carry propagação do carry limita a rapidez de cálculo resultado garantido após o maior tempo de propagação do carry carry select somador dividido em secções, cada secção contém 2 somadores de k bits exemplo: somador de 12 bits em secções de 4 bits: A 11-8 B 11-8 A 7-4 B 7-4 A 3-0 B 3-0 C 11,1 4 bit add 1 C 7,1 4 bit add 1 C 3,1 4 bit add 1 C 11 S 11-8 C 11,0 4 bit add 0 S 7-4 C 7,0 4 bit add 0 S 3-0 C 3,0 4 bit add 0 Kay Hwang, Computer Arithmetic - Principles, Architecture and Design, John Wiley & Sons, 1990 A 11-8 B 11-8 C 3,1 A 7-4 B 7-4 C 3,0 CS CS C C 7,1 C 7 4 C 7,0 C 3,1 C 3,0 A 3-0 B 3-0 C -1 74
38 Síntese do datapath - operadores aritméticos Somadores e subtractores (cont.) carry generate, propagate, lookahead generate G i = A i. B i propagate P i = A i B i significa que o andar i propaga o carry que lhe chega equações do somador escrevem-se S i = A i B i C i-1 = P i C i-1 C i = A i.b i + A i.c i-1 + B i.c i-1 significa que o carry é gerado no andar i = A i.b i + (A i B i ). C i-1 = G i + P i.c i-1 os carry de todos os andares podem ser obtidos em paralelo C k = G k + G k-1.p k + G k-1.p k-1.p k C -1.P 0.P 1.P k 75 Síntese do datapath - operadores aritméticos Somadores e subtractores (cont.) somadores assíncronos tempo de propagação depende dos operandos circuitos para detectar que a propagação do carry está concluída somador de 32 bits: média de 5 bits de carry (6 para somador de 64 bits) tempo pior é igual ou pior do que um somador ripple carry subtractores em complemento para dois basta complementar o subtractor trocar todos os bits (com XOR) e adicionar 1 fazendo C -1 =1 melhor implementação depende da tecnologia em FPGAs XC4000 e usando fast carry logic, um ripple carry do que carry select ou lookahead carry arquitecturas mais eficientes com portas complexas CMOS ou transistores 76
39 Síntese do datapath - operadores aritméticos Multiplicação binária multiplicação de números com sinal x sem sinal 1101 (13) 0101 (5) 1101 complemento para dois (-3) (5) (65-15) facilmente tratados com representação em sinal e magnitude o produto é negativo se os operandos tiverem sinais diferentes positivo caso contrário custo: complementar os operandos e o resultado 77 Síntese do datapath - operadores aritméticos Multiplicador iterativo (shift-add) multiplicando=md[m-1:0], multiplicador=mr[n-1:0] Acc[m+n:0] = 0 para cada bit k do multiplicador desde 0 até n-1 se Mr k = = 1 Acc[m+n:n] = Acc[m+n-1:n] + Md[m-1:0] Acc = Acc >> 1 produto = Acc[m+n-1:0] exemplo: Md Mr k Mr k Acc oper add shift add shift add shift add shift 78
40 Síntese do datapath - operadores aritméticos Multiplicador shift-add implementação em cada ciclo, os m+1 bits do produto parcial são carregados em Acc o resultado parcial é deslocado para o registo que contém inicialmente Mr shr ld Acc shr ld n Mr Mr 0 ld Md m m+1 m n m bit adder P[m+n-1:0] 79 Síntese do datapath - operadores aritméticos Multiplicação binária em complemento para dois se só for negativo o multiplicando basta estender o sinal dos produtos parciais extensão de sinal 1101 x (-3) (5) (-15) 80
41 Síntese do datapath - operadores aritméticos Multiplicação binária em complemento para dois se o multiplicador for negativo basta subtrair o último produto parcial (é igual a zero se for positivo) recordando a representação de números em complemento para dois para um número positivo com m bits valor(x) = 0 + X m-2.2 m X X se for negativo valor(x) = -2 m + 2 m-1 + X m-2.2 m X X para os dois casos valor(x) = - X m-1.2 m-1 + X m-2.2 m X X bit de sinal X m-1 tem peso -2 m-1 81 Síntese do datapath - operadores aritméticos Multiplicação binária em complemento para dois se o multiplicador for negativo 0101 (5) x 1101 (-3) se o multiplicador for positivo, o último produto parcial é zero! (-15) e se ambos negativos 1101 (-3) x 1101 (-3) extensão de sinal (+9) somar os 3 produtos parciais subtraír o último produto parcial implementação: fácil incluir no multiplicador shift-add! somar os 3 produtos parciais subtraír o último produto parcial 82
42 Síntese do datapath - operadores aritméticos Multiplicador shift-add avaliação de k bits do multiplicador de cada vez (não sobrepostos) número de ciclos reduzido k vezes (shift de k bits de cada vez) exemplo para k=2 Mr1 Mr0 somar a Acc Md Md Md+Md aumento da complexidade do somador Acc m é necessário somar 3.Md somadores em cascata, tempo de atraso superior shr ld n Mr Mr 1 ld Mr 0 m m bit adder Md m m+1 bit adder m+2 2.Md m+1 83 Síntese do datapath - operadores aritméticos Multiplicação - recodificação de Booth pela propriedade: 2 i+k - 2 i = 2 i+k i+k i i pode substituir-se por i+k - 2 i objectivo: eliminar sequências de uns factores: factores: permite evitar em cada ciclo a soma de 3 operandos (2.Md+Md) 84
43 Síntese do datapath - operadores aritméticos Multiplicação - recodificação de Booth algoritmo percorrer todos os bits desde o lsb até encontrar um 1 trocar esse 1 por 1 e percorrer uns até encontrar um zero trocar esse 0 por 1 e continuar exemplo = = = = 985 tabela de recodificação, analisando 2 bits de cada vez é necessário acrescentar um bit zero à direita do lsb: b -1 =0 b i b i-1 z i valor caso cadeia de zeros fim dos uns inicio dos uns cadeia de uns 85 Síntese do datapath - operadores aritméticos Multiplicação - recodificação de Booth multiplicação com sinal: basta recodificar o multiplicador para cada bit do multiplicador se é 0 não soma nada se é 1 soma o multiplicando se é 1 soma o simétrico do multiplicando exemplo (-7) x (-5) = = = 1011 recodificar -5 (ver tabela) x x -5 -(-7)x2 0 +(0)x2 1 +(-7)x (-7)x =35 86
44 Síntese do datapath - operadores aritméticos Multiplicador de Booth iterativo multiplicador Mr acrescentado de um bit à direita: Mr -1 = 0 comparados dois bits de Mr de cada vez se b i = b i-1 desloca produto parcial (11 ou 00 0) se b i < b i-1 soma Md e desloca produto parcial (01 1) se b i > b i-1 subtrai Md e desloca produto parcial (10 1) deslocamento aritmético do produto exemplo: Mr = -3 (1101) Md = +7 (0111) Mr Mr -1 opr. produto Síntese do datapath - operadores aritméticos Multiplicador de Booth recodificando pares de bits em dígitos com sinal são analisados 3 bits de cada vez cada par de bits produz uma multiplicação por 0, +1, +2, -1 ou -2 reduz para metade o número de iterações tabela de recodificação b i b i-1 b i-2 z i z i-1 valor caso cadeia de zeros fim de uns isolado fim de uns início de uns zero isolado início de uns cadeia de uns 88
45 Síntese do datapath - operadores aritméticos Multiplicação paralela (unsigned) x a4 a3 a2 a1 a0 b4 b3 b2 b1 b0 a4.b0 a3.b0 a2.b0 a1.b0 a0.b0 a4.b1 a3.b1 a2.b1 a1.b1 a0.b1 a4.b2 a3.b2 a2.b2 a1.b2 a0.b2 a4.b3 a3.b3 a2.b3 a1.b3 a0.b3 a4.b4 a3.b4 a2.b4 a1.b4 a0.b4 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 89 Síntese do datapath - operadores aritméticos array multiplicador (unsigned) cada nó é um full adder Cout A FA S Cin B a2.b4 a0.b4 a0.b3 a0.b2 a0.b1 a0.b a1.b4 FA a1.b3 FA a1.b2 FA a1.b1 FA a1.b0 FA a2.b3 FA a2.b2 FA a2.b1 FA a2.b0 a3.b4 FA FA FA FA a3.b3 a3.b2 a3.b1 a3.b0 a4.b4 FA FA FA FA a4.b3 a4.b2 a4.b1 a4.b0 FA FA FA FA 0 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 90
46 Síntese do datapath - operadores aritméticos multiplicação paralela (signed) termos de soma negativos bit de sinal (peso -2 4 ) (a4.b0) a3.b0 a2.b0 a1.b0 a0.b0 (a4.b1) a3.b1 a2.b1 a1.b1 a0.b1 (a4.b2) a3.b2 a2.b2 a1.b2 a0.b2 (a4.b3) a3.b3 a2.b3 a1.b3 a0.b3 a4.b4 (a3.b4) (a2.b4) (a1.b4) (a0.b4) x (a4) a3 a2 a1 a0 (b4) b3 b2 b1 b0 (p9) p8 p7 p6 p5 p4 p3 p2 p1 p0 91 Síntese do datapath - operadores aritméticos array multiplicador de Pezaris (nxn, signed) 4 tipos de full adders diferentes FA0, FA1, FA2, FA3 a1.b4 a0.b4 a0.b3 a0.b2 a0.b FA2 FA0 FA0 FA0 a1.b3 a1.b2 a1.b1 a1.b0 a0.b0 a2.b4 FA2 FA0 FA0 FA0 a2.b3 a2.b2 a2.b1 a2.b0 a3.b4 FA2 FA0 FA0 FA0 a3.b3 a3.b2 a3.b1 a3.b0 a4.b4 FA3 a4.b3 FA1 FA1 FA1 a4.b2 a4.b1 a4.b0 FA2 FA2 FA2 FA2 0 (p9) p8 p7 p6 p5 p4 p3 p2 p1 p0 92
47 Síntese do datapath - operadores aritméticos multiplicador bi-secção (signed) separando os termos positivos dos negativos secção positiva secção negativa a3.b0 a2.b0 a1.b0 a0.b0 a3.b1 a2.b1 a1.b1 a0.b1 a3.b2 a2.b2 a1.b2 a0.b2 a4.b4 0 a3.b3 a2.b3 a1.b3 a0.b3 (a4.b3) (a4.b2) (a4.b1) (a4.b0) (a3.b4) (a2.b4) (a1.b4) (a0.b4) x (a4) a3 a2 a1 a0 (b4) b3 b2 b1 b0 (p9) p8 p7 p6 p5 p4 p3 p2 p1 p0 93 Síntese do datapath - operadores aritméticos multiplicador bi-secção só dois tipos de full-adders fácil de expandir para mxn a1.b3 a0.b3 a0.b2 a0.b1 a0.b FA0 a1.b2 FA0 a1.b1 FA0 a1.b0 secção positiva secção negativa a2.b3 FA0 FA0 FA0 a2.b2 a2.b1 a3.b3 FA0 FA0 FA0 a3.b2 a3.b1 a3.b0 FA0 FA0 FA0 0 a2.b0 a3.b4 a2.b4 a1.b4 a0.b4 a4.b4 FA2 a4.b3 FA2 FA2 FA2 a4.b2 a4.b1 a4.b0 FA2 FA2 FA2 FA2 0 (p9) p8 p7 p6 p5 p4 p3 p2 p1 p0 94
48 Síntese do datapath - operadores aritméticos divisão binária processo parecido com a multiplicação: shift-subtract o resultado de uma subtração define a próxima operação dependência série entre as várias operações mais complexo do que a multiplicação exemplo (unsigned): 147/11=13, 147%11=4 dividendo subtrai divisor resto divisor 1 < < < 1011 quociente 95 Síntese do datapath - operadores aritméticos divisão binária (unsigned) - algoritmo A=0; // fica com o resto, n bits M=Divisor; // n bits Q=Dividendo; // fica com o quociente, m bits cnt=m; repeat A Q {A,Q} = {A,Q} << 1; A = A - M; if (A<0) Q[0] = 1; else resto dividendo begin Q[0] = 0; A = A + M; end cnt = cnt - 1; until (cnt==0); quociente 96
49 Síntese do datapath - operadores aritméticos divisão binária (signed) - algoritmo M=Divisor; // n bits {A,Q}=Dividendo; // com extensão de sinal, n+m bits // A fica com o resto, n bits cnt=m; // número de bits do dividendo sd = sign({a,q});// sinal do dividendo repeat {A,Q} = {A,Q} << 1; sa = sign(a); A0 = A; if ( sign(a) == sign(m) ) A = A - M; else A = A + M; if ( sign(a) == sa ( A == 0 && Q == 0 ) ) Q[0] = 1; else begin Q[0] = 0; A = A0; quociente é zero, restaura o valor de A end cnt = cnt - 1; until (cnt==0); if (sd!= sign(m) ) Q = -Q; 97 Síntese do datapath - operadores aritméticos divisão binária - exemplo (signed) -7 / 3 = -2-7 % 3 = -1-7 = = = = valor inicial, extensão do sinal shift e guarda A M e A com sinais diferentes, soma M a A 0010 o resultado trocou o sinal de A Q[0]=0, restaura o valor de A shift e guarda A M e A com sinais diferentes, soma M a A 0001 o resultado trocou o sinal de A Q[0]=0, restaura o valor de A shift e guarda A M e A com sinais diferentes, soma M a A 1111 o resultado não trocou o sinal de A Q[0]= shift e guarda A M e A com sinais diferentes, soma M a A 1111 o resultado trocou o sinal de A Q[0]=0, restaura o valor de A dividendo e divisor com sinais opostos troca o sinal do quociente: Q=-2, R=-1 98
50 Síntese do datapath - operadores aritméticos Divisor paralelo Array divisor (nonrestoring) divisor dividendo CAS Controlled Add/Subtract B i A i n 6 n 5 n 4 n 3 d 3 d 2 d 1 d 0 q 3 1 CAS CAS CAS CAS n 2 P P q 2 CAS CAS CAS CAS n 1 C i+1 FA C i q 1 CAS CAS CAS CAS n 0 S i B i q 0 CAS CAS CAS CAS quociente resto r 3 r 2 r 1 r 0 99 Síntese do datapath - operadores aritméticos Outros operadores quadrado AxA é mais eficiente do que a multiplicação operandos constantes propagando a constante para HW os operadores são simplificados multiplicação traduzida em shifts, adições e subtracções raíz quadrada funções trignométricas e logarítmicas tabeladas ou desenvolvidas em série operadores específicos inexistentes em processadores convencionais optimizados para uma aplicação 100
51 Teste de sistemas digitais Definição determinar se um sistema (fabricado) funciona correctamente aplicar estímulos seleccionados observar as respostas compará-las com as respostas esperadas Níveis de hierarquia sistemas - interligação de cartas de circuito impresso defeitos em cartas ou interligações cartas - interligação de componentes defeitos nas interligações, componentes mal colocados componentes (chips) - interligações de transistores defeitos nos contactos, curto circuitos ou circuitos abertos nas pistas Baseado em Digital Systems Testing and Testable Design, M. Abramovici, M.A. Breuer, A.D. Friedman, Computer Science Press, Testar quando? O teste de um CI pode ser feito na wafer contactos directos aos pads ou outros pontos de teste após o encapsulamento pelos terminais do CI após a inserção numa carta usando autoteste ou infraestruturas residentes para teste integrado num sistema antes da distribuição teste pós-produção integrado num sistema após instalação no utilizador final field test 102
52 Testar quando? Quanto mais cedo melhor custo de detectar uma falta wafer $ $0.1 CI encapsulado $0.1 - $1 carta $1 - $10 sistema $10 - $100 utilizador $100 - $1000 aumento de 10x 103 Tipos de teste Quando é realizado o teste? em simultâneo com a operação do sistema (on-line, concurrent) como uma actividade separada (off-line) O que se procura com o teste? erros de projecto (design verification testing) erros de fabrico (acceptance testing) defeitos de fabrico, falhas no processo (burn-in) falhas físicas infantis (quality assurance testing) falhas físicas, factores externos (field testing, maintenance) permanentes, intermitentes, transitórias envelhecimento, radiações, temperatura, humidade, vibrações 104
53 Tipos de teste Que fonte de estímulos, quem verifica resultados? produzida pelo próprio sistema (self testing) proveniente de um equipamento externo dedicado (external testing) Como são produzidos os estímulos e respostas? armazenados em memória (stored pattern testing) produzidos durante o teste (algorithmic testing, comparision testing) Como são aplicados os estímulos? numa ordem pré-determinada (non-adaptative testing) dependendo dos resultados obtidos (adaptative testing) Que rapidez de aplicação dos estímulos? muito mais lentos do que em funcionamento normal (DC ou static) à velocidade normal de funcionamento (AC- ou at-speed testing) 105 Tipos de teste Que resultados são observados? as respostas de todas as saídas uma função da resposta (compact testing) Que sinais são usados para teste? só os terminais de entrada e saída (edge-pin testing, GO/NO GO) terminais de E/S e nós internos guided probe testing - ao nível da carta, localizar falhas bed of nails - contacto directo a nós internos in-circuit - isolar componentes montados numa carta in-circuit emulation - substituir um componente por um testador (µp) 106
54 Teste funcional e teste estrutural Teste funcional verificar que o projecto do circuito implementa a especificação ao nível funcional, RTL ou lógico verificar que o circuito realiza a função pretendida após a sua implementação na tecnologia alvo Teste estrutural verificar que os componentes do sistema funcionam verificar que as interligações entre os componentes funcionam 107 Qualidade e fiabilidade Qualidade satisfação de especificações funcionais, eléctricas e físicas projecto e manufactura qualidade de materiais controlo do yield Fiabilidade capacidade de um componente cumprir a sua função em condições determinadas e durante um período de vida especificado 108
55 Yield e nível de defeitos matéria prima fabrico fabricados teste enviados (bons e avariados) rejeitados (dados como avariados) Yield (processo de fabrico) Y = nº componentes bons nº componentes fabricados nível de defeitos (no cliente) DL = nº componentes defeituosos nº de componentes enviados 109 Modelos de faltas Defeitos físicos manifestam-se como falhas ao nível eléctrico (curto circuito, circuito aberto) falhas ao nível lógico (trocas de zero por uns) Modelos de faltas representação da forma como um defeito físico afecta o comportamento em diferentes níveis de abstração (RTL, lógico ou eléctrico) o mesmo defeito físico é representado por diferentes modelos modelos de faltas realistas conhecimento dos mecanismos físicos e eléctricos que podem causar faltas fundamentais para a geração eficaz de estímulos de teste estímulos de teste activar uma falta e propagar o seu efeito para um ponto observável (saída) 110
56 Cobertura de faltas Teste exaustivo é impraticável circuito com N entradas 2 N vectores (N=75, 1µs/vector = 1.2G anos) Estímulos de teste conjunto limitado de valores para as entradas objectivo: detectar resultados errados para qualquer falta no circuito modelos de faltas simplificados admite-se uma só falta de cada vez do tipo stuck-at-1, stuck-at-0 Cobertura de faltas FC = nº faltas detectadas nº faltas consideradas x 100% 111 Yield - Defect level - Defect coverage DL = 1 - Y (1-DC) DC = nº faltas detectadas nº faltas possíveis x 100% nível de defeitos (DL) Y=1% Y=10% Y=25% 0.5 Y=50% Y=75% Y=90% Y=99% cobertura de defeitos (DC) (DC <= FC) 112
57 Modelo de faltas Single Stuck-at Modela uma falta como colagem de um nó a 1 ou 0 considera que não ocorrem várias faltas simultâneamente estímulos de teste devem produzir saídas erradas se o nó em análise estiver sempre a 1 ou sempre a 0 vantagens simplicidade traduz o comportamento (ao nível lógico) de muitas falhas físicas independente da tecnologia possibilita o tratamento matemático do teste (geração de estímulos) testes criados para SSF também detectam outros tipos de faltas (MSF) num circuito combinacional grande, o número de faltas SS n F 2.G.f G = número de portas lógicas, f = fanout médio 113 Geração de testes (faltas lógicas) Um vector de teste t detecta uma falta se a saída do circuito for diferente com a falta e sem a falta Teste de um circuito lógico conjunto T de vectores de teste aplicados em sequência num circuito combinacional podem ser aplicados em qualquer ordem detecção de uma falta activar a falta - forçar nesse nó um valor diferente do imposto pela falta propagar o erro para a saída - conduzir a valores diferentes na saída exemplo: a b c d sa1 0/ /1 0/1 114
58 Faltas indetectáveis Detecção de faltas não são detectadas por nenhum vector de teste invalidam a assumpção de considerar uma só falta de cada vez todas as faltas stuck-at de um circuito não-redundante (simplificado) são detectáveis Equivalência funcional duas faltas f e g são funcionalmente equivalentes se Z f (x) = Z g (x) nenhum teste distingue duas faltas funcionalmente equivalentes basta considerar uma falta de cada classe (equivalence fault collapsing) Localização de faltas para além de detectar, interessa saber a que classe pertence uma falta 115 Equivalência funcional e estrutural Equivalência funcional com o modelo SSA determinar a equivalência entre faltas é um problema NP-completo solução é calcular a resposta do circuito com uma e outra falta Equivalência estrutural um circuito com uma SSF pode ser simplificado removendo todas as linhas (excepto entradas) que ficam constantes com a presença da falta duas faltas são estruturalmente equivalentes se os circuitos simplificados forem idênticos faltas estruturalmente equivalentes são funcionalmente equivalentes equivalência estrutural pode ser determinada por uma análise local da estrutura do circuito 116
59 Simulação de faltas Simular o circuito na presença de faltas Avaliar a qualidade de um teste determinar a cobertura de faltas ( FC >= DC) Geração de testes construir, modificar e avaliar testes para obter uma dada cobertura Construção de diccionários de faltas identificar faltas pelas respostas do circuito Análise do comportamento na presença de faltas em que medida uma falta afecta o comportamento do circuito? 117 Simulação de faltas Simulação série o circuito é acrescentado de uma falta de cada vez e simulado processo lento, repetido para cada falta requer apenas um simulador lógico possibilita a simulação de qualquer tipo de falta é impraticável para simular um número grande de faltas Simulação paralela simulação em paralelo de N circuitos, cada um com uma falta introduzida número de iterações (simulações) é reduzido N vezes é mantida uma lista com os estados de cada nó na presença de cada falta para um nó i faltas consideradas k ssa-1 k ssa-0 l ssa-1 l ssa-1 resposta do circuito bom 118
60 Simulação de faltas Deductive simula o circuito bom e deduz o comportamento de todos os circuitos faltosos (conjunto de faltas considerado) em cada nó i é mantida uma lista Li das faltas observáveis nesse nó o valor de i é diferente para o circuito bom e para o circuito faltoso se i é uma saída primária, Li é o conjunto de faltas detectáveis em i para o exemplo apresentado no slide anterior: Li = {1,5,6,8} operação básica para simular um elemento lógico dados os valores das entradas sem faltas e a lista de faltas para cada entrada, calcular a saída sem falta e a lista de faltas na saída. simulador propaga eventos de modificação das listas de faltas 119 Simulação de faltas Concorrente numa simulação de faltas, a maior parte dos valores nos circuitos faltosos N f é igual aos do circuito bom N simulação concorrente: simula o circuito bom para cada circuito N f são simulados apenas os elementos que diferem de N durante a simulação e para cada elemento x em N (x f em N f ) a lista Vx (Vx f ) das entradas, saídas e estados internos de x (x f ) a lista CLx representa todos os elementos x f que são diferentes de x porque Vx Vx f : a falta f foi propagada para as entradas ou saídas de x porque a falta f é local a x f, mesmo se Vx = Vx f (falta f não activada) cada entrada em CLx tem a forma (f, Vx f ) 120
61 Geração de testes Geração de testes - problema complexo custo requerido para construir e avaliar a qualidade do teste depende da complexidade do circuito - design for testability random test generation (RTG) - testes gerados aleatóriamente deterministic test generation - usa um modelo do circuito geração manual ou automática de testes testes gerados para uma falta específica ou sem definir qualquer falta qualidade do teste número de faltas que podem ser detectadas - fault coverage (FC) extensão do teste: para a mesma FC, quanto mais curto melhor. custo da aplicação do teste tempo de aplicação do teste, tempo de processamento das respostas requisitos de memória do testador 121 Geração automática de testes (ATG) Faltas SSF em circuitos combinacionais fan-out free passos básicos para gerar uma falta l do tipo s-a-v definir entradas primárias que activem a falta: forçar v nesse nó propagar o erro para uma saída primária para cada sinal considera-se um par de valores, com e sem a falta v/vf 0/0 0 1/1 1 1/0 D 0/1 D situações de erro operações lógicas: processando separadamente os dois valores D. 1 = 1/0. 1/1 = 1.1/0.1 = 1/0 = D operações são consistentes com a álgebra booleana D.D = 0, D+D = 1, D+D = D.D = D, D.D = D+D = D 122
62 ATG para SSF (combinacionais, fan-out free) Algoritmo para gerar um teste para l s-a-v justify(l,v) propagate(l,d) set all values to x (undefined logic value) justify(l,v) if (v == 0) propagate(l,d) else propagate(l,d) determina as entradas primárias que forçam v no nó l propaga D de l para uma saída primária, determinando os valores necessários para as entradas primárias a b c d e f s-a-0 g h i j inicial: justify(f,1); propagate(f,d) justify(f,1): a=1; b=1 propagate(f,d): justify(g,0); propagate(h,d) justify(g,0): c=0; d=x propagate(h,d): justify(i,1) justify(i,1): e=0 Teste para f s-a-0: 110x0 123 ATG para SSF(combinacionais, fan-out) Em circuitos fan-out free problemas justify() podem ser resolvidos independentemente os conjuntos de entradas definidas por cada são mutuamente exclusivos Em circuitos com fan-out objectivos básicos iguais: activar uma falta e propagar o erro activar uma falta l s-a-v consiste em justificar v em l propagar o erro: vários caminhos até à saída, escolher um. dificuldade: em geral os problemas justify não são independentes necessário backtracking quando são encontradas inconsistências exploração sistemática do espaço de soluções (enumeração implícita) se existir, encontra um teste se falhar, não há teste que detecte a falta considerada 124
63 ATG para SSF(combinacionais, fan-out) Algoritmo recursivo para ATG solve() if imply_and_check() = FAIL return FAIL if (error at PO and all lines justified) return SUCCESS if (no error can be propagated to a PO) return FAIL select an unsolved problem repeat select one untried way to solve it if Solve() = SUCCESS return SUCCESS until all ways to solve the problem have been tried return FAIL imply_and_check( ) encontra a solução para os problemas que podem ser resolvidos por implicação verifica a consistência do resultado em circuitos fan-out free encontra a solução 125 ATG - exemplo d a b c f s-a-1 g2 g1 f1 f2 e g3 g4 activar f implica justificar g1=0 justificar g1=0 implica a=b=c=1 o erro pode ser propagado para f1 ou f2 escolhendo f1 é necessário justificar g2=1 justificar g2=1 implica d=a=0: inconsistência com a=1 para justificar g1=0 backtrack: propagar a falta para f2, implica justificar g4=1 justificar g4=1 implica c=1, e=0 teste para f f s-a-1: abcde=111x0 126
Projecto de Circuitos e Sistemas Digitais (MEEC1078) Mestrado em Engenharia Electrotécnica e de Computadores. (Informática Industrial)
Projecto de Circuitos e Sistemas Digitais (MEEC1078) Mestrado em Engenharia Electrotécnica e de Computadores (Informática Industrial) Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia
Modelação de máquinas de estados
Modelação de máquinas de estados FSM (Finite State Machine) sequência determinada de estados, síncrono com relógio estrutura geral saídas (Moore) entradas saída saídas (Mealy) saída saídas (Moore) reset
Síntese do datapath. Sistemas Digitais síncronos
Síntese do datapath S.D. - controlo e processamento de informação unidade de processamento (datapath) processamento e comunicação de dados registos, ALUs, outros operadores dedicados (FUs), barramentos
Linguagens de descrição de hardware. Modelação de um circuito (digital)
Linguagens de descrição de hardware Modelação de um circuito (digital) descrições comportamentais permitem nível elevado de abstracção metodologia top-down: ferramentas de síntese automática representação
Síntese do datapath. Sistemas Digitais síncronos
Síntese do datapath S.D. - e prossamento de informação unidade de prossamento (datapath) prossamento e comunicação de dados registos, ALUs, outros operadores dedicados (FUs), barramentos activa os elementos
Projecto de Sistemas Digitais - EEC0055 4º ano, 1º semestre /08
Mestrado Integrado em Engenharia Electrotécnica e de Computadores FEUP Projecto de Sistemas Digitais - EEC0055 4º ano, 1º semestre - 2007/08 António José Duarte Araújo Projecto de Sistemas Digitais Fluxo
Computadores dedicados
Computadores dedicados CPU processador de usos gerais produção em larga escala, baixo custo ASIP processador para uma área de aplicação desenvolvimento ASIC circuito dedicado para uma aplicação circuito
1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5
PREFÁCIO 1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO 1 1.1 Bases de Numeração 3 1.1.1 Representação de Números Inteiros em Base b 3 1.1.2 Representação de Números em Base 2 5 1.1.3 Representação de Números Fraccionários
FPGA & VHDL. Tutorial
FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves
Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)
Sistemas Digitais Linguagem Verilog Monitoria SD 2011.2 Daniel Alexandro/Reniê Delgado/Vanessa Ogg Editado por (DARA) Introdução Verilog é uma linguagem, como VHDL, largamente usada para descrever sistemas
Circuitos combinatórios. (Revisão)
Circuitos combinatórios (Revisão) João Canas Ferreira Arquitectura de Computadores FEUP/MIEIC Contém figuras de Computer Organization and Design, D. Patterson & J. Hennessey, 3 a ed., MKP Tópicos Modelação
Introdução a Sistemas Digitais
Introdução a Sistemas Digitais Definição Sistemas Digitais Projeto Revisão: Circuitos Combinacionais Circuitos Sequênciais Máquinas de Estados Sistemas Digitais Definição Um sistema digital é um sistema
FPGA & VHDL. Tutorial Aula 1. Computação Digital
FPGA & VHDL Tutorial Aula 1 Computação Digital FPGA Field Programmable Gate Array Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programáveis ) para desempenhar uma
Dispositivos de Lógica Programável
Dispositivos de Lógica Programável Evolução Válvula no início de 1940 Transistor em 1947 Não aquece como as válvulas Fisicamente menor 1961 primeiro integrado TTL 74LSXX Década de 1970 surge SPLD Simple
Sistemas Digitais I LESI :: 2º ano. Introdução
Sistemas Digitais I LESI :: 2º ano Introdução António Joaquim Esteves João Miguel Fernandes www.di.uminho.pt/~aje Bibliografia: capítulo 1, DDPP, Wakerly DEP. DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE
Sistemas Digitais (SD) Lógica Programável
Sistemas Digitais (SD) Lógica Programável Aula Anterior Na aula anterior: Circuitos de controlo, transferência e processamento de dados Exemplo de uma arquitectura simples de um processador Prof. Nuno
Sistemas Digitais (SD) Lógica Programável
Sistemas Digitais (SD) Lógica Programável Aula Anterior n Na aula anterior: u Circuitos de controlo, transferência e processamento de dados u Exemplo de uma arquitectura simples de um processador 2 Planeamento
Xilinx ISE. O projecto
Xilinx ISE Demonstração do sistema de projecto Especificar um circuito digital em Verilog Simular o funcionamento do circuito Sintetizar o circuito Traduz o código Verilog para um circuito Simplifica o
Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno
Fundamentos de Sistemas Digitais Lógica Sequencial Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno 2 Referências Sugiro estudarem nesta ordem de preferência: Floyd, Cap 7 até 7.4, 9, 10. Não tem
FCA - Editora de Informática xv
Índice Geral Agradecimentos ix Prefácio xi Índice das Simulações xxv 1 - Introdução ao mundo dos computadores 1 1.1 O computador como ferramenta... 2 1.2 A importância dos computadores... 4 1.3 Processamento
O Mundo Real é Analógico ou Digital?
Analógico / Digital O Mundo Real é Analógico ou Digital? O que define uma grandeza analógica? Os sinais analógicos podem tomar qualquer valor num intervalo contínuo de tensão, corrente, resistência ou
Hardware Reconfigurável
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Hardware Reconfigurável DCA0119 Sistemas Digitais Heitor Medeiros Florencio Tópicos Alternativas de projeto
Treinamento em Projeto de Sistemas Digitais
Treinamento em Projeto de Sistemas Digitais Projetando Sistemas Digitais com SystemVerilog Edna Barros Grupo de Engenharia da Computação Centro de Informática -UFPE Treinamento em Projeto de Sistemas Digitais
2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29
Índice Geral Agradecimentos... vii Prefácio... ix Índice Geral... xiii Índice das Simulações... xxiii Índice das Figuras... xxvii Índice das Tabelas... xli Índice dos Programas... li 1 - Introdução ao
Síntese de Sistemas Digitais
Síntese de Sistemas Digitais estrutural processadores, memórias registos, muxs portas lógicas transistores sistema RTL alto nível (behavioral) lógico dispositivo físico RTL níveis de abstracção lógica
VHDL Circuitos Combinacionais
VHDL Circuitos Combinacionais Neste módulo será feita uma revisão de circuitos combinacionais introduzindose alternativas representações em VHDL Uma descrição VHDL, de forma geral, pode seguir uma das
Laboratório 6 (Trabalho com Relatório) Semana 25 de Outubro a 29 de Outubro
Laboratório 6 (Trabalho com Relatório) Semana 25 de Outubro a 29 de Outubro Realização de módulo somador-subtractor. Utilização de ambiente Xilinx WebPack de edição de esquemáticos e simulação. Realização
Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture
Capítulo 3 Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer alguns dos principais circuitos digitais sequenciais
Sistemas Digitais (SD)
Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Circuitos de Controlo, Transferência e Processamento de Dados Entradas de controlo Saídas de controlo Unidade de controlo Palavra de controlo
Capítulo 6 Aritmética Digital: Operações e Circuitos
Capítulo 6 Aritmética Digital: Operações e Circuitos slide 1 Temas abordados nesse capítulo: - Adição, subtração, multiplicação e divisão de dois binários. - Diferença entre soma binária e soma OR. - Vantagens
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 2.0 - Português Aula N o 23: Título: Sumário: Máquinas de Estado Microprogramadas: Circuitos de Controlo, Transferência e Processamento de
Arquitectura de Computadores LEEC/MEEC (2006/07 2º Sem.)
LEEC/MEEC (2006/07 2º Sem.) Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico Sumário Introdução Unidade de Controlo Conjunto de Instruções Unidade Central de Processamento
Eletrônica Digital para Instrumentação. Herman Lima Jr.
G03 Eletrônica Digital para Instrumentação Prof: [email protected] Centro Brasileiro de Pesquisas Físicas Ministério da Ciência, Tecnologia e Inovação (MCTI) Parâmetros de circuitos integrados lógicos Dispositivos
Introdução aos circuitos integrados de aplicação específica
Introdução aos circuitos integrados de aplicação específica João Canas Ferreira 2007-09-17 Tópicos de Projecto de VLSI digital Assuntos Tópicos 1 2 Circuitos programáveis 3 Fluxo de projecto Contém figuras
Capítulo13 Arquiteturas de Dispositivos Lógicos Programáveis Pearson. Todos os direitos reservados.
Capítulo13 Arquiteturas de Dispositivos Lógicos Programáveis slide 1 Temas abordados nesse capítulo: - Descrever as diferentes categorias de dispositivos de sistemas digitais. - Descrever os diferentes
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 3.0 - Português Aula N o 22: Título: Sumário: Máquinas de Estado Microprogramadas: Circuito de Dados e Circuito de Controlo Projecto de máquinas
Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC
Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Linguagem para descrever o funcionamento de um sistema (o que e como o sistema faz). O sistema descrito em HDL
Introdução aos Circuitos Integrados de Aplicação Específica
Introdução aos Circuitos Integrados de Aplicação Específica João Canas Ferreira Projecto de Circuitos VLSI FEUP/LEEC Contém figuras de Application-Specific Integrated Circuits, Michael J. S. Smith, Addison-Wesley
Projecto de Sistemas Digitais
Departamento de Engenharia Electrotécnica e de Computadores Duração máxima: 60 minutos, sem consulta. Projecto de Sistemas Digitais 4º ano - 1º semestre 2º miniteste 17 de Dezembro 2007 NOME: [5 valores]
Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v
CIRCUITOS SEQUENCIAIS ESTRUTURA GERAL Varáveis de entrada Variáveis de saída Variáveis de estado Circ. combinatório Memória Circuito Combinatório Memória Actual Seguinte CIRCUITOS SEQUENCIAIS Exemplo :
Introdução ao VHDL. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva. Original por Ayman Wahba
Introdução ao VHDL Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva Original por Ayman Wahba VHDL É uma linguaguem de descrição de hardware, ou seja, uma forma estruturada para a descrição de circuitos
Aula 11. Dispositivos Lógicos Programáveis. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira
Aula 11 Dispositivos Lógicos Programáveis SEL 0414 - Sistemas Digitais Prof. Dr. Marcelo Andrade da Costa Vieira 1. Características Gerais l PLD Programmable Logical Device; l Agrupa um grande número de
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 3.0 - Português Aula N o 11: Título: Sumário: Circuitos combinatórios: (ULA). 2014/2015 [email protected] Sistemas Digitais (SD)
Calculadora Simples em VHDL
Calculadora Simples em VHDL Versão 2014 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware. São apresentados
Parte # 2 - Circuitos Combinatórios
CEFET Departamento de Engenharia Elétrica - DEPEL GELE 7163 Eletrônica Digital Parte # 2 - Circuitos Combinatórios 1 GELE 7163 Eletrônica Digital 2 Referências : Notas de Aula. Mendonça, Alexandre e Zelenovsky,
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS DLP. 15/8/2013 Prof. Joselito ELP1DLP1 / npee / DEE 1
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS DLP 15/8/2013 Prof. Joselito ELP1DLP1 / npee / DEE 1 1. FAMILIAS DE CIRCUITOS LÓGICOS DIGITAIS 1.1. Família Lógica TTL 1.2. Família Lógica MOS/CMOS 15/8/2013 Prof. Joselito
Sistemas Digitais (SD)
Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Circuitos de Controlo, Transferência e Processamento de Dados Entradas de controlo Saídas de controlo Unidade de controlo Palavra de controlo
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 23: Título: Sumário: Máquinas de Estado Microprogramadas: Endereçamento Expĺıcito/Impĺıcito Projecto de máquinas
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 11: Título: Sumário: Circuitos combinatórios: Unidade Lógica e Aritmética Unidade Lógica e Aritmética (ULA). 2015/2016
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Introdução ao VHDL César A. M. Marcon VHDL Uma Linguagem de Descrição de Hardware 2 Originou como linguagem para descrever hardware, no contexto do programa
Introdução à Linguagem VHDL
Fundamentos de Sistemas Digitais Introdução à Linguagem VHDL prof. Dr. Alexandre M. Amory Referências Sugiro estudarem nesta ordem de preferência: Vahid, Cap 9 Ignorar verilog e SystemC Bem didático! um
Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis
Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Versão 2012 RESUMO Nesta experiência será apresentada uma metodologia estruturada para projeto de sistemas digitais utilizando FPGAs
Projeto Moderno de Sistemas Digitais
Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos Projeto Convencional Projeto com HDLs e FPGAs Fluxo de Projeto Moderno Codificação em HDLs Altera DE2 Digilent Nexys 3 2 Tecnologias de Lógica
ELD - Eletrônica Digital Aula 11 Introdução à Lógica Programável. Prof. Antonio Heronaldo de Sousa
ELD - Eletrônica Digital Aula 11 Introdução à Lógica Programável Prof. Antonio Heronaldo de Sousa Agenda - Introdução - Lógica Programável - Dispositivos de Lógica Programável - Arranjos Lógicos Programáveis
Projeto com Linguagens de Descrição de Hardware
Projeto com Linguagens de Descrição de Hardware Versão 2012 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware.
Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis
Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Versão 2013 RESUMO Nesta experiência será desenvolvido um projeto de sistema digital em um dispositivo programável (FPGA) com a
Montagem, testes, depuração e documentação de circuitos digitais
Montagem, testes, depuração e documentação de circuitos digitais Versão 2012 RESUMO Esta experiência tem como objetivo um contato inicial com técnicas de montagem, teste e depuração de circuitos digitais.
Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA
Introdução VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits Origem: Departamento de Defesa EUA desenvolvida entre anos 70 e 80 descrever e modelar circuitos complexos
1. Sistemas de numeração e códigos 23
Sumário 1. Sistemas de numeração e códigos 23 1.1. Conceitos fundamentais 23 1.2. Representações numéricas 24 1.3. Representação de dados numéricos 25 1.4. Sistemas de números e bases numéricas 27 1.4.1.
CALCULADORA SIMPLES COM ULA
CALCULADORA SIMPLES COM ULA Versão 2013 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam
Eletrónica Digital. Fundamentos e Projeto. Acxcro MANUEL RAPOSO AMARAL. EDIÇÕES SíLABO
Eletrónica Digital Fundamentos e Projeto Acxcro MANUEL RAPOSO AMARAL EDIÇÕES SíLABO , Indice Prefácio 13 Capítulo 1 Introdução 1.1. Abstração digital 1.2. Processo de conversão de um sinal analógico para
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS SEL 414 - Sistemas Digitais Prof. Homero Schiabel 1. Introdução Operação do circuito lógico pode ser descrita por: Tabela da Verdade Expressão booleana Dispositivo de
SISTEMAS DIGITAIS (SD)
SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 2.0 - Português Aula N o 18: Título: Sumário: Síntese de Circuitos Sequenciais: Minimização do Número de Estados Especificação e projecto
Exercícios de Laboratório 3
Tradução do Laboratory Exercise 3 disponível em Exercícios de Laboratório 3 Latches, Flip-Flops e Registradores Este exercício
low): Descreve o que o sistema deve fazer utilizando expressões lógicas.
Descrição por fluxo de dados (Data Data-Flow low): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição estrutural: Descreve como é o hardware em termos de interconexão de componentes.
Sistemas Digitais. PALs Sequenciais Parâmetros Temporais em PALs Sequenciais ABEL Registos Contadores Registos de Deslocamento ( Shift Registers )
PALs Sequenciais Parâmetros Temporais em PALs Sequenciais ABEL Registos Contadores Registos de Deslocamento ( Shift Registers ) 10ª aula 1-37 PALs Sequenciais 16R8 10ª aula 2-37 Uma Saída de 16R8 8 termos
Aula 2 Semântica de VHDL
VHDL - VHSIC Hardware Description Language Aula 2 Semântica de VHDL Leonardo Augusto Casillo Ivan Saraiva Silva 2003-2 Identificadores Usados como referência a todos os objetos declarados no código. Regras:
Prof. Leonardo Augusto Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 3 Introdução ao VHDL Prof. Leonardo Augusto Casillo O que significa VHDL? Very High Speed Integrated Circuit Hardware Description
Sistemas Digitais (SD) Circuitos combinatórios: somadores, subtractores e comparadores
Sistemas Digitais (SD) Circuitos combinatórios: somadores, subtractores e comparadores Aula Anterior Na aula anterior: Circuitos combinatórios típicos: Descodificadores Codificadores Multiplexers Demultiplexers
Revisão: Projeto e síntese de Circuitos Digitais em FPGA
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Revisão: Projeto e síntese de Circuitos Digitais em FPGA DCA0119 Sistemas Digitais Heitor Medeiros Florencio
Módulo 4 Introdução ao VHDL
1 Módulo 4 Introdução ao VHDL Conceitos básicos do VHDL Modelação, Simulação e Síntese de Sistemas Digitais entity declara o interface de um componente; architecture descreve a realização de um componente;
Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Circuito de Dados e Circuito de Controlo
Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Circuito de Dados e Circuito de Controlo Aula Anterior Na aula anterior: Memórias: Circuitos e tecnologias de memória: o RAM: Estática Dinâmica
