Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET



Documentos relacionados
Circuitos Seqüenciais

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

Inserção de Ponto de Entrada. Autoenge Módulo Automação Página 1

Somador e subtrator de 8 bits

Portas Lógicas Básicas: Parte 2 Simulação Lógica

Um circuito comparador permite determinar se dois números binários são iguais, e não o sendo, qual deles é o maior.

Circuitos Digitais 144L

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

Organização e Arquitetura de Computadores II

Módulo 4 Introdução ao VHDL

Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 2000

Ordem de Serviços. Abaixo será informado o procedimento passo a passo para emissão da ordem de serviço no CIAF.

Laboratório de Arquitetura de Computadores IST - Taguspark 2014/2015 Introdução ao simulador Guião 1 23 a 27 fevereiro de 2015

UNIVERSIDADE FEDERAL DE ITAJUBÁ Instituto de Engenharia Elétrica Engenharia da Computação

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Chamada Pública Procedimentos para utilização da Chamada Pública no sistema SMARam Versão 1.0

- Arquitetura de sistemas digitais- Cap 1 - Introdução

Página 1. Manual Rotinas. Emissão de contratos. Suporte T.I

MANUAL DA SECRETARIA

5º Experimento: Somador Binário de números com sinal

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO

VHDL Circuitos Combinacionais

CRIANDO GRUPO DE CANAIS

ACESSANDO A PÁGINA DO CADASTRO DE DEPÓSITOS

Estatística no EXCEL

Aula 2 Semântica de VHDL

Ministério da Agricultura, Pecuária e Abastecimento. SPARK - Comunicador Instantâneo MANUAL DO USUÁRIO

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Organização de Computadores Software

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INF Técnicas Digitais para Computação

4.a Aula Prática Projeto de um Somador de 16 bits com a Linguagem VHDL

Laboratório de Arquitectura de Computadores IST - Taguspark 2008/2009 Introdução aos sistemas binários Guião 1 9 a 13 de Março 2009

PASSO A PASSO COMO CRIAR UM NOVO PROJETO EM SCHEMATIC NO SOFTWARE QUARTUS II

2ª Lista de Exercícios

Manual do Usuário ipedidos MILI S.A. - D.T.I.

CAPÍTULO 1 REVISÃO DE LÓGICA COMBINACIONAL

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

TUTORIAL: AQUISIÇÃO DE SINAIS USANDO LABVIEW E MATLAB

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE - UFRN DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIMAP

Oficina de produção de tutoriais. TUTORIAL Muan - Pixilation

INSCRIÇÃO ON- LINE REVEZAMENTOS A PARTIR DE 2015 INDICADO PARA TÉCNICOS

EXCEL NA ANÁLISE DE REGRESSÃO

..:Restaurantes:.. Manual completo do sistema de vendas Restaurantes. Site..:

Manual do Usuário CMS WordPress Versão atual: 3.0

Manual do Usuário. Solução de Informações Gerenciais - BI

Manual SIGEESCOLA Matrícula

Computadores XII: Aprendendo a Somar A4 Texto 3

Tutorial :: Introdução ao VHDL em ambiente Design Works

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Manual das planilhas de Obras v2.5

Nota de Aplicação IHM 004

Aritmética Binária e. Bernardo Nunes Gonçalves

Manual de Operacionalização do Módulo de Prestação de Contas PCS

CAPÍTULO 6 ARITMÉTICA DIGITAL

TUTORIAL AMBIENTE WEB PORTUGOL

Introdução à Engenharia de Computação

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

LGTi Tecnologia. Manual - Outlook Web App. Soluções Inteligentes. Siner Engenharia

Especificação do Trabalho

Pré-Venda. Para efetuar a montagem de uma Pré-Venda em seu sistema segue o passo a passo.

2 Não possuo o institucional. Como devo proceder? Resposta: Dirija-se ao RH do câmpus e solicite a criação do seu institucional.

..:Sgi-Plus:.. Manual completo do sistema de vendas Sgi-plus. Site..:

SEI Superintendência de Estudos Econômicos e Sociais da Bahia Av Luiz Viana Filho, 435-4ª avenida, 2º andar CAB CEP Salvador - Bahia Tel.

Sistemas Digitais Unidade Lógica e Aritmética - ULA

CRIAÇÃO DE CURSO. 1. Criar a Disciplina

SIE - SISTEMA DE INFORMAÇÕES PARA O ENSINO CADASTRO DE FUNCIONÁRIOS

1 Esfera de aço 1 Transitor BC547

Implementando uma Classe e Criando Objetos a partir dela

Exercícios de Laboratório 2

