Projeto de Circuitos Aritméticos

Tamanho: px
Começar a partir da página:

Download "Projeto de Circuitos Aritméticos"

Transcrição

1 Projeto de Circuitos Aritméticos E.T.M./2011 (adaptação) E.T.M./2012 (revisão) RESUMO Nesta experiência será desenvolvido um circuito aritmético usando a metodologia estruturada apresentada nas experiências anteriores. É introduzido também o projeto usando linguagens de descrição de hardware. A parte experimental consiste do projeto de um circuito de divisão inteira desenvolvido usando componentes digitais básicos e também com a linguagem de descrição de hardware VHDL. 1. PARTE TEÓRICA Multiplicação Binária Uma das operações mais custosas em um computador digital é a multiplicação binária. Ela pode ser implementada usando-se o algoritmo tradicional de multiplicação decimal que é ensinada nas aulas de Ensino Fundamental, também conhecido como algoritmo de lápis e papel. Apresentamos aqui os princípios fundamentais de operação do algoritmo tradicional e de um algoritmo melhorado. Algoritmo Tradicional Quando aprendemos a realizar a multiplicação de dois números inteiros no Ensino Fundamental, o processo para efetuar a operação é normalmente composto por uma série de somas. Transpondo este procedimento para a aritmética binária, temos sucessivas somas de valores binários. Como os dígitos na aritmética binária são 0 ou 1, o processo de multiplicação envolve sucessivas somas do multiplicando ou de zero em função de cada bit do multiplicador. O algoritmo tradicional de multiplicação binária de dois números binários sem sinal é feita com sucessivos deslocamentos do multiplicando à esquerda (que constituem as parcelas do cálculo dos produtos parciais) e uma soma. Para exemplificar, vamos executar este algoritmo com os números binários e , como ilustrado abaixo (fig.1.1) multiplicando x 11. x multiplicador produtos parciais produto Figura 1.1. Exemplo de multiplicação com algoritmo tradicional. A execução do algoritmo leva em consideração um bit do multiplicador de cada vez, com o bit menos significativo em primeiro lugar. Se o bit do multiplicador for 1, o multiplicando é copiado para ser somado posteriormente. Em caso contrário, se o bit do multiplicador for 0, um valor nulo é copiado em seu lugar. Os números copiados em linhas sucessivas são deslocados à esquerda de uma posição em relação à linha anterior. Finalmente, os números são somados gerando o produto final. Um circuito digital que implementa este algoritmo deve executar esta soma em etapas. Assim, quando um novo número for copiado, duas parcelas devem ser somadas gerando uma soma parcial. Ilustramos abaixo (fig.1.2) esta modificação no mesmo exemplo acima. Este algoritmo tradicional tem um requisito muito forte em relação à soma dos produtos parciais. Como são somadas n produtos parciais de n bits cada uma, é necessário um circuito somador com 2n bits. Isto representa uma questão que deve ser levado em conta durante o projeto de um circuito de multiplicação binária. 1 Para complementar os conceitos básicos, recomenda-se a leitura dos apêndices disponíveis na página web do Laboratório Digital. Projeto de Circuitos Aritméticos (2012) 1

2 Algoritmo Melhorado multiplicando x 11. x multiplicador somas dos produtos parciais 2 a produto Figura 1.2. Realização das somas parciais. A exigência do algoritmo tradicional de necessitar de um somador com 2n bits pode ser amenizada com um algoritmo levemente diferente. O algoritmo melhorado, que apresentamos aqui, necessita apenas de um somador de n bits e de operações de deslocamento para a direita do produto parcial. O algoritmo segue os seguintes passos: 1. Inicialmente o produto parcial é ajustado para 0 (zero); 2. Um bit do multiplicador é processado de cada vez, começando pelo bit menos significativo; a. Se o bit sendo processado for 1 (um), o multiplicando é somado ao produto parcial e depois é realizado um deslocamento pela direita do produto parcial; b. Se o bit sendo processado for 0 (zero), o produto parcial é apenas deslocado para a direita; 3. O bit de vai-um ("carry") do somador é armazenado em um flip-flop que deve estar conectado ao registrador deslocador contendo o produto parcial; 4. A soma deve ser realizada apenas nos 4 bits mais significativos de produto parcial. Um exemplo de aplicação deste algoritmo é ilustrado abaixo (fig.1.3) multiplicando x 11..x 1011 multiplicador valor inicial do produto parcial soma multiplicando, bit do multiplicador é desloca para a direita soma multiplicando, bit do multiplicador é desloca para a direita só desloca para a direita, bit do multiplicador é soma multiplicando, bit do multiplicador é desloca para a direita produto Figura 1.3. Exemplo do algoritmo melhorado para multiplicação binária. Implementação de um Circuito Multiplicador Seja um circuito Multiplicador Binário (MB) responsável pela realização da multiplicação de dois números binários sem sinal de 4 bits, introduzidos separadamente no circuito através de uma única via de dados (sinal IN). A operação é iniciada com o acionamento do sinal INICIAR e o resultado da operação com 8 bits é apresentado na saída (sinal OUT). Os operandos da multiplicação são especificados para o MB pelos sinais ENTRA_MULTIPLICANDO e ENTRA_MULTIPLICADOR. Os sinais de entrada e saída do Multiplicador Binário são os seguintes (fig.1.4): IN via de dados de entrada, com quatro bits; OUT via de dados de saída, com oito bits; INICIAR sinal de controle utilizado iniciar a multiplicação; ENTRA_MULTIPLICANDO sinal de controle utilizado para especificar o multiplicando da operação; Projeto de Circuitos Aritméticos (2012) 2

3 ENTRA_MULTIPLICADOR sinal de controle utilizado para especificar o multiplicador da operação; PRONTO sinal de saída que indica final da multiplicação. A figura 1.4 abaixo mostra o MB com os sinais descritos anteriormente. IN INICIAR ENTRA_MULTIPLICANDO ENTRA_MULTIPLICADOR CLOCK RESET Multiplicador Binário PRONTO OUT Figura 1.4 Sinais de entrada e saída do circuito Multiplicador Binário. A operação do circuito deve seguir os seguintes passos: 1. Acertar um valor binário na vida de dados de entrada (IN); 2. Ativar o sinal ENTRA_MULTIPLICANDO; 3. Colocar outro valor na via de dados de entrada; 4. Ativar o sinal ENTRA_MULTIPLICADOR; 5. Acionar o botão INICIAR para a execução da multiplicação binária; 6. Verificar resultado na via de dados de saída (OUT), depois de o sinal PRONTO ficar ativado. Apresentamos aqui uma possível implementação do circuito, usando a metodologia estruturada [Midorikawa, 2011]. Para mais detalhes da implementação, consulte a referência [Ranzini, 2004]. O diagrama de blocos do fluxo de dados de um circuito digital que implementa o algoritmo melhorado é apresentado na figura 1.5. O multiplicador é armazenado no registrador M e depois transferido para o registrador deslocador Q. A cada passo do algoritmo, o bit do multiplicador em consideração está na posição menos significativa de Q (bit Q 0 ), que é analisado pela unidade de controle. O multiplicando é armazenado no registrador B que é somado a cada passo com o produto parcial, presente no registrador deslocador A. O bit de vai-um do somador é armazenado no flip-flop C. O conjunto composto pelos componentes flip-flop C, deslocador A e deslocador Q compõem um grande deslocador para as operações de deslocamento para a esquerda. Um contador de passos P completa o fluxo de dados para indicar o final da operação de multiplicação, gerando o sinal ZERO. As saídas dos deslocadores A e Q formam o produto na saída do multiplicador. IN N-1 Registrador B Registrador M Contador P Somador Binário Detector de Zero Flip-flop C Deslocador A Deslocador Q ZERO Q0 OUT Figura 1.5 Fluxo de dados do circuito multiplicador binário. Projeto de Circuitos Aritméticos (2012) 3

