» RAM /abr./: RARELY ADEQUATE MEMORY, BECAUSE THE MORE MEMORY A COMPUTER HAS, THE FASTER IT CAN PRODUCE ERROR MESSAGES « Anonymous TC – DEI, 2005/2006 Introdução aos Sistemas Digitais Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques Tecnologia dos Computadores 2005/2006 Domínios da Informação Um termómetro marca a temperatura numa escala real, contínua 0 1 1 0 1 0 Um computador manipula informação discreta, em termos de zeros e uns 74.53 ANALÓGICO DIGITAL TC – DEI, 2005/2006 Domínios da Informação (2) Nos sistemas electrónicos, tipicamente a informação é representada em termos de tensão num determinado ponto do circuito Tensão (V) Tensão (V) +5V (H ou 1) 0V (L ou 0) Tempo (s) ANALÓGICO Tempo (s) DIGITAL TC – DEI, 2005/2006 Sistemas Digitais Existem diversas famílias de circuitos integrados para sistemas digitais. Duas das mais famosas são: TTL (Transistor-Transistor Logic) CMOS (Complementary Metal Oxide Semiconductor) Cada família possui um conjunto de tensões que reconhece como sendo 0 ou 1 1 2.4V 0.4V 1 Níveis TTL 2.0V 0.8V 0 0 Saída Entrada TC – DEI, 2005/2006 Gates (ou Portas) Uma gate representa uma função lógica básica que se pode a um conjunto de bits NOT AND OR XOR NAND NOR TC – DEI, 2005/2006 Gates NOT (Inversor) Expressão Booleana Diagrama X YX 14 13 12 11 Tabela Verdade Y 10 9 X Y 0 1 1 0 8 V C C 74LS04 G N D 1 2 3 4 5 6 7 TC – DEI, 2005/2006 Gates AND (“E”) Tabela Verdade Diagrama Expressão Booleana A Y AB Y B 14 13 12 11 10 9 A B Y 0 0 0 0 1 0 1 0 0 1 1 1 8 V C C 74LS08 G N D 1 2 3 4 5 6 7 TC – DEI, 2005/2006 Gates OR (“Ou”) Tabela Verdade Diagrama Expressão Booleana A Y AB Y B 14 13 12 11 10 9 A B Y 0 0 0 0 1 1 1 0 1 1 1 1 8 V C C 74LS32 G N D 1 2 3 4 5 6 7 TC – DEI, 2005/2006 Gates XOR (“Ou Exclusivo”) Tabela Verdade Diagrama Expressão Booleana A Y AB Y B A B Y 0 0 0 0 1 1 1 0 1 1 1 0 Y A B AB AB 14 13 12 11 10 9 8 V C C 74LS86 G N D 1 2 3 4 5 6 7 TC – DEI, 2005/2006 Gates NAND e NOR Correspondem às gates AND e OR com um inversor à frente Expressão Booleana Y AB Tabela Verdade Diagrama A Y B Expressão Booleana Y AB B B Y 0 0 1 0 1 1 1 0 1 1 1 0 Tabela Verdade Diagrama A A Y A B Y 0 0 1 0 1 0 1 0 0 1 1 0 TC – DEI, 2005/2006 NAND e NOR As portas NAND e NOR são importantes pois podem ser ligadas para se comportar como todas as outras Portas Universais VCC X X NAND COMO INVERSOR NAND COMO AND NAND COMO OR TC – DEI, 2005/2006 Tabela de Verdade Uma das ferramenta básica de trabalho de sistemas digitais Para todas as entradas possíveis, enumera quais as saídas que se quer obter A partir da tabela de verdade extrai-se a função a implementar. Tipicamente, na forma SOMA DE PRODUTOS. TC – DEI, 2005/2006 Exemplo: Circuito de Votação Dadas três entradas distintas, determinar a maioria O LED acende quando existem duas entradas activas VCC A B ??? Y LED C Interruptores GND GND TC – DEI, 2005/2006 Tabela de Verdade A 0 0 0 B 0 0 1 C 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 Y TC – DEI, 2005/2006 Tabela de Verdade A 0 0 0 B 0 0 1 C 0 1 0 Y 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 A B C A B C A B C A BC Y A B C A B C A B C A B C TC – DEI, 2005/2006 Circuito Votador A B C Y TC – DEI, 2005/2006 Algumas notas importantes É possível descrever um circuito em termos de: Entradas e Saídas Tabela de Verdade que mapeia as entradas na saída Caso não tenhamos um integrado com portas suficientes, pode-se sempre construir a partir de outras (e.g. Criar um AND de 3 portas a partir de um AND de 2 portas) A forma SOMA DE PRODUTOS exprime a funcionalidade do circuito. No entanto, a forma “soma de produtos” directa não está simplicada. Lógica de Bool, Teoremas de DeMorgan, Mapas de Karnaught, etc. É tipicamente possível simplificar as expressões. TC – DEI, 2005/2006 Algebra de Bool Idempotência Elementos neutro e absorvente A+0=A A+1=1 A0 = 0 A1 = A Teoremas de Simplificação A + AB = A A + AB = A + B AB + AB = B A+A=A AA = A Complementariadade A+A= 1 AA = 0 Comutatividade e Distributividade AB = BA A+B = B+A A(B+C) = AB + AC Leis de DeMorgan (AB) = A + B (A+B) = AB TC – DEI, 2005/2006 Expressões simplificadas Y = ABC + ABC + ABC + ABC = BC(A+A) + ABC + ABC = BC + ABC + ABC = C(B+AB) + ABC = C(A+B) + ABC = AC + BC + ABC = AC + B(C+AC) = AC + B(A+C) = AC + AB + BC Nós não faremos isto porque os computadores já nos simplificam as expressões!!! TC – DEI, 2005/2006 Simplificado vs. Não Simplificado A B C Y NÃO SIMPLIFICADO SIMPLIFICADO A B C Y TC – DEI, 2005/2006 Lei de Moore O número de transistores num circuito integrado duplica todos os 18 meses. Isto é extremamente relevante porque... as gates são feitas a partir de transistores! TC – DEI, 2005/2006 Níveis de Integração Número de Gates Small Scale Integration SSI 2-10 Lógica discreta (Portas AND, OR, etc.) 50-100 Somadores, Multiplicadores, Contadores, etc. Medium Scale Integration MSI 100-10.000 Unidades Aritméticas e Lógicas, processadores simples, etc. > 10.000 Processadores, Memórias, Chipsets, etc. Large Scale Integration LSI Very Large Scale Integration VLSI Exemplos TC – DEI, 2005/2006 A placa que iremos usar nas práticas... Equivalente a 2.500 gates Equivalente a 70.000 gates PS: “Gate” não está relacionado com o Sr. Bill Gates TC – DEI, 2005/2006 Primeiro Trabalho Prático TC – DEI, 2005/2006 PONTOS IMPORTANTES Nunca se ligam duas saídas juntas Excepto em alguns circuitos, isso é um curto-circuito Não se deixam entradas não utilizadas a flutuar (i.e. sem estarem ligadas) Um circulo numa entrada, ou um traço por cima do nome de um sinal quer dizer “activo a 0” lógica negativa. Um triângulo numa entrada, quer dizer que é activo por flanco (i.e. um sinal de relógio) Em lógica negativa, “activo” quer dizer estar a 0 Por exemplo, o contador é limpo usando o sinal CLR, que é activo a zero. Quando o sinal está a 1, não tem efeito. Quando está a 0, faz com que o contador faça um reset. TC – DEI, 2005/2006 Quiz Como é que se pode alterar o circuito apresentado para que o número a seguir a 9 seja 0? TC – DEI, 2005/2006 Para saber mais... Digital Design with CPLD Applications and VHDL, by Robert K. DueckDelmar Learning, ISBN0766811603, June 2000 Capítulo 2 (todo) Capítulo 3 (3.1, 3.2, 3.3*, 3.4*) * Não ver em profundidade, ler apenas para ficar com uma noção do que está envolvido TC – DEI, 2005/2006 TC – DEI, 2005/2006 Sistemas Digitais Circuitos Sequenciais Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques Tecnologia dos Computadores 2003/2004 O que faz este circuito? TC – DEI, 2005/2006 Colocando 1 em cima, 0 em baixo... 1 0 ? 1 ? 1 0 0 O ‘1’ surge em baixo! TC – DEI, 2005/2006 Colocando o ‘1’ de cima a ‘0’ 0 1 0 1 0 1 0 O ‘1’ mantem-se! TC – DEI, 2005/2006 ACABAMOS DE CRIAR UMA CÉLULA DE MEMÓRIA! TC – DEI, 2005/2006 Colocando ‘0’ em cima e ‘1’ em baixo... 0 1 0 1 A entrada de baixo passa a ‘0’, a de cima a ‘1’! TC – DEI, 2005/2006 Latch (ou báscula) SR SET RESET Q S Q R Q Q Tabela de Excitação Combinação proibida S 0 R 0 Qn+1 Qn Qn+1 Qn 1 0 1 0 1 1 1 0 ??? 0 1 ??? TC – DEI, 2005/2006 Dois tipos fundamentais de circuitos SEQUENCIAIS COMBINACIONAIS A B C A Y1 B Y2 C Lógica Combinacional Y3 Y As saídas dependem unicamente das entradas Memória As saídas dependem das entradas e do estado corrente da memória O sistema evolui ao longo do tempo através de um conjunto de estados TC – DEI, 2005/2006 Circuitos síncronos e assíncronos As básculas são assíncronas, levando a imensos problemas a nível de sincronização. Na prática, os sistemas sequenciais utilizam o conceito de relógio e células de memória síncronas. Existe um pulso de relógio que mantém o sistema sincronizado Só existem alterações à saída dos circuitos de memória na transição (ou flanco) de 0 para 1 1 0 TC – DEI, 2005/2006 Flip-Flop D A célula de memória básica! D Q CLK Q D CLK Q Tabela de Excitação D 0 Qn+1 0 Qn+1 1 1 1 0 Q Note-se que o 0 ou o 1 só surgem no próximo evento de clock! TC – DEI, 2005/2006 Registo de 4 bits IN0 D Q OUT0 CLK IN1 D Q OUT1 CLK IN2 D Q OUT2 CLK IN3 CLK D Q OUT3 CLK TC – DEI, 2005/2006 Exemplo de um circuito síncrono Um contador de dois bits Dois bits => dois flip-flops (Q1 e Q2) O número de estados possíveis da máquina de estados reflecte-se directamente no número de flipflops (i.e. células de memória) necessárias para a implementar Máquina de Estados 00 11 01 10 TC – DEI, 2005/2006 Contador Síncrono de 2 bits Tabela de Transição de Estado 00 11 01 10 Q1n 0 0 1 1 Q2n 0 1 0 1 Saídas Q D CLK Q1n+1 Q2n+1 0 1 1 0 1 1 0 0 Entradas D Q Q D1 = Q1Q2 + Q1Q2 D2 = Q1Q2 + Q1Q2 (simplificável...) TC – DEI, 2005/2006 Esquemático D1 = Q1Q2 + Q1Q2 D2 = Q1Q2 + Q1Q2 TC – DEI, 2005/2006 Simulação TC – DEI, 2005/2006 Exercício para casa Implemente um contador que conte até de 0 até 6, regressando a 0. Caso o contador “acorde” num número superior a 6, o valor seguinte deverá ser 0! Nível seguinte de dificuldade: Considere que existe uma entrada extra chamada UP/DOWN que especifica se o contador conta para cima ou para baixo. Implemente-o. Desenhe o circuito no Quartus II e simule-o. TC – DEI, 2005/2006 Porque é que o pôr-do-sol é vermelho? TC – DEI, 2005/2006 » Keep the design as simple as possible, but not simpler. « Albert Einstein TC – DEI, 2005/2006 Sistemas Digitais Lógica Programável Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques Tecnologia dos Computadores 2003/2004 SSI/MSI Programmable Logic Devices (Spartan-3: 1.000.000 gates, €12) (SSI, MSI: funções simples, ~1€) TC – DEI, 2005/2006 Circuitos programáveis Em vez de ter um conjunto de circuitos com funcionalidades pré-definidas... Custos elevados em manutenção de stocks Necessidade de utilizar muitos integrados para implementar uma certa funcionalidade Não existência de determinadas funções Baixa velocidade devido às interligações Utiliza-se um circuito genérico, programável! PLD Programmable Logical Device PAL Programmable Array Logic GAL Generic Array Logic CPLD Complex Programmable Logic Device FPGA Field Programmable Gate Array TC – DEI, 2005/2006 Vejamos os dois circuitos anteriores... A B C Y Circuito votador (não simplificado) TC – DEI, 2005/2006 Contador (não simplificado) TC – DEI, 2005/2006 Estrutura de uma PAL (simplificado) I1 I2 I3 I4 O1 O2 TC – DEI, 2005/2006 Implementando uma função... A I1 B I2 C I3 D I4 ABCD ABCD ABCD + ABCD + BD+ ABCD O1 BD ABCD O2 Fusível Intacto TC – DEI, 2005/2006 Programação de PLDs Uma PLD possui blocos que são configuráveis, queimando fusíveis internos (ou equivalente). Existem pinos genéricos de entrada e de saída Blocos AND-OR + Flip-flops + Buffers Interligações em blocos Utiliza-se uma linguagem de alto nível capaz de exprimir o design de um circuito electrónico E.g. PALASM, Abel, AHDL, Verilog, VHDL O programa é compilado, explicitando de que forma é que as gates presentes no circuito devem de ser configuradas TC – DEI, 2005/2006 PAL22v10 TC – DEI, 2005/2006 PAL22v10 TC – DEI, 2005/2006 O Estado da Arte Hoje em dia utilizam-se: CPLDs (Complex Programmable Logic Devices) FPGAs (Field Programmable Gate Arrays) Uma CPLD / FPGA é basicamente um conjunto enorme de PLDs interligadas por um sistema de interligação programável TC – DEI, 2005/2006 Estructura de uma CPLD (FPGA similar) TC – DEI, 2005/2006 Nas aulas práticas... Hardware: Altera UP2 board MAX7000S CPLD (2.5k gates) EPM7128SLC84-7 FLEX10K CPLD (70k gates) EPF10K70RC240-4 Software Altera QuartusII 5.1 Web Edition Objectivos Introdução prática a circuitos digitais importantes Preparação para as cadeiras de Arquitectura de Computadores TC – DEI, 2005/2006 Altera UP2 2.5k + 70k gates disponíveis Relógio a 25MHz Programação via porto paralelo Iremos utilizar VHDL 4 botões (2 pré-ligados) 24 interruptores (8 pré-ligados) 16 LEDs 2 displays 7-segmentos de 2 dígitos (1 pré-ligado) Saída VGA Entrada rato/PS2 TC – DEI, 2005/2006 Altera Quartus II Design de sistemas digitais por “captura gráfica” Design de sistemas digitais por linguagem de programação VHDL + Verilog + AHDL Simulação do sistema Programação física dos dispositivos TC – DEI, 2005/2006 Para saber mais... Computer Organization and Architecture, Secção 3.6 Digital Design with CPLD Applications and VHDL Capítulo 8 (8.1, 8.2, 8.4, 8.6*, 8.7*) Capítulo 4 * Não ver em profundidade, ler apenas para ficar com uma noção do que está envolvido ver as anotações que estão nas folhas do quiosque TC – DEI, 2005/2006