Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS – CAMPUS FORMIGA.
ARTHUR MOURA CAMARGOS DE FREITAS
UNIDADE LÓGICA ARITIMÉTICA “ULA” PROGRAMADO EM VHDL 
FORMIGA
ABRIL – 2013
ARTHUR MOURA CAMARGOS DE FREITAS
UNIDADE LÓGICA ARITIMÉTICA “ULA” PROGRAMADO EM VHDL
Trabalho apresentado ao Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais, Campus Formiga, como requisito para a matéria de Projetos VHDL.
Orientador: Prof. MSc. Otávio 
FORMIGA
ABRIL – 2013
RESUMO
	Este trabalho apresentará a montagem de uma unidade lógica aritmética, que tem como função a realização de operações sendo elas: soma, subtração, multiplicação e ainda mostrar a saída, o que foi inserido na entrada, estas operações serão entre duas variáveis de dois bits. Todo o ULA será desenvolvido em FPGA utilizando os comandos em VHDL. 
INTRODUÇÃO
A ULA é capaz de executar múltiplas operações a cada instante, existem entradas de controle para selecionar a operação a ser realizada. Normalmente, existem p entradas de controle, possibilitando que a ULA execute 2p operações distintas, uma operação distinta para cada código binário dos p bits de controle. Frequentemente, uma destas entradas é uma entrada binária denominada de modo, que seleciona se a operação a realizar é lógica ou aritmética. Uma operação aritmética diferenciasse de uma operação lógica pela consideração de interações entre os bits adjacentes dos vetores de bits manipulados. Por exemplo, uma soma é claramente uma operação aritmética, pois seu resultado depende da interação entre bits adjacentes pela consideração do vai-um de cada casa para a casa subsequente. Uma inversão de um vetor é um contraexemplo, constituindo uma operação lógica que não necessita qualquer interação entre bits da entrada para cálculo do valor da saída. 
Claramente, operações lógicas podem ser executadas em paralelo sobre todas as posições de bits de entrada, enquanto que operações aritméticas dependem de resultados de bits de posições anteriores. As primeiras são obviamente mais eficientes em termos de tempo de execução. Finalmente, algumas saídas de controle adicionais costumam estarem presentes em ULA's, tais como a identificação de vai-um da última casa em uma operação aritmética, a identificação se o valor de resultado é a constante zero ou mesmo a constante um, o sinal do resultado da operação, e assim por diante. Estes sinais costumam ser denominados qualificadores, pois fornecem informações qualitativas sobre o resultado de uma operação lógica ou aritmética.
CONCEITOS BÁSICOS DE UM FPGA
Um FPGA é um dispositivo semicondutor que é largamente utilizado para o processamento de informações digitais. Foi criado pela Xilinx Inc., e teve o seu lançamento no ano de 1985 como um dispositivo que poderia ser programado de acordo com as aplicações do usuário (programador). O FPGA é composto basicamente por três tipos de componentes: blocos de entrada e saída (IOB), blocos lógicos configuráveis (CLB) e chaves de interconexão (Switch Matrix). Os blocos de entrada e saída (I/O) formam uma borda ao redor do dispositivo. Cada um desses blocos pode servir como entrada, saída ou acesso bidirecional a outros pinos de I/O. Os blocos lógicos são dispostos de forma bidimensional, as chaves de interconexão são dispostas em formas de trilhas verticais e horizontais entre as linhas e as colunas dos blocos lógicos como é mostrado na figura. 
PROGRAMAÇÃO DE FPGAS
Tipicamente, a etapa inicial do projeto é seguida de uma simulação funcional. Este é o período onde um simulador é utilizado para a execução do projeto para confirmar as saídas com as diversas entradas de teste. A compilação somente se inicia quando já existe uma representação funcional correta do hardware. Esta compilação se divide em 2 etapas. A primeira, chamada de síntese (synthesys), é onde o compilador tem uma ideia de como implementar o projeto e falta apenas posicionar e rotear as estruturas lógicas em macro células, interconexões e pinos de entrada e saída, que é a segunda etapa. Feita a compilação, um bitstream é criado, ou seja, já sabemos quais são os dados binários que deverão ser carregados no FPGA ou CLPD para fazer com que o chip execute um projeto em particular. Geralmente, as empresas que desenvolvem dispositivos programáveis, fornecem também softwares capazes de carregar o bitstream no hardware utilizando linguagens de descrição de hardware (Hardware Description Language – HDL).
A ULA feita neste trabalho realizará operações com duas variáveis de dois bits cada (X0, X1) e (Y0, Y1), utilizando códigos de programação em VHDL, cada operação, soma, subtração e multiplicação foram feitas um programa para cada e testadas uma a uma através dos test bench uma ferramenta de testes do Quartos Altera que simula o comportamento do hardware, este método de fazer as operações separadas foi adotada com o intuito de tornar o trabalho mais simples e diminuir as chances de errar em um único programa que seria maior e mais sujeito a erros. Em seguida foi os programas das operações foram inseridas no ULA como componentes como será mostrado ao decorrer do trabalho.
OBJETIVOS
Montagem de uma unidade lógica aritmética utilizando a ferramenta computacional gratuita Quartos Altera e utilizando a linguagem para FPGA VHDL.
DESENVOLVIMENTO
Utilizando os conceitos aprendidos em sala de aula foram montados os programas das três operações sendo elas:
 Somador