4 A implementação da unidade de controle pode ser modelada pelo diagrama ASM da figura 1.6. O circuito permanece no estado inicial (PARADO) até que o sinal INICIAR seja ativado. Ao ser ativado este sinal, o flip-flop C, o deslocador A e o contador P são inicializados, e o deslocador Q recebe o valor do multiplicador. O processo de multiplicação envolve os estados MUL0 e MUL1, executados até que o sinal ZERO indique que todos os bits do multiplicador foram considerados. Ao final, o sinal PRONTO é ativado no estado FIM. O circuito permanece neste estado até que o sinal INICIAR seja desativado 2. PARADO 0 1 INICIAR C <= 0 A <= 0 Q <= M P <= N-1 MUL0 0 1 Q0 A <= A+B C <= Cout MUL1 C <= 0 C & A & Q <= shift rigth (C&A&Q) P <= P ZERO FIM PRONTO 1 INICIAR 0 Figura 1.6 Diagrama ASM da unidade de controle do multiplicador binário. Repare que o diagrama ASM não inclui o processamento dos sinais ENTRA_MULTIPLICANDO e ENTRA_MULTIPLICADOR. Isto é devido ao fato destes sinais ativarem diretamente o controle de carga dos registradores B e M, respectivamente. A implementação da unidade de controle pode ser desenvolvida usando o método tradicional de projeto de circuitos sequenciais, o método de mapeamento direto do diagrama ASM para circuito ou o método registrador de estado decodificador, conforme descrito com detalhes em [Ranzini, 2004]. Uma alternativa é usar uma linguagem de descrição de hardware: por exemplo, a apostila [Midorikawa, 2011] mostra como converter o diagrama ASM em código AHDL. É também possível usar outras linguagens de descrição de hardware, como VHDL ou Verilog, como mostrado em [Midorikawa, 2007]. 2 Por que é necessário aguardar o sinal INICIAR ficar desativado? Se não houvesse esta espera, quando o circuito terminar a multiplicação, voltar ao estado inicial e encontrar o sinal INICIAR ativado, ele iria reiniciar o processo de multiplicação. Isto continuaria até que INICIAR fosse desativado. Na apostila [Ranzini, 2004] isto não é considerado. Projeto de Circuitos Aritméticos (2012) 4

5 1.2. Divisão Binária Da mesma forma que a multiplicação binária pode ser implementada como um processo com somas e deslocamentos para a direita, a operação de divisão binária também pode ser implementada de forma similar. O algoritmo de divisão binária é composto de uma série de subtrações e deslocamentos para a esquerda. O algoritmo segue os seguintes passos (para N=4): 1. Inicialmente o valor do dividendo é carregado no registrador deslocador D e do divisor no registrador A; 2. Execute 4 vezes: a. Subtrair os 5 bits mais significativos do registrador D pelo registrador A; b. Se o resultado da subtração for positivo (divisor menor) então armazene o valor da subtração nos 5 bits mais significativos de D e atribua 1 ao bit de resultado; c. Se o resultado da subtração for negativo (divisor maior) então não armazene o valor da subtração e acerte o bit de resultado em 0; d. Desloque o registrador D uma posição para a esquerda com a entrada serial dada pelo bit de resultado citado acima. 3. Ao final, o quociente estará presente nos 4 bits menos significativos de D e o resto, nos 4 bits mais significativos de D. A figura 1.7 apresenta um fluxograma que ilustra o algoritmo de divisão binária (considerando dividendo com 8 bits e divisor com 4 bits). INÍCIO Subtrair os 5 bits mais significativos do registrador D do registrador A positivo resultado da subtração? negativo Ajuste bit de resultado para 1; Armazene resultado da subtração nos 5 bits mais significativos de D Ajuste bit de resultado para 0 Deslocar conjunto D + bit de resultado uma posição para a esquerda 4 a repetição? FIM Figura 1.7 Fluxograma do algoritmo de divisão binária. Projeto de Circuitos Aritméticos (2012) 5

6 A figura 1.8 ilustra um exemplo do algoritmo. Neste exemplo, temos o dividendo igual a 135 ( ) com 8 bits e o divisor igual a 12 ( ) com 4 bits. D bit passo x dividendo carregado em D divisor é menor subtrai e bit= x desloca para a esquerda divisor é maior bit= x desloca para a esquerda divisor é menor subtrai e bit= x desloca para a esquerda divisor é menor subtrai e bit= x 4 desloca para a esquerda resto quociente Figura 1.8 Exemplo do algoritmo de divisão binária (135 12). A operação de subtração envolve os 5 bits mais significativos do registrador D e os 4 bits do registrador A alinhados pelo bit menos significativo. Por exemplo, no passo 1 apresentado na figura 1.8, temos a subtração = O circuito que implementaria esta operação deve considerar um quinto bit igual a zero para o subtraendo, ou seja, teríamos a subtração Outra operação que deve ser implementada é o teste se o divisor é ou não maior que a porção mais significativa do dividendo. Uma possível solução seria o uso dos resultados do próprio circuito de subtração binária, em particular, o sinal de empresta-um (figura 1.9). Minuendo Subtraendo Empresta-um (borrow-out) Subtrator Binário Emprestou-um (borrow-in) Diferença Figura 1.9 Exemplo de circuito de subtração binária. Outro aspecto do algoritmo é a atualização dos bits mais significativos do registrador D após a realização da subtração. Como esta operação envolve os 5 bits mais significativos, a implementação deve ser realizada usando o sinal de carga paralela do registrador e mais uma lógica de seleção de sinais para os bits de entrada. Este algoritmo de divisão binária tem um problema, pois considerando as condições do exemplo da figura 1.8 (dividendo de 8 bits e divisor de 4 bits), o quociente e o resto tem 4 bits de tamanho. Caso o quociente precisar ter mais bits, o resultado final do algoritmo não estará correto. Um exemplo disto é a divisão 135 1, onde o quociente precisaria ter 8 bits de tamanho. Uma alternativa que soluciona este problema pode ser vista em [Patterson & Hennessy, 2009]. Projeto de Circuitos Aritméticos (2012) 6