TRABALHANDO COM O ORÇAMENTO NO GERENCIAL

MOODLE NA PRÁTICA PEDAGÓGICA

Banco de Dados Microsoft Access: Criar tabelas

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

TRANSFORMAÇÃO ENTRE SISTEMAS (ROTAÇÃO E TRANSLAÇÃO)

PROCEDIMENTO DO CLIENTE

CRIAÇÃO DE MAPAS TEMÁTICOS COM ALOV MAP

PUC Rio. Curso Superior de Tecnologia em Processamento de Dados (TPD/P15) ORGANIZAÇÃO DE COMPUTADORES

GLOSSÁRIO. 1. Introdução Objetivo Clonagem do Sistema Configuração dos Campos... 06

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

Tutorial do Max Plus II Baseline

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Tutorial microsoft Excel

Roteiro de Treinamento SGCS CORP 5 1ª Etapa

AR PDV SOLUÇÕES AR CONSULTORIA EM INFORMÁTICA

Manual Fácil 1 DOWNLOAD E INSTALAÇÃO. 1. Como faço o download do Jimbo Mobile?

Falso: F = Low voltage: L = 0

Técnicas Digitais para Computação

Aula 4 Estatística Conceitos básicos

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

Passo a Passo DP7. Iniciando o Sistema: Acesse o Sistema digitando: LOGIN: super / SENHA: super. Aparecerá a seguinte tela:

Bem-vindo ao tópico sobre consultas no SAP Business One.

TUTORIAL DO CORRETOR DE IMÓVEIS PARA UTILIZAÇÃO DO SISTEMA :: REDE CERTA ::

APOSTILA ZELIO SOFT 2

W o r d p r e s s 1- TELA DE LOGIN

Banco de Dados. Microsoft Access. Índice

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Sumário. 1. Propósito 1 2. Tabela de Ferragem 1 3. Criar Tabela de Ferragem 1 4. Conector de Ferragens 7

Transcrição:

1 Universidade Federal Fluminense - UFF Centro Tecnológico - CTC Escola de Engenharia - TCE Departamento de Engenharia de Telecomunicações TET Técnicas Digitais A Laboratório nº 3: Somadores. Data do laboratório: 17/07/2010

2 Objetivo: Usando as ferramentas apresentadas no laboratório anterior simular o funcionamento de um somador. Aspectos Teóricos: Como foi visto em sala, continuaremos usando circuitos combinacionais através da montagem de somador que pode ter outras funções (de um subtrator dependendo apenas de um arranjo de portas lógicas). Tais circuitos exercem funções aritméticas, utilizando uma combinação de portas lógicas. Como numa soma com números de mais de 1 bit temos a necessidade de considerar a soma das entradas com um possível carry, para isso montamos um circuito combinacional que faz a soma de 3 bit, apresenta o resultado desta soma e o possível carry. S i = A i B i C i 1 C i 1 = A i. B i + A i. C i 1 + B i. C i 1 Procedimento Experimental: Continuando com a utilização da linguagem VHDL, vamos montar um código que descreve o funcionamento de um Full Adder. E a partir deste código vamos montar o código de um circuito que faz a soma de dois números de 4 bits. A partir do que já foi visto podemos construir o código do Full Adder: ENTITY fulladder IS PORT ( a, b, cin : IN BIT; cout, r : OUT BIT); END fulladder; ARCHITECTURE somador OF fulladder IS cout <= (a and b) or (a and cin) or (cin and b) ; r <= (a xor b) xor cin; END somador;

3 Lembrando que devemos escrevê-lo e salvá-lo com o mesmo nome da entidade e extensão.vhd. Agora para construirmos o código do circuito que faz a soma de dois números de 4 bits devemos usar de um projeto hierárquico. Para isso é de bom grado que a entidade que usaremos seja salva num local onde o compilador encontre-a, declarar os components e os sinais e em seguida apresentar o conteúdo de component para cada instância, seguindo este padrão: ENTITY entity_name IS PORT ( input and output definitions); END entity_name; ARCHITECTURE arch_name OF entity_name IS --component declaration(s); --signal declaration(s); --Component instantiation(s); --Other statements; END arch_name; Seguindo esse modelo montamos o seguinte código: ENTITY soma2n4b IS PORT( c0 : IN BIT; a, b : IN BIT_VECTOR (4 downto 1); c4 : OUT BIT; s : OUT BIT_VECTOR (4 downto 1)); END soma2n4b; ARCHITECTURE adder OF soma2n4b IS Descrição das portas do circuito que desejamos descrever o funcionamento. Descrição de portas que são um vetor de entradas/saídas, onde a(4) é a entrada mais significativa. COMPONENT fulladder PORT ( a, b, cin : IN BIT; cout, r : OUT BIT); END COMPONENT; Declaração do component a ser usado na hierarquia. SIGNAL c : BIT_VECTOR (3 downto 1); Declaração dos sinais usados internamente. adder1: fulladder PORT MAP (a => a(1), b => b(1), cin => c0, cout => c(1), r => s(1)); adder2: fulladder PORT MAP (a => a(2), b => b(2), cin => c(1), cout => c(2), r => s(2)); adder3: fulladder PORT MAP (a => a(3), b => b(3), cin => c(2), cout => c(3), r => s(3)); adder4: fulladder PORT MAP (a => a(4), b => b(4), cin => c(3), cout => c4, r => s(4)); END adder; Declaração das funções lógicas das saídas. Usadas pelas instâncias do component.

