A Industrial Training Project Report ON: VHDL Coding For Decade Counter On Xilinx and Create Test Waveform"
A Industrial Training Project Report ON: VHDL Coding For Decade Counter On Xilinx and Create Test Waveform"
INDUSTRIAL TRAINING
PROJECT REPORT
ON
“VHDL Coding for Decade Counter on Xilinx and create Test Waveform”
BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION ENGINEERING
Submitted by
MOHD SHADAN KHAN
CERTIFICATE OF ORIGINALITY
This is to certify that the project titled “VHDL Coding for Decade Counter on Xilinx and
create Test Waveform”is an original work of the student and is being submitted in partial
been submitted earlier either to this university or to any other University/Institution for the
Place: Place:
Date: Date:
CONTENTS
Serial no. Topic
1 Abstract
2 Introduction To VLSI
3 Project Description
4 Conclusion
5 References
ABSTRACT
VHDL stands for VHSIC Hardware Description Language. VHSIC means Very
High Speed Integrated Circuits. VHDL is an industry-standard language for
modeling and synthesizing digital hardware, particularly for
programmable logic or Application Specific Integrated
Circuits. The VHDL simulation serves as a basis for testing
complex designs and validating the design prior to
fabrication. As a result, the redesign is reduced, the design
cycle is shortened, and the product is brought to market
sooner. A VHDL program can be considered as a
description of a digital system; the associated simulator will
use this description to produce behavior that will mimic that
of the physical system.
Xilinx ISE means Xilinx Integrated Software Environment (ISE). This Xilinx
design software suite allows you to take your design from design entry through
Xilinx device programming. The ISE Project Navigator manages and processes
your design through several steps in the ISE design flow. These steps are Design
Entry, Synthesis, Implementation, Simulation/Verification, and Device
Configuration.
In this project,we are going to create a counter in the Xilinx ISE and how to
simulate it with ISE Simulator. We are going to create a test bench waveform
containing input stimulus we can use to simulate the counter module. This test
bench waveform is a graphical view of a test bench.
INTRODUCTION TO VLSI
Very-Large-Scale Integration (VLSI) is the process of creating
an integratedcircuit (IC) by combining thousands of transistors into a single
chip.
VLSI began in the 1970s when complex semiconductor and
communication technologies were being developed. The microprocessor is a
VLSI device. Before the introduction of VLSI technology most ICs had a
limited set of functions they could perform. An electroniccircuit might consist
of a CPU, ROM, RAM and other gluelogic. VLSI lets IC designers add all of
these into one chip. IT IS the current level of computer microchip
miniaturization and refers to microchips containing in the hundreds of
thousands of transistors.
LSI (Large-Scale Integration) meant microchips containing thousands of
transistors. Earlier, MSI (Medium-Scale Integration) meant a microchip
containing hundreds of transistors and SSI (Small-Scale Integration) meant
transistors in the tens.
Changing the inputs to the NAND gate can cause the maximum count to be
changed
PROJECT DESCRIPTION
CODES:
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
library UNISIM;
use UNISIM.Vcomponents.ALL;
entity INV4_MXILINX_co is
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
I3 : in std_logic;
O0 : out std_logic;
O1 : out std_logic;
O2 : out std_logic;
O3 : out std_logic);
end INV4_MXILINX_co;
component INV
port ( I : in std_logic;
O : out std_logic);
end component;
begin
I_36_37 : INV
O=>O3);
I_36_38 : INV
O=>O2);
I_36_39 : INV
O=>O1);
I_36_40 : INV
O=>O0);
end BEHAVIORAL;
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
library UNISIM;
use UNISIM.Vcomponents.ALL;
entity FDC_MXILINX_co is
port ( C : in std_logic;
CLR : in std_logic;
D : in std_logic;
Q : out std_logic);
end FDC_MXILINX_co;
component GND
end component;
component FDCP
port ( C : in std_logic;
CLR : in std_logic;
D : in std_logic;
PRE : in std_logic;
Q : out std_logic);
end component;
begin
I_36_55 : GND
U0 : FDCP
CLR=>CLR,
D=>D,
PRE=>XLXN_5,
Q=>Q);
end BEHAVIORAL;
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
library UNISIM;
use UNISIM.Vcomponents.ALL;
entity FJKC_MXILINX_co is
port ( C : in std_logic;
CLR : in std_logic;
J : in std_logic;
K : in std_logic;
Q : out std_logic);
end FJKC_MXILINX_co;
signal AD : std_logic;
signal A0 : std_logic;
signal A1 : std_logic;
signal A2 : std_logic;
signal Q_DUMMY : std_logic;
component FDC_MXILINX_co
port ( C : in std_logic;
CLR : in std_logic;
D : in std_logic;
Q : out std_logic);
end component;
component AND3B2
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
O : out std_logic);
end component;
component AND3B1
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
O : out std_logic);
end component;
component OR3
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
O : out std_logic);
end component;
port ( I0 : in std_logic;
I1 : in std_logic;
O : out std_logic);
end component;
begin
Q <= Q_DUMMY;
I_36_32 : FDC_MXILINX_co
CLR=>CLR,
D=>AD,
Q=>Q_DUMMY);
I_36_37 : AND3B2
I1=>K,
I2=>Q_DUMMY,
O=>A0);
I_36_40 : AND3B1
I1=>K,
I2=>J,
O=>A1);
I_36_41 : OR3
I1=>A1,
I2=>A0,
O=>AD);
I_36_43 : AND2B1
I1=>J,
O=>A2);
end BEHAVIORAL
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
library UNISIM;
use UNISIM.Vcomponents.ALL;
entity co is
port ( C : in std_logic;
R : in std_logic;
V : in std_logic;
D0 : out std_logic;
D1 : out std_logic;
D2 : out std_logic;
D3 : out std_logic;
D4 : out std_logic;
D5 : out std_logic;
D6 : out std_logic;
D7 : out std_logic;
D8 : out std_logic;
D9 : out std_logic);
end co;
architecture BEHAVIORAL of co is
component FJKC_MXILINX_co
port ( C : in std_logic;
CLR : in std_logic;
J : in std_logic;
K : in std_logic;
Q : out std_logic);
end component;
component AND4
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
I3 : in std_logic;
O : out std_logic);
end component;
component INV4_MXILINX_co
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
I3 : in std_logic;
O0 : out std_logic;
O1 : out std_logic;
O2 : out std_logic;
O3 : out std_logic);
end component;
component INV
port ( I : in std_logic;
O : out std_logic);
end component;
component AND2
port ( I0 : in std_logic;
I1 : in std_logic;
O : out std_logic);
end component;
begin
XLXI_1 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_35);
XLXI_2 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_32);
XLXI_3 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_33);
XLXI_4 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_34);
XLXI_5 : AND4
I1=>XLXN_2,
I2=>XLXN_3,
I3=>XLXN_4,
O=>D0);
XLXI_6 : AND4
port map (I0=>XLXN_44,
I1=>XLXN_5,
I2=>XLXN_6,
I3=>XLXN_7,
O=>D1);
XLXI_7 : AND4
I1=>XLXN_63,
I2=>XLXN_9,
I3=>XLXN_10,
O=>D2);
XLXI_9 : AND4
I1=>XLXN_14,
I2=>XLXN_46,
I3=>XLXN_15,
O=>D4);
XLXI_10 : AND4
I1=>XLXN_16,
I2=>XLXN_46,
I3=>XLXN_17,
O=>D5);
XLXI_11 : AND4
I1=>XLXN_63,
I2=>XLXN_46,
I3=>XLXN_19,
O=>D6);
XLXI_12 : AND4
I1=>XLXN_63,
I2=>XLXN_46,
I3=>XLXN_20,
O=>D7);
XLXI_13 : AND4
I1=>XLXN_21,
I2=>XLXN_22,
I3=>XLXN_62,
O=>D8);
XLXI_14 : AND4
I1=>XLXN_24,
I2=>XLXN_25,
I3=>XLXN_62,
O=>D9);
XLXI_16 : INV4_MXILINX_co
I1=>XLXN_63,
I2=>XLXN_46,
I3=>XLXN_62,
O0=>XLXN_1,
O1=>XLXN_2,
O2=>XLXN_3,
O3=>XLXN_4);
XLXI_17 : INV
O=>XLXN_5);
XLXI_18 : INV
O=>XLXN_6);
XLXI_19 : INV
O=>XLXN_7);
XLXI_20 : INV
O=>XLXN_8);
XLXI_22 : INV
O=>XLXN_10);
XLXI_23 : INV
O=>XLXN_11);
XLXI_24 : INV
O=>XLXN_12);
XLXI_25 : INV
O=>XLXN_13);
XLXI_26 : INV
O=>XLXN_14;
XLXI_27 : INV
port map (I=>XLXN_62,
O=>XLXN_15);
XLXI_28 : INV
O=>XLXN_16);
XLXI_29 : INV
O=>XLXN_17);
XLXI_30 : INV
O=>XLXN_18);
XLXI_31 : INV
O=>XLXN_19);
XLXI_32 : INV
O=>XLXN_20);
XLXI_33 : INV
O=>XLXN_21);
XLXI_34 : INV
O=>XLXN_22);
XLXI_35 : INV
O=>XLXN_23);
XLXI_36 : INV
XLXI_37 : INV
O=>XLXN_25);
XLXI_38 : INV
O=>XLXN_26);
XLXI_39 : INV
O=>XLXN_27);
XLXI_40 : INV
O=>XLXN_44);
XLXI_41 : INV
O=>XLXN_63);
XLXI_42 : INV
O=>XLXN_46);
XLXI_43 : INV
O=>XLXN_62);
XLXI_45 : INV
O=>XLXN_9);
XLXI_46 : AND4
I1=>XLXN_63,
I2=>XLXN_11,
I3=>XLXN_12,
O=>D3);
XLXI_48 : AND4
I1=>XLXN_63,
I2=>XLXN_27,
I3=>XLXN_62,
O=>XLXN_68);
XLXI_49 : AND2
I1=>R,
O=>XLXN_43);
end BEHAVIORAL;
map (G=>XLXN_5);
U0 : FDCP
CLR=>CLR,
D=>D,
PRE=>XLXN_5,
Q=>Q);
end BEHAVIORAL;
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
library UNISIM;
use UNISIM.Vcomponents.ALL;
entity FJKC_MXILINX_co is
port ( C : in std_logic;
CLR : in std_logic;
J : in std_logic;
K : in std_logic;
Q : out std_logic);
end FJKC_MXILINX_co;
signal AD : std_logic;
signal A0 : std_logic;
signal A1 : std_logic;
signal A2 : std_logic;
component FDC_MXILINX_co
port ( C : in std_logic;
CLR : in std_logic;
D : in std_logic;
Q : out std_logic);
end component;
component AND3B2
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
O : out std_logic);
end component;
component AND3B1
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
O : out std_logic);
end component;
component OR3
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
O : out std_logic);
end component;
component AND2B1
port ( I0 : in std_logic;
I1 : in std_logic;
O : out std_logic);
end component;
begin
Q <= Q_DUMMY;
I_36_32 : FDC_MXILINX_co
CLR=>CLR,
D=>AD,
Q=>Q_DUMMY);
I_36_37 : AND3B2
port map (I0=>J,
I1=>K,
I2=>Q_DUMMY,
O=>A0);
I_36_40 : AND3B1
I1=>K,
I2=>J,
O=>A1);
I_36_41 : OR3
I1=>A1,
I2=>A0,
O=>AD);
I_36_43 : AND2B1
I1=>J,
O=>A2);
end BEHAVIORAL
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
library UNISIM;
use UNISIM.Vcomponents.ALL;
entity co is
port ( C : in std_logic;
R : in std_logic;
V : in std_logic;
D0 : out std_logic;
D1 : out std_logic;
D2 : out std_logic;
D3 : out std_logic;
D4 : out std_logic;
D5 : out std_logic;
D6 : out std_logic;
D7 : out std_logic;
D8 : out std_logic;
D9 : out std_logic);
end co;
architecture BEHAVIORAL of co is
component FJKC_MXILINX_co
port ( C : in std_logic;
CLR : in std_logic;
J : in std_logic;
K : in std_logic;
Q : out std_logic);
end component;
component AND4
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
I3 : in std_logic;
O : out std_logic);
end component;
component INV4_MXILINX_co
port ( I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
I3 : in std_logic;
O0 : out std_logic;
O1 : out std_logic;
O2 : out std_logic;
O3 : out std_logic);
end component;
component INV
port ( I : in std_logic;
O : out std_logic);
end component;
component AND2
port ( I0 : in std_logic;
I1 : in std_logic;
O : out std_logic);
end component;
begin
XLXI_1 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_35);
XLXI_2 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_32);
XLXI_3 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_33);
XLXI_4 : FJKC_MXILINX_co
CLR=>XLXN_43,
J=>V,
K=>V,
Q=>XLXN_34);
XLXI_5 : AND4
I1=>XLXN_2,
I2=>XLXN_3,
I3=>XLXN_4,
O=>D0);
XLXI_6 : AND4
I1=>XLXN_5,
I2=>XLXN_6,
I3=>XLXN_7,
O=>D1);
XLXI_7 : AND4
I1=>XLXN_63,
I2=>XLXN_9,
I3=>XLXN_10,
O=>D2);
XLXI_9 : AND4
I1=>XLXN_14,
I2=>XLXN_46,
I3=>XLXN_15,
O=>D4);
XLXI_10 : AND4
I1=>XLXN_16,
I2=>XLXN_46,
I3=>XLXN_17,
O=>D5);
XLXI_11 : AND4
I1=>XLXN_63,
I2=>XLXN_46,
I3=>XLXN_19,
O=>D6);
XLXI_12 : AND4
I1=>XLXN_63,
I2=>XLXN_46,
I3=>XLXN_20,
O=>D7);
XLXI_13 : AND4
I1=>XLXN_21,
I2=>XLXN_22,
I3=>XLXN_62,
O=>D8);
XLXI_14 : AND4
I2=>XLXN_25,
I3=>XLXN_62,
O=>D9);
XLXI_16 : INV4_MXILINX_co
I1=>XLXN_63,
I2=>XLXN_46,
I3=>XLXN_62,
O0=>XLXN_1,
O1=>XLXN_2,
O2=>XLXN_3,
O3=>XLXN_4);
XLXI_17 : INV
O=>XLXN_5);
XLXI_18 : INV
O=>XLXN_6);
XLXI_19 : INV
O=>XLXN_7);
XLXI_20 : INV
O=>XLXN_8);
XLXI_22 : INV
O=>XLXN_10);
XLXI_23 : INV
O=>XLXN_11);
XLXI_24 : INV
O=>XLXN_12);
XLXI_25 : INV
O=>XLXN_13);
XLXI_26 : INV
O=>XLXN_14;
XLXI_27 : INV
O=>XLXN_15);
XLXI_28 : INV
O=>XLXN_16);
XLXI_29 : INV
O=>XLXN_17);
XLXI_30 : INV
O=>XLXN_18);
XLXI_31 : INV
O=>XLXN_19);
XLXI_32 : INV
port map (I=>XLXN_62,
O=>XLXN_20);
XLXI_33 : INV
O=>XLXN_21);
XLXI_34 : INV
O=>XLXN_22);
XLXI_35 : INV
O=>XLXN_23);
XLXI_36 : INV
O=>XLXN_24);
XLXI_37 : INV
O=>XLXN_25);
XLXI_38 : INV
O=>XLXN_26);
XLXI_39 : INV
O=>XLXN_27);
XLXI_40 : INV
O=>XLXN_44);
XLXI_41 : INV
XLXI_42 : INV
O=>XLXN_46);
XLXI_43 : INV
O=>XLXN_62);
XLXI_45 : INV
O=>XLXN_9);
XLXI_46 : AND4
I1=>XLXN_63,
I2=>XLXN_11,
I3=>XLXN_12,
O=>D3);
XLXI_48 : AND4
I1=>XLXN_63,
I2=>XLXN_27,
I3=>XLXN_62,
O=>XLXN_68);
XLXI_49 : AND2
I1=>R,
O=>XLXN_43);
end BEHAVIORAL;
TECHNOLOGY SCHEMATIC:
SIMULATED OUTPUT :
CONCLUSION
From this project, we have learned the various technologies,application and
scope of VLSI and also the application of VLSI design software and
programming code language. Doing this project we also came to know that
there is ample opportunity and growth for those who choose VLSI design as a
career.
REFERENCE:
[2] 1076-1987 – IEEE Standard VHDL Language Reference Manual. 1988. ISBN 0-
7381-4324-3. doi:10.1109/IEEESTD.1988.122645.
[4]Pedroni Volnei A. (2008). Digital electronics and design with VHDL. Morgan
[5] ^ a b Latches and Flip Flops (EE 42/100 Lecture 24 from Berkeley) "...Sometimes