7 1.3. Linguagens de Descrição de Hardware Uma alternativa à entrada esquemática de um circuito digital em um sistema de projeto auxiliado por computador, ou EDA (electronic design automation) como é mais conhecido atualmente, é utilizar a técnica de projeto de PLDs (programmable logic devices dispositivos lógicos programáveis) baseado em uma ferramenta de projeto baseado em texto ou linguagem de descrição de hardware (HDL). Exemplos de HDLs são o AHDL (Altera Hardware Description Language) e os padrões VHDL e Verilog. O projetista cria um arquivo de texto, seguindo certo conjunto de regras, conhecido como sintaxe da linguagem, e usa um compilador para criar dados de programação do dispositivo lógico programável (PLD). Esta descrição de hardware pode ser usada para gerar projetos hierárquicos, ou seja, um componente definido em uma descrição pode ser usado para gerar um hardware específico ou ser usado como parte de outro projeto 3. As HDLs têm uma grande semelhança às linguagens de programação, mas são especificamente orientadas à descrição das estruturas e do comportamento do hardware. Por exemplo, a linguagem Verilog apresenta uma semelhança muito grande com a linguagem C. Uma grande vantagem das HDLs em relação à entrada esquemática é que elas podem representar diretamente equações booleanas, tabelas verdade e operações complexas (p.ex. operações aritméticas). Uma HDL pode ser usada na descrição em vários níveis do circuito em desenvolvimento. Partindo de uma descrição de alto nível, pode ser usada para refinar e particionar esta descrição em outras de nível mais baixo durante o processo de desenvolvimento. A descrição final deve conter componentes primitivos e blocos funcionais. Uma descrição estrutural descreve a interconexão entre os componentes que fazem parte do circuito. Esta descrição é usada como entrada para uma simulação lógica da mesma forma que uma entrada esquemática. Definem-se os componentes principais do projeto e a arquitetura do módulo principal contém a descrição da forma como estes se interconectam. Uma descrição comportamental descreve o funcionamento de cada um dos componentes do circuito de uma forma algorítmica, ou seja, com a apresentação da forma como o processamento é realizado sem se preocupar com a futura implementação em hardware. Desta forma, normalmente uma descrição comportamental não pode ser diretamente traduzida em uma estrutura de hardware, ou seja, não é sintetizável. Uma grande razão para o uso de HDLs é a síntese lógica. Uma descrição em HDL em conjunto com uma biblioteca de componentes é usada por uma ferramenta de síntese para a geração automática de um circuito digital. Além disto, estas ferramentas incluem uma etapa de otimização da lógica interna do circuito gerado, antes da geração das estruturas internas de armazenamento, da lógica combinatória e da estrutura de conexão dos componentes (netlist). A figura 1.10 abaixo mostra um diagrama mostrando as etapas principais de síntese lógica. Descrição HDL do circuito Tradução Representação intermediária Otimização Geração de netlist Figura 1.10 Estruturação interna de um sistema digital. As linguagens de descrição de hardware foram desenvolvidas a partir da década de As primeiras linguagens foram o ISP (Instruction Set Processor) desenvolvido pela Carnegie Mellon University e o KARL da University of Kaiserslautern, Alemanha. Seu uso inicial foi na simulação de circuitos digitais. Atualmente, as HDLs mais utilizadas são o VHDL e o Verilog. Ambas as linguagens são hoje padrões aprovados e publicados pelo IEEE (Instituto dos Engenheiros Elétricos e Eletrônicos), tendo portanto várias ferramentas comerciais disponíveis. Esta padronização leva a uma grande vantagem no desenvolvimento de circuitos usando HDLs: a portabilidade. Visto que as ferramentas devem implementar as características padronizadas, fica muito fácil usar sistemas de desenvolvimento de fabricantes diferentes. Apresentamos a seguir as duas linguagens de descrição de hardware mais usadas atualmente, VHDL e Verilog. Após um breve histórico, apresentamos as principais características de cada uma das HDLs. 3 No projeto de circuitos integrados é comum o uso de licenciamento de módulos desenvolvidos por empresas especializadas, chamadas IP (intellectual property). Os exemplos mais comuns de IPs são núcleos (cores) de processadores e controladores de periféricos (p.ex. SDRAM, Ethernet e USB). Projeto de Circuitos Aritméticos (2012) 7

8 Linguagem VHDL O nome VHDL é um acrônimo de VHSIC Hardware Description Language. Já o termo VHSIC é o acrônimo de Very High Speed Integrated Circuit (Circuito integrado com velocidade muito alta). Assim podemos traduzir o nome VHDL como algo do tipo "linguagem de descrição de hardware para circuitos integrados com velocidade muito alta". A linguagem VHDL foi originalmente desenvolvida por empresas contratadas pelo governo americano e agora é um padrão requerido pro todos os ASICs (Application Specific Integrated Circuits circuitos integrados de aplicação específica) projetados para o exército americano. Ele foi padronizado pelo IEEE em 1987 (Padrão IEEE ou VHDL 87) e foi atualizado em 1993, em 2000 e em Os trabalhos do IEEE continuaram e uma nova revisão foi publicada recentemente (VHDL 2008 Padrão IEEE ). Todo arquivo VHDL requer ao menos duas estruturas: uma declaração de entidade e uma arquitetura. A declaração de entidade define os aspectos externos da função VHDL, isto é, os nomes das entradas e saídas e o nome da função. A arquitetura define os aspectos internos, isto é, como as entradas e saídas influem no funcionamento e como se relacionam com outros sinais internos. Um exemplo de uma descrição VHDL é mostrado a seguir (figura 1.11). -- somador de 4 bits: descrição comportamental VHDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity somador_4bits is port(b, A : in std_logic_vector(3 downto 0); C0 : in std_logic; S : out std_logic_vector(3 downto 0); C4 : out std_logic); end somador_4bits; architecture comportamental of somador_4bits is signal soma : std_logic_vector(4 downto 0); begin soma <= ('0' & A) + ('0' & B) + ("0000" & C0); C4 <= soma(4); S <= soma(3 downto 0); end comportamental; Figura 1.11 Exemplo de descrição em VHDL. Os sinais de entrada e saída são do tipo std_logic e std_logic_vector. O tipo std_logic é definido no pacote ieee.std_logic_1164 e pode assumir os valores 'U', 'X', '0', '1', 'Z', 'W', 'L', 'H' ou '-'. O tipo std_logic_vector representa um vetor de bits. O somador possui 3 sinais de entrada: A, B e C0, e 2 sinais de saída: S e C4. São usados dois operadores: + representa uma adição e & representa uma concatenação de bits. Assim, '0' & A representa um vetor de 5 bits contendo '0', A(3), A(2), A(1) e A(0). Após a realização de uma operação de adição com os sinais de entrada, a descrição atribui o bit mais significativo de soma a C4 e os outros bits em S. Implementação do Circuito de Multiplicação Binária em VHDL O Multiplicador Binário apresentado na seção 1.1 pode ser representado durante o processo de projeto como uma descrição comportamental VHDL, apresentada na figura 1.12 (veja [Midorikawa, 2007] para mais detalhes). Tal descrição apresentada abaixo representa o diagrama de blocos do fluxo de dados MB apresentado na figura 1.5 e o diagrama ASM da figura 1.6. O código VHDL está contido na entidade multiplicador_binario e na arquitetura comportamento_mult4. A arquitetura contém duas atribuições e três processos. Cada um dos processos tem uma função distinta, mas podem interagir para a realização da operação de multiplicação. No início da entidade, são definidas as entradas e as saídas do multiplicador. A seguir, no início da arquitetura são definidos os três estados de funcionamento do circuito pela declaração de tipo. Em seguida, sinais internos que gerarão registradores são definidos. Entre os sinais estão estado e prox_estado para o controle, os registradores A, B, M, P e Q e o flip-flop C. Um sinal intermediário Z é declarado por conveniência. Projeto de Circuitos Aritméticos (2012) 8

