Circuitos combinatórios. (Revisão)

Documentos relacionados
Introdução às máquinas de estado finitas

Introdução à Linguagem VHDL

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon

Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

1. Objetivos: Familiarizar o aluno com o uso do ambiente de desenvolvimento da Linguagem Verilog. Familiarizar o aluno com a linguagem Verilog.

Introdução à Linguagem VHDL

Treinamento em Projeto de Sistemas Digitais

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

VHDL. Descrição e Projeto de Circuitos Utilizando VHDL

Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture

VERILOG. Alex Vidigal Bastos

Circuitos sequenciais elementares

Módulo 4 Introdução ao VHDL

Linguagens de descrição de hardware. Modelação de um circuito (digital) com HDL. fluxo de projecto seguindo uma metodologia top-down

FPGA & VHDL. Tutorial

Arquitectura de Computadores LEEC/MEEC (2006/07 2º Sem.)

Testbench. modelo não sintetizável (testbench) circuito a fabricar. modelo sintetizável (vai ser um circuito digital) Verilog

Circuitos sequenciais elementares

Xilinx ISE. O projecto

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA

Introdução ao VHDL. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva. Original por Ayman Wahba

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC

Arquitetura de Computadores Aula 9 Portas Lógicas

Sistemas Digitais (SD)

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

Máquinas de Estados Finitos. Aula 19 Prof. Abel Guilhermino

Representação de Informação. 1. Converta cada um dos seguintes números para o seu equivalente decimal: a)

SISTEMAS DIGITAIS (SD)

Sistemas Digitais Módulo 4 Álgebra Booleana e Circuitos Lógicos

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

Linguagens de descrição de hardware. Modelação de um circuito (digital)

Projeto com Linguagens de Descrição de Hardware

Sistemas Digitais (SD)

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Tutorial Verilog 1ª Edição

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

FCA - Editora de Informática xv

ELETRÔNICA DIGITAL. Parte 4 Funções Lógicas - Circuitos Integrados. Professor Dr. Michael Klug. 1 Prof. Michael

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE

SISTEMAS DIGITAIS (SD)

Instituto Superior Técnico Licenciatura em Engenharia Aeroespacial Licenciatura em Engenharia Electrotécnica e de Computadores.

1. Sistemas de numeração e códigos 23

Descrição e Projeto de Circuitos Utilizando VHDL

SISTEMAS DIGITAIS (SD)

CURSO BÁSICO DE VERILOG

Revisão: Projeto de Processadores em VHDL

VHDL Circuitos Combinacionais


Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Microprograma

Transistor. Portas Lógicas (2) Base; Coletor; Emissor.

Projeto de Circuitos Lógicos. Introdução ao Computador 2010/01 Renan Manola

Métodos de Programação I Ana Maria de Almeida

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

Capítulo 3. Álgebra de Bool

Sistemas Digitais (SD) Síntese de Circuitos Sequenciais: Definições

PCS 3115 Sistemas Digitais I Análise e Síntese de Circuitos Combinatórios Prof. Dr. Marcos A. Simplicio Jr.

Exercícios Referentes à Prova P1

Programação Básica em Arduino Aula 2

Projecto de Sistemas Digitais

Funções e Portas Lógicas

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

Dispositivos de Lógica Programável

Planificação Anual da disciplina de Programação e Sistemas de Informação 10º 1PI

Tópicos em Sistemas Embarcados. Esterel

Máquina de Estados. Transições Estados Em Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg.

Projecto de Circuitos e Sistemas Digitais (MEEC1078) Mestrado em Engenharia Electrotécnica e de Computadores. (Informática Industrial)

Arquitetura e Organização de Computadores

Transcriçã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 de sistemas digitais Circuitos combinatórios em Verilog ArqComp: Circuitos combinatórios (revisão) 2/16 2007-02-22