A seguir será apresentado o programa desenvolvido pra a realização da soma entre dois números de dois bits assim como o código de seu test bench.
	A saída do somador “saida_somador” teria de ser de três bits duas das soma entre as duas variáveis de dois bits e uma de carry, mas para este trabalho todas as saídas tem de possuir 4 bits.
Subtrator
A seguir será apresentado o programa desenvolvido pra a realização da subtração entre dois números de dois bits assim como o código de seu test bench.
	Assim como no somador a saída do pragrama do subtrator também possui 4 bits.
A entidade “entity” define a interface com o ambiente exterior, como, por exemplo, as entradas e saídas. A arquitetura “architecture” contém a parte lógica da entidade utilizando suas entradas e saídas, neste trabalho é onde estão os sinais internos dos projetos.
Multiplicador
	O código a baixo foi desenvolvido para realizar a multiplicação de duas variáveis de dois bits cada.
 
A saída “saída_multiplicador” possui 4 bits, pois estando conforme a operação de dois números de 2 bits o maior valor tem como representação binária 4 bits.
Construção do ULA utilizando os programas das operações como componentes.
Com os códigos das operações feitas e testas corretamente a última etapa foi a construção do software do ULA, onde uma chave seletora que escolherá a operação de acordo com a tabela a seguir:
Tabela 1 – Seleção das operações do ULA
	Seletor 1
	Seletor 2
	Operação
	0
	0
	Soma
	0
	1
	Subtração
	1
	0
	Multiplicação
O comando “component” busca torna o programa que está escrito na sua frente um componente do programa principal tendo de estar no programa Top Level (programa principal, no caso do trabalho se chama ALU_estruct), o comando “port map” faz a substituição das entradas do ULA nos componentes adicionados ao programa. Por exemplo no “u1” “ent_a” e “ent_b” os valores que possuírem irão para o “ent_a_somador” e “ent_b_somador” do programa do somador e o “s_somador” será o resultado da soma e receberá o valor da saída saida_somador que é o resultado da soma. A seguir será mostrado o programa do test bench do ULA.
Todos os tempos das entradas A e B dos test´s bench foram feitos de forma com que todas os valores possíveis para 2 bits de entrada pudessem ser operados entre si, mostrando todas os resultados para todas as três operações mais mostrar o valorde entrada na saída e.
 RESULTADOS
Será apresentado todos os resultados gerados pelos test bench de todos os componentes criados e do resultado final do ULA.
Resultado do Test Bench Somador
Resultado do Test Bench Subtrator
Resultado do Test Bench Multiplicador
 Resultado do Test Bench do ULA
Como antes de ser montado o programa do ULA todos os programas das operações foram testadas e verificadas se a saída representava o valor de saída esperada para cada operação o software para o ULA daria menos trabalho, pois se houvesse erros os componentes das operações já seriam descartados como causa diminuindo o trabalho para resolver os problemas.
CONCLUSÃO 
A implementação de algoritmos que fazem e escolhem operações matemáticas são mais simples de serem feitas, nesta matéria como um trabalho foi proposto inicialmente a construção do mesmo ULA só que utilizando somente de eletrônica digital, tendo ser feito primeiramente toda a lógica booleana para depois der montada. Na construção desta mesma ULA só que utilizando o FPGA sendo programada em VHDL utilizando a plataforma ALTERA mostra como é bem mais simples a construção de um hardware que possa realizar a escolha entre somar, multiplicar, subtrair ou mesmo apenas mostrar duas variáveis de dois bits.
Com a utilização dos conhecimentos adquiridos nos laboratórios e com a realização deste trabalho o ULA poderia ser incrementado, como aumentando as variáveis ou o tamanho de bits ou ainda tendo mais operações o que levaria bem menos tempo se os mesmos fossem feitos apenas com a utilização de lógica booleana e construída em simulador de eletrônica.

Mais conteúdos dessa disciplina