9 Figura 1.12 Código VHDL do circuito Multiplicador Binário.

10 Linguagem Verilog A linguagem Verilog foi introduzida em 1985 pela Gateway Design Automation. Em 1989, a Gateway foi comprada pela empresa Cadence Design Systems, que tornou a linguagem de domínio público em maio de 1990 com a formação da Open Verilog International (OVI). Hoje o Verilog é um padrão IEEE , mas novos trabalhos continuaram em andamento. Atualmente, a última versão da linguagem foi definida em 2005 com o padrão IEEE (Verilog 2005). O Verilog tem uma grande semelhança com a linguagem de programação C. Uma característica interessante do Verilog é que, ao contrário do VHDL, há a diferenciação entre o uso de maiúsculas e minúsculas. Os identificadores podem conter qualquer sequência de letras, dígitos, do símbolo '$' e do símbolo '_', onde o primeiro caractere deve ser uma letra ou o símbolo '_'. O Verilog oferece ao projetista os meios para descrever um sistema digital em vários níveis de abstração, e também suporta ferramentas de projeto para síntese lógica. Projetistas de hardware podem expressar suas idéias com construções comportamentais, deixando os detalhes para fases posteriores do projeto. Uma representação abstrata pode ser usada para explorar alternativas arquiteturais através de simulações e para detectar restrições de projeto antes do projeto detalhado. Com o detalhamento do projeto, são criadas descrições com construções estruturais. A construção Verilog básica é o module. Os sinais de entrada e saída de um módulo (a sua interface) são designados usando ports. Cada sinal de um port pode ser declarado como input, output ou inout. Um procedimento Verilog é sempre um comando always ou initial, uma tarefa (task) ou função (function). Os comandos dentro de um bloco sequencial (comandos que aparecem entre um begin e um end) que é parte de um procedimento (procedure) são executados sequencialmente na ordem em que aparecem. Mas os procedimentos são executados concorrentemente com outros procedimentos. Um bloco sequencial pode aparecer em um comando always, no caso em que o bloco deve ser executado repetidamente. Por outro lado, um comando initial especifica um bloco sequencial que é executado apenas uma vez, no início de uma simulação. Uma task é um tipo de procedimento, chamado por outro procedimento, que tem entradas e saídas, mas não tem um valor de retorno. Uma tarefa pode chamar outras tarefas e funções. Uma function é um procedimento usado em qualquer expressão, tem ao menos uma entrada, não tem saída e retorna um único valor. Uma função não pode chamar uma tarefa. Verilog possui um tipo de controle de temporização que atrasa uma atribuição até que um evento específico ocorra. Um controle de evento é especificado por Por clk) indica um evento referente a uma borda de subida do sinal clk. Um exemplo de uma descrição Verilog é mostrada a seguir (figura 1.13). // somador de 4 bits: descrição comportamental Verilog module somador_4bits(a, B, C0, S, C4) input[3:0] A, B; input C0; output[3:0]; output C4; assign {C4, S} = A + B + C0; endmodule Figura 1.13 Exemplo de descrição em Verilog. No módulo Verilog acima, a lógica de adição é descrita por um único comando usando os operadores + e {}. O operador + representa a adição e {} representa uma operação chamada concatenação. A operação de adição deve ser efetuada sobre tipos de dados sem sinal. A concatenação combina dois sinais em um único sinal com um número de bits igual à soma do número de bits de cada sinal original. Por exemplo, {C4, S} representa o vetor de bits contendo C4, S[3], S[2], S[1] e S[0] com = 5 bits. Note que C4 é o quinto bit ou bit mais significativo da concatenação. Uma implementação do circuito de multiplicação binária similar ao descrito no item 1.1 em Verilog é apresentada em [Midorikawa, 2007]. Projeto de Circuitos Aritméticos (2012) 10

11 2. PARTE EXPERIMENTAL Nesta experiência sobre Dispositivos Programáveis será desenvolvido o projeto de um sistema digital utilizando-se o dispositivo Altera Cyclone II EP2C35F672C6. As atividades desta experiência incluem a familiarização com a metodologia de projeto estruturado e com a placa de desenvolvimento DE2 da Altera Atividade Pré-Laboratório Considere abaixo a especificação do circuito de divisão binária (fig.2.1): IN INICIAR ENTRA_DIVIDENDO ENTRA_DIVISOR CLOCK RESET Divisor Binário PRONTO Q R Figura 2.1 Circuito de Divisão Binária. A operação do circuito deve seguir os seguintes passos: 1. Acertar um valor binário de 8 bits do dividendo na entrada IN; 2. Ativar o sinal ENTRA_DIVIDENDO; 3. Colocar um valor binário de 4 bits do divisor nos bits menos significativos da entrada IN; 4. Ativar o sinal ENTRA_DIVISOR; 5. Acionar o botão INICIAR para a execução da multiplicação binária; 6. Verificar resultado nas saídas (Q e R). Caso se deseje repetir um valor anteriormente ajustado no circuito do Divisor Binário, os passos 1 e 2 ou os passos 3 e 4 podem ser ignorados, visto que um registrador interno deve manter os valores do dividendo e do divisor da operação anterior. Para a preparação para as atividades em laboratório da experiência, execute o seguinte: a) Realize o desenvolvimento de dois projetos do circuito do divisor binário no software Altera Quartus II, especificando o uso do dispositivo Altera Cyclone II EP2C35F672C6. 1. Projeto usando a metodologia estruturada (blocos fluxo de dados, unidade de controle e sistema digital); 2. Projeto usando a linguagem de descrição de hardware VHDL. b) Realize simulações dos dois projetos para verificar o funcionamento de cada um. c) Leve os arquivos dos projetos para o Laboratório Digital. d) Foi dito que o algoritmo de divisão binária apresenta um problema quando o número de bits do quociente for maior que 4 bits. Como esta condição pode ser detectada no início do processamento? OBS.: o planejamento deve conter os resultados obtidos com a execução das atividades referentes ao item 2.1 acima Implementação do Projeto Exemplo e) Usando o software Quartus II, implemente projeto do divisor binário em VHDL na placa de desenvolvimento DE2 da Altera com a seguinte designação de sinais do projeto: IN[0..7] : chaves SW0 a SW7 ENTRA_DIVIDENDO : botão KEY1 ENTRA_DIVISOR : botão KEY2 INICIAR : botão KEY3 CLOCK : clock interno de 50 MHz (CLK_50) RESET : chave SW17 Q[0..6] : display de 7 segmentos HEX0 R[0..6] : display de 7 segmentos HEX1 PRONTO : led verde LEDG0 DICA: lembrem-se que os botões na placa DE2 são ativos em baixo. Os projetos devem levar isto em consideração. Use a tabela de designação de pinos da placa DE2. Projeto de Circuitos Aritméticos (2012) 11

