Você está na página 1de 6

Universidade Federal do Rio de Janeiro (UFRJ)

EEL480: Sistemas Digitais


Professor(a): Mariana Maciel

1º Projeto de Laboratório

Fabiane Sá de Oliveira
Guilherme Wu
Leonardo Drummond

25/09/2023
31/10/2023
SUMÁRIO

1. INTRODUÇÃO ………………………………………………………………………3

2. OBJETIVO …………………………………………………………………………...4

3. METODOLOGIA …………………………………………………………………….3
3.1 Desenvolvimento do Documento no ISE ………………………………………….

4. RESULTADOS E DISCUSSÕES………………………………………………………

5. CONCLUSÃO …………………………………………………………………………

6. REFERÊNCIAS ……………………………………………………………………….

2
1. INTRODUÇÃO

A Unidade Lógica Aritmética (ULA) pode ser caracterizada como um circuito


combinatório que realiza funções lógicas (AND, OR, rotação, shift) e aritméticas (soma,
subtração, etc.). A figura 1 representa um possível diagrama de blocos de uma ULA. O
circuito recebe dois valores, A e B, sendo necessário existirem dois registradores: o
registrador B e o registrador Acumulador, cada um armazenando os valores de A e B.
Posteriormente, esses valores são relacionados por uma operação definida pelos sinais de
controle (S), resultando em uma saída (F). A unidade de controle recebe instruções
provenientes da unidade de memória, especificando o endereço da memória somado ao
número presente no registrador acumulador. Em seguida, o número nos registradores B e do
acumulador são somados no circuito, controlado pela unidade de controle, e, assim, o
resultado pode ser somado novamente ou armazenado na memória.
Para isso, foi necessária a criação de um arquivo VHDL no ISE, um software que
realiza o desenvolvimento de projetos para a FPGA, dispositivo lógico programável que
suporta a implementação de circuitos digitais. A FPGA possui tecnologia digital CMOS para
fornecer uma série de opções nas características elétricas, sendo caracterizada como
dispositivos de matrizes de portas programáveis em campo. Ela é capaz de controlar chaves
analógicas. É por meio dela que o resultado é apresentado pelas Flags de status. Elas
demonstram as informações dependendo da operação realizada, sendo que cada bit é
representado pela descrição da tabela 1.

Imagem 1: Blocos de Funcionamento da ULA

bit descrição condicionamento

C Carry-out O bit mais significativo possui carry out (overflow)

Z Zero O resultado é zero


Tabela 1: Flags e situações de uso.

3
Na realização da operação, é importante escolher a família de dispositivos lógicos TTL, além
de determinar o número de entradas e a respectiva saída (fan-out).
Com este conhecimento em mente é possível implementar um projeto de circuito
lógico de 4 bits, realizando diferentes operações.

2. OBJETIVO

Os alunos têm o objetivo de desenvolver um projeto que abranja a execução de


operações fundamentais (soma, subtração, complemento de 2, incremento de +1, troca de
sinal, etc.) por meio da Unidade Lógica Aritmética (ULA). Este projeto está dividido em duas
partes distintas: a primeira consiste no desenvolvimento de um documento contendo os
módulos auxiliares para cada operação, que servirão como entrada no teste da ULA. Na
segunda parte, busca-se a reprodução dessas operações na FPGA Spartan-3A/3AN, com o
intuito de exibir o resultado da operação nos LEDs presentes na placa de desenvolvimento.

3. METODOLOGIA

Inicialmente, cada módulo foi desenvolvido dentro do ambiente de programação ISE,


seguindo as orientações e práticas laborais estabelecidas. Cada módulo é dotado de um
contador responsável por percorrer os valores binários representados por conjuntos de 4 bits.
É realizada, então, cada etapa de desenvolvimento, destacando a estrutura de cada
módulo e como o contador foi implementado para percorrer os valores binários.
Por fim, são reproduzidas as operações na FPGA para exibir o resultado de cada
operação em módulo nos LEDs.

3.1. Desenvolvimento do Documento no ISE


Para o desenvolvimento de cada módulo é necessário o uso do ISE Xilinx, que
envolve a criação do documento em VHDL, cujo as funções estão definidas na tabela 2. Os
códigos de cada módulo estão disponíveis no link ao lado: (colocar o link do github)

3.1.1. Módulo: Somador


O somador é um circuito projetado para receber dois números de entrada e gerar uma
saída equivalente à soma desses números. No processo de desenvolvimento desse circuito, é
fundamental considerar a representação em base 2. Para a realização da soma de cada bit, é
seguida a tabela verdade correspondente (conforme apresentado na tabela 2). Nesta tabela, A
e B representam os bits a serem somados, Q é a saída e C é o carry.
Por necessitar de 2 bits de saída, o carry do bit menos significativo deve, também, ser
somado aos bits A e B do penúltimo bit menos significativo. Isso resulta em uma tabela com
3 entradas (A, B e Carry_in (Cin)) e duas saídas Q e Cout.

Q = A´B´C + AB´C´ + ABC


Q = A XOR B XOR D

Cin = A´BC + AB´C + ABC´ + ABC

4
Cin = C(A XOR B) + AB

A B Q C

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1
Tabela 2: Tabela verdade de um somador de 1 bit

A B Cout Q Cin

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1
Tabela 3: tabela-verdade de somador de 1 bit com carry

3.1.2. Módulo: Complemento de 2


O complemento de 2 é um método que permite representar números binários tanto
positivos quanto negativos, conforme o bit de sinal, localizado à esquerda do número. Neste
módulo, foi viável representar apenas números de 3 bits, mantendo o bit de sinal (totalizando
4 bits ao todo), onde a soma máxima resulta em 3 bits.
Para realizar essa operação, uma das entradas do somador deve ser invertida e então
somar 1 ao bit menos significativo. Essa operação pode ser implementada utilizando a tabela
verdade (Tabela 4).

B Cin Q Cout

0 0 0 0

0 1 1 0

5
1 0 1 0

1 1 0 1
Tabela 4: tabela-verdade referente ao complemento de 2

3.1.3 Módulo: Subtrator


Para a realização do subtrator, pode-se utilizar o somador com a soma dos números em
complemento de 2. Em uma subtração A - B, é necessário transformar o número B em
formato de complemento de 2 e realizar a operação A + (-B). Sua aplicação também pode ser
implementada através da expressão booleana desenvolvida a partir da Tabela Verdade 5.

3.2 Reprodução das operações na FPGA Spartan-3A/3AN


(aqui vamos colocar o método da prática da terça feira)

4. RESULTADOS E DISCUSSÕES
Com a aplicação da metodologia no laboratório de Sistemas digitais, foi possível observar
que (aí temos que mostrar os resultados das operações na placa, dar exemplos e demonstrar as
limitações de cada um).

5. REFERÊNCIAS
(tá tudo no menthor, quando terminar tudo vou colocar elas em ABNT aqui)

Você também pode gostar