4 Se quisermos usar apenas algumas portas do component ou usá-las em uma ordem diferente devemos usar a notação acima. Mas quando iremos usar todas as portas do component as linhas sublinhadas acima podem ser reescritas de forma mais eficiente da seguinte forma: PORT MAP (a(1), b(1), c0, c(1), s(1)); Basta listar as portas no PORT MAP na ordem correta. Assim podemos substituir o código sublinhado por: adder1: fulladder PORT MAP (a(1), b(1), c0, c(1), s(1); adder2: fulladder PORT MAP (a(2), b(2), c(1), c(2), s(2)); adder3: fulladder PORT MAP (a(3), b(3), c(2), c(3), s(3)); adder4: fulladder PORT MAP (a(4), b(4), c(3), c4, s(4)); END adder; Podemos escrever aquelas linhas de uma forma mais eficiente ainda, observando que ela é uma linha comum e as outras podem ser obtidas a partir dela através de iterações, dai temos adder(i): fulladder PORT MAP (a(i), b(i), c(i-1), c(i), s(i)); Assim podemos substituir o código sublinhado por: SIGNAL c : BIT_VECTOR (4 downto 0); c(0) <= c0; adders: FOR i IN 1 to 4 GENERATE adder: fulladder PORT MAP (a(i),b(i),c(i-1),c(i),s(i)); END GENERATE; c4 <= c(4); END adder; A declaração GENERATE criará hardware que corresponde ao intervalo de variáveis indexadas por i. Neste caso, i vai de 1 a 4, a instrução instancia quatro instâncias do Full Adder. Já que temos uma entrada, saída e três sinais internos, devemos utilizar um sinal interno de 5 bits (BIT_VECTOR (4 downto 0)), se quisermos incluir todos bits de forma indexada. A entrada de carry c0, definido na declaração de entidade, é atribuída ao elemento do vetor c(0). Da mesma forma, para a saída c4, é atribuída o valor do elemento c(4). É fácil de expandir o somador mudando a declaração do intervalo do FOR GENERATE.

5 Após montarmos o projeto hierárquico, devemos simulá-lo. Para isso vamos em Waveform editor e clicamos com o botão direito e selecionamos Enter Node From SNF, então selecionamos List, => e OK. Teremos uma janela como mostra a Figura 1. Figura 1 - Simulação do Full Adder Podemos alterar as entradas clicando com o botão direito sobre o ícone da entrada e selecionar Ungroup, então veremos (na Figura 2) que a variável a irá se dividir em quatro. Agora podemos alterar cada entrada do vetor a. Depois fazemos o mesmo para o vetor b. Figura 2 - Alterando um vetor de entradas

6 Após alterar as entradas devemos agrupá-las novamente, para facilitar a visualização do funcionamento do circuito proposto. Para isso basta selecionar as entradas que desejamos agrupar e clicar com o botão direito sobre o ícone da entrada e selecionar Enter Group, dar um nome para o grupo e selecionar que seja mostrado em Decimal, como segue nas Figura 3 e Figura 4. Figura 3 - Agrupando variáveis de um vetor Figura 4 - Agrupando variáveis de um vetor Lembrando sempre de respeitar a ordem dos algarismos mais significativos, eles devem estar na parte superior e que a saída da soma de dois números de 4 bits deve ser representada com 5 bits, logo o carry out do somador de 2 números de 4 bits representa uma saída e deve ser agrupado com as variáveis de saída.

7 Agora sim podemos simular o código VHDL proposto, como mostra a Figura 5. Figura 5 - Simulação do Full Adder Uma vez que aprendemos a fazer um projeto hierárquico, propomos que realize uma expansão desse projeto e crie um código que descreva um circuito que faça a soma de dois números de 16 bits e em seguida simule para observar o bom funcionamento do circuito.