12 f) Programe os projetos na placa DE2 seguindo os passos descritos nas instruções de uso. Com cada um dos circuitos em funcionamento na placa DE2, execute vários testes para verificar o comportamento deles. Use vários valores de entrada. Comente os resultados. g) Considere também nos testes entradas incomuns, como por exemplo, a divisão por 1. Comente o comportamento do circuito. h) (Opcional) Implemente o circuito de detecção dos casos em que o algoritmo de divisão apresentado não efetua a operação de forma correta. Caso este detector verificar estes casos, o circuito deve abortar a execução Melhoramentos no Projeto em VHDL Neste item vamos modificar o circuito do projeto do divisor binário, conforme apresentado pelo professor: i) Solicite a especificação das modificações a serem desenvolvidas ao professor da turma. j) Modifique o circuito do projeto solicitado. k) Documente as modificações (p.ex. diagrama de blocos, diagrama ASM, código da descrição, simulações). l) Implemente estas modificações na placa DE2. m) Teste o circuito modificado. Comente seu funcionamento. Perguntas 1. Quais são as diferenças entre o uso de linguagens de descrição de hardware para o projeto de circuitos digitais em relação ao uso de componentes lógicos? Cite vantagens e desvantagens. 2. Apesar do projeto em VHDL produzir uma descrição em formato de texto, é importante o uso de diagramas de blocos e diagramas ASM nas etapas preliminares do projeto. Comente esta afirmação. 3. Em um projeto moderno de sistemas digitais usando programas de auxílio para o projeto de circuitos (como o Altera Quartus II), é possível um mesmo projeto conter módulos em VHDL, módulos em AHDL e módulos desenvolvidos com captura esquemática? Comente e exemplifique. 3. BIBLIOGRAFIA 1. ALTERA. Cyclone II Device Handbook, Volume I ALTERA. DE2 Development and Education Board - User Manual. Version ALTERA. Quartus II Handbook Version 9.1. Volume 1: Design and Synthesis GIVONE, D.D. Digital Principles and Design. McGraw-Hill, MANO, M. M.; KIME, C. R. Logic and computer design fundamentals. 2 nd ed., Prentice-Hall, MIDORIKAWA, E.T. Introdução às Linguagens de Descrição de Hardware. Apostila de PCS2304, MIDORIKAWA, E.T. Projeto de Sistemas Digitais. Apostila de Laboratório Digital, PATTERSON, D.A.; HENNESSY, J.L. Computer Organization and Design: the hardware/software interface. 4 th ed. (Revised Printing), Morgan Kaufmann, RANZINI, E. Exemplo 1 de Projeto de Circuito Síncrono: Multiplicador Binário. Apostila de PCS2304, RANZINI, E.; HORTA, E. L. Introdução aos Dispositivos Lógicos Programáveis. Apostila de Laboratório Digital. Escola Politécnica da USP, 2000 (revisão em 2011). 11. TOCCI, R. J., WIDMER, N. S., MOSS, G.L. Digital Systems: principles and applications. 11 th ed., Prentice-Hall, WAKERLY, J. F. Digital design: principles and practice. 4 th ed., Prentice- Hall, EQUIPAMENTOS NECESSÁRIOS 1 placa de desenvolvimento FPGA DE2 da Altera com o dispositivo Altera Cyclone II EP2C35F672C6. 1 computador PC com programa Altera Quartus II e interface USB. Projeto de Circuitos Aritméticos (2012) 12

Projeto com Linguagens de Descrição de Hardware

Projeto com Linguagens de Descrição de Hardware Projeto com Linguagens de Descrição de Hardware Versão 2012 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware.

Leia mais

Multiplicador Binário com Sinal

Multiplicador Binário com Sinal Multiplicador Binário com Sinal Edson T. Midorikawa/2010 E.T.M./2012 (revisão) RESUMO Nesta experiência será implementado um circuito para multiplicação binária com sinal. Deve ser aplicada a metodologia

Leia mais

Calculadora Simples em VHDL

Calculadora Simples em VHDL Calculadora Simples em VHDL Versão 2014 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware. São apresentados

Leia mais

Projeto com Dispositivos Programáveis

Projeto com Dispositivos Programáveis Projeto com Dispositivos Programáveis E.T.M./2011 (revisão) RESUMO Nesta experiência será apresentada uma metodologia para projeto de sistemas digitais utilizando FPGAs (dispositivos programáveis) e HDLs

Leia mais

Uma Introdução às Linguagens de Descrição de Hardware

Uma Introdução às Linguagens de Descrição de Hardware Uma Introdução às Linguagens de Descrição de Hardware Edson T. Midorikawa (2001) revisado em 03/2007 Este texto tem como objetivo apresentar de forma bem sucinta as Linguagens de Descrição de Hardware,

Leia mais

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL Introdução ao VHDL Versão 2016 RESUMO Esta experiência consiste no estudo de descrições VHDL e no projeto e implementação de um circuito digital simples. São apresentados aspectos básicos da linguagem

Leia mais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Versão 2012 RESUMO Nesta experiência será apresentada uma metodologia estruturada para projeto de sistemas digitais utilizando FPGAs

Leia mais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis E.T.M./2011 (adaptação) RESUMO Nesta experiência será apresentada uma metodologia estruturada para projeto de sistemas digitais

Leia mais

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis Versão 2013 RESUMO Nesta experiência será desenvolvido um projeto de sistema digital em um dispositivo programável (FPGA) com a

Leia mais

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL Contadores em VHDL Versão 2012 RESUMO Esta experiência consiste no projeto e implementação de circuitos contadores com o uso da linguagem de descrição de hardware VHDL. São apresentados aspectos básicos

Leia mais

LÓGICA PROGRAMÁVEL II

LÓGICA PROGRAMÁVEL II LÓGICA PROGRAMÁVEL II Edson T. Midorikawa (2001) E.T.M./2002 (revisão) E.T.M./2004 (revisão) RESUMO Nesta experiência será apresentada uma metodologia para projeto de sistemas digitais utilizando HDLs

Leia mais

SIMULAÇÃO DE CIRCUITOS

SIMULAÇÃO DE CIRCUITOS SIMULAÇÃO E CIRCUITOS Versão 2012 RESUMO Nesta experiência será discutido o procedimento de simulação de circuitos digitais, em particular sua importância dentro de uma metodologia para projeto de sistemas

Leia mais

Laboratório de Lógica Digital

Laboratório de Lógica Digital Laboratório de Lógica Digital Prática V Introdução Nesta aula iremos programar o código de um multiplicador de 4 bits contido no livro de Ordonez et al. (2003), encontrar o erro do código de multiplicação

Leia mais

EPUSP PCS2355 Laboratório Digital SOMADORES DECIMAIS

EPUSP PCS2355 Laboratório Digital SOMADORES DECIMAIS SOMADORES DECIMAIS Versão 2015 RESUMO Nesta experiência será estudado um circuito aritmético de soma decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283). A parte

Leia mais

Banco de Registradores e ULA

Banco de Registradores e ULA Banco de Registradores e ULA Versão 2015 RESUMO Esta experiência tem como objetivo o desenvolvimento de um banco de registradores contendo 8 registradores de 4 bits cada. Este circuito deve armazenar um

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS SOMADORES DECIMAIS Versão 2012 RESUMO Nesta experiência será estudado um circuito aritmético de soma decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283). A parte

Leia mais

EPUSP PCS 3635 Laboratório Digital I. Trena Digital

EPUSP PCS 3635 Laboratório Digital I. Trena Digital Trena Digital Versão 2016 RESUMO Esta experiência tem por objetivo desenvolver uma Trena Digital, ou seja, um circuito digital que realiza a medida de distância para um objeto, usando um sensor ultrassônico

