Você está na página 1de 29

PROJETO ULA / BCD

Universidade Federal de Pernambuco UFPE Centro de Informtica CIn

Projeto da 1 Unidade: ULA / BCD

Disciplina: Sistemas Digitais Professor: Manoel Eusbio Monitor: Luiz Felipe Librio Equipe: Anlia Lima (alc5) Caio Csar (ccss2) Ivson Diniz (ids) Las Sousa (lsa) Lorena de Ftima (lfsa)

Recife, 17 de outubro de 2008

INTRODUO
Este relatrio refere-se ao projeto da disciplina de Sistemas Digitais. O projeto possui duas partes. A implementao de uma unidade lgica e aritmtica (ULA) e de um somador BCD (Binary-Coded Decimal). Os dois projetos precisam ser acoplados em um decodificador binrio para display de sete segmentos. Na ULA, so implementadas diversas operaes aritmticas, como soma, subtrao e complemento a dois de um nmero binrio, alm de operaes booleanas tais como igualdade e comparao entre vetores, verificando se um maior ou menor que o outro. O sistema usa o conceito de complemento a dois e seu barramento de quatro bits. Realiza operaes de subtrao aproveitando o prprio somador para isso. No somador BCD, cada dgito decimal representado por um nmero binrio tambm de quatro bits. Alm de realizar as operaes e comparaes na ULA, existem tambm os decodificadores que foram utilizados para mostrar o resultado na sada do display. Fazendo uso de conceitos vistos em aula, como tabela-verdade e mapa de Karnaugh, todos os circuitos foram estruturados de modo a se tornarem otimizados e simplificados. Na implementao deste projeto, a ferramenta utilizada para estruturao e teste foi o programa Quartus II.

1 - Componentes Gerais
1.1 - Somador 1 bit:
Descrio do projeto do somador de bits: O somador de bits soma dois bits A e B quaisquer que lhe sejam dados como entrada, levando em conta um bit chamado de Carry In,que somado aos outros dois e que tambm uma entrada, e devolve um bit que representa a soma dos 3 bits e outro bit que informa se a soma deu overflow, ou seja, se a soma no pode ser representada por um bit. Entradas: bits A, B e Carry_In Sadas: bits Resultado e Overflow. Tabela Verdade: A 0 0 0 0 1 1 1 1 Mapas de Karnaugh: Mapa para Soma: Cin\A B 0 1 00 0 1 01 1 0 11 0 1 10 1 0 B 0 0 1 1 0 0 1 1 Carry in 0 1 0 1 0 1 0 1 Soma 0 1 1 0 1 0 0 1 Carry out 0 0 0 1 0 1 1 1

Minitermos: ( ) ( )

Mapa para Carry Out: Cin\A B 0 1 00 0 0 01 0 1 11 1 1 10 0 1

Minitermos:

Bloco esquemtico:

Waveform:

1.2 Displays
Como trabalha-se com displays de sete segmentos, cada segmento ter sua prpria tabela verdade relacionada com o vetor de entrada. Aps a reduo com os mapas de Karnaugh, possvel implementar as funes individualmente com suas devidas portas lgicas. necessrio destacar que a lgica utilizada nos displays invertida, ou seja, o bit 0 indica lead aceso e bit 1 indica lead apagado. Algumas pequenas diferenas existem entre o display da U.L.A. e do somador BCD: Na U.L.A. o status do display da esquerda indica o sinal do nmero, o qual definido pelo bit de sinal do vetor de entrada do display. Obs: Em nosso projeto optamos por indicar no display o nmero 0 como sada padro ao ser realizada qualquer operao de status. No BCD, s so feitas somas de nmeros positivos, portanto, o display da esquerda no indica sinal, mas ser definido como zero ou um dependendo do resultado final.

1.2.1 Display ULA


Tabela Verdade: Tabela verdade do display 2 ( direita): 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 a 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 b 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 c 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 d 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 e 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 f 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 g 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1

Mapas de Karnaugh: Mapa de Karnaugh a: S3 S2\ S1 S0 00 01 11 10 a= ( ) 00 0 1 1 0 01 1 0 0 0 11 0 0 1 0 10 0 1 0 1

Mapa de Karnaugh b: S3 S2\ S1 S0 00 01 11 10 b= Mapa de Karnaugh c: S3 S2\ S1 S0 00 01 11 10 c= 00 0 0 0 0 01 0 0 0 0 () 11 0 0 0 0 10 1 0 1 0 00 0 0 0 0 01 0 1 0 0 11 0 0 0 1 10 0 1 0 1

