ADSD Lab Manual For M. Tech. VLSI & Embdeed System I Sem
ADSD Lab Manual For M. Tech. VLSI & Embdeed System I Sem
Design Specifications
Design Entry
Functional
Simulation RTL Model
(Zero Delay)
Target Device
Libraries (Vender
Synthesis
T Specific)
Gate level Gate level
E description using
S Simulation
target library cells Design Constraints
T
Area / Speed
B
E Gate level Model
N
C Timing Mapping +
H Simulation Translation Target Device
(Gate + Gate level model to Libraries (Vender
Interconnect device architecture Specific)
Delays)
Place and Route
Placing the design in Design Constraints
device while optimizing Area / Speed
it for speed and area
Programming file
generation
Libraries Bit Stream
(Simprims
and
Unisims) Download onto
FPGA/ CPLD
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Xilinx FPGAs are reprogrammable and when combined with an HDL design
flow can greatly reduce the design and verification cycle.
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
VERILOG HDL/Verilog
Code Design Entry
Functional Simulation
Synthesis
Implementation
Timing Simulation
Design Entry
The first stage of Xilinx design flow is a design entry process. A design must be
specified by using either a schematic editor or HDL text-based tool.
Functional Simulation
Upon the finish of the design entry stage, the functional simulation of the design
is being performed, which is used to verify functionality of the design assuming no
delays, whatsoever. This assumes no target technology selection at this stage and hence
assumes zero delay in simulation.
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Complex designs must be intensively simulated, at different simulation points,
during the design flow. Simulation verifies the operation of the design before it is
actually implemented as hardware. One of the most prevalent methods for simulation is
testbenching. Testbenches (VERILOG HDL) or text fixtures (Verilog) are used to specify
circuit stimuli and responses.
Roughly, simulation can be divided as functional and timing simulation. Primarily, the
functional simulation verifies that the design‟s specifications are correctly understood and
coded. Timing information, produced during the device implementation stage, is not
available during the functional simulation. Functional simulation can be used after
synthesis, too.
Comparison between the pre- and post-synthesis simulations‟ results checks the results of
the HDL compiler‟s work and the HDL code‟s correctness.
Timing simulation operates with the real delays (results of device implementation) and is
used for verification of implemented design. Timing data are given in an .sdf file
(Standard Delay Format).
Xilinx supports functional and timing simulations at different points of the design flow:
Register Transfer Level (RTL) simulation.
Post-synthesis functional simulation (Pre-NGDBuild).
Post-implementation back-annotated timing simulation.
Design Synthesis
After this process, the synthesis is performed. Here for the first time in the design
flow the target technology (choice of a particular FPGA device family) is being
performed. This target technology selection will remain the same, henceforth in the
design flow, upto the final implementation stage, where finally generated Bit stream file
gets downloaded onto that FPGA.
The output of the synthesis process is creation of gate level netlist. This refers to
the EDIF implementation netlist of the FPGA design. Besides the EDIF implementation
netlist, the XNF (Xilinx netlist format) netlist can be used as well.
Although the XNF is now becoming rather obsolete. The EDIF netlist is used as
an input file to the Xilinx Implementation tool and specifies how the core will be
implemented.
The Electronic Design Interchange Format (EDIF) is a format used to exchange design
data between different CAD systems. In the world of FPGA design, it is used for
interchange of data between different EDA (Electronic Design Automation) software
tools. EDIF files are used for FPGA implementation only. They are the result of design
synthesis and can be generated from different design entry EDA tools: schematic or HDL
design tools. EDIF files are inputs to the Xilinx implementation tools during the
translation step (NGDBuild).
Design Implementation
Design Implementation includes the following steps:
i) Translate
ii) Map
iii) Place and Route
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
In the Translate step, which is the first step in the implementation process, EDIF
netlist must be further converted into Native Generic Database file (NGD), by means of a
program called NGDBuild. The NGD file resulting from an NGDBuild run contains the
logical description of the design that can be mapped into a targeted Xilinx FPGA device
family. It is important to stress that NGDBuild merges all available EDIF netlists from
the working directory. This is actually the step where the black-box netlist becomes
merged with the rest of FPGA design.
In the next stage, the Map stage, the NGD file is an input into a MAP program
that maps logical design to a Xilinx FPGA. The output of the MAP program is an NCD
(Native Circuit Description) file. The NCD is a physical representation of the design
mapped to the components of internal FPGA architecture.
The mapped design is ready to be placed and routed. The PAR program does this
job. The input to PAR is a mapped (not routed) NCD file, while the output is a fully
routed NCD file.
Review reports are generated by the Implement Design process, such as the Map
Report or Place & Route Report, and change any of the following to improve your
design:
Process properties
Constraints
Source files
Synthesis and again implementation of the design is being made until design
requirements are met.
Timing verification of the design can be made at different points in the design
flow as follows:
i) Run static timing analysis at the following points in the design flow:
After Map.
After Place and Route.
ii) Running Timing Simulations at the following points in the design flow:
After Map (for a partial timing analysis of CLB and IOB delays).
After Place and Route (for full timing analysis of block and net
delays).
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 1
Simulation using all the modeling styles and Synthesis of all the
logic gates using VHDL
AIM:
Perform Zero Delay Simulation of all the logic gates
written in behavioral, dataflow and structural modeling style in VHDL using a
Test bench. Then, Synthesize each one of them on Xilinx 8.1 Project Navigator.
Block Diagram:
A And, Nand,
Or, Nor, C
Xor, Xnor
B
Truth table:
And Gate: Or Gate:
A B Y A B Y
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Boolean Equation:
library ieee;
use ieee.std_logic_1164.all;
entity andg is
port (a,b : in std_logic;
c : out std_logic
);
end andg;
library ieee;
use ieee.std_logic_1164.all;
entity org is
port (a,b : in std_logic;
c : out std_logic
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
);
end org;
entity nandg is
port (a,b : in std_logic;
c : out std_logic
);
end nandg;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
architecture nandg_beh of nandg is -- behavioral modeling using case … end case
begin
process(a,b)
variable v : std_logic_vector(1 downto 0);
begin
v := a & b;
case v is
when "00" => c <= '1';
when "01" => c <= '1';
when "10" => c <= '1';
when "11" => c <= '0';
when others => c <= 'Z';
end case;
end process;
end nandg_beh;
entity norg is
port (a,b : in std_logic;
c : out std_logic
);
end norg;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
end case;
end process;
end norg_beh;
Xor gate(Dataflow, behavioral modeling):
library ieee;
use ieee.std_logic_1164.all;
entity xorg is
port (a,b : in std_logic;
c : out std_logic
);
end xorg;
entity Xnorg is
port (a,b : in std_logic;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
c : out std_logic
);
end Xnorg;
begin
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
nandg_i : nandg port map ( a => a_i,
b => b_i,
c => c_i
);
process
begin
a_i <= '0';
b_i <= '0';
wait for 100 ns;
a_i <= '0';
b_i <= '1';
wait for 100 ns;
a_i <= '1';
b_i <= '0';
wait for 100 ns;
a_i <= '1';
b_i <= '1';
wait for 100 ns;
end process;
end nandg_tst_a;
Simulation Waveform:
Nand Gate:
Nor Gate:
And Gate:
Or Gate:
Xor Gate:
Xnor Gate:
Nand Gate:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 2
Simulation using all the modeling styles and Synthesis of 1-bit half
adder and 1-bit Full adder using VHDL
AIM:
Perform Zero Delay Simulation of 1-bit half adder and 1-bit Full adder written in
behavioral, dataflow and structural modeling style in VHDL using a Test bench. Then,
Synthesize each one of them on Xilinx 8.1 Project Navigator.
Block Diagram:
1-bit Half Adder:
Truth table:
Half Adder:
A B Sum Carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Full Adder:
A B Cin Sum Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Boolean Equation:
Half Adder:
Sum = A B
Carry = A.B
Full Adder:
Sum = A B Cin
Cout = A.B + A.Cin + B.Cin
VHDL Code:
Half Adder (Using dataflow, Behavioral Modeling):
library ieee;
use ieee.std_logic_1164.all;
entity ha_1b is
port ( a, b : in std_logic;
sum, carry : out std_logic
);
end ha_1b;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
'0' when "10",
'1' when "11",
'0' when others;
end ha_1b_df;
library ieee;
use ieee.std_logic_1164.all;
entity fa_1b is
port ( a, b, cin : in std_logic;
sum, cout : out std_logic
);
end fa_1b;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
process (a,b)
variable v : std_logic_vector(2 downto 0);
begin
v := a & b & cin;
case v is
when "000" =>
sum <= '0';
cout <= '0';
when "001" =>
sum <= '1';
cout <= '0';
when "010" =>
sum <= '1';
cout <= '0';
when "011" =>
sum <= '0';
cout <= '1';
when "100" =>
sum <= '1';
cout <= '0';
when "101" =>
sum <= '0';
cout <= '1';
when "110" =>
sum <= '0';
cout <= '1';
when "111" =>
sum <= '1';
cout <= '1';
when others =>
sum <= 'Z';
cout <= 'Z';
end case;
end process;
end fa_1b_beh;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
begin
ha_1b_i1 : ha_1b port map ( a => a ,
b => b ,
sum => s1 ,
carry => s2
);
begin
Half Adder:
library ieee;
use ieee.std_logic_1164.all;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
end ha_1b_tst_a;
Full Adder:
library ieee;
use ieee.std_logic_1164.all;
begin
process
begin
a_i <= '0';
b_i <= '0';
cin_i <= '0';
wait for 100 ns;
a_i <= '0';
b_i <= '0';
cin_i <= '1';
wait for 100 ns;
a_i <= '0';
b_i <= '1';
cin_i <= '0';
wait for 100 ns;
a_i <= '0';
b_i <= '1';
cin_i <= '1';
wait for 100 ns;
a_i <= '1';
b_i <= '0';
cin_i <= '0';
wait for 100 ns;
a_i <= '1';
b_i <= '0';
cin_i <= '1';
wait for 100 ns;
a_i <= '1';
b_i <= '1';
cin_i <= '0';
wait for 100 ns;
a_i <= '1';
b_i <= '1';
cin_i <= '1';
wait for 100 ns;
end process;
end fa_1b_tst_a;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Half Adder:
Full Adder:
Synthesis:
Half Adder:
Full Adder:
Full Adder:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 3
Aim:
Perform Zero Delay Simulation of 2:1 Multiplexer and 4:1 Multiplexer written in
behavioral, dataflow and structural modeling style in VHDL using a Test bench. Then,
Synthesize each one of them on Xilinx 8.1 Project Navigator.
Block Diagram:
2:1 Multiplexer:
A
2:1
Y
B Multiplexer
4:1 Multiplexer:
A
4:1
B Multiplexer Y
C
D
S1 S0
D
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Truth table:
2:1 Multiplexer:
S A B Y
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
4:1 Multiplexer:
A B Y
0 0 A
0 1 B
1 0 C
1 1 D
Boolean Equation:
2:1 Multiplexer:
Y = A.S‟ + B.S
4:1 Multiplexer:
Y = A.S1‟.S0‟ + B.S1‟.S0 + C.S1.S0‟ + D.S1.S0
VHDL Code:
2:1 Multiplexer ( in dataflow and behavioral modeling style) :
library ieee;
use ieee.std_logic_1164.all;
entity mux21 is
port ( a,b,s : in std_logic;
y : out std_logic
);
end mux21;
library ieee;
use ieee.std_logic_1164.all;
entity mux41 is
port ( a,b,c,d,s1,s0 : in std_logic;
y : out std_logic
);
end mux41;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
architecture mux41_str of mux41 is
component mux21
port ( a,b,s : in std_logic;
y : out std_logic
);
end component;
signal con1, con2 : std_logic;
begin
library ieee;
use ieee.std_logic_1164.all;
entity mux21_tst is
end mux21_tst;
4: 1 Multiplexer:
library ieee;
use ieee.std_logic_1164.all;
entity mux41_tst is
end mux41_tst;
process
begin
a <= '0';
b <= '1';
c <= '1';
d <= '0';
s1 <= '0';
s0 <= '0';
wait for 100 ns;
s1 <= '0';
s0 <= '1';
wait for 100 ns;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
s1 <= '1';
s0 <= '0';
wait for 100 ns;
s1 <= '1';
s0 <= '1';
wait for 100 ns;
end process;
end mux41_tst_a;
Simulation Waveform:
Synthesis:
2 :1 Multiplexer:
4 :1 Multiplexer:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 4
Aim:
Perform Zero Delay Simulation 1:4 Demultiplexer in VHDL using a Test bench. Then,
Synthesize on Xilinx 8.1 Project Navigator.
Block Diagram:
1:4
A Demultiplexer Y
S
Truth Table:
Boolean Equation:
Y(3) = A.S.(1)‟.S(0)‟
Y(2) = B.S.(1)‟.S(0)
Y(1) = C.S.(1).S(0)‟
Y(0) = D.S.(1).S(0)
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
VHDL Code:
library ieee;
use ieee.std_logic_1164.all;
entity demux14 is
port ( a : in std_logic;
s : in std_logic_vector(1 downto 0);
y : out std_logic_vector(3 downto 0)
);
end demux14;
architecture demux14_beh of demux14 is -- behavioral modeling using case ….. end case
begin
process(a,s)
begin
case s is
when "00" => y <= ( a & '0' & '0' & '0');
when "01" => y <= ('0' & a & '0' & '0');
when "10" => y <= ('0' & '0' & a & '0');
when "11" => y <= ('0' & '0' & '0' & a );
when others => y <= "0000";
end case;
end process;
end demux14_beh;
VHDL test bench:
library ieee;
use ieee.std_logic_1164.all;
entity demux14_tst is
end demux14_tst;
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 5
Aim:
Perform Zero Delay Simulation 2:4 Decoder in VHDL using a Test bench. Then,
Synthesize on Xilinx 8.1 Project Navigator.
Block Diagram:
2:4
A Decoder Y
Truth Table:
A Y
00 0001
01 0010
10 0100
11 1000
Boolean Equation:
VHDL Code:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
library ieee;
use ieee.std_logic_1164.all;
entity decod24 is
port ( a : in std_logic_vector(1 downto 0);
y : out std_logic_vector(3 downto 0)
);
end decod24;
entity decod24_tst is
end decod24_tst;
begin
process
begin
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
a1 <= "00";
wait for 100 ns;
a1 <= "01";
wait for 100 ns;
a1 <= "10";
wait for 100 ns;
a1 <= "11";
wait for 100 ns;
end process;
end decod24_tst_a;
Simulation Waveform:
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 6
Aim:
Perform Zero Delay Simulation 4:2 Encoder in VHDL using a Test bench. Then,
Synthesize on Xilinx 8.1 Project Navigator.
Block Diagram:
A 4:2 Y
Encoder
Truth Table:
A Y
1000 00
0100 01
0010 10
0001 11
Boolean Equation:
Y(1) = A(1) + A(0)
Y(0) = A(2) + A(0)
VHDL Code:
library ieee;
use ieee.std_logic_1164.all;
entity encod42 is
port (a : in std_logic_vector(3 downto 0);
y : out std_logic_vector(1 downto 0)
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
);
end encod42;
entity encod42_tst is
end encod42_tst;
begin
process
begin
a1 <= "0001";
wait for 100 ns;
a1 <= "0010";
wait for 100 ns;
a1 <= "0100";
wait for 100 ns;
a1 <= "1000";
wait for 100 ns;
end process;
end encod42_tst_a;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 7
Aim:
Perform Zero Delay Simulation 4:2 Priority Encoder in VHDL using a Test bench.
Then, Synthesize on Xilinx 8.1 Project Navigator.
Block Diagram:
4:2 Y
A Priority
Encoder
Truth Table:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
1 0 1 1 1 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1
Boolean Equation:
Y(1) = A(3) + A(2)
Y (0) = A(2)‟.A(1) + A(3).A(2) + A(3).A(0)
VHDL Code:
library ieee;
use ieee.std_logic_1164.all;
entity pri_encod42 is
port (a : in std_logic_vector(3 downto 0);
y : out std_logic_vector(1 downto 0);
valid : out std_logic
);
end pri_encod42;
entity pri_encod42_tst is
end pri_encod42_tst;
Simulation Waveform:
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 8
Aim:
Perform Zero Delay Simulation of magnitude comparator 1-bit in VHDL using a Test
bench. Then, Synthesize on Xilinx 8.1 Project Navigator.
Block Diagram:
AgtB
A Magnitude
Comparator AltB
B
1-bit AeqB
Truth Table:
Boolean Equation:
AgtB = A.B‟
AltB = A‟.B
AeqB = A‟.B‟ + A.B
VHDL Code:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
use ieee.std_logic_unsigned.all;
entity magcomp1 is
port (a,b : in std_logic;
agtb, aeqb, altb : out boolean
);
end magcomp1;
entity magcomp1_tst is
end magcomp1_tst;
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 9
Aim:
Perform Zero Delay Simulation of d latch and d flip flop in VHDL using a Test bench.
Then, Synthesize on Xilinx 8.1 Project Navigator.
VHDL Code:
D-latch:
library ieee;
use ieee.std_logic_1164.all;
entity dlatch is
port (d,en,reset : in std_logic;
q : out std_logic
);
end dlatch;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
process(d,en,reset)
variable s : std_logic;
begin
if (reset = „1‟) then
s :=‟0‟;
elsif (en = „1‟) then
s := d;
else
s := s;
end if;
q <= s;
end process;
end dlatch_beh1;
library ieee;
use ieee.std_logic_1164.all;
entity dff is
port (d,clk,reset : in std_logic;
q : out std_logic
);
end dff;
entity dlatch_tst is
end dlatch_tst;
process
begin
reset <= '1';
en <= '0';
d <= '0';
wait for 200 ns;
reset <= '0';
en <= '1';
d <= '1';
wait for 50 ns;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
d <= '0';
wait for 30 ns;
d <= '1';
wait for 10 ns;
d <= '0';
wait for 10 ns;
en <= '0';
wait for 100 ns;
en <= '1';
d <= '1';
wait for 50 ns;
end process;
end dlatch_tst_a;
library ieee;
use ieee.std_logic_1164.all;
entity dff_tst is
end dff_tst;
begin
dff_i : dff port map ( d,clk,reset,q);
process
begin
reset <= „1‟;
d <= „0‟;
wait for 200 ns;
reset <= „0‟;
d <= „1‟;
wait for 100 ns;
d <= „0‟;
wait for 100 ns;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
d <= „1‟;
wait for 100 ns;
d <= „0‟;
end process;
end dff_tst_a;
Simulation Waveform:
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 10
Aim:
Perform Zero Delay Simulation of JK, T, Flip flop in VHDL using a Test bench. Then,
Synthesize on Xilinx 8.1 Project Navigator.
VHDL Code:
JK-flip flop:
library ieee;
use ieee.std_logic_1164.all;
entity JKff is
port (j,k,clk,reset : in std_logic;
q : out std_logic
);
end JKff;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
end if;
end process;
end JKff_beh;
T-flip flop:
library ieee;
use ieee.std_logic_1164.all;
entity tff is
port (t,clk,reset : in std_logic;
q : out std_logic
);
end tff;
library ieee;
use ieee.std_logic_1164.all;
entity JKff_tst is
end JKff_tst;
process
begin
reset <= '1';
j <= '0';
k <= '0';
wait for 200 ns;
reset <= '0';
j <= '0';
k <= '1';
wait for 100 ns;
j <= '1';
k <= '0';
wait for 100 ns;
j <= '1';
k <= '1';
wait for 100 ns;
end process;
end jkff_tst_a;
library ieee;
use ieee.std_logic_1164.all;
entity tff_tst is
end tff_tst;
process
begin
reset <= '1';
t <= '0';
wait for 200 ns;
reset <= '0';
t <= '1';
wait for 100 ns;
t <= '0';
wait for 100 ns;
t <= '1';
wait for 100 ns;
t <= '0';
end process;
end tff_tst_a;
Simulation Waveform:
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 11
Simulation using all the modeling styles and Synthesis of all the
logic gates using Verilog HDL
AIM:
Perform Zero Delay Simulation of all the logic gates
written in behavioral, dataflow and structural modeling style in Verilog using a
Test bench. then, Synthesize each one of them on two different EDA tools.
Block Diagram:
A And, Nand,
Or, Nor, C
Xor, Xnor
B
Truth table:
And Gate: Or Gate:
A B Y A B Y
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Boolean Equation:
Module andg(a,b,c);
input a,b;
output c;
assign c = a & b;
endmodule
Module andg1(a,b,c);
input a,b;
always(a,b)
begin
if (a==1‟b0 or b == 1‟b0)
c = 1‟b0;
else if (a==1‟b0 or b == 1‟b1)
c = 1‟b0;
else if (a==1‟b1 or b == 1‟b0)
c = 1‟b0;
else if (a==1‟b1 or b == 1‟b1)
c = 1‟b1;
end
endmodule
assign c = a | b;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
endmodule
assign c = a ^ b;
endmodule
wire c;
nandg uut (
.a(a),
.b(b),
.c(c)
);
initial
begin
a = 0;
b = 0;
#100 a = 0;
b = 1;
#100 a = 1;
b = 0;
#100 a = 1;
b = 1;
end
endmodule
Simulation Waveform:
Nand Gate:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
===============================================================
* Synthesis Options Summary *
===============================================================
---- Source Parameters
Input File Name : "xorg.prj"
Input Format : mixed
Ignore Synthesis Constraint File : NO
* Final Report *
===============================================================
Final Results
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
RTL Top Level Output File Name : xorg.ngr
Top Level Output File Name : xorg
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : NO
Design Statistics
# IOs :3
Cell Usage :
# BELS :1
# LUT2 :1
# IO Buffers :3
# IBUF :2
# OBUF :1
===============================================================
==========
Timing Summary:
---------------
Speed Grade: -5
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 12
Simulation using all the modeling styles and Synthesis of 1-bit half
adder and 1-bit Full adder using verilog HDL
AIM:
Perform Zero Delay Simulation of 1-bit half adder and 1-bit Full adder written in
behavioral, dataflow and structural modeling style in VERILOG HDL using a Test
bench. Then, Synthesize each one of them on two different EDA tools.
Block Diagram:
1-bit Half Adder:
Truth table:
Half Adder:
A B Sum Carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Full Adder:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Boolean Equation:
Half Adder:
Sum = A B
Carry = A.B
Full Adder:
Sum = A B Cin
Cout = A.B + A.Cin + B.Cin
assign s = a ^ b;
assign co = a &b;
endmodule
always @(a or b)
begin
s = a ^ b;
co = a &b;
end
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
endmodule
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
cout = 1'b1;
end
3'b110: begin
sum = 1'b0;
cout = 1'b1;
end
3'b111: begin
sum = 1'b1;
cout = 1'b1;
end
default: begin
sum = 1'b0;
cout = 1'b0;
end
endcase
end
endmodule
ha ha_i1 (.a(a),
.b(b),
.s(w1),
.co(w3)
);
ha ha_i2 (.a(w1),
.b(cin),
.s(sum),
.co(w2)
);
endmodule
Half Adder:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
module ha_tst_v;
reg a;
reg b;
wire s;
wire co;
ha1 uut (
.a(a),
.b(b),
.s(s),
.co(co)
);
initial
begin
a = 0;
b = 0;
#100 a = 0;
b = 1;
#100 a = 1;
b = 0;
#100 a = 1;
b = 1;
end
endmodule;
Full Adder:
module fa_tst_v;
reg a;
reg b;
reg cin;
wire sum;
wire cout;
fa uut (
.a(a),
.b(b),
.cin(cin),
.sum(sum),
.cout(cout)
);
initial
begin
a = 0;
b = 0;
cin = 0;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
#100 a = 0;
b = 0;
cin = 1;
#100 a = 0;
b = 1;
cin = 0;
#100 a = 0;
b = 1;
cin = 1;
#100 a = 1;
b = 0;
cin = 0;
#100 a = 1;
b = 0;
cin = 1;
#100 a = 1;
b = 1;
cin = 0;
#100 a = 1;
b = 1;
cin = 1;
end
endmodule
Simulation Waveform:
Half Adder:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Full Adder:
Synthesis:
Half Adder:
EDA Tool Name: Xilinx Project Navigator – 8.1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Full Adder:
EDA Tool Name: Xilinx Project Navigator – 8.1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Full Adder:
======================================================*
Synthesis Options Summary *
---- Source Parameters
Input File Name : "fa2.prj"
Input Format : mixed
Ignore Synthesis Constraint File : NO
===============================================================
* HDL Analysis *
===============================================================
Analyzing top module <fa2>.
Module <fa2> is correct for synthesis.
===============================================================
* HDL Synthesis *
===============================================================
Performing bidirectional port resolution...
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Macro Statistics
# Xors :2
1-bit xor2 :2
======================================================
* Advanced HDL Synthesis *
======================================================
Loading device for application Rf_Device from file '3s50.nph' in environment C:\Xilinx.
======================================================
Advanced HDL Synthesis Report
Macro Statistics
# Xors :2
1-bit xor2 :2
======================================================
* Final Report *
=====================================================================
Final Results
RTL Top Level Output File Name : fa2.ngr
Top Level Output File Name : fa2
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : NO
Design Statistics
# IOs :5
Cell Usage :
# BELS :2
# LUT3 :2
# IO Buffers :5
# IBUF :3
# OBUF :2
=====================================================================
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 13
Aim:
Perform Zero Delay Simulation of 2:1 Multiplexer and 4:1 Multiplexer written in
behavioral, dataflow and structural modeling style in VERILOG HDL using a Test
bench. Then, Synthesize each one of them on two different EDA tools.
Block Diagram:
2:1 Multiplexer:
A
2:1
Y
B Multiplexer
4:1 Multiplexer:
A
4:1
B Multiplexer Y
C
D
S1 S0
D
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Truth table:
2:1 Multiplexer:
S A B Y
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
4:1 Multiplexer:
A B Y
0 0 A
0 1 B
1 0 C
1 1 D
Boolean Equation:
2:1 Multiplexer:
Y = A.S‟ + B.S
4:1 Multiplexer:
Y = A.S1‟.S0‟ + B.S1‟.S0 + C.S1.S0‟ + D.S1.S0
assign c = s ? a : b;
endmodule
always @(a or b or s)
begin
if (s)
c = a;
else
c = b;
end
endmodule
assign c = (!s[0] & !s[1] & a[0]) | (s[0] & !s[1] & a[1]) | (!s[0] & s[1] & a[2]) | (s[0] &
s[1] & a[3]);
endmodule
always @(a or s)
begin
case(s)
2'b00: c = a[0];
2'b01: c = a[1];
2'b10: c = a[2];
2'b11: c = a[3];
default: c = a[0];
endcase
end
endmodule
mux21 uut (
.a(a),
.b(b),
.s(s),
.c(c) );
initial
begin
a = 0;
b = 1;
s = 0;
#100
s = 1;
end
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
4: 1 Multiplexer:
module mux41_tst_v;
reg [3:0] a;
reg [1:0] s;
wire c;
mux41 uut (
.a(a),
.s(s),
.c(c)
);
initial
begin
a = 4'b0101;
s = 2'b00;
#100 s = 2'b00;
#100 s = 2'b01;
#100 s = 2'b10;
#100 s = 2'b11;
end
endmodule
Simulation Waveform:
Mux41:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Synthesis:
2 :1 Multiplexer:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
4 :1 Multiplexer:
EDA Tool Name: Xilinx Project Navigator – 8.1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Synthesis Report:
===============================================================
* Synthesis Options Summary *
===============================================================-
--- Source Parameters
Input File Name : "mux41.prj"
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Input Format : mixed
Ignore Synthesis Constraint File : NO
===============================================================
* HDL Compilation *
===============================================================
Compiling verilog file "mux21.v" in library work
Module <mux21> compiled
Compiling verilog file "mux41.v" in library work
Module <mux21a> compiled
Module <mux41> compiled
Module <mux41a> compiled
Module <mux41b> compiled
No errors in compilation
Analysis of file <"mux41.prj"> succeeded.
===============================================================
* Final Report *
===============================================================
Final Results
RTL Top Level Output File Name : mux41.ngr
Top Level Output File Name : mux41
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : NO
Design Statistics
# IOs :7
Cell Usage :
# BELS :3
# LUT3 :2
# MUXF5 :1
# IO Buffers :7
# IBUF :6
# OBUF :1
===============================================================
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Selected Device : 3s50pq208-5
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 14
Aim:
Perform Zero Delay Simulation 1:4 Demultiplexer in VERILOG HDL using a Test
bench. Then, Synthesize on two different EDA tools.
Block Diagram:
1:4
A Demultiplexer Y
Truth Table:
Boolean Equation:
Y(3) = A.S.(1)‟.S(0)‟
Y(2) = B.S.(1)‟.S(0)
Y(1) = C.S.(1).S(0)‟
Y(0) = D.S.(1).S(0)
reg a;
reg s;
wire [1:0] c;
demux12 uut (
.a(a),
.s(s),
.c(c) );
initial
begin
a = 0;
s = 0;
#10; s = 1;
end
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Synthesis:
EDA Tool Name: Xilinx Project Navigator – 8.1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 15
Aim:
Perform Zero Delay Simulation 2:4 Decoder in VERILOG HDL using a Test bench.
Then, Synthesize on two different EDA tools.
Block Diagram:
2:4
A Decoder Y
Truth Table:
A Y
00 0001
01 0010
10 0100
11 1000
Boolean Equation:
always @(a)
begin
b[3] = a[1] & a[0];
b[2] = !a[1] & a[0];
b[1] = a[1] & !a[0];
b[0] = !a[1] & !a[0];
end
endmodule
reg [1:0] a;
wire [3:0] b;
decoder24 uut (
.a(a),
.b(b)
);
initial
begin
a = 2'b00;
#100 a = 2'b01;
#100 a = 2'b10;
#100 a = 2'b11;
end
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 16
Aim:
Perform Zero Delay Simulation 4:2 Encoder in VERILOG HDL using a Test bench.
Then, Synthesize on two different EDA tools.
Block Diagram:
A 4:2 Y
Encoder
Truth Table:
A Y
1000 00
0100 01
0010 10
0001 11
Boolean Equation:
Y(1) = A(1) + A(0)
Y(0) = A(2) + A(0)
always @(a)
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
begin
case (a)
4'b0001: b = 2'b00;
4'b0010: b = 2'b01;
4'b0100: b = 2'b10;
4'b1000: b = 2'b11;
default: b = 2'b00;
endcase
end
endmodule
decoder24 uut (
.a(a),
.b(b)
);
initial
begin
a = 4'b0001;
#100 a = 4'b0010;
#100 a = 4'b0100;
#100 a = 4'b1000;
#100 $stop;
end
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Synthesis:
EDA Tool Name: Xilinx Project Navigator – 8.1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 17
Aim:
Perform Zero Delay Simulation 4:2 Priority Encoder in VERILOG HDL using a Test
bench. Then, Synthesize on two different EDA tools.
Block Diagram:
4:2 Y
A Priority
Encoder
Truth Table:
Boolean Equation:
Y(1) = A(3) + A(2)
Y (0) = A(2)‟.A(1) + A(3).A(2) + A(3).A(0)
always @(a)
begin
if (a[3])
b = 2'b00;
else if (a[2])
b = 2'b01;
else if(a[1])
b = 2'b10;
else if (a[0])
b = 2'b11;
end
endmodule
VERILOG HDL Test Bench:
module pri_encoder_tst_v;
reg [3:0] a;
wire [1:0] b;
pri_encoder42 uut (
.a(a),
.b(b)
);
initial
begin
a = 4'b0001;
#10 a = 4'b0010;
#10 a = 4'b0011;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
#10 a = 4'b0100;
#10 a = 4'b0101;
#10 a = 4'b0110;
#10 a = 4'b0111;
#10 a = 4'b1000;
#10 a = 4'b1001;
#10 a = 4'b1010;
#10 a = 4'b1011;
#10 a = 4'b1100;
#10 a = 4'b1101;
#10 a = 4'b1110;
#10 a = 4'b1111;
#10 $stop;
end
endmodule
Simulation Waveform:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Synthesis:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 18
Aim:
Perform Zero Delay Simulation of magnitude comparator 1-bit in VERILOG HDL
using a Test bench. Then, Synthesize on two different EDA tools.
Block Diagram:
AgtB
A Magnitude
Comparator AltB
B
1-bit AeqB
Truth Table:
Boolean Equation:
AgtB = A.B‟
AltB = A‟.B
AeqB = A‟.B‟ + A.B
endmodule
magcomp1 uut (
.a(a),
.b(b),
.agtb(agtb),
.aeqb(aeqb),
.altb(altb) );
initial
begin
a = 0;
b = 0;
#100 a = 0; b = 1;
#100 a = 1; b = 0;
#100 a = 1; b = 1;
end
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Synthesis:
EDA Tool Name: Xilinx Project Navigator – 8.1:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 19
Aim:
Perform Zero Delay Simulation of d flip flop in VERILOG HDL using a Test bench.
Then, Synthesize on EDA tool.
Synthesis:
EDA Tool Name: Xilinx Project Navigator – 8.1
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 20
Aim:
Perform Zero Delay Simulation of JK, T, Flip flop in VERILOG HDL using a Test
bench. Then, Synthesize on EDA tools.
T-flip flop:
module tff(t, clk, reset, q);
input t;
input clk;
input reset;
output q;
reg q;
jkff uut (
.j(j),
.k(k),
.clk(clk),
.reset(reset),
.q(q) );
initial
begin
j = 0;
k = 0;
clk = 1;
reset = 1;
#20 reset = 0;
#10 j = 0;
k = 1;
#10 j = 1;
k = 0;
#10 j = 1;
k = 1;
end
always
#5 clk = ~ clk;
endmodule
tff uut (
.t(t),
.clk(clk),
.reset(reset),
.q(q)
);
initial
begin
t = 0;
clk = 1;
reset = 1;
#20 reset = 1'b0;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
t = 1'b1;
#20 t = 1'b0;
#30 t = 1'b1;
end
always
#5 clk = ~ clk;
endmodule
Simulation Waveform:
JKFF:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
TFF:
Synthesis:
JKFF:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
TFF:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 21
Aim:
Perform Zero Delay Simulation of SISO, SIPO, PIPO shift registers in VERILOG HDL
using a Test bench. Then, Synthesize on EDA tools.
wire w1,w2,w3;
dff abc1 (.d(sin),
.clk(clk ),
.reset(reset),
.q(w1)
);
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
.clk(clk),
.reset(reset),
.q(sout)
);
endmodule
endmodule
dff a2 (.d(pout[0]),
.clk(clk),
.reset(reset),
.q(pout[1])
);
dff a3 (.d(pout[1]),
.clk(clk),
.reset(reset),
.q(pout[2])
);
dff a4 (.d(pout[2]),
.clk(clk),
.reset(reset),
.q(pout[3])
);
endmodule
PIPO:
always
#5 clk = ~ clk;
endmodule
initial
begin
sin = 0;
clk = 1;
reset = 1;
#300
reset = 1'b0;
sin = 1'b1;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
#100 sin = 1'b0;
#100 sin = 1'b1;
#100 sin = 1'b1;
end
always
#50 clk = ~ clk;
endmodule
initial
begin
pin = 4'b0000;
clk = 1;
reset = 1;
#100 reset = 0;
pin = 4'b1010;
#100 pin = 4'b0110;
end
always
#50 clk = ~ clk;
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
SISO:
SIPO:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
PIPO:
Synthesis:
SISO:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
SIPO:
PIPO:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
EXPERIEMENT NO. 22
Aim:
Perform Zero Delay Simulation of asynchronous and synchronous counter in VERILOG
HDL using a Test bench. Then, Synthesize on EDA tools.
tff a1 (.t(1'b1),
.clk (clk),
.reset (reset),
.q(count[0]) );
tff a2 (.t(1'b1),
.clk (count[0]),
.reset (reset),
.q (count[1]) );
tff a3 (.t(1'b1),
.clk (count[1]),
.reset (reset),
.q (count[2]) );
endmodule
Synchronous up counter:
module synccntr3(clk, reset, cnt_en, load, load_val, count);
input clk;
input reset;
input cnt_en;
input load;
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
input [2:0] load_val;
output [2:0] count;
reg [2:0] count;
module asynccnt3_tst_v;
reg clk;
reg reset;
wire [2:0] count;
asynccnt3 uut ( .clk(clk),
.reset(reset),
.count(count)
);
initial
begin
clk = 1;
reset = 1;
#10 reset = 0;
#150;
end
always
#5 clk = ~ clk;
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
reg cnt_en;
reg load;
reg [2:0] load_val;
wire [2:0] count;
synccntr3 uut (
.clk(clk),
.reset(reset),
.cnt_en(cnt_en),
.load(load),
.load_val(load_val),
.count(count)
);
initial
begin
clk = 1;
reset = 1;
load = 0;
load_val = 0;
cnt_en = 0;
#10 reset = 0;
load = 1'b1;
load_val = 3'b011;
#10 cnt_en = 1'b1;
load = 1'b0;
#80 cnt_en = 1'b0;
end
always
#5 clk = ~ clk;
endmodule
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Simulation Waveform:
Asynchronous up counter:
Synchronous up counter:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Synthesis:
Asynchronous up counter:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Synchronous up counter:
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com
M. Tech.VLSI Design & M. Tech. Emb. Sys. Oriental University, Indore
Advanced Digital System Design Lab Manual
Prepared By:
Parag Parandkar Asst. Prof. & Head, ECE Dept., Oriental University, Indore (M.P.)
parag.vlsi@gmail.com