In the previous VHDL tutorial 4, we designed and simulated all seven logic gates (AND, OR, NOT, NAND, NOR, XOR, and XNOR) in VHDL.

*(If you are not following this VHDL tutorial series one by one, please go through all previous tutorials of these series before going ahead in this tutorial)*

In this tutorial,

- We shall write a VHDL program to build all NAND, NOR, XOR, and XNOR gates using AND-OR-NOT gates.
- Simulate the program to design a digital circuit of NAND, NOR, XOR, XNOR gates that is build using AND-OR-NOT gates
- Verify the output waveform of the program (digital circuit) with the truth table of these logic GATES

Let us start with the digital circuit for which we shall write a VHDL program.

__Digital Circuit__

The truth table for all the above circuits:

__NAND gate using AND-OR-NOT gate circuit Truth Table
__

__NOR gate using AND-OR-NOT gate circuit Truth Table__

__XOR gate using AND-OR-NOT gate circuit Truth Table__

**Now we shall write a VHDL program, compile it, simulate it, and get the output in the form of a waveform. Finely, we shall verify those output waveforms with the given truth table.**

__XNOR gate using AND-OR-NOT gate circuit Truth Table__

*(Please go through step by step procedure given in VHDL-tutorial 3 to create a project, edit and compile the program, create waveform file, simulate the program, and generate output waveforms.)*

__VHDL Program
__library IEEE;

**use IEEE.STD_LOGIC_1164.ALL;**

**entity gate_ckt is**

** Port (a,b : in std_logic;**

** y_nand,y_nor,y_not,y_xor,y_xnor : out std_logic**

** );**

**end gate_ckt;**

**architecture gate_ckt_arch of gate_ckt is**

** begin**

** y_nand <= not (a and b);**

** y_nor <= not (a or b);**

** y_xor <= (a and not(b)) or (not(a) and b);**

** y_xnor <= (a and b) or (not(a) and not(b));**

**end gate_ckt_arch;**

“*entity*” describes input-output connections of the digital circuit. As per our circuit given above, we have only two inputs ‘A’ and ‘B’ and four outputs for four gates.

“*architecture*” describes the operation of the circuit – means how the output is generated from a given input.

*(To know more and get more details about VHDL program(s) please go through first two tutorials – VHDL tutorial one and VHDL tutorial 2 – of these series)*

Next, compile above program – create a waveform file with all inputs and outputs listed – simulate the project, and you will get the following result:

** Simulation Waveform**Now verify these output waveforms with the truth table of GATEs. For example, here is one case that is highlighted with inputs A=1 and B=0. You can verify the other three cases also.

This is how you can build NAND, NOR, XOR, and XNOR gates using AND-OR-NOT gate in VHDL and verify its output with their truth table.

In the next tutorial, we shall prove D’Morgan’s Theorems by designing their digital circuits using VHDL programming

Filed Under: VHDL

## Questions related to this article?

👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.

Tell Us What You Think!!

You must be logged in to post a comment.