2. Sistemas de Numeração
Transcrição
2. Sistemas de Numeração
Domínios da Informação » RAM /abr./: RARELY ADEQUATE MEMORY, BECAUSE THE MORE MEMORY A COMPUTER HAS, THE FASTER IT CAN PRODUCE ERROR MESSAGES « 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 Anonymous 74.53 ANALÓGICO DIGITAL TC – DEI, 2004/2005 TC – DEI, 2004/2005 Domínios da Informação (2) Introdução aos Sistemas Digitais 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) Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques Tecnologia dos Computadores 2004/2005 0V (L ou 0) Tempo (s) ANALÓGICO Tempo (s) DIGITAL TC – DEI, 2004/2005 Sistemas Digitais Gates NOT (Inversor) 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 Diagrama X Y=X 14 13 12 11 Tabela Verdade Y 10 9 0 Saída Entrada Y 0 1 1 0 8 74LS04 Níveis TTL 0 X V C C 1 2.0V 0.8V Expressão Booleana G N D 1 2 3 4 5 6 7 TC – DEI, 2004/2005 Gates (ou Portas) TC – DEI, 2004/2005 Gates AND (“E”) Uma gate representa uma função lógica básica que se pode a um conjunto de bits NOT AND OR XOR Tabela Verdade Diagrama Expressão Booleana A A Y = A⋅B Y B 14 NAND NOR 13 12 11 10 9 B Y 0 0 0 0 1 0 1 0 0 1 1 1 8 V C C 74LS08 G N D 1 TC – DEI, 2004/2005 2 3 4 5 6 7 TC – DEI, 2004/2005 Gates OR (“Ou”) Gates NAND e NOR Tabela Verdade Diagrama Expressão Booleana A A Y =A+B Y B B Correspondem às gates AND e OR com um inversor à frente Y 0 0 0 0 1 1 1 0 1 1 1 1 Y = A⋅B Tabela Verdade Diagrama Expressão Booleana A Y B 14 13 12 11 10 9 8 V C C 74LS32 Y =A+B G N D 1 2 3 4 5 6 A Y B 7 TC – DEI, 2004/2005 Gates XOR (“Ou Exclusivo”) A A Y = A⊕B Y B Y 0 0 1 0 1 1 1 0 1 1 1 0 A B Y 0 0 1 0 1 0 1 0 0 1 1 0 TC – DEI, 2004/2005 NAND e NOR Tabela Verdade Diagrama Expressão Booleana B Tabela Verdade Diagrama Expressão Booleana A B As portas NAND e NOR são importantes pois podem ser ligadas para se comportar como todas as outras Y 0 0 0 0 1 1 1 0 1 1 1 0 Portas Universais Y = A ⊕ B = AB + AB 14 13 12 11 10 9 8 V C C X NAND COMO INVERSOR 74LS86 G N D 1 2 3 4 5 6 X NAND COMO AND NAND COMO OR 7 TC – DEI, 2004/2005 TC – DEI, 2004/2005 Tabela de Verdade 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. A 0 0 B 0 0 C 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 Y TC – DEI, 2004/2005 Exemplo: Circuito de Votação TC – DEI, 2004/2005 Tabela de Verdade Dadas três entradas distintas, determinar a maioria O LED acende quando existem duas entradas activas A 0 0 B 0 0 C 0 1 Y 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 A⋅B⋅C A⋅B⋅C A ⋅B⋅C A ⋅B⋅C Y = A ⋅B⋅C + A ⋅B⋅C + A ⋅B⋅C + A ⋅B⋅C TC – DEI, 2004/2005 TC – DEI, 2004/2005 Circuito Votador Algebra de Bool Idempotência Elementos neutro e absorvente A+0=A A+1=1 A⋅0 = 0 A⋅1 = A Teoremas de Simplificação A + AB = A + B AB + AB = B A+A=A A⋅A = A Complementariadade A+A=1 A⋅A = 0 Comutatividade e Distributividade A⋅B = B⋅A A+B = B+A A⋅(B+C) = A⋅B + A⋅C Leis de DeMorgan (A⋅B) = A + B (A+B) = A⋅B TC – DEI, 2004/2005 Algumas notas importantes TC – DEI, 2004/2005 Expressões simplificadas É 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, 2004/2005 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, 2004/2005 Simplificado vs. Não Simplificado Esquema do circuito A B C Y NÃO SIMPLIFICADO SIMPLIFICADO A B C Y TC – DEI, 2004/2005 Trabalho Prático TC – DEI, 2004/2005 PONTOS IMPORTANTES Nunca se ligam duas saídas juntas Interligar dois integrados MSI Um contador síncrono (74LS163) Um descodificador de BCD para display de 7 segmentos (74LS48) O contador conta até 16, voltando a 0 O display mostra o valor em decimal 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) Só os valores até 9 são mostrados correctamente 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, 2004/2005 TC – DEI, 2004/2005 Aspecto final da montagem 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, 2004/2005 Quiz TC – DEI, 2004/2005 Níveis de Integração Como é que se pode alterar o circuito apresentado para que o número a seguir a 9 seja 0? 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 TC – DEI, 2004/2005 Exemplos TC – DEI, 2004/2005 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, 2004/2005 TC – DEI, 2004/2005 Para saber mais... Digital Design with CPLD Applications and VHDL, by Robert K. DueckDelmar Learning, ISBN0766811603, June 2000 Sistemas Digitais Circuitos Sequenciais Capítulo 2 (todo) Capítulo 3 (3.1, 3.2, 3.3*, 3.4*) Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques Tecnologia dos Computadores 2003/2004 * Não ver em profundidade, ler apenas para ficar com uma noção do que está envolvido TC – DEI, 2004/2005 O que faz este circuito? Colocando o ‘1’ de cima a ‘0’ 0 1 0 1 0 1 0 O ‘1’ mantem-se! TC – DEI, 2004/2005 TC – DEI, 2004/2005 Colocando 1 em cima, 0 em baixo... 1 0 ? 1 ? 1 0 0 O ‘1’ surge em baixo! TC – DEI, 2004/2005 TC – DEI, 2004/2005 Dois tipos fundamentais de circuitos Colocando ‘0’ em cima e ‘1’ em baixo... SEQUENCIAIS COMBINACIONAIS 0 1 A B C A Y1 B Y2 C Y3 Y As saídas dependem unicamente das entradas 0 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 1 A entrada de baixo passa a ‘0’, a de cima a ‘1’! TC – DEI, 2004/2005 Latch (ou báscula) SR SET RESET 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. Q S Q R Q Q Tabela de Excitação Combinação proibida TC – DEI, 2004/2005 S 0 1 0 1 R 0 0 1 1 Qn+1 Qn 1 0 ??? Qn+1 Qn 0 1 ??? TC – DEI, 2004/2005 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, 2004/2005 Flip-Flop D Exemplo de um circuito síncrono A célula de memória básica! D Q CLK Q 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 Tabela de Excitação D 0 1 Qn+1 0 1 Qn+1 1 0 11 01 10 Note-se que o 0 ou o 1 só surgem no próximo evento de clock! TC – DEI, 2004/2005 Registo de 4 bits TC – DEI, 2004/2005 Contador Síncrono de 2 bits Tabela de Transição de Estado IN0 D Q 00 OUT0 CLK 11 IN1 D Q 10 CLK IN2 D 01 OUT1 Q CLK D Q2n 0 1 0 1 Saídas Q Q Q1n+1 Q2n+1 0 1 1 0 1 1 0 0 OUT2 CLK IN3 Q1n 0 0 1 1 OUT3 CLK D Q CLK Q Entradas D D1 = Q1⋅Q2 + Q1⋅Q2 D2 = Q1⋅Q2 + Q1⋅Q2 (simplificável...) TC – DEI, 2004/2005 TC – DEI, 2004/2005 Esquemático D1 = Q1⋅Q2 + Q1⋅Q2 D2 = Q1⋅Q2 + Q1⋅Q2 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, 2004/2005 TC – DEI, 2004/2005 TC – DEI, 2004/2005 TC – DEI, 2004/2005 Simulação SSI/MSI Programmable Logic Devices » Keep the design as simple as possible, but not simpler. « Albert Einstein (Spartan-3: 1.000.000 gates, €12) (SSI, MSI: funções simples, ~1€) TC – DEI, 2004/2005 TC – DEI, 2004/2005 Circuitos programáveis Sistemas Digitais Lógica Programável 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 Paulo Marques [email protected] http://www.dei.uc.pt/~pmarques Tecnologia dos Computadores 2003/2004 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, 2004/2005 Estrutura de uma PAL (simplificado) Vejamos os dois circuitos anteriores... A B C Y Circuito votador (não simplificado) TC – DEI, 2004/2005 TC – DEI, 2004/2005 Implementando uma função... A B C D ABCD ABCD ABCD + ABCD + BD+ ABCD BD ABCD Fusível Intacto Contador (não simplificado) TC – DEI, 2004/2005 TC – DEI, 2004/2005 Programação de PLDs PAL22v10 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, 2004/2005 PAL22v10 TC – DEI, 2004/2005 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, 2004/2005 TC – DEI, 2004/2005 Estructura de uma CPLD (FPGA similar) 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, 2004/2005 Nas aulas práticas... TC – DEI, 2004/2005 Altera Quartus II Hardware: Altera UP2 board MAX7000S CPLD (2.5k gates) EPM7128SLC84-7 FLEX10K CPLD (70k gates) EPF10K70RC240-4 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 Software Altera QuartusII 4.1 Web Edition Objectivos Introdução prática a circuitos digitais importantes Preparação para as cadeiras de Arquitectura de Computadores TC – DEI, 2004/2005 TC – DEI, 2004/2005 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, 2004/2005