Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto de Ciência e Tecnologia Campus São José dos Campos CIRCUITOS DIGITAIS PROJETO - MINI-ULA Professora: Denise Stringhini Alunos: Amanda Razaboni João Gabriel Gentil Vieira Brendo Katagi Junho de 2019 2 SUMÁRIO 1 RESUMO ............................................................................................................... 5 2 OBJETIVO ............................................................................................................. 5 3 INTRODUÇÃO....................................................................................................... 6 3.1 Unidade Lógica Aritmética (ULA) .................................................................... 6 3.2 Operações Aritméticas ................................................................................... 6 3.2.1 Soma ....................................................................................................... 6 3.2.2 Subtração ................................................................................................ 8 3.2.3 Multiplicação ............................................................................................ 9 3.3 Operações Lógicas ......................................................................................... 9 3.3.1 AND ....................................................................................................... 10 3.3.2 OR ......................................................................................................... 10 3.3.3 XOR ...................................................................................................... 11 3.3.4 NOT ....................................................................................................... 13 3.4 Complemento de Dois (Representação de números com sinal).................... 13 4 DESCRIÇÃO DO PROJETO ............................................................................... 14 5 DESENVOLVIMENTO ......................................................................................... 15 5.1 Somador / Subtrator ..................................................................................... 15 5.2 Multiplicador ................................................................................................. 18 5.3 AND .............................................................................................................. 20 5.4 OR ................................................................................................................ 21 5.5 XOR ............................................................................................................. 22 5.6 NOT A .......................................................................................................... 23 5.7 NOT B .......................................................................................................... 24 5.8 DECODER.................................................................................................... 25 5.9 IGUALDADE ................................................................................................. 26 6 MINI-ULA: Circuito Final ...................................................................................... 27 7 REFERÊNCIAS ................................................................................................... 32 3 INDÍCE DE TABELAS Tabela 1 - Tabela da verdade somador completo ......................................................... 7 Tabela 2 - Tabela da verdade subtrator completo ......................................................... 8 Tabela 3 - Tabela da verdade Porta AND ................................................................... 10 Tabela 4 - Tabela da verdade Porta OR ..................................................................... 11 Tabela 5 - Tabela da verdade Porta XOR ................................................................... 12 Tabela 6 - Tabela da Verdade NOT ............................................................................ 13 Tabela 7 - Tabela da verdade Mini-ULA...................................................................... 27 4 INDÍCE DE FIGURAS Figura 1 - Circuito somador completo ........................................................................... 7 Figura 2 - Circuito subtrator completo ........................................................................... 8 Figura 3 - Multiplicação binária ..................................................................................... 9 Figura 4 - Porta AND .................................................................................................. 10 Figura 5 - Porta OR .................................................................................................... 11 Figura 6 - Porta XOR .................................................................................................. 12 Figura 7 - Porta XOR com portas básicas ................................................................... 12 Figura 8 - Somador ..................................................................................................... 15 Figura 9 - Simulação somador .................................................................................... 16 Figura 10 - Somador/subtrator .................................................................................... 16 Figura 11 - Somador/Subtrator com ENABLE ............................................................. 17 Figura 12 - Simulação Somador/Subtrator com ENABLE ........................................... 17 Figura 13 - Multiplicador ............................................................................................. 18 Figura 14 - Simulação multiplicador ............................................................................ 18 Figura 15 - Multiplicador com ENABLE ....................................................................... 19 Figura 16 - Simulação multiplicador com ENABLE ..................................................... 19 Figura 17 - Circuito porta AND .................................................................................... 20 Figura 18 - Simulação AND ........................................................................................ 20 Figura 19 - Circuito porta OR ...................................................................................... 21 Figura 20 - Simulação OR .......................................................................................... 21 Figura 21 - Circuito porta XOR .................................................................................... 22 Figura 22 - Simulação XOR ........................................................................................ 22 Figura 23 - Circuito NOT A.......................................................................................... 23 Figura 24 - Simulação NOT A ..................................................................................... 23 Figura 25 - Circuito NOT B.......................................................................................... 24 Figura 26 - Simulação NOT B ..................................................................................... 24 Figura 27 - Circuito Decoder ....................................................................................... 25 Figura 28 - Simulação Decoder .................................................................................. 25 Figura 29 - Circuito Igualdade ..................................................................................... 26 Figura 30 - Simulação Igualdade ................................................................................ 26 Figura 31 - Circuito Mini-ULA ...................................................................................... 28 Figura 32 - Enable de saída ........................................................................................29 Figura 33 - Simulação Final (Valores Iguais) .............................................................. 29 Figura 34 - Simulação Final (Valores Diferentes) ........................................................ 31 5 1 RESUMO A integração dos componentes de um determinado circuito é de suma importância para seu funcionamento. Deste modo, a Unidade Lógica Aritmética aplicada a um determinado sistema, possui o importante papel de realizar operações lógicas e aritméticas a partir de um conjunto de operadores obtidos de outros componentes. A ULA, como é comumentemente chamada, é composta por um conjunto de operadores lógicos, aritméticos, multiplexadores e demultiplexadores, estes responsáveis por determinar o fluxo das operações. 2 OBJETIVO O objetivo do projeto é a criação de uma Mini-ULA, a partir do Quartus, capaz de selecionar uma operação para ser realizada entre dois números binários inteiros de 6 bits. 6 3 INTRODUÇÃO Para uma melhor análise do projeto, serão explicitados os principais conceitos utilizados para a realização do mesmo. 3.1 Unidade Lógica Aritmética (ULA) Em diversos processadores de dados é possível encontrar uma ULA, que é onde os cálculos aritméticos são efetuados. Ela tem uma papel importante para a aprimoração do processamento de dados, acelerando os cálculos matemáticos realizados. Proposta pelo matemático John von Neumann, a ULA é um circuito eletrônico digital combinacional que executa as operações bit a bit em números inteiros. As entradas dela são os dados que serão operados e o código que indica qual é a operação que será realizada. 3.2 Operações Aritméticas Na área da computação, as operações aritméticas são realizadas entre os bits inseridos no circuito para que seja realizada alguma função previamente determinada. Essas operações ocorrem entre números inteiros em circuitos combinacionais. 3.2.1 Soma A soma entre números binários pode ser realizada pelo meio somador (Half- Adder), que realiza a soma de dois números binários de um bit, ou pelo somador completo (Full-Adder), que tem a mesma função do meio somador, contudo tem a possibilidade de somar também o carry anterior. Para realizar a somatória de números binários com mais de 1 bit, utiliza-se os somadores completos organizados em uma associação, realizando assim a soma individual para cada bit e, caso tenha carry, “vai 1” para o próximo bit. 7 Abaixo encontra-se a tabela da verdade para o somador completo (variáveis representadas por A e B). A B Cin S Cout 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 1 - Tabela da verdade somador completo Tal operação é representada no circuito conforme imagem abaixo: Figura 1 - Circuito somador completo 8 3.2.2 Subtração A subtração entre números binários pode ser realizada pelo meio subtrator (Half- Subtractor), que realiza a subtração entre dois números binários de um bit, ou pelo somador completo (Full-Subtractor), que tem a mesma função do meio subtrator, contudo tem a possibilidade de considerar também o borrow anterior. Para realizar a subtração de números binários com mais de 1 bit, utiliza-se os subtratores completos organizados em uma associação, realizando assim a subtração individual para cada bit e, caso haja necessidade, “pegue emprestado” do próximo bit. Abaixo encontra-se a tabela da verdade para o subtrator completo (variáveis representadas por A e B). A B Tin S Tout 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Tabela 2 - Tabela da verdade subtrator completo Tal operação é representada no circuito conforme imagem abaixo: Figura 2 - Circuito subtrator completo 9 3.2.3 Multiplicação Para realizar a multiplicação de números binários, é utilizado um circuito multiplicador. O princípio da multiplicação binária é similar ao da decimal, sendo observado no esquema abaixo: Figura 3 - Multiplicação binária Tal circuito tem a função de multiplicar dois números, no exemplo acima está ocorrendo a multiplicação de A e B (Ambos com 4 bits) e retornando uma saída de 8 bits. É possível notar que, em uma multiplicação, ocorre operações de soma em cascata, que são executadas por somadores completos e portas AND. 3.3 Operações Lógicas As operações lógicas ocorrem em circuitos lógicos (também chamados de portas lógicas), que são dispositivos que trabalham com sinais lógicos de entrada para produzir uma saída, dependendo da função que está implementada no circuito. Comumente utilizados em circuitos eletrônicos por questão da situação de sinais, ou seja, o sinal lógico do circuito varia entre 1 ou zero, indicando normalmente presença de sinal ou ausência, respectivamente. O comportamento das portas lógicas é descrito pela tabela da verdade, que apresenta as possíveis variações de entradas e suas respectivas saídas. 10 3.3.1 AND A porta lógica AND (E), também conhecida como multiplicação lógica, é representada normalmente pelo sinal de multiplicação (x). Tal operação só pode ser definida se houver no mínimo duas variáveis envolvidas. Abaixo encontra-se a tabela da verdade dessa porta lógica (variáveis representadas por A e B). A B AB 0 0 0 0 1 0 1 0 0 1 1 1 Tabela 3 - Tabela da verdade Porta AND Analisando a tabela, é possível notar que a operação AND resulta 0 se pelo menos uma das variáveis de entrada é 0. Tal porta é representada no circuito conforme imagem abaixo: Figura 4 - Porta AND 3.3.2 OR A porta lógica OR (OU), também conhecida como adição lógica, é representada normalmente pelo sinal de soma (+). É importante destacar que, como se trata de variáveis Booleanas, não pode ser efetuada uma adição algébrica, mas sim uma adição lógica. Tal operação só pode ser definida se houver no mínimo duas variáveis envolvidas. 11 Abaixo encontra-se a tabela da verdade dessa porta lógica (variáveis representadas por A e B). A B A+B 0 0 0 0 1 1 1 0 1 1 1 1 Tabela 4 - Tabela da verdade Porta OR Analisando a tabela, é possível notar que a operação OR resulta 0 somente quando todas as variáveis de entrada são 0. Tal porta é representada no circuito conforme imagem abaixo: Figura 5 - Porta OR 3.3.3 XOR A porta XOR (OU-EXCLUSIVO), pode ser considerada uma combinação das portas básicas. A equação que descreve tal operação é dada por: y = A’B + AB’ Tal porta deve ter pelo menos duas variáveis e sua saída é definida como alta (1) quando as entradas forem diferentes. Por conta disso, a porta XOR também é conhecida como comparador de desigualdade, uma vez que identifica as entradas diferentes. 12 Abaixo encontra-se a tabela da verdade dessa porta lógica (variáveis representadas por A e B). A B 0 0 0 0 1 1 1 0 1 1 1 0 Tabela 5 - Tabela da verdade Porta XOR Tal porta é representada no circuito conforme imagem abaixo: Figura 6 - Porta XOR Que é equivalente ao circuito abaixo (com operações básicas): Figura 7 - Porta XOR com portas básicas 13 3.3.4 NOT A operação NOT (negação), também conhecida como complementação ou inversão, é a operação que resulta em um valor complementar ao que a variável apresenta, ou seja, pode-se dizer que é o inverso da entrada. Vale ressaltar que a complementação só é definida sobre uma variável, ou sobre o resultado de uma expressão. Sendo assim, o operador é dito unário. Abaixo encontra-se a tabela da verdade. A A’ 0 1 1 0 Tabela 6 - Tabela da Verdade NOT 3.4 Complemento de Dois (Representação de números com sinal) O complemento de dois é uma forma de representação binária de números com sinal, utilizadaamplamente na computação. Tal método é frequentemente utilizado para soma e subtração, uma vez que existe somente um zero, fazendo com que as regras para tais operações mantenham-se as mesmas. Para verificar o sinal do número, é preciso analisar o bit mais significativo (MSB), ou seja, se o dígito for 0, o número é positivo. Caso o digito seja 1, é negativo. Sendo assim, ao representar um número com sinal em binário deve-se lembrar de que o MSB indica apenas o sinal, o número representado está representado pelos outros bits. Para a obtenção do complemento de 2 de um número binário, pode-se utilizar a regra geral, que funciona da seguinte maneira: i. Subtrair cada algarismo por 2, ou seja, o resultado será como inverter todos os bits. Esse passo resulta no complemento de 1. ii. A partir do complemento de um, é somado 1 ao resultado. Após realizar esses passo, é obtido o número em complemento de dois, facilitando as operações de soma ou subtração. É importante destacar que o intervalo de representação de complemento de dois é dado por - (2n-1); + (2n-1 - 1). Dessa maneira, ocorre uma assimetria entre os números positivos e negativos, que se dá pelo motivo de que não há duas representações de 0 nessa notação. 14 4 DESCRIÇÃO DO PROJETO O projeto da mini-ULA irá realizar uma operação aritmética ou lógica entre dois números inteiros com sinal de 6 bits (A e B). Para que isso ocorra, há entradas de seleção que irá indicar qual operação será realizada. As operações que poderão ser realizadas a partir da mini-ULA são: Aritméticas o Soma o Subtração o Multiplicação Lógicas o AND o OR o XOR o NOT A o NOT B É importante destacar que para a multiplicação o sinal poderá ser desconsiderado e a operação irá funcionar com números de até 3 bits. Caso ultrapasse, irá causar overflow (devidamente sinalizado). Em relação às saídas, irá ter o resultado da operação selecionada entre A e B (Saída com 6 bits), carry, sinal indicando overflow e sinal indicando igualdade ou diferença entre A e B. 15 5 DESENVOLVIMENTO O software utilizado para o desenvolvimento do projeto foi o Quartus. Após o estudo do projeto e definição de como iria ser feito, iniciou-se com a criação dos circuitos e simulação de cada operação separadamente. Visando uma melhor forma de visualização e menor chance de erro no circuito final, foi criado uma função (black box) para cada um deles. 5.1 Somador / Subtrator Inicialmente, foi realizada a estrutura do somador e a simulação do mesmo. Figura 8 - Somador 16 Figura 9 - Simulação somador Em seguida, foi desenvolvido o circuito para o somador/subtrator de 6 bits, conforme imagem abaixo: Figura 10 - Somador/subtrator Posteriormente, foi criada a black box do circuito e acrescentada a função ENABLE. 17 Figura 11 - Somador/Subtrator com ENABLE Figura 12 - Simulação Somador/Subtrator com ENABLE 18 5.2 Multiplicador Foi desenvolvido o circuito para o multiplicador conforme imagem abaixo: Figura 13 - Multiplicador Vale destacar que para montar o circuito do multiplicador, foi utilizado o somador de dois bits. Foi realizada a simulação do multiplicador. Figura 14 - Simulação multiplicador 19 Posteriormente, foi incluída e testada a função ENABLE no multiplicador. Figura 15 - Multiplicador com ENABLE Figura 16 - Simulação multiplicador com ENABLE É importante ressaltar que tal multiplicador é de 3 bits, considerando os valores de entrada A2A1A0 por B2B1B0. Caso ultrapasse o valor, o multiplicador indicará overflow. 20 5.3 AND Para a porta AND, optou-se o desenvolvimento do circuito já com a função enable: Figura 17 - Circuito porta AND Figura 18 - Simulação AND 21 5.4 OR A porta lógica OR também foi desenvolvido o circuito já com a função enable, e realizada a simulação. Figura 19 - Circuito porta OR Figura 20 - Simulação OR 22 5.5 XOR Para a porta XOR, foi desenvolvido o circuito já função ENABLE. Figura 21 - Circuito porta XOR Figura 22 - Simulação XOR 23 5.6 NOT A Na porta NOT A, todos os bits da entrada A foram “barrados”. Conforme o circuito desenvolvido abaixo: Figura 23 - Circuito NOT A Figura 24 - Simulação NOT A 24 5.7 NOT B Na porta NOT B, todos os bits da entrada B foram “barrados”. Conforme o circuito desenvolvido abaixo: Figura 25 - Circuito NOT B Figura 26 - Simulação NOT B 25 5.8 DECODER Na figura abaixo encontra-se um decodificador que a partir da combinação recebida nas 3 entradas ativa uma das 8 saídas. Ele funcionou como um circuito de seleção, uma vez que cada saída selecionada representa uma operação a ser executada. Figura 27 - Circuito Decoder Figura 28 - Simulação Decoder 26 5.9 IGUALDADE Utilizamos um porta igualdade para comparar a entradas de A e B bit a bit a fim de indicar se os valores são iguais. Casos os valores apresentem pelo menos um algarismo divergente, teremos a saída zero em uma das portas AND, o que irá zerar também a saída do circuito. Para valores idênticos a saída será um. O circuito desenvolvido ficou da seguinte maneira: Figura 29 - Circuito Igualdade Figura 30 - Simulação Igualdade 27 6 MINI-ULA: Circuito Final Após o desenvolvimento do circuito de cada operação e simulação deles separadamente, foi iniciado o circuito da Mini-ULA. Para realizar a seleção de qual operação deveria ser executada, foi montada uma tabela da verdade e, posteriormente, o circuito. DECODIFICADOR U3 U2 U1 O7 O6 O5 O4 O3 O2 O1 O0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 NOTB NOTA XOR OR AND MULTIPLICAÇÃO SUBTRAÇÃO SOMA Tabela 7 - Tabela da verdade Mini-ULA 28 Figura 31 - Circuito Mini-ULA No circuito é possível observar uma black box de enable nas saídas das operações, ela foi desenvolvida para funcionar como uma dupla barreira de segurança para as saídas. Seu circuito foi montado da seguinte maneira: 29 Figura 32 - Enable de saída Por fim, foram realizadas simulações para testar o circuito, a primeira com valores iguais e a segunda com valores diferentes, verificando assim o funcionamento da igualdade. Figura 33 - Simulação Final (Valores Iguais) 30 Na simulação acima, foi colocado os valores 010100 (20 em decimal) e as formas de onda resultaram conforme o esperado. o Soma - 101000 (40 em decimal) o Subtração - 000000 (0 em decimal) o Multiplicação - 010000 (100 x 100 = 16 em decimal) o AND - 010100 o OR - 010100 o XOR - 000000 (Pois todos os bits são iguais e a porta XOR indica 1 apenas quando os bits de entrada são diferentes) o NOTA - 101011 o NOTB - 101011 A igualdade indicou 1, pois os números de entrada são iguais. Vale ressaltar que a porta lógica AND e OR resultaram no mesmo valor das entradas pois os bits comparados são iguais. Outro ponto importante é que as saídas NOTA e NOTB deram o mesmo resultado pois elas estão analisando as mesmas entradas. 31 Figura 34 - Simulação Final (Valores Diferentes) Na simulação acima, foi colocado os valores 010100 (20 em decimal) e 001000 (8 em decimal). As formas de onda resultaram conforme o esperado. o Soma - 011100 (28 em decimal) o Subtração - 001100 (12 em decimal) o Multiplicação - 000000 (100 x 000) o AND - 000000 o OR - 011100 o XOR - 011100 o NOTA - 101011 o NOTB - 110111 A igualdade indicou 0, pois os números de entrada são diferentes. 32 7 REFERÊNCIAS o UnidadeLógica e Aritmética. Disponível em: < http://www.dca.fee.unicamp.br/~tavares/courses/2015s2/ea773-3.pdf> o UNIDADE LÓGICA E ARITMÉTICA – ULA Disponível em: < http://www4.pucsp.br/~sdeng/ULA.pdf> o ULA ULA Disponível em: < http://ula--ula.blogspot.com/2011/12/ula-unidade-logica-aritmetica.html> http://www4.pucsp.br/~sdeng/ULA.pdf
Compartilhar