Leia mais

Banco de Registradores

Banco de Registradores Banco de Registradores Versão 201 RESUMO Esta experiência tem como objetivo o desenvolvimento de um banco de registradores contendo 8 registradores de bits cada. Este circuito deve armazenar um conjunto

Leia mais

EPUSP PCS 2308 Laboratório Digital. Trena Digital

EPUSP PCS 2308 Laboratório Digital. Trena Digital Trena Digital Versão 2014 RESUMO Esta experiência tem por objetivo desenvolver um circuito que realiza a medida de distância para um objeto. A implementação será desenvolvida com o dispositivo programável

Leia mais

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL Circuito em VHDL Versão 2017 RESUMO Esta experiência tem como objetivo um contato inicial com o desenvolvimento do projeto de um circuito digital simples em VHDL e sintetizado para uma placa de desenvolvimento

Leia mais

EPUSP PCS 3335 Laboratório Digital A. Trena Digital

EPUSP PCS 3335 Laboratório Digital A. Trena Digital Trena Digital Versão 2016 RESUMO Esta experiência tem por objetivo desenvolver uma Trena Digital, ou seja, um circuito digital que realiza a medida de distância para um objeto, usando um sensor ultrassônico

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro Versão 2014 RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para isto, serão apresentados alguns exemplos de

Leia mais

CALCULADORA SIMPLES COM ULA

CALCULADORA SIMPLES COM ULA CALCULADORA SIMPLES COM ULA Versão 2013 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam

Leia mais

Circuito de Recepção Serial Assíncrona

Circuito de Recepção Serial Assíncrona Circuito de Recepção Serial Assíncrona Versão 2016 RESUMO O objetivo desta experiência é aplicar a metodologia de projeto de circuitos digitais com dispositivos programáveis adotado no Laboratório Digital

Leia mais

MELHORAMENTO NO PROCESSADOR SIMPLES

MELHORAMENTO NO PROCESSADOR SIMPLES MELHORAMENTO NO PROCESSADOR SIMPLES Versão 2014 RESUMO Esta experiência tem como objetivo o desenvolvimento de um melhoramento no projeto de um núcleo de um processador simples. Na parte experimental este

Leia mais

FPGA & VHDL. Tutorial

FPGA & VHDL. Tutorial FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves

Leia mais

UM PROCESSADOR SIMPLES

UM PROCESSADOR SIMPLES UM PROCESSADOR SIMPLES Versão 2013 RESUMO Esta experiência tem como objetivo o desenvolvimento do projeto de um núcleo de um processador simples. Na parte experimental este projeto deverá ser sintetizado

Leia mais

Exemplo 1 de Projeto de Circuito Síncrono: Multiplicador Binário

Exemplo 1 de Projeto de Circuito Síncrono: Multiplicador Binário PS234 MULTIPLIAOR BINÁRIO Rev. Exemplo de Projeto de ircuito Síncrono: Multiplicador Binário Resumo elaborado por Edith Ranzini, a apartir do livro KIME, R; MANO, M.M. Logic and omputer esign Fundamentals.

Leia mais

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

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP 1 Objetivos da Aula: Introdução à Linguagem VHDL Plano de Ensino Conteúdo Programático 3. Ferramentas de Desenvolvimento 3.4. Editor de texto (programação VHDL ou

Leia mais

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

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP 1 Objetivos da Aula: Introdução à Linguagem VHDL Plano de Ensino Conteúdo Programático 3. Ferramentas de Desenvolvimento 3.4. Editor de texto (programação VHDL ou

Leia mais

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

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Linguagem para descrever o funcionamento de um sistema (o que e como o sistema faz). O sistema descrito em HDL

Leia mais

Processador nanopcs-3

Processador nanopcs-3 Processador nanopcs-3 E.T.M./2011 RESUMO Esta experiência tem por objetivo o projeto do núcleo de um pequeno processador responsável pela execução de operações aritméticas e lógicas e de transferência

Leia mais

Processador nanopcs-4

Processador nanopcs-4 Processador nanopcs-4 E.T.M./2012 RESUMO Esta experiência tem por objetivo o projeto do núcleo de um pequeno processador responsável pela execução de operações aritméticas e lógicas,de transferência de

Leia mais

CONTROLE DE UM SERVO MOTOR

CONTROLE DE UM SERVO MOTOR CONTROLE DE UM SERVO MOTOR Versão 2015 RESUMO Esta experiência tem como objetivo a familiarização e o projeto de um circuito de controle simples de um servo motor. A parte experimental inclui atividades

Leia mais

EPUSP PCS 3335 Laboratório Digital A. Um Circuito Digital

EPUSP PCS 3335 Laboratório Digital A. Um Circuito Digital Um Circuito Digital Versão 2016 RESUMO Esta experiência tem como objetivo o desenvolvimento de um circuito digital, especificado a partir de um diagrama ASM e um fluxo de dados. A parte prática deve ser

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES CALCULADORA SIMPLES E.T.M./2003 (revisão e adaptaçào) M.D.M. e E.T.M./2006 (revisão) E.T.M./2008 (revisão) E.T.M./20 (revisão) RESUMO Esta experiência tem por objetivo a utilização de circuitos integrados

Leia mais

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO PARA SEMÁFOROS DE UM CRUZAMENTO Versão 2015 RESUMO Esta experiência tem como principal objetivo ilustrar a utilização de circuitos biestáveis, através do projeto de um circuito de controle das luzes de

Leia mais

Montagem, testes, depuração e documentação de circuitos digitais

Montagem, testes, depuração e documentação de circuitos digitais Montagem, testes, depuração e documentação de circuitos digitais Versão 2012 RESUMO Esta experiência tem como objetivo um contato inicial com técnicas de montagem, teste e depuração de circuitos digitais.

Leia mais

SIMULAÇÃO DE CIRCUITOS E DISPOSITIVOS PROGRAMÁVEIS

SIMULAÇÃO DE CIRCUITOS E DISPOSITIVOS PROGRAMÁVEIS SIMULAÇÃO DE CIRCUITOS E DISPOSITIVOS PROGRAMÁVEIS Edson T. Midorikawa / 2007 RESUMO Nesta experiência será discutido o procedimento de simulação de circuitos digitais, em particular sua importância dentro

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES CALCULADORA SIMPLES E.T.M./23 (revisão e adaptaçào) M.D.M. e E.T.M. (revisão) E.T.M./28 (revisão) RESUMO Esta experiência tem por objetivo a utilização de circuitos integrados de soma binária para o desenvolvimento

Leia mais

Interface com Sensor Ultrassônico de Distância

Interface com Sensor Ultrassônico de Distância Interface com Sensor Ultrassônico de Distância Versão 2016 RESUMO Esta experiência tem por objetivo desenvolver um circuito que realiza a interface com o sensor ultrassônico de distância HC-SR04. A implementação

Leia mais

Revisão: Projeto de Processadores em VHDL

Revisão: Projeto de Processadores em VHDL Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Revisão: Projeto de Processadores em VHDL DCA0119 Sistemas Digitais Heitor Medeiros Florencio 1 Sumário

Leia mais

Comunicação Serial Assíncrona

Comunicação Serial Assíncrona Comunicação Serial Assíncrona Versão 2016 RESUMO O objetivo desta experiência é projetar circuitos digitais para comunicação serial de dados (transmissão de dados) com um terminal de dados, utilizando

Leia mais

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

FPGA & VHDL. Tutorial Aula 1. Computação Digital FPGA & VHDL Tutorial Aula 1 Computação Digital FPGA Field Programmable Gate Array Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programáveis ) para desempenhar uma

Leia mais

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS GERADOR DE SINAIS Versão 2015 RESUMO Esta experiência tem como objetivo a familiarização com o problema da conversão de sinais digitalizados em sinais analógicos, o conversor digital-analógico de 8 bits

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES CALCULADORA SIMPLES E.T.M./2003 (revisão e adaptação) E.T.M. e M.D.M./2005 (revisão) RESUMO Esta experiência tem por objetivo a utilização de circuitos integrados de soma binária para o desenvolvimento

Leia mais

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples Uma ULA Simples Versão 2013 RESUMO Esta experiência tem como objetivo o desenvolvimento do projeto de uma unidade lógica e aritmética simples que realiza quatro operações sobre dados de quatro bits. OBJETIVOS

Leia mais

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples Uma ULA Simples Versão 2015 RESUMO Esta experiência tem como objetivo o desenvolvimento do projeto de uma unidade lógica e aritmética simples que realiza quatro operações sobre dados de quatro bits. OBJETIVOS

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro Versão 2012 RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para isto, serão apresentados alguns exemplos de

Leia mais

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

Sistemas Digitais. Linguagem Verilog. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA) Sistemas Digitais Linguagem Verilog Monitoria SD 2011.2 Daniel Alexandro/Reniê Delgado/Vanessa Ogg Editado por (DARA) Introdução Verilog é uma linguagem, como VHDL, largamente usada para descrever sistemas

Leia mais

EPUSP PCS 2021 Laboratório Digital II. Sistema de Radar

EPUSP PCS 2021 Laboratório Digital II. Sistema de Radar Sistema de Radar Versão 2015 RESUMO Esta experiência tem por objetivo desenvolver um circuito que realiza a detecção de objetos próximo com um sensor ultrassônico de distância e um servo-motor. A implementação

Leia mais

Circuito Hierárquico

Circuito Hierárquico Circuito Hierárquico Versão 2017 RESUMO Nesta experiência será estudado como organizar o projeto de um sistema digital de forma hierárquico. Uma hierarquia de módulos compõe o projeto, onde cada módulo

Leia mais

SIMULAÇÃO DE CIRCUITOS

SIMULAÇÃO DE CIRCUITOS SIMULAÇÃO DE CIRCUITOS Edson T. Midorikawa, Ricardo Caneloi dos Santos e Dante Tantalean / 2002 E.T.M./2003 (revisão) E.T.M./2004 (revisão) E.T.M./2005 (revisão) RESUMO Nesta experiência serão discutidos

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Representação de Números de Ponto Flutuante Aritmética

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro E.T.M./2005 E.T.M./2006 (revisão) E.T.M./2011 (revisão) RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação Conceitos Básicos de Eletrônica Digital (Parte IV) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

Capítulo 6 Aritmética Digital: Operações e Circuitos

Capítulo 6 Aritmética Digital: Operações e Circuitos Capítulo 6 Aritmética Digital: Operações e Circuitos slide 1 Temas abordados nesse capítulo: - Adição, subtração, multiplicação e divisão de dois binários. - Diferença entre soma binária e soma OR. - Vantagens

Leia mais

Dispositivos de Lógica Programável

Dispositivos de Lógica Programável Dispositivos de Lógica Programável Evolução Válvula no início de 1940 Transistor em 1947 Não aquece como as válvulas Fisicamente menor 1961 primeiro integrado TTL 74LSXX Década de 1970 surge SPLD Simple

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital ARITMÉTICA DECIMAL

EPUSP PCS 2011/2305/2355 Laboratório Digital ARITMÉTICA DECIMAL ARITMÉTICA DECIMAL Versão 2012 RESUMO Nesta experiência será estudado um circuito aritmético de soma e subtração decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283).

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 3 Introdução ao VHDL Prof. Leonardo Augusto Casillo O que significa VHDL? Very High Speed Integrated Circuit Hardware Description

Leia mais

Parte # 2 - Circuitos Combinatórios

Parte # 2 - Circuitos Combinatórios CEFET Departamento de Engenharia Elétrica - DEPEL GELE 7163 Eletrônica Digital Parte # 2 - Circuitos Combinatórios 1 GELE 7163 Eletrônica Digital 2 Referências : Notas de Aula. Mendonça, Alexandre e Zelenovsky,

Leia mais

Exercícios de Laboratório 3

Exercícios de Laboratório 3 Tradução do Laboratory Exercise 3 disponível em Exercícios de Laboratório 3 Latches, Flip-Flops e Registradores Este exercício

Leia mais

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Introdução ao VHDL César A. M. Marcon VHDL Uma Linguagem de Descrição de Hardware 2 Originou como linguagem para descrever hardware, no contexto do programa

Leia mais

Capítulo 6 Aritmética Digital: Operações e Circuitos

Capítulo 6 Aritmética Digital: Operações e Circuitos Capítulo 6 Aritmética Digital: Operações e Circuitos slide 1 Temas abordados nesse capítulo: - Adição, subtração, multiplicação e divisão de dois binários. - Diferença entre soma binária e soma OR. - Vantagens

Leia mais

Introdução ao Laboratório Digital

Introdução ao Laboratório Digital Introdução ao Laboratório Digital Versão 2016 RESUMO Esta experiência tem como objetivo um contato inicial com o Laboratório Digital com o desenvolvimento de uma atividade planejada envolvendo o projeto

Leia mais

Multiplicador Binário com Sinal

Multiplicador Binário com Sinal Multiplicador Binário com Sinal Edson T. Midorikawa/2010 RESUMO Nesta experiência será implementado circuito para multiplicação binária com sinal. Deve ser aplicada a metodologia para projeto estruturado

Leia mais

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS Versão 2012 RESUMO Esta experiência tem como principal objetivo ilustrar a utilização de circuitos biestáveis, através do projeto de um circuito de controle das luzes

Leia mais

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

Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA Introdução VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits Origem: Departamento de Defesa EUA desenvolvida entre anos 70 e 80 descrever e modelar circuitos complexos

Leia mais

Somadores Binários E.T.M./2005 (revisão)

Somadores Binários E.T.M./2005 (revisão) Somadores Binários E.T.M./2005 (revisão) RESUMO Esta experiência tem por objetivo a familiarização com somadores binários, notadamente os paralelos, que realizam a soma simultânea de todos os bits de dois

Leia mais

Comunicação Serial Assíncrona

Comunicação Serial Assíncrona Comunicação Serial Assíncrona Versão 2016 RESUMO O objetivo desta experiência é projetar circuitos digitais para comunicação serial de dados (transmissão de dados) com um terminal de dados, utilizando

Leia mais

Introdução ao Laboratório Digital

Introdução ao Laboratório Digital Introdução ao Laboratório Digital Versão 2016 RESUMO Esta experiência tem como objetivo um contato inicial com o Laboratório Digital com o desenvolvimento de uma atividade planejada envolvendo o projeto

