Projeto de Circuitos Aritméticos
|
|
- Luiz Eduardo Covalski Ferreira
- 7 Há anos
- Visualizações:
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 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 maisMultiplicador 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 maisCalculadora 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 maisProjeto 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 maisUma 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 maisEPUSP 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 maisIntroduçã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 maisIntroduçã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 maisIntroduçã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 maisEPUSP 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 maisLÓ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 maisSIMULAÇÃ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 maisLaborató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 maisEPUSP 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 maisBanco 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 maisEPUSP 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 maisEPUSP 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 maisBanco 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 maisEPUSP 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 maisEPUSP 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 maisEPUSP 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 maisEPUSP 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 maisCALCULADORA 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 maisCircuito 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 maisMELHORAMENTO 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 maisFPGA & 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 maisUM 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 maisExemplo 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 maisDISPOSITIVOS 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 maisDISPOSITIVOS 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 maisLivro 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 maisProcessador 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 maisProcessador 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 maisCONTROLE 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 maisEPUSP 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 maisEPUSP 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 maisCONTROLE 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 maisMontagem, 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 maisSIMULAÇÃ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 maisEPUSP 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 maisInterface 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 maisRevisã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 maisComunicaçã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 maisFPGA & 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 maisEPUSP 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 maisEPUSP 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 maisEPUSP 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 maisEPUSP 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 maisEPUSP 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 maisSistemas 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 maisEPUSP 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 maisCircuito 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 maisSIMULAÇÃ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 maisOrganizaçã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 maisEPUSP 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 maisIntroduçã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 maisCapí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 maisDispositivos 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 maisEPUSP 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 maisProf. 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 maisParte # 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 maisExercí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 maisORGANIZAÇÃ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 maisCapí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 maisIntroduçã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 maisMultiplicador 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 maisUTILIZAÇÃ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 maisIntroduçã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 maisSomadores 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 maisComunicaçã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 maisIntroduçã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 maisPROJETO 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 maisProjeto 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 maisArquitetura 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 maisPlano 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 maisPROJETO 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 maisIntroduçã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 maisSistemas 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 maisCircuito 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 maisEPUSP 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 maisPSI-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 maisArquitetura 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 maisUTILIZAÇÃ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 maisIntroduçã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 maisELETRÔ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 maisEPUSP 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 maisCONTROLE 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 maisGustavo 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 maisTurma 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 maisUniversidade 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 maisESPECIFICAÇÃ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 maisSSC510 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 maisAula 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 maisPrograma 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 mais3 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 maislow): 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 maisDesenvolvimento 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 maisSistemas 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