Circuitos digitais Sistemas digitais (electrónicos) processam informação representada por um número finito de símbolos. A realização física de sistemas digitais emprega circuitos digitais que usam apenas dois símbolos: 0 e 1. Circuitos digitais, cuja saída apenas depende, em cada instante, dos valores das entradas, designam-se por circuitos combinatórios. Circuitos digitais cuja saída depende dos valores das entradas presentes e passados, designam-se por circuitos sequenciais. A operação de circuitos digitais pode ser descrita por: expressões algébricas (funções Booleanas); tabelas de verdade [comb.]; máquinas de estados finitas [seq.]; diagramas de componentes (esquemáticos); texto, usando uma linguagem de descrição de hardware;... ArqComp: Circuitos combinatórios (revisão) 3/16 2007-02-22 Linguagens de descrição de hardware Vantagens: Descrição (mais) abstracta e independente da tecnologia de implementação. Consequências importante: re-utilização de descrições e aumento da produtividade. Verificação e validação de alternativas podem ser feitas cedo no ciclo de projecto, geralmente, por simulação: as especificações são operacionais. Representação concisa para projectos complexos. Normalização da descrição permite combinar sub-sistemas de proveniências diferentes. Especificação para ferramentas de síntese de circuitos. A LDH impõe um modelo conceptual da realidade física: sistema concorrente, cujos componentes estão interligados por vias de comunicação (pistas). Processamento e transmissão de informação estão sujeitos a restrições temporais (tempos de propagação e de comutação). Mais usadas: Verilog HDL e VHDL (= VHSIC HDL). ArqComp: Circuitos combinatórios (revisão) 4/16 2007-02-22

Modelo de um circuito digital (1) Para Verilog: Componentes são instâncias de módulos. Cada módulo tem portos de comunicação unidireccionais (de entrada ou saída) e/ou bidireccionais. Instâncias são interligadas por fios que transportam sinais (possivelmente com atraso). Cada componente reage a modificações das suas entradas, alterando as suas saídas (possivelmente após um certo atraso). Módulos podem ser construídos com interligação de instâncias de outros módulos (descrição hierárquica). Sinais podem assumir os valores: 0, 1, X e Z. 0, 1: sinais lógicos; X: valor não-especificado ou indefinido; Z: alta impedância (fio desligado ). Conjunto-base de módulos lógicos primitivos: inversor, porta E, porta OU, etc. ArqComp: Circuitos combinatórios (revisão) 5/16 2007-02-22 Modelo de um circuito digital (2) componentes entradas primárias C1 C3 saídas primárias C2 C4 componente de topo fios ArqComp: Circuitos combinatórios (revisão) 6/16 2007-02-22

Tipos de especificação Nível de abstracção: físico : transístores modelados por interruptores; lógico: portas lógicas ou equações booleanas; sintetizável automaticamente transferência entre registos (RTL) sintetizável automaticamente gestão explícita do tempo (circuitos síncronos) procuraremos trabalha a este nível algorítmico parcialmente sintetizável. Estilo de descrição: Estrutural: interligação de módulos e portas lógicas primitivas: especifica como fazer. Comportamental: descrição do comportamento do sistema: enfâse na descrição do que fazer. Frequentemente, a descrição é feita usando um estilo misto. ArqComp: Circuitos combinatórios (revisão) 7/16 2007-02-22 Estímulos de entrada e respostas Uma LDH também pode permitir descrever os estímulos a aplicar ao circuito na simulação e determinar se as respostas do circuito são as esperadas. Os módulos que efectuam essas tarefas constituem bancada de teste ( testbench ). Estes elementos não precisam de ser sintetizáveis: descrição algorítmica de estilo comportamental. Em muitos ambientes, as respostas do circuito podem ser visualizadas e verificadas por inspecção (para sistemas simples!). bancada de teste geração de estímulos circuito a testar verificação das respostas ArqComp: Circuitos combinatórios (revisão) 8/16 2007-02-22

Tabelas de verdade e funções booleanas Circuitos combinatórios podem ser representados: por interligação de portas lógicas; por especificcação das funções booleanas correspondentes expressão booleana: f (a, b, c) = a b + c tabela de verdade a b c f(a,b,c) Forma canónica disjuntiva: 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Teorama da expansão de Shannon: f (x) = (ā b c) + (ā b c) + (a b c) + (a b c) + (a b c) Forma canónica conjuntiva: f (x) = (a + b + c) (a + b + c) (ā + b + c) f (x 1, x 2,..., x n ) = x 1 f (1, x 2,..., x n ) + x 1 f (0, x 1,..., x n ) ArqComp: Circuitos combinatórios (revisão) 9/16 2007-02-22 Elementos de sintaxe identificador: composto por letras, dígitos ou _ ; não pode começar por dígito; palavras reservadas: não podem ser usadas como identificadores; module,, assign, input, output, etc. valores lógicos: 1, 0, X e Z. ligações: wire (não têm memória) portos: input, output ( e inout) variáveis inteiras: integer elemento de memória: reg operadores aritméticos: +, -, +, /, % relacionais: ==,!=, <, <=, >, >= sobre bits: ~, &,, ^, ~^, <<, >> lógicos:!,, && condicional:? : ArqComp: Circuitos combinatórios (revisão) 10/16 2007-02-22

