Experiment: Write a VHDL code for half subtractor and full subtractor and simulate the code.
Introduction:
To develop code for half subtractor and full subtractor. Simulate the code in the software.
Material required:
1. Xilinx Software Loaded PC = 1 Set.
2. Print = 1.
Description:
1. Theory
2. Algorithm
3. Description
4. VHDL Code Writing
5. Compile and Run program.
Theory:
The Half-Adder is a basic building block of adding two numbers as two inputs and produce out two outputs. The adder is used to perform OR operation of two single bit binary numbers.
ALGORITHM:
1. Define Library functions.
2. Declare Entity and Architecture.
3. Describe functionality.
4. End source code.
5. Compile and Run program.
DESCRIPTION:
The augent and addent bits are two input states, and ‘carry’ and ‘sum ‘are two output states of the half adder.
Half-subtractor circuit
TRUTH TABLE
VHDL Code for a Half-Subtractor
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; Library ieee; use ieee.std_logic_1164.all; entity half_sub is port ( a,b : in std_logic; dif,bo: out std_logic ); end half_sub; architecture sub_arch of half_sub is begin dif <= a xor b; bo <= (not a) and b; end sub_arch;
Full-Subtractor
The Half Subtractor is used to subtract only two numbers. To overcome this problem, a full subtractor was designed. The full subtractor is used to subtract three 1-bit numbers A, B, and C, which are minuend, subtrahend, and borrow, respectively. The full subtractor has three input states and two output states i.e., diff and borrow.
Full-Subtractor circuit:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity full_sub is port(a,b,c: in bit; sub, borrow:out bit); end full_sub; architecture data of full_sub is begin sub<= a xor b xor c; borrow <= ((b xor c) and (not a)) or (b and c); end data;
TRUTH TABLE
VHDL Code for a Full-Subtractor
VHDL program to build half and full-subtractor circuits. Verify the output waveform of program (digital circuit) with the truth tables for the half and full-subtractor circuits.
Half-subtractor Output
Full-subtractor Output
Questions with answers:
1. What is the half-subtractor?
Ans: The half-subtractor is a combinational circuit which is used to perform subtraction of two bits.
2. What is the Full-subtractor?
Ans: A full subtractor is a combinational circuit that performs subtraction involving three bits, namely A (minuend), B (subtrahend), and Bin (borrow-in) . It accepts three inputs.
3. What is half-subtractor boolean expression?
Ans: Difference = A ⊕ B
Borrow = A’ B
4. What is Full-subtractor boolean expression
Ans: D = A ⊕ B ⊕ Bin
Bout = A’ Bin + A’ B + B Bin
Half Subtractor Video Tutorial: