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 no qual os sinais têm um número finito de valores discretos, se contrapondo a sistemas analógicos nos quais os sinais têm valores pertencentes a um conjunto contínuo (infinito). x S (digital) y x S (analógico) y x x y t y t t t
Sistema Digitais Definição (cont.) Uma vez que os sinais do mundo físico são analógicos, é necessários convertê-los para sinais digitais e vice-versa sempre que os sinais digitais tenham que interagir com os sinais do meio físico. ADC Processamento de sinal e armazenamento DAC Successive Approximation Register (SAR)
Sistemas Digitais Projeto Aboradagem Descendente: decompõe o sistema em subsistemas que são por sua vez decompostos em subsistemas até atingir o níve de abtração desejado. Desafio: obter a decomposição adequada para cada nível para que no final os critérios de projeto (área, desempenho, potência) sejam atingidos. Descrição funcional Linguagens de descrição de hardware Módulos Abordagem Ascendente: conecta módulos disponíveis para formar subsistemas que por sua vez são conectados para formar subsistemas até que a especificação funcional seja satisfeita. Desafio: trabalhar com um conjunto muito grande de subsistemas pequenos para compor um sistema muito complexo. Layout Portas lógicas básicas e flip-flops transistores
Sistemas Digitais Projeto: Arbodagem Descendente Projeto de Sistemas Digitais usando fluxogramas, grafos, máquinas de estados e diagrama de blocos Descrição funcional Descrever o projeto em linguagens de descrição de hardware como por exemplo VHDL Usar ferramentas de síntese lógica para bibliotecas de células como o Leonardo da Mentor Usar ferramentas de síntese lógica para plataformas programaveis como FPGAs (Xilinx ISE, Altera uartus, Actel Libero). Módulos Portas lógicas básicas e flip-flops transistores Verificar funcionalmente através de simulação lógica com e sem atraso. Layout
Sistemas Digitais Projeto: Arbodagem Ascendente Projeto de somadores, multiplicadores e outros subsistemas combinacionais e sequenciais de alta eficiência em termos de área, desempenho e potência para uso em sistemas digitais complexos. Descrição funcional Módulos Descrever o projeto em linguagens de descrição de hardware como por exemplo VHDL ou em esquemático Portas lógicas básicas e flip-flops Verificar funcionalmente através de simulação lógica com e sem atraso. transistores Verificar elétricamente através de simulação elétrica (SPICE) Layout
Sistemas Digitais Projeto: considerações finais Levar em cosideração o projeto na abordagem descendente: ALGORITMO HARDWARE Chip... mas também a abordagem ascendente no momento de otimizar certos blocos e subsistemas no projeto final do sistema digital visando o melhor custo x benefício.
O que esperamos de um Sistema Digital? Fatores de evolução densidade de integração, área ocupada waffer consumo de potência freqüência de operação custo de fabricação
Wafer of Intel Itanium processors
Tipos de componentes Circuito de aplicação específica (ASIC): circuito integrado projetado especialmente para uma determinada função e sistema digital. Full-custom semi-custom Standard cell Chip Lógica programável (FPGAs): circuito que pode ser customizado e reprogramado para realizar diversas funções. Compromisso: Custo X tempo de projeto X desempenho
000000
Revisão: Circuitos Combinacionais Portas Lógicas Básicas S = E E S NOT S = E. E2 E E2 S NAND S = E + E2 E E2 S NOR E E2... En S XNOR E E2... En S XOR
Revisão: Circuitos Combinacionais Blocos lógicos Saída depende apenas das entradas A3 B3 A2 B2 A B A0 B0 Comparador de 4 bits (A3A2AA0 e B3B2BB0) comparador Decodificador de 2 bits (AA0) A A0 D3 D2 D D0
Revisão: Circuitos Combinacionais Blocos lógicos Saída depende apenas das entradas Multiplexador 4: A0 A 00 0 A3 S S0 A2 A3 0 mux A2 mux S S0 A 0 0 A0
Revisão: Circuitos Combinacionais Blocos lógicos Saída depende apenas das entradas S0 S Multiplexador 4: A0 00 A A2 0 0 mux A0 A3 A mux S S0 A2 0 0 A3
Revisão: Circuitos Combinacionais Blocos lógicos Somador de bit completo (Full-adder): FA: full adder
Revisão: Circuitos Combinacionais Blocos lógicos Somador Ripple-Carry A3 B3 A2 B2 A B A0 B0 Cin C2 C C0 C3 S3 S2 S S0
Revisão: Circuitos Combinacionais Blocos lógicos Somador Carry Look Ahead
Revisão: Circuitos Combinacionais Blocos lógicos Somador de n bits b3 a3 b2 a2 b a b0 a0 HA HA HA HA A a3 a2 a a0 B b3 b2 b b0 s4(cout) s3 s2 s s0 HA HA HA s0 HA: half adder HA HA s s2 HA s4 s3
Revisão: Circuitos Combinacionais Blocos lógicos Unidade Aritmética e Lógica (ULA) bit B0 B0 0 S S0 Função 0 0 soma A+B 0 subtração A-B 0 inversão de A comparação A0 0 C0 FA A0 S0 0 S F0
Revisão: Circuitos Combinacionais Blocos lógicos Unidade Aritmética e Lógica (ULA) n bit Bn B B0 Bn 0 S0 B 0 S0 B0 0 An 0 Cn FA An... A 0 C FA A A0 0 C0 FA A0 S0 0 S 0 S 0 S Fn F F0
Revisão: Circuitos Combinacionais Blocos lógicos Multiplicador b3 0 b2 0 b 0 b0 0 a0 b j sum in 0 a P0 a i 0 a2 P carry out FA carry in 0 a3 P2 sum out 0 P3 P7 P6 P5 P4
Revisão: Circuitos Sequênciais Latches: sensível ao nível do relógio () R S R S 0 0 0 0 set invalido R S R S 0 0 0 0 invalido set R S R S 0 0 0 0 0 X X set Invalido R S R S 0 0 0 0 0 0 0 0 X X invalido set
Revisão: Circuitos Sequênciais Latches: sensível ao nível do relógio () J K J K 0 0 0 0 set D D 0 0 X 0 J K J K 0 0 0 0 0 X X set D D 0 0 0 X 0
Revisão: Circuitos Sequênciais Flip-flops: sensível a borda do relógio () R S R S 0 0 0 0 X X X set Invalido D D 0 X X 0 J K J K 0 0 0 0 X X X set D D 0 X X 0
Revisão: Circuitos Sequênciais Registradores D D dado X X dado Reset síncrono D enable enable D X X X 0 dado 0 0 X X X X dado Reset assíncrono D enable enable D X X X X 0 dado 0 0 X 0 X X dado
Revisão: Circuitos Sequênciais Registradores Deslocamento enable D L/R D enable L/R X X X X 0 dado 0 0 0 X 0 0 X 0 0 X X X X X dado i<=i- i<=i+ LFSR: linear feedback shift register Uso de seed (semente)
Revisão: Circuitos Sequênciais Contadores D load D load X X X 0 dado 0 0 X X X X dado D enable D u/d enable u/d X X X X X 0 0 dado 0 0 0 X 0 X 0 0 X 0 X X X dado + -
Revisão: Máquinas de Estados Definição Uma máquina de estados é uma combinação de 5 elementos: (Σ, X, g, x0, F) Onde: Σ é um alfabeto finito X é um conjunto finito de estados g é a função de transição de estado g : X x Σ -> X X0 é o estado inicial, x0 X F é o conjunto de estados finais, F X.
Diagrama de Estados O diagrama de estados representa a máquina de estados finito e contem: Circulos: que representam os estados da máquina rotulados com o nome do estado e tambem ou não com sua codificação. Arcos diretos: que representam as transições entre estados rotulados com entradas/saídas para a transição de estados.
Máquina de Estados Finitos TIPO MOORE Saída depende apenas do estado atual. S0 A= Entradas A Lógica de próximo estado F= 0 ; A= 0 S estado A= 0 F= ; A= saídas F
Maquina de Estados Finitos TIPO MEALY Saída depende da entrada e do estado atual. Entradas A= F= 0 ; A Lógica de próximo Estado e saída F S0 A= 0 F= ; estado A= 0 S F= 0 ; A= F= ;
Maquina de Estados Finitos TIPO MEALY Solucionar problemas de estabilização Saída depende apenas do estado atual. A= F= 0 ; Entradas A Lógica de próximo Estado e saída F Saída S0 A= 0 F= ; estado A= 0 S F= 0 ; A= F= ;
Considerações sobre Diagramas de Estados Máquinas de estado (FSM) podem estar em apenas um estado por vez no tempo, logo há em apenas um estado ou circulo em um determinado tempo t. Transição de estados são permitidas apenas na transição de subida OU descida do relógio (), dependendo do elemento de armazenamento de estado (se é sensivel a borda de descida ou subida). FSM sincronas!!! A representação de máquinas de Mealy e Moore são diferentes como visto. Máquinas de Mealy, as entradas e saidas são definidas nos arcos (transições entre estados). Máquina de Moore, as entradas são definidas nos arcos (transições entre estados) e a saída é definida no estado (dentro do círculo).
Exercício: Projeto de uma máquina de estados até o hardware. Descrição do problema em diagrama de estados 2. Montagem da tabela de proximo estados e saída 3. Descrição do esquemático lógico da FSM Problema: Detector de sequência...0... Sinal A Saida D (detectou D=) Sinal de entrada deve ser amostrado...