Definição de módulos module teste (a, b, c); input a, b; // tipo wire output c; wire d; and xor g1(d, a, b); g2(c, a, d); module teste (a, b, c); input a, b; output c; assign c = (a & b) ^ a; Descrição estrutural. Os identificadores g1 e g2 são nomes de instâncias de portas lógicas. Portas lógicas primitivas: and, or, nand, nor, xor, xnor, not. O primeiro sinal é a saída; os restantes são entradas. A porta not só tem uma entrada. Descrição comportamental (funcional). assign: atribuição contínua; o valor da direita está permanentemente ligado ao fio indicado à esquerda. c a d b ArqComp: Circuitos combinatórios (revisão) 11/16 2007-02-22 Hierarquia de módulos module teste2 (x, y, w, z, extra); input[2:0] x, y; // barramentos output w, z, extra; teste mod1(x[0], y[0], z); teste mod2(x[1], y[1], w); y[2:0] x[2:0] x[0] y[0] teste a c b mod1 z assign extra = ~&x[2:1]; Descrição mista. Os identificadores mod1 e mod2 são nomes de instâncias de portas lógicas. Barramentos: vários sinais paralelos, identificados por índice. vect[lim_sup:lim_inf] : barramento parcial (selecção de sinais) Operador de bits aplicado a barramento: operação entre todos os elementos do barramento. x[1] y[1] x[1] x[2] a b teste c mod2 w extra 6 sinais de entrada, agrupados em 2 barramentos Alternativa para especificação de ligações a instâncias: teste mod1(.c(z),.a(x[0]),.b(y[0]); ArqComp: Circuitos combinatórios (revisão) 12/16 2007-02-22

Verificação e validação timescale 1 ns/100 ps module top; reg[1:0] entradas = 2 b00; integer i; wire saida; teste mod1(entrada[0], entrada[1], saida); initial begin for (i = 0; i < 3; i=i+1) # 10 entradas = entradas + 1; $finish; end initial begin #22 if (saida!= 1 b0) $display("e: Val=%b em %t\n", saida, $time); end Números: <n o de bits> <base><dígitos> Base: d, b ou b Cada bloco initial especifica um processo que começa a executar no início da simulação. Dentro desse processo, a execução de instruções é sequencial. A atribuição (=) modifica o valor de registos (correspondem a variáveis numa linguagem de programação convencional). O símbolo # indica um atraso (nas unidades especificadas em timescale). No instante 22, as entradas do circuitos são a=0 e b=1. A saída deve ser 0; se não for, imprime mensagem de erro. ArqComp: Circuitos combinatórios (revisão) 13/16 2007-02-22 Descrição comportamental de circuitos combinatórios module teste3(a, b,c); input a, b; output c; reg c = 1 b0; always @(a or b) if (a == 1 b1) c = b; else c = 1 b1; module teste4(a, b,c); input a, b; output c; reg c = 1 b0; always @(a or b) begin c = b; if (a == 1 b0) c = 1 b1; end Bloco always especifica um processo em execução contínua; as instruções internas são executadas sequencialmente. @(<lista de eventos>): espera pelos eventos especificados. @(sinal1 or sinal2): espera por qualquer modificação de um dos sinais especificados. Regra: Para modelar correctamente um circuito combinatório, a lista de eventos deve conter todas as entradas. Abreviação: @(*) ou @* A saída deve ser definida por atribuição para qualquer alteração das entradas. Cuidado com if...else! ArqComp: Circuitos combinatórios (revisão) 14/16 2007-02-22

Descrição comportamental por casos module alu(a, b, aluctrl, aluout); input[15:0] a, b; input[1:0] aluctrl; output[15:0] aluout; reg[15:0] aluout; always @(a,b,aluctrl) case (aluctrl) 2 b00: aluout = a + b; 2 b01: aluout = a - b; 2 b10: aluout = a b; default: aluout = a & b; endcase Especificar todos os casos, usando default se necessário. Os valores usados nas comparações devem ser puramente lógicos (não podem conter Z ou X ). Para mais que uma instrução por caso, usar um bloco begin...end Notar que o código é quase todo independente do tamanho dos operandos (16 bits). Para especificar uma unidade lógico-aritmética de 32 bits, basta trocar todos os 15 por 31. ArqComp: Circuitos combinatórios (revisão) 15/16 2007-02-22 Elementos de consulta [Patterson & Hennessy]: Apêndice B, secções B.1 B4 (CD) Tutorial de Verilog (CD) [Delgado & Ribeiro]: Secções 2.1 2.5 [Arroz, Monteiro & Oliveira]: Capítulo 2 Sumários e tutoriais listados na página da disciplina. ArqComp: Circuitos combinatórios (revisão) 16/16 2007-02-22