Mapa de Karnaugh d: S3 S2\ S1 S0 00 01 11 10 d= 00 0 1 1 0 01 1 0 0 1 ( ) 11 0 1 1 0 ( ) 10 0 0 0 0

Mapa de Karnaugh e: S3 S2\ S1 S0 00 01 11 10 e= Mapa de Karnaugh f: S3 S2\ S1 S0 00 01 11 10 f= ( ) () Mapa de Karnaugh g: S3 S2\ S1 S0 00 01 11 10 g= 00 1 0 0 0 01 1 0 0 1 ( ) 11 0 1 1 0 10 0 0 0 0 00 0 0 0 0 ( ) 01 1 0 1 1 11 1 1 1 0 ( 10 1 0 1 0 00 0 1 1 0 01 1 1 1 1 11 1 1 1 1 10 0 0 0 0

Bloco esquemtico:

OBS.: Logo abaixo neste esquemtico est o display 1( esquerda), que aparece 0 ou o sinal -.

1.2.2 Display BCD


Tabela Verdade: Tabela verdade do display 2 ( direita): S3 S2 S1 S0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1

a 0 1 0 0 1 0 1 0 0 0

b 0 0 0 0 0 1 1 0 0 0

c 0 0 1 0 0 0 0 0 0 0

d 0 1 0 0 1 0 0 1 0 1

e 0 1 0 1 1 1 0 1 0 1

F 0 1 1 1 0 0 0 1 0 0

g 1 1 0 0 0 0 0 1 0 0

Mapas de Karnaugh: Mapa de Karnaugh a: S3 S2\ S1 S0 00 01 11 10 a= Mapa de Karnaugh b: S3 S2\ S1 S0 00 01 11 10 b= 00 0 0 0 0 01 0 1 0 0 11 0 0 0 0 10 0 1 0 0 00 0 1 0 0 01 1 0 0 0 11 0 0 0 0 10 0 1 0 0

Mapa de Karnaugh c: S3 S2\ S1 S0 00 01 11 10 c= Mapa de Karnaugh d: S3 S2\ S1 S0 00 01 11 10 d = 00 0 1 0 0 01 1 0 0 1 () 11 0 1 0 0 10 0 0 0 0 00 0 0 0 0 01 0 0 0 0 11 0 0 0 0 10 1 0 0 0

Mapa de Karnaugh e: S3 S2\ S1 S0 00 01 11 10 e= 00 0 1 0 0 = 01 1 1 0 1 11 1 1 0 0 10 0 0 0 0

Mapa de Karnaugh f:

S3 S2\ S1 S0 00 01 11 10 f= Mapa de Karnaugh g: S3 S2\ S1 S0 00 01 11 10 g=

00 0 0 0 0

01 1 0 0 0

11 1 1 0 0

10 1 0 0 0

00 1 0 0 0

01 1 0 0 0

11 0 1 0 0

10 0 0 0 0

Bloco esquemtico:

No display 1 ( direita) ir aparecer 1 caso houver overflow ou 0 caso no houver. O esquemtico simples ficou:

2 - Componentes da ULA
2.1 - Somador/Subtrator de nmeros complementados a 2 com 4 bits
O componente Somador/Subtrator recebe dois nmeros complementados a 2, representados por vetores de tamanho quatro, e ainda um bit seletor, que indica que operao ele ir realizar, e efetua sobre estes nmeros uma operao de soma ou subtrao, liberando como sadas um vetor de tamanho quatro representando um nmero tambm complementado a 2 e um bit overflow, indicando se a soma/subtrao no pode ser representada pelo sistema de complemento a 2 com quatro bits. Entrada: A[3..0], B[3..0] e bit Seleo Sada: Resultado[3..0] e Overflow Os nmeros que podem ser representados por quatro bits complementados a 2 esto no intervalo de -8 at 7. Por isso a operao deve levar em conta possveis casos de overflow. Se o usurio selecionar a operao de soma pelo bit seletor de entrada, deve-se apenas aplicar a operao de soma bit a bit em todos os bits de A e de B. Se ele selecionar a operao de subtrao, deve-se fazer: Resultado = A B Resultado = A + (-B) Resultado = A + + 1 O que se resume a uma operao de soma cujo primeiro Carry In 1. Para termos de escolha, temos que decidir o valor do primeiro carry in e que vetor vai entrar para ser operado com A (se B ou ). Tudo isso decidido pelo vetor seletor. Para isso foi decidido o padro de seletor ter o valor 0 caso se queira somar e valor 1 caso se queira subtrair, o que ajuda a colocar o prprio vetor seletor como carry in do primeiro somador de 1 bit. Agora para se escolher qual bit de B vai entrar em cada somador de 1 bit, temos que fazer uma lgica entre o seletor e qual bit passa, dependendo do valor de B: Sel 0 1 Operao F=A+B F=AB

Agora, para definir quando indicar overflow, temos que usar uma lgica sobre os carry out de alguns somadores. No final, o somador/subtrador se resume a apenas um somador que seleciona suas entradas(no caso, se B ou +1). Em somas de dois nmeros com sinal, teremos overflow apenas nos casos de somar-se dois nmeros positivos e o resultador dar maior que o nmero 7 (ou seja, acaba dando pelo complemento a 2 um nmero que seria negativo) ou no caso de se somar dois nmeros

negativos e o resultado dar menor que -8 (ou seja, acaba dando um nmero que, representado apenas pelos 4 primeiros bits, seria um nmero positivo pela lgica complementar a 2). Para verificar isso foi feita uma tabela verdade entre os valores do ultimo somador de 1 bit e os valores de overflow:

Bloco esquemtico:

Waveform:

2.2 Complemento do vetor B


Este componente foi feito como uma modificao na entrada do componente somador/subtrator. Partindo do fato de que: -B = 0 B Podemos utilizar o somador/subtrator com a primeira entrada zerada, a segunda sendo o vetor B que queremos barrar e a operao como subtrao. Assim, quando a funo pedida pelo seletor for complementar B a 2, apenas mudamos a entrada do vetor A no somador, com um multiplexador 2:1, e passamos o bit seletor como 1 (operao de subtrao).

2.3 Operador AND em nmeros complementados a 2 com 4 bits


O operador AND aplicado a dois vetores quaisquer de bits nada mais do que um sistema que aplica a operao AND bit a bit dos dois vetores. Ele recebe como entrada dois vetores A e B e retorna um vetor de sada que o resultado da aplicao desta operao em A e B. Entradas: A[3..0] e B[3..0] Sada: Resultado[3..0] No ser preciso a aplicao da tabela verdade neste operador para se descobrir quais portas lgicas devem-se usar, pois a prpria idia do operador j bem explicativa. Bloco esquemtico:

Waveform:

2.4 Operador XOR em nmeros complementados a 2 com 4 bits


O operador XOR aplicado a dois vetores quaisquer de bits definido como o operador AND definido como Componente 2. A diferena est na operao aplicada, que agora XOR. As entradas so dois vetores de quatro bits, A e B, e a sada um vetor de quatro bits tambm. Entrada: A[3..0] e B[3..0] Sada: Resultado[3..0] Bloco esquemtico:

Waveform:

2.5 Comparador de Igualdade entre dois vetores quaisquer de bits


O comparador de igualdade entre dois bits complementados a 2 apenas analisa se todos os bits do vetor entrada A igual ao bit correspondente no vetor entrada B, liberando como sada um bit, que 1 se os vetores A e B so iguais e 0 caso contrrio. Entrada: A[3..0], B[3..0] Sada: bit Igual Para se comparar bit com bit, este componente precisa de um componente menor que compara dois bits apenas.

2.5.1 Comparador de Igualdade bit a bit


Para poder passar o resultado de comparaes anteriores frente, este comparador bit a bit recebe como entrada os dois bits a se comparar e um bit Carry In que indica se anteriormente(nos bits que foram analisados antes) os bits eram iguais. Entrada: bits A, B e Carry_In Sada: bit Carry_Out Para definir as portas lgicas que fazem esta operao, usa-se tabela verdade e mapas de Karnaugh para se analisar a sada de todas as possveis entradas. Tabela verdade: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Din 0 1 0 1 0 1 0 1 Dout 0 1 0 0 0 0 0 1

Mapas de Karnaugh:

Din \AB 0 1 Minitermos: Dout =

00 0 1

01 0 0

11 0 1

10 0 0

Bloco esquemtico(bit-a-bit):

Feito o comparador bit a bit, podemos uni-los em um componente maior que analisa vetores de quatro bits. Basta apenas acoplar cada operador Igualdade para irem analisando A em relao a B bit por bit. O primeiro Carry In deve ser 1 (VCC), pois se ele for 0 a comparao inicial ir retornar 0 sempre(e assim o retorno final sempre zero).

Bloco esquemtico:

Waveform:

2.6 Comparador A menor que B entre dois vetores quaisquer de bits


O comparador A menor que B recebe dois vetores complementados a 2, A e B, e retorna 1 caso A seja menor que B, 0 caso contrrio. Para isso devemos implementar antes dois comparadores diferentes a serem aplicados bit a bit: o comparador sem sinal e o comparador com sinal. Como vamos analisar toda a cadeia de bits, pode-se aplicar o comparador sem sinal nos trs bits menos significativos e o comparador com sinal no bit mais significativo. Esta comparao se inicia pelo bit menos significativo e termina analisando o bit de sinal.

2.6.1 Comparador sem sinal


Este mdulo analisa bit a bit os vetores de entrada e o carryIn. O carryIn representa o resultado da anlise dos bits anteriores, retornando 0 se A no menor que B ou 1 se A menor que B (at o presente momento). Em casos onde o bit do vetor A e o do vetor B so iguais, a sada ter o mesmo valor do carryIn, pois os bits atuais no iro interferir no resultado anterior. Em casos onde o vetor A tem o valor 0 e B tem valor 1 , a sada ser 1, pois como se est analisando bits mais significativos e pela notao binria, no importa o carryIn, A menor do que B. De maneira anloga, e o bit do vetor A 1 e o bit do vetro B 0, a sada da funo ser 0 (A no menor que B). Entrada: bits A, B e Carry_In Sada: bit Carry_Out Tabela Verdade: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Din 0 1 0 1 0 1 0 1 Dout 0 1 1 1 0 0 0 1

Mapa de Karnaugh: Din \AB 0 1 Minitermos: Din = 00 0 1 01 1 1 11 0 1 10 0 0

Bloco esquemtico(sem sinal):

2.6.2 Comparador com sinal


Este mdulo analisa os bits que representam o sinal de ambos os vetores. Dado que 1 significa negativo e 0 positivo, em casos onde A negativo e B positivo, a sada j indica que A menor do que B(1). Se A positivo e B negativo, a funo j retorna que A no menor do que B(0). Em caso onde so iguais, basta retornar o mesmo valor do carry in. Entrada: bits A, B e Carry_In Sada: bit Carry_Out Tabela Verdade: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Din 0 1 0 1 0 1 0 1 Dout 0 1 0 0 1 1 0 1

Mapa de Karnaugh: Din \AB 0 1 Minitermos: Din = 00 0 1 01 0 0 11 0 1 10 1 1

Bloco esquemtico(com sinal):

Comparador A menor que B completo:

Waveform:

2.7 Multiplexadores
Em todo o projeto foram usados 3 multiplexadores ao todo: dois mux 4:2 (Mux de Vetores e Mux de Status) e um mux 2:1 (Para definir o vetor utilizado em A no somador, que pode ser a entrada j definida ou GND em caso de complemento a dois). Cada entrada dos mux possuem um endereo bem definido atravs do qual escolhe-se qual ser a sada. Tal escolha feita por meio do vetor ou bit seletor. O endereamento obtido por meio da relao de minitermos, onde internamente existem portas AND aplicadas aos bits do vetor seletor e s entradas.

Para Mux de Vetores: Entradas: Seletor: S[2..0] , 4 vetores de tamanho 4 Sada: vetor: V[3..0]

Para Mux de Status: Entradas : Seletor: S[2..0] , 4 bits Sada : bit de Status

Para Mux Seleo de A: Entradas: Bit Seletor, 2 vetores de tamanho 4 Sada: S[3..0]

2.8 Comparador A maior que B entre dois vetores quaisquer de bits


O comparador A maior que B verifica se o nmero representado por A tem um valor maior que o representado por B, retornando um bit que 1 caso seja verdade e 0 se for falso. Como j foram implementadas os componentes comparadores de igualdade e A menor que B, para esta precisa-se apenas aplicar uma porta lgica sobre os resultados destes outros comparadores. No caso, A ser maior que B somente se A = B retornar falso e A < B tambm. A nica porta lgica que retorna 1 com parmetros 0 e 0, e retorna 0 caso contrrio a porta NOR. Assim, este componente resume-se a uma porta lgica.

2.9 Decodificador do vetor Seleo


O decodificador do vetor Seleo recebe um vetor de 3 bits que deve informar qual ser a funo descrita pela ULA, e aqui ser decodificado em 3 vetores de 2 bits. Um destes vetores de 2 bits referente ao ncleo de soma/subtrao e complemento, outro referente ao endereamento no Multiplexador de vetores e o outro para o endereamento no Multiplexador dos status. O vetor referente ao ncleo de soma/subtrao e complemento na verdade tem cada bit depois trabalhando independentemente, pois um deles informa ao Multiplexador 2:1 qual entrada ele deve liberar, informando assim se ele far a operao de complemento a 2 ou no. O outro bit vai entrar no somador/subtrator, desempenhando o papel de seletor e indicando se a operao a ser realizada deve ser uma soma ou uma subtrao. Como padres, escolhemos os seguintes valores para os endereamentos: VetorSoma[1..0]: (para o ncleo de soma, subtrao e complemento) VetorSoma[1] = bit que indica se a operao ser complemento a 2 VetorSoma[0] = bit que indica se ir se somar ou subtrair no somador/subtrator 00 operao soma 01 operao subtrao 10 no deve ser passado como operao vlida 11 operao complemento a 2 MuxVetores[1..0]: 00 endereo do vetor vindo do somador/subtrator 01 endereo do vetor vindo do A and B 10 - endereo do vetor vindo A xor B 11 - endereo com valor 0 MuxStatus[1..0]: 00 endereo do bit vindo do comparador de igualdade 01 endereo do bit vindo do comparador A > B

10 endereo do bit vindo do comparador A < B 11 endereo com valor 0 A tabela verdade a seguir descreve o componente: Funo F= A+B F= A- B F= Complemento a 2 de B F= A=B F= A>B F= A<B F = A AND B F = A XOR B S2 0 0 0 0 1 1 1 1 S1 0 0 1 1 0 0 1 1 S0 0 1 0 1 0 1 0 1 Complemento 0 0 1 1 0 0 1 1 Operao 0 1 1 1 0 1 1 1 Mux Vetores[1] 0 0 0 1 1 1 0 1 Mux Vetores[0] 0 0 0 1 1 1 1 0 Mux Status[1] 1 1 1 0 0 1 1 1 Mux Status[0] 1 1 1 0 1 0 1 1

Mapas de Karnaugh: Mapa de Karnaugh - Complemento: S2 \ S1 S0 0 1 Complemento = 00 0 0 01 0 0 11 1 1 10 1 1

Mapa de Karnaugh - Operao: S2 \ S1 S0 0 1 Operao = 00 0 0 01 1 1 11 1 1 10 1 1

Mapa de Karnaugh Mux Vetores[0]: S2 \ S1 S0 0 1 Mux Vetores[0] = 00 0 1 01 0 1 11 1 0 10 0 1

Mapa de Karnaugh Mux Vetores[1]: S2 \ S1 S0 0 1 Mux Vetores[1] = 00 0 1 01 0 1 11 1 1 10 0 0

Mapa de Karnaugh Mux Status[1]: S2 \ S1 S0 0 1 Mux Status[1] = 00 1 0 01 1 1 11 0 1 10 1 1

Mapa de Karnaugh Mux Status[0]: S2 \ S1 S0 0 1 Mux Status[0] = 00 1 1 01 1 0 11 0 1 10 1 1

Bloco esquemtico:

Waveform:

ULA Completa:

3 - Somador BCD
O sistema BCD serve para representar nmeros decimais, para isso usa as seguintes caractersticas: Domnio para cada dgito: 0000 at 1001 ( 0 9 ). Dessa forma os nmeros binrios de 4 bits fora desse intervalo sero desconsiderados como entrada, mas devem ser considerados como uma sada possvel. 1010 1011 1100 1101 1110 1111 Soma de cada digito decimal: Se, ao somar, o resultado ultrapassar o domnio o nmero binrio deve ser modificado de forma que se encaixe no domnio. Como um nmero binrio de 4 bits pode representar 16 nmeros decimais e o sistema BCD representa apenas 10 basta somar 6 (0110) ao nmero binrio. O novo nmero binrio resultado ser representado agora por um nmero binrio de 4 bits e um bit overflow: 1 XXXX -> Exemplo: 6 + 4 = 10 1010 + 0110 = 0000 1010 = 1 0000. Para tornar um nmero 10 em 0 em nmeros decimais, por exemplo, basta somar 6 ao nmero e aplicar mod 16. Observando os outros estouros: Se der 11 11 + 6 = 17 mod 16 = 1 12 12 + 6 = 18 mod 16 = 2 (...) 18 18 + 6 = 24 mod 16 = 8 O controle de se voc vai somar 6 ou no depende do overflow, que deve indicar se o nmero resultante passou de nove. Casos em que ocorre overflow: Se o Carry out da soma dos bits mais significativos der 1 ou se o 1 e 2 bits mais significativos forem 1 (11XX) ou se o 1 e o 3 bits mais significativos forem 1 (1X1X). Pela prpria descrio, observa-se que o circuito tem um OU junto com essas 3 entradas: o resultado do Carry out do Full Addler (Somador) do bit mais significativo, um AND da soma do 1 mais significativo e do 2 mais significativo e um AND da soma do 1 mais significativo e do 3 mais significativo. Feito o overflow, agora sabemos quando somar 6 ao resultado. Porm 6 0110. Ento, dado o resultado S S S S, basta colocar 2 Full Addlers no S e S, somando 1. Este 1 pode ser o prprio overflow.

Soluo: representar o dgito da unidade com 4 bits e ter um bit overflow que diz se passou de nove.

Por fim faz-se um XOR entre o Carry out da soma do S e o resultado do S, evitando-se outro Full Addler para o S coma mostra a tabela abaixo: S 0 0 1 1 Carry out S 0 1 0 1 Novo S 0 1 1 0

Porta XOR

Assim, por fora, o somador BCD assim:

A[3..0]

Soma[3..0]

B[3..0]

overflow

Bloco esquemtico do somador BCD:

3.1 Somador de nmeros com 2 dgitos decimais:


Para somar nmeros com mais de um digito decimal soma-se cada dgito da seguinte forma: 1 soma-se os dgitos menos significativos e seu overflow se somar soma no dgito seguinte. Ex: 26 + 35 5 + 6 + 0 = 1 com overflow = 1; 2 + 3 + 1 = 6 com overflow 0. Resultado: 0 0110 0001 = 061. Assim o somador BCD nada mais do que um Full Adder que funciona com dgitos decimais no lugar de bits.

Para esta implementao de um somador de dois dgitos, consideramos as entradas separadas tambm por dgitos, sendo um VetorA e um VetorB os nmeros totais formados por: VetorA1 dgito da unidade do primeiro nmero. VetorA2 dgito da dezena do primeiro nmero. VetorB1 dgito da unidade do segundo nmero. VetorB2 dgito da dezena do segundo nmero. Sadas: Digito_Unidade dgito unidade da sada. Dgito_Dezena dgito da dezena da sada. Overflow tem valor 1 caso a soma passe de 99, 0 caso contrrio. Bloco esquemtico:

Waveform:

ULA completa com display e pinagem:

Somador BDC completo com displays e pinagem:

CONCLUSO
Este projeto foi uma aplicao bem prtica dos conceitos de Sistemas Digitais vistos nas aulas. Com mtodos como a tabela-verdade e o mapa de Karnaugh, podemos simplificar circuitos relativamente grandes em algumas portas lgicas simples. Utilizando a lgica de complemento a dois, as operaes de subtrao se reduziam a uma soma. Logo, conseguimos aproveitar num nico mdulo o somador e o subtrator. A modularizao do problema simplificou bastante os circuitos. Na implementao de somadores de quatro bits, no precisamos criar uma tabela-verdade para todas as possibilidades, mas podemos reduzir o problema a um bit, e depois reaproveitar os mdulos para fazer um somador de tantos bits quanto se desejam. Alm disso, vimos conceitos de seletores, decodificadores e multiplexadores. Como o projeto dependia de uma escolha do usurio, os resultados fornecidos pela ULA deveriam ser filtrados, isto , escolhidos. E tambm o processo inverso ocorreu quando foi necessrio transformar alguns bits em um determinado padro de codificao, como foi o caso do display. Para isso, a implementao dos circuitos para os bits de seleo foi necessria. Outra grande importncia do projeto foi o aprendizado na utilizao de ferramentas de implementao de hardware, como o Quartus II.

Você também pode gostar