Leia mais

PROJETO DE SISTEMAS DIGITAIS

PROJETO DE SISTEMAS DIGITAIS PROJETO DE SISTEMAS DIGITAIS Edson Midorikawa emidorik@usp.br Departamento de Engenharia de Computação e Sistemas Digitais Escola Politécnica da Universidade de São Paulo Versão 1.1 (28/09/2011) Objetivo:

Leia mais

Projeto de Somador com e sem Sinal. Qualificadores

Projeto de Somador com e sem Sinal. Qualificadores ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Projeto de Somador com e sem Sinal Qualificadores César A. M. Marcon Planejando a Descrição de um Somador 2 Como descrever uma soma? S

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Aritmética Computacional - Inteiros - Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário A unidade lógico-aritmética Representação de números inteiros

Leia mais

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL Instituto Federal de Santa Catarina Área de Telecomunicações SST20707 Síntese de Sistemas de Telecomunicações Prof. Roberto de Matos viso de direitos utorais: Transparências baseadas no trabalho do Prof.

Leia mais

PROJETO DE SISTEMAS DIGITAIS

PROJETO DE SISTEMAS DIGITAIS PROJETO DE SISTEMAS DIGITAIS Edson Midorikawa emidorik@usp.br Departamento de Engenharia de Computação e Sistemas Digitais Escola Politécnica da Universidade de São Paulo Objetivo: Este documento apresenta

Leia mais

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

Introdução ao VHDL. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva. Original por Ayman Wahba Introdução ao VHDL Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva Original por Ayman Wahba VHDL É uma linguaguem de descrição de hardware, ou seja, uma forma estruturada para a descrição de circuitos

Leia mais

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

Sistemas Digitais Unidade Lógica e Aritmética - ULA Sistemas Digitais Unidade Lógica e Aritmética - ULA Referência Bibliográfica: Contemporary Logic Design Katz & Borriello Logic and Computer Design Fundamentals Mano & Kime Embedded System Design Vahid

Leia mais

Circuito de Aritmética Decimal

Circuito de Aritmética Decimal Circuito de Aritmética Decimal Versão 2017 RESUMO Nesta experiência será estudado um circuito aritmético de soma decimal a partir dos somadores binários de 4 bits. Circuitos aritméticos integrados, como

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Freqüencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Freqüencímetro Freqüencímetro E.T.M./2005 E.T.M./2006 (revisão) RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para isto, serão apresentados

Leia mais

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4 PSI-3451 Projeto de CI Lógicos Integrados Aula 4 A parte prática da aula 4 pretende colocar o aluno em contato com mais algumas estruturas sintáticas da linguagem, particularmente funções e procedimentos,

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores VHDL - VHSIC Hardware Description Language Arquitetura de Computadores Leonardo Augusto Casillo Referências bibliográficas PELLERIN, David. TAYLOR, Douglas. VHDL Made Easy. Prentice-Hall PTR. 1997. SKANHILL,

Leia mais

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS E.T.M./2006 E.T.M./2008 (revisão) E.T.M./2011 (revisão) RESUMO Esta experiência tem como principal objetivo ilustrar a utilização de circuitos biestáveis, através do

Leia mais

Introdução à Linguagem VHDL

Introdução à Linguagem VHDL Fundamentos de Sistemas Digitais Introdução à Linguagem VHDL prof. Dr. Alexandre M. Amory Referências Sugiro estudarem nesta ordem de preferência: Vahid, Cap 9 Ignorar verilog e SystemC Bem didático! um

Leia mais

ELETRÔNICA DIGITAL I

ELETRÔNICA DIGITAL I ELETRÔNICA DIGITAL I DE10-LITE Programação Utilizando VHDL Professor Dr. Michael Klug 1 Comparativo Linguagens Linguagem de Programação x HDL Supondo que cada instrução leve 20ns entre 40 e 60ns para conclusão

Leia mais

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS GERADOR DE SINAIS Versão 2013 RESUMO Esta experiência tem como objetivo a familiarização com o problema da conversão de sinais digitalizados em sinais analógicos, o conversor digital-analógico de 8 bits

Leia mais

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO PARA SEMÁFOROS DE UM CRUZAMENTO Versão 2014 RESUMO Esta experiência tem como principal objetivo ilustrar a utilização de circuitos biestáveis, através do projeto de um circuito de controle das luzes de

Leia mais

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

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL. Introdução à VHDL Gustavo G. Parma Assunto: Introdução à VHDL. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL. 1 Introdução Teórica VHDL, VHSIC (Very High Speed Integrated

Leia mais

Turma PCS2304. Objetivos. Site da disciplina. Professor Edson Midorikawa Edson T. Midorikawa 25/02/2008.

Turma PCS2304. Objetivos. Site da disciplina. Professor Edson Midorikawa Edson T. Midorikawa 25/02/2008. Turma Projeto Lógico L Digital Edson T. Midorikawa 25/02/2008 Professor Edson Midorikawa edson.midorikawa@poli.usp.br Horário de atendimento: 6ª feira das 10h00 às 11h00 na sala C2-20 Turma 4 automação

Leia mais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 3-P Descrição de somadores em VHDL, síntese com o Quartus

Leia mais

ESPECIFICAÇÃO DO PROJETO (Segunda Unidade)

ESPECIFICAÇÃO DO PROJETO (Segunda Unidade) ESPECIFICAÇÃO DO PROJETO (Segunda Unidade) Projeto da CPU com Teclado O projeto da CPU precisa ser acoplado a um teclado com comunicação PS2 bem como a um decodificador para display de sete segmentos que

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

Aula 2 Semântica de VHDL

Aula 2 Semântica de VHDL VHDL - VHSIC Hardware Description Language Aula 2 Semântica de VHDL Leonardo Augusto Casillo Ivan Saraiva Silva 2003-2 Identificadores Usados como referência a todos os objetos declarados no código. Regras:

Leia mais

Programa Analítico de Disciplina INF251 Organização de Computadores I

Programa Analítico de Disciplina INF251 Organização de Computadores I 0 Programa Analítico de Disciplina INF51 Organização de Computadores I Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas:

Leia mais

3 a Lista de Exercícios

3 a Lista de Exercícios Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação INE 5406 - Sistemas Digitais - semestre 2010/2 Prof. José Luís Güntzel guntzel@inf.ufsc.br

Leia mais

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

low): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição por fluxo de dados (Data Data-Flow low): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição estrutural: Descreve como é o hardware em termos de interconexão de componentes.

Leia mais

Desenvolvimento de um Circuito Complexo

Desenvolvimento de um Circuito Complexo Desenvolvimento de um Circuito Complexo Versão 2017 RESUMO Nesta experiência será estudado como organizar o projeto de um sistema digital complexo ou não trivial. Para isto será estudada uma metodologia

Leia mais

Sistemas Digitais. Circuitos Aritméticos. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA)

Sistemas Digitais. Circuitos Aritméticos. Monitoria SD Daniel Alexandro/Reniê Delgado/Vanessa Ogg. Editado por (DARA) Sistemas Digitais Circuitos Aritméticos Monitoria SD 2011.2 Daniel Alexandro/Reniê Delgado/Vanessa Ogg Editado por (DARA) Circuitos Aritméticos Circuitos Aritméticos são aqueles que realizam operações

Leia mais