- Definição e visão geral do subtrator binário
- Meio Subtrator
- Subtrator Completo
- Subtrator N-bit
- Aplicações de subtrator binário
- VHDL implementação de meio subtrator e subtrator completo
Definição
Um subtrator é um dispositivo que subtrai dois números e produz o resultado. Um subtrator digital ou binário é algo que lida com a subtração de dígitos binários.
Um subtrator binário é necessário para computação digital dentro de um dispositivo digital ou computador digital. A forma mais conveniente de subtração de números binários sem sinal é o método de complementos. Existem regras para subtração binária.
As regras de subtração binária são definidas como segue. Aqui, 0 é lógico baixo e um é lógico alto. A e B são duas entradas.
A | B | Y = A - B |
0 | 0 | 0 |
0 | 1 | 1 (pedir emprestado 1) |
1 | 0 | 1 |
1 | 1 | 0 |
Exemplo de operações de subtração:
1101 – 1011
1101
- 1011
= 0010
Então, a resposta é 0010
Métodos de complementos podem alternativamente realizar subtrações binárias para subtratores binários. Existem dois tipos de métodos de complemento geralmente usados.
Complemento de A. 1
B. Complemento de 2
Passos para realizar o complemento de 1:
- Descubra o complemento de 1 do número a ser subtraído.
- Agora, o complemento de 1 é adicionado ao número a partir do qual a subtração é desejada.
- Onde houver um transporte na última posição, do resultado da adição na etapa 2, o transportador é retirado e adicionado ao produto sem o transporte para se obter o resultado final.
Vejamos um exemplo - 1101 - 1011
Complemento de 1 de 1011 = 0100
Agora, adicione 1101 com 0100
1101
+ 0100
= 1 0001
Como podemos ver, existe um como carry, então removemos o carry e adicionamos o carry novamente com o resultado obtido.
0001
+ 1
= 0010
Então, a resposta para a subtração é 0010
Para o método de complemento de 2
- Calcule o complemento de 2.
- O complemento agora é adicionado com outro número.
- O transporte é rejeitado.
Vejamos um exemplo - 1101 - 1011
O complemento de 2 de qualquer número é calculado executando o complemento de 1 e adicionando 1 a ele.
Complemento de 2 de
Agora, adicione 1101 com 0100
1101 + 0100 = 1 0001
Como podemos ver, existe um como carry, então removemos o carry e adicionamos o carry novamente com o resultado obtido.
0001 + 1 = 0010
Então, a resposta para a subtração é 0010
Os computadores digitais usam o método do complemento de 2 para cálculos, pois requer menos transporte.
Os métodos de complemento no sistema numérico decimal são conhecidos como método de complemento de 9 e 10.
Vários circuitos digitais implementam essa operação de subtração. Eles são -
- Meio Subtrator
- Subtrator Completo
Um subtrator binário não apenas executa operações de adição, mas também é usado em aplicativos digitais. Decodificação e codificação de valores, cálculo do índice são algumas de suas aplicações.
Meio subtrator
Um meio subtrator binário é um subtrator binário que subtrai um bit de dados e produz o resultado. Possui dois lados de entrada através dos quais fornecemos os valores lógicos digitais e possui duas saídas através das quais recebemos o impacto da operação. O resultado pode ser mostrado em um único dígito. O trabalho mostra o número na subtração que tem o mesmo significado que os dígitos individuais subtraídos. A outra saída mostra o bit de empréstimo.
A tabela de verdade do meio subtrator
O funcionamento do subtrator meio binário é mostrado na seguinte tabela verdade.
A | B | Diferença | Pedir emprestado |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
Circuito de meio subtrator
A partir da tabela verdade, podemos concluir que as primeiras três linhas podem representar o resultado usando um único dígito. Na segunda linha, o trabalho é descrito usando dois números, pois foi emprestado como 1.
Diferença = A′B + AB ′
Pegar emprestado = A′B
então,
Diferença = A XOR B
Pegar emprestado = A ′ AND B
Precisamos de uma porta XOR, uma porta NOT e uma porta AND para implementar a lógica. Porta XOR, porta NÃO, porta AND também podem ser feitas usando portas universais como NAND e NOR. Portanto, um meio subtrator pode ser projetado usando apenas portas universais.
A imagem a seguir mostra A e B como a entrada e D como a diferença e C como eles pegam emprestado.
Subtrator Completo
Subtrator binário completo é outro tipo de subtrator binário que fornece o resultado de uma operação de subtração binária. Quando dois números binários são subtraídos, exceto para o dígito menos significativo, há um empréstimo como Bi-1 e pedir emprestado como Bi. O Subtractor completo é projetado para lidar com um empréstimo para cada estágio. É assim que um pedido inteiro supera a deficiência da metade do Subtractor em relação ao empréstimo em execução.
Uma tabela de verdade completa do subtrator
Xi | Yi | Bi-1 | Di | Bi |
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 |
Circuito subtrator completo
Diferença = A ′ B ′ Bin + AB ′ Bin′ + A ′ BBin′ + ABBin
Pegar emprestado = A ′ Bin + A ′ B + BBin
Para implementar a expressão usando portas lógicas, precisamos simplificar ainda mais a palavra.
Diferença = A ′ B ′ Bin + AB ′ Bin′ + A ′ BBin′ + ABBin
Ou, Diferença = Bin (A′B ′ + AB) + Bin ′ (AB ′ + A′B)
Ou, Diferença = Bin (A XNOR B) + Bin ′ (A X OU B)
Ou, Diferença = Bin (A XOR B) ′ + Bin ′ (A X OU B)
Ou, Diferença = Bin XOR (A XOR B)
Ou, Diferença = (A XOR B) Bin XOR
Emprestar = A ′ B ′ Bin + AB ′ Bin′ + A ′ BBin′ + ABBin
Ou, pedir emprestado = A ′ B ′ Bin + A ′ BBin ′ + A ′ BBin + A ′ BBin + A ′ BBin + AB Bin
Ou, Pegar emprestado = A ′ Bin (B + B ′) + A′B (Bin + Bin ′) + BBin (A + A ′)
Ou, Pegar emprestado = A ′ Bin + A′B + BBin
A expressão pode ser escrita de outra maneira -
Bout = A ′ B ′ Bin + A ′ Bin B ′ + A ′ Bin B + Bin AB
Ou, Empréstimo = Bin (AB + A ′ B ′) + A ′ B (Bin + Bin ′)
Ou Empréstimo = Bin (A XNOR B) + A ′ B
Ou, Empréstimo = Bin (A XOR B) ′ + A ′ B
Como mostra o diagrama do circuito, A, B e Bpol O circuito fornece duas saídas como saída de diferença e toma emprestado a saída. O Bin é definido como 1 sempre que houver empréstimo na entrada A. Bin é então subtraído de A e Y.
A expressão geral pode ser escrita como D = A - B - Bin + 2Bpara fora.
Subtratores completos também podem ser implementados usando subtratores pela metade.
Subtrator de N bits
Em um subtrator binário de bit único, a subtração de apenas 1 bit pode ser executada. Se precisarmos realizar a subtração de n bits, será necessário um subtrator binário de bits. Um subtrator de n bits pode ser implementado de forma semelhante usando subtratores em uma forma em cascata.
Aplicações de Subtratores
- Subtratores são freqüentemente usados com somadores. Sempre que um somador é necessário para um circuito, um subtrator também é necessário.
- ALU, que é responsável pelo cálculo, e fica dentro de um microprocessador, também precisa de subtratores. CPUs também precisam de subtratores para operação.
- Os microcontroladores também usam subtratores para realizar a computação digital.
- Subtratores também são usados no Domínio de Processamento de Sinal Digital.
- Os computadores digitais usam muitos subtratores.
Implementação VHDL de Metade Subtratores e Subtratores Completos
Modelagem de fluxo de dados de meio subtrator
biblioteca IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entidade ENTITY_NAME é
Porta (A: em STD_LOGIC;
B: em STD_LOGIC;
IB: em STD_LOGIC;
Dif: out STD_LOGIC;
Borr: out STD_LOGIC);
fim ENTITY_NAME;
Arquitetura de fluxo de dados
arquitetura Dataflow de ENTITY_NAME é
começar
Dif <= (A xor B) xor IB;
Borr <= ((não A) e (B ou IB)) ou (B e IB);
fim do fluxo de dados;
Modelagem de Fluxo de Dados Subtrator Completa
entidade ENTITY_NAME é
Porta (A: em STD_LOGIC;
B: em STD_LOGIC;
IB: em STD_LOGIC;
Borr: out STD_LOGIC;
Dif: out STD_LOGIC);
fim ENTITY_NAME;
Fluxo de dados de arquitetura
arquitetura Comportamental de ENTITY_NAME é
começar
processo (A, B, IB)
começar
if (A = '0 ′ e B =' 0 ′ e IB = '0 ′) então
Dif <= '0 ′;
Borr <= '0 ′;
elsif (A = '0 ′ e B =' 0 ′ e IB = '1 ′) então
Borr <= '1 ′;
Dif <= '1 ′;
elsif (A = '0 ′ e B =' 1 ′ e IB = '0 ′) então
Borr <= '1 ′;
Dif <= '1 ′;
elsif (A = '0 ′ e B =' 1 ′ e IB = '1 ′) então
Borr <= '0 ′;
Dif <= '1 ′;
elsif (A = '1 ′ e B =' 0 ′ e IB = '0 ′) então
Borr <= '1 ′;
Dif <= '0 ′;
elsif (A = '1 ′ e B =' 0 ′ e IB = '1 ′) então
Borr <= '0 ′;
Dif <= '0 ′;
elsif (A = '1 ′ e B =' 1 ′ e IB = '0 ′) então
Borr <= '0 ′;
Dif <= '0 ′;
outro
Borr <= '1 ′;
Dif <= '1 ′;
end if;
fim do processo;
fim Comportamental;
Olá, meu nome é Sudipta Roy. Eu fiz B. Tecnologia em Eletrônica. Sou um entusiasta da eletrônica e atualmente me dedico à área de Eletrônica e Comunicações. Tenho grande interesse em explorar tecnologias modernas, como IA e aprendizado de máquina. Meus escritos são dedicados a fornecer dados precisos e atualizados a todos os alunos. Ajudar alguém a adquirir conhecimento me dá imenso prazer.
Vamos nos conectar através do LinkedIn –
Olá caro leitor,
Somos uma equipe pequena na Techiescience, trabalhando duro entre os grandes players. Se você gostou do que viu, compartilhe nosso conteúdo nas redes sociais. Seu apoio faz uma grande diferença. Obrigado!