Professional Documents
Culture Documents
Front-end Environment
Block Diagram:
Page | 1
Logic Diagram:
Timing waveform:
EXPERIMENT-1
Page | 2
LOGIC GATES
AIM: To develop the source code for LOGIC GATES by using VHDL/VERILOG and
obtain the simulation, synthesis.
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity andgate is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
end andgate;
begin
Cout<=a and b;
end Behavioral;
Page | 3
Block Diagram:
Logic Diagram:
Timing waveform:
OR GATE
Page | 4
VHDL CODE FOR OR GATE:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity orgate is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
end orgate;
begin
Cout <= a or b;
end Behavioral;
Block Diagram:
Page | 5
Logic Diagram:
Timing waveform:
NOT GATE
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity notgate is
Port ( a : in STD_LOGIC;
end notgate;
begin
end Behavioral;
Block Diagram:
Page | 7
Logic Diagram:
Timing waveform:
NAND GATE
Page | 8
VHDL CODE FOR NAND GATE:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity nandgate is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
end nandgate;
begin
end Behavioral;
Block Diagram:
Page | 9
Logic Diagram:
Timing waveform:
NOR GATE
Page | 10
VHDL CODE FOR NOR GATE:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity norgate is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
end norgate;
begin
Cout<= a nor b;
end Behavioral;
Block Diagram:
Page | 11
Logic Diagram:
Timing waveform:
XOR GATE
Page | 12
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity xorgate is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
end xorgate;
begin
Cout<= a xor b;
end Behavioral;
module exorg(a,b,c);
input a,b;
output c;
wire s1,s2,s3,s4;
assign
s1=~a,
s2=~b,
s3= s1 & b,
s4= s2 & a, c= s3| s4;
endmodule
Block Diagram:
Page | 13
Logic Diagram:
Truth table:
Inputs Output
A B Y
0 0 1
0 1 0
1 0 0
1 1 1
Timing waveform:
XNOR GATE
Page | 14
VHDL CODE FOR XNOR GATE:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity xnorgate is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
end xnorgate;
begin
Cout<=a xnor b;
end Behavioral;
module exorg(a,b,c);
input a,b;
output c;
wire s1,s2,s3,s4;
assign
s1=~a,
s2=~b,
s3= s1 & b,
s4= s2 & a,
c= ~(s3| s4);
endmodule
SYNTHESIS REPORT:
Started : "Check Syntax for andgate".
Page | 15
==================================================================
==== ==
* HDL Compilation
==================================================================
=======
==================================================================
=======
* HDL Compilation *
==================================================================
=======
==================================================================
=======
==================================================================
=======
==================================================================
=======
* HDL Analysis *
==================================================================
=======
==================================================================
=======
Page | 16
* HDL Synthesis *
==================================================================
=======
Found no macro
==================================================================
=======
==================================================================
=======
Loading device for application Rf_Device from file '3s250e.nph' in environment C:\Xilinx91i.
==================================================================
=======
Found no macro
==================================================================
=======
==================================================================
=======
==================================================================
=======
Page | 17
Final Register Report
Found no macro
==================================================================
=======
* Partition Report *
==================================================================
=======
==================================================================
=======
* Final Report *
==================================================================
=======
Clock Information:
Timing Summary:
---------------
Speed Grade: -4
==================================================================
=======
* HDL Compilation *
==================================================================
=======
==================================================================
=======
==================================================================
=======
==================================================================
=======
* HDL Analysis *
==================================================================
=======
==================================================================
=======
* HDL Synthesis *
==================================================================
=======
==================================================================
=======
Page | 19
HDL Synthesis Report
Macro Statistics
# Xors :1
1-bit xor2 :1
==================================================================
=======
==================================================================
=======
Loading device for application Rf_Device from file '3s50.nph' in environment C:\Xilinx91i.
==================================================================
=======
Macro Statistics
# Xors :1
1-bit xor2 :1
==================================================================
=======
==================================================================
=======
==================================================================
=======
Found no macro
Page | 20
==================================================================
=======
* Partition Report *
==================================================================
=======
==================================================================
=======
* Final Report *
==================================================================
=======
Clock Information:
Timing Summary:
Speed Grade: -4
Page | 21
Entity <ma> compiled.
Building m_isim_beh.exe
RESULT: Simulated the VHDL and VERILOG codes for LOGIC GATES and
obtained the timing diagrams.
Logic Diagram:
Page | 22
Block Diagram:
Timing Waveform:
EXPERIMENT-2
COUNTERS
Page | 23
AIM: To develop the source code for COUNTERS by using VHDL/VERILOG and
obtain the simulation, synthesis.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity syncount is
rst : in STD_LOGIC;
e : in STD_LOGIC;
end syncount;
begin
process(clk,rst)
begin
if rst='0' then
count <="1111";
if(e='1') then
else
count<=count;
end if;
Page | 24
end if;
end process;
q<=count;
end Behavioral;
input clk;
initial
begin
out=1'd14;
end
endmodule
SYNTHESIS REPORT:
Started : "Check Syntax for syncount".
==================================================================
=======
* HDL Compilation *
==================================================================
=======
Page | 25
Process "Check Syntax" completed successfully
==================================================================
=======
* HDL Compilation *
==================================================================
=======
==================================================================
=======
==================================================================
=======
==================================================================
=======
* HDL Analysis *
==================================================================
=======
==================================================================
=======
* HDL Synthesis *
==================================================================
=======
Summary:
Page | 26
inferred 1 Counter(s).
==================================================================
=======
Macro Statistics
# Counters :1
==================================================================
=======
==================================================================
=======
Loading device for application Rf_Device from file '3s250e.nph' in environment C:\Xilinx91i.
==================================================================
=======
Macro Statistics
# Counters :1
==================================================================
=======
==================================================================
=======
# Registers :4
Flip-Flops :4
==================================================================
=======
* Partition Report *
==================================================================
==================================================================
=======
* Final Report *
==================================================================
=======
Clock Information:
-----------------------------------+------------------------+-------+
-----------------------------------+------------------------+-------+
clk | BUFGP |4 |
-----------------------------------+------------------------+-------+
-----------------------------------+------------------------+-------+
-----------------------------------+------------------------+-------+
rst_inv(rst_inv1_INV_0:O) | NONE(count_3) |4 |
-----------------------------------+------------------------+-------+
Timing Summary:
Speed Grade: -4
==================================================================
=======
Building m_isim_beh.exe
Logic Diagram:
Page | 29
Block Diagram:
Timing Waveforms:
ASYNCHRONOUS COUNTER
Page | 30
VHDL CODE FOR ASYNCHRONOUS COUNTER :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity asycount is
rst : in STD_LOGIC;
e : in STD_LOGIC;
end asycount;
begin
process(clk,rst)
begin
if(e='1') then
else
end if;
end process;
q <= count;
end Behavioral;
VERILOG CODE:
initial
begin
out=0'd0;
end
endmodule
SYNTHESIS REPORT:
Started : "Check Syntax for asycount".
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
=============================================================
============
* HDL Analysis *
=============================================================
============
=============================================================
============
* HDL Synthesis *
=============================================================
============
Summary:
inferred 1 Adder/Subtractor(s).
=============================================================
============
Macro Statistics
Page | 33
# Adders/Subtractors :1
4-bit adder :1
# Latches :1
4-bit latch :1
=============================================================
============
=============================================================
============
=============================================================
============
Macro Statistics
# Adders/Subtractors :1
4-bit adder :1
# Latches :1
4-bit latch :1
=============================================================
============
=============================================================
============
Page | 34
=============================================================
============
Found no macro
=============================================================
============
* Partition Report *
=============================================================
============
=============================================================
============
* Final Report *
=============================================================
============
Clock Information:
-----------------------------------+------------------------+-------+
-----------------------------------+------------------------+-------+
e | BUFGP |4 |
-----------------------------------+------------------------+-------+
Timing Summary:
Speed Grade: -4
=============================================================
============
Building m_isim_beh.exe
RESULT: Simulated the VHDL and VERILOG codes for COUNTERS and obtained
the timing diagrams.
Page | 36
Block Diagram:
State Diagram:
Page | 37
Timing Waveform:
EXPERIMENT-3
MOORE FSM
AIM: To develop the source code for MOORE FSM by using VHDL/VERILOG
and obtain the simulation, synthesis.
library IEEE;
Page | 38
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity moore is
Port ( x : in STD_LOGIC;
rst : in STD_LOGIC;
clk : in STD_LOGIC;
z : out STD_LOGIC);
end moore;
begin
process(clk)
begin
if (rst='1')then
y<=s0;
else
case y is
when s0=>
if (x='1')then
y<=s1;
else y<=s0;
end if;
when s1=>
if(x='0')then
y<=s2;
Page | 39
else
y<=s1;
end if;
when s2=>
if(x='1')then
y<=s3;
else
y<=s0;
end if;
when s3=>
if(x='1')then
y<=s1;
else
y<=s2;
end if;
when others=>
y<=s0;
end case;
end if;
end if;
end process;
end Behavioral;
input clk;
Page | 40
input x;
output z;
one=2'b01,
two=2'b10,
three=2'b11;
always@(posedge clk)
case(state)
zero:if(x==0)
state<=zero;
else
state<=one;
one:if(x==0)
state<=two;
else
state<=one;
two:if(x==0)
state<=zero;
else
state<=three;
three:if(x==0)
state<=two;
else
state<=one;
default:state<=zero;
Page | 41
endcase
endmodule
SYNTHESIS REPORT:
Started : "Check Syntax for moore".
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
=============================================================
============
Page | 42
=============================================================
============
* HDL Analysis *
=============================================================
============
rst, y, x.
=============================================================
============
* HDL Synthesis *
=============================================================
============
=============================================================
============
Found no macro
=============================================================
============
=============================================================
============
Page | 43
=============================================================
============
Found no macro
=============================================================
============
=============================================================
============
=============================================================
============
Found no macro
=============================================================
============
* Partition Report *
=============================================================
============
=============================================================
============
* Final Report *
=============================================================
============
Page | 44
Clock Information:
Timing Summary:
Speed Grade: -4
=============================================================
============
Building m_isim_beh.exe
Page | 45
This is a Full version of ISE Simulator.
RESULT: Simulated the VHDL and VERILOG codes for MOORE FSM and
obtained the timing diagrams.
Block Diagram:
State Diagram:
Page | 46
Timing Waveforms:
EXPERIMENT-4
AIM: To develop the source code for MEALY FSM by using VHDL/VERILOG and
obtain the simulation, synthesis.
library IEEE;
Page | 47
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity mealy is
Port ( x : in STD_LOGIC;
clk : in STD_LOGIC;
rst : in STD_LOGIC;
z : out STD_LOGIC);
end mealy;
signal y: state:=s0;
begin
process(clk,rst)
begin
if(rst='1') then
y<=s0;
case y is
when s0=>
if (x='1') then
y<=s1;
else
y<=s0;
end if;
when s1=>
if (x='1') then
Page | 48
y<=s1;
else
y<=s2;
end if;
when s2=>
if (x='1') then
y<=s1;
else
y<=s0;
end if;
end case;
end if ;
end process;
end Behavioral;
input clk;
input x;
output z;
one=2'b01,
two=2'b10;
Page | 49
assign z=x&state[1];
always@(posedge clk)
case(state)
zero:if(x==0)
state<=zero;
else
state<=one;
one:if(x==0)
state<=two;
else
state<=one;
two:if(x==0)
state<=zero;
else
state<=one;
default:state<=zero;
endcase
endmodule
SYNTHESIS REPORT:
Started : "Check Syntax for mealy".
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
=============================================================
============
=============================================================
============
* HDL Analysis *
=============================================================
============
=============================================================
============
* HDL Synthesis *
=============================================================
============
Page | 51
Synthesizing Unit <mealy>.
INFO:Xst:2117 - HDL ADVISOR - Mux Selector <y> of Case statement line 46 was
re-encoded using one-hot encoding. The case statement will be optimized (default
statement optimization), but this optimization may lead to design initialization
problems. To ensure the design works safely, you can:
- add an 'INIT' attribute on signal <y> (optimization is then done without any
risk)
=============================================================
============
Macro Statistics
# Registers :1
3-bit register :1
=============================================================
============
=============================================================
============
=============================================================
============
Macro Statistics
Page | 52
# Registers :3
Flip-Flops :3
=============================================================
============
=============================================================
============
=============================================================
============
Found no macro
=============================================================
============
* Partition Report *
=============================================================
============
=============================================================
============
* Final Report *
=============================================================
============
Clock Information:
Timing Summary:
Speed Grade: -4
=============================================================
============
Building m_isim_beh.exe
Page | 54
Finished circuit initialization process.
RESULT: Simulated the VHDL and VERILOG codes for MEALY FSM and
obtained the timing diagrams.
Block Diagram:
Timing Waveform:
Page | 55
EXPERIMENT-5
MEMORIES
AIM: To develop the source code for MEMORIES by using VHDL/VERILOG and
obtain the simulation, synthesis.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
Page | 56
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity ram is
we : in STD_LOGIC;
end ram;
signal RAM:ram_type;
begin
process (clk)
begin
if(we='1')then
RAM(conv_integer(a))<=di;
end if;
end if;
end process;
do<=RAM(conv_integer(a));
end Behavioral;
input clk;
input we;
Page | 57
input [4:0] a;
begin
if (we)
end
endmodule
SYNTHESIS REPORT:
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
* HDL Compilation *
Page | 58
=============================================================
============
=============================================================
============
=============================================================
============
=============================================================
============
* HDL Analysis *
=============================================================
============
=============================================================
============
* HDL Synthesis *
=============================================================
============
Summary:
inferred 1 RAM(s).
Page | 59
=============================================================
============
Macro Statistics
# RAMs :1
=============================================================
============
=============================================================
============
-----------------------------------------------------------------------
| ram_type | Distributed | |
-----------------------------------------------------------------------
| Port A |
-----------------------------------------------------------------------
=============================================================
============
# RAMs :1
=============================================================
============
=============================================================
============
=============================================================
============
=============================================================
============
* Partition Report *
=============================================================
============
=============================================================
============
* Final Report *
=============================================================
============
Clock Information:
-----------------------------------+------------------------+-------+
clk | BUFGP |4 |
Timing Summary:
Speed Grade: -4
=============================================================
============
Building m_isim_beh.exe
Page | 62
This is a Full version of ISE Simulator.
RESULT: Simulated the VHDL and VERILOG codes for RAM and obtained the
timing diagrams.
Block Diagram:
Timing Waveforms:
Page | 63
EXPERIMENT-6
AIM: To develop the source code for ALU by using VHDL/VERILOG and obtain
the simulation, synthesis.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity alu is
Page | 64
sel : in STD_LOGIC_VECTOR (3 downto 0);
cin : in STD_LOGIC;
end alu;
begin
a-1 when"010",
b when "011",
Page | 65
Page | 66
a+b when "110",
a and b when"010",
a or b when "011",
end Behavioral;
input [15:0] a;
input [15:0] b;
output [15:0] f;
reg[15:0]f;
always @ (sel or a or b)
case(sel)
3'b000:f=5'b00000;
Page | 67
3'b00:f=b-a;
2:f=a-b;
3:f=a+b;
4:f=a^b;
5:f=a|b;
6:f=a&b;
7:f=15'b11111;
endcase
endmodule
SYNTHESIS REPORT:
Started : "Check Syntax for alu".
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
* HDL Compilation *
=============================================================
============
=============================================================
============
=============================================================
============
* HDL Analysis *
=============================================================
============
=============================================================
============
* HDL Synthesis *
=============================================================
============
Page | 69
Found 8-bit subtractor for signal <arith$addsub0003> created at line 41.
Found 8-bit adder carry in for signal <arith$addsub0005> created at line 41.
Summary:
inferred 6 Adder/Subtractor(s).
inferred 16 Multiplexer(s).
=============================================================
============
Macro Statistics
# Adders/Subtractors :6
8-bit adder :3
8-bit subtractor :2
# Multiplexers :2
# Xors :1
8-bit xor2 :1
=============================================================
============
=============================================================
============
Page | 70
=============================================================
============
Macro Statistics
# Adders/Subtractors :6
8-bit adder :3
8-bit subtractor :2
# Multiplexers :2
# Xors :1
8-bit xor2 :1
=============================================================
============
=============================================================
============
=============================================================
============
Found no macro
=============================================================
============
* Partition Report *
Page | 71
=============================================================
============
=============================================================
============
* Final Report *
=============================================================
============
Clock Information:
Timing Summary:
Speed Grade: -4
=============================================================
============
Page | 72
Entity <m> (Architecture <testbench_arch>) compiled.
Building m_isim_beh.exe
RESULT: Simulated the VHDL and VERILOG codes for ARTHIMETIC AND
LOGIC UNIT and obtained the timing diagrams.
Block Diagram:
Page | 73
Logic Diagram:
Timing Waveforms:
EXPERIMENT-7
PRIORITY ENCODER
Page | 74
AIM: To develop the source code for PRIORITY ENCODER by using VHDL/
VERILOG and obtain the simulation, synthesis.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity encode1 is
Port ( din : in STD_LOGIC_VECTOR (7 downto 0);
dout : out STD_LOGIC_VECTOR (2 downto 0));
end encode1;
architecture Behavioral of encode1 is
begin
pri_enc : process (din) is
begin
if (din(7)='1') then
dout <= "000";
elsif (din(6)='1') then
dout <= "001";
elsif (din(5)='1') then
dout <= "010";
elsif (din(4)='1') then
dout <= "011";
elsif (din(3)='1') then
dout <= "100";
elsif (din(2)='1') then
dout <= "101";
elsif (din(1)='1') then
Page | 75
dout <= "110";
elsif (din(0)='1') then
dout <= "111";
end if;
end process pri_enc;
end Behavioral;
endmodule
SYNTHESIS REPORT:
==================================================================
=======
* HDL Compilation *
==================================================================
=======
Compiling vhdl file "C:/Documents and
Settings/Student/Desktop/lavanya/priority/encode1.vhd" in Library work.
Entity <encode1> compiled.
Page | 76
Entity <encode1> (Architecture <behavioral>) compiled.
==================================================================
=======
* HDL Compilation *
==================================================================
=======
Compiling vhdl file "C:/Documents and
Settings/Student/Desktop/lavanya/priority/encode1.vhd" in Library work.
Architecture behavioral of Entity encode1 is up to date.
==================================================================
=======
* Design Hierarchy Analysis *
==================================================================
=======
Analyzing hierarchy for entity <encode1> in library <work> (architecture <behavioral>).
==================================================================
=======
* HDL Analysis *
==================================================================
=======
Analyzing Entity <encode1> in library <work> (Architecture <behavioral>).
Entity <encode1> analyzed. Unit <encode1> generated.
==================================================================
=======
* HDL Synthesis *
==================================================================
=======
==================================================================
=======
HDL Synthesis Report
Macro Statistics
# Latches :1
3-bit latch :1
==================================================================
=======
==================================================================
=======
* Advanced HDL Synthesis *
==================================================================
=======
==================================================================
=======
Advanced HDL Synthesis Report
Macro Statistics
# Latches :1
3-bit latch :1
==================================================================
=======
==================================================================
=======
* Low Level Synthesis *
==================================================================
=======
Page | 78
Final Macro Processing ...
==================================================================
=======
Final Register Report
Found no macro
==================================================================
=======
==================================================================
=======
* Partition Report *
==================================================================
=======
-------------------------------
==================================================================
=======
* Final Report *
==================================================================
=======
Clock Information:
------------------
-----------------------------------+------------------------+-------+
Clock Signal | Clock buffer(FF name) | Load |
-----------------------------------+------------------------+-------+
din<0> | BUFGP |3 |
-----------------------------------+------------------------+-------+
Timing Summary:
---------------
Speed Grade: -4
==================================================================
=======
==================================================================
=======
* HDL Compilation *
==================================================================
=======
Compiling vhdl file "C:/Documents and
Settings/Student/Desktop/lavanya/priority/encode1.vhd" in Library work.
Entity <encode1> compiled.
Entity <encode1> (Architecture <behavioral>) compiled.
==================================================================
=======
* HDL Compilation *
==================================================================
=======
Compiling vhdl file "C:/Documents and
Settings/Student/Desktop/lavanya/priority/encode1.vhd" in Library work.
Architecture behavioral of Entity encode1 is up to date.
Page | 80
==================================================================
=======
* Design Hierarchy Analysis *
==================================================================
=======
Analyzing hierarchy for entity <encode1> in library <work> (architecture <behavioral>).
==================================================================
=======
* HDL Analysis *
==================================================================
=======
Analyzing Entity <encode1> in library <work> (Architecture <behavioral>).
Entity <encode1> analyzed. Unit <encode1> generated.
==================================================================
=======
* HDL Synthesis *
==================================================================
=======
==================================================================
=======
HDL Synthesis Report
Macro Statistics
# Latches :1
3-bit latch :1
==================================================================
=======
Page | 81
==================================================================
=======
* Advanced HDL Synthesis *
==================================================================
=======
==================================================================
=======
Advanced HDL Synthesis Report
Macro Statistics
# Latches :1
3-bit latch :1
==================================================================
=======
==================================================================
=======
* Low Level Synthesis *
==================================================================
=======
==================================================================
=======
Final Register Report
Found no macro
==================================================================
=======
==================================================================
=======
* Partition Report *
Page | 82
==================================================================
=======
-------------------------------
==================================================================
=======
* Final Report *
==================================================================
=======
Clock Information:
------------------
-----------------------------------+------------------------+-------+
Clock Signal | Clock buffer(FF name) | Load |
-----------------------------------+------------------------+-------+
din<0> | BUFGP |3 |
-----------------------------------+------------------------+-------+
Timing Summary:
---------------
Speed Grade: -4
Page | 83
==================================================================
=======
RESULT: Simulated the VHDL and VERILOG codes for PRIORITY ENCODER
and obtained the timing diagrams.
Page | 84
PART-B
Back-end Environment
Schematic diagram:
Page | 85
Truth table:
Input Output
0 1
1 0
EXPERIMENT-8
INVERTER
Page | 86
AIM: Using Tanner tools obtain a NOT gate, and to perform the DRC, extraction,
LVS, and simulation of the NOT gate.
PROCEDURE:
1. Creating a New Design using S-EDIT and open file with name not. Tanner.
2. Browse the tools and devices from tanner eda tools.
3. Drag the components of PMOS and NMOS transistors and connect them
appropriately.
4. Check for loose connections using design rules and design checks in tools.
5. Provide the values to the circuit and simulate the result.
6. After simulation is successful extracts the net list from the circuit.
7. Use T-spice to for simulation.
1. Create the layout for a NOT gate. Start the layout in a new tanner tools file
not.tan and use your guide either your own layout stick diagram from the
presentation or the layout provided.
2. Re-use parts of the layout of the NOT gate, but make sure you use the correct
transistor sizes.
3. If dots appear in some areas in your layout, this is an indication that a design
rule (or rules) has been violated. To check which rule was violated, place the
box around the error area and type Shift-y or choose Explain DRC under
Box from the Misc menu. Look for the list of DRC errors in the tanner
Timing Waveforms:
Page | 87
Layout:
command window (the window from which you started tanner). You must fix all
DRC errors.
4. Make sure that you have drawn all necessary contacts between layers.
Page | 88
5. Label all input, output and supply voltage terminals by selecting the
corresponding layers and typing t. The power supply and ground labels must
be global (Vdd! and GND! respectively).
Expected Results:
Layout plot of the NOT gate.
1. Run T- Spice and simulate your NOT gate. Apply Vdd to input b and apply a
pulse to input a with a height 2.5 volts with the rise and fall time of 200 ps, a
Page | 89
delay time of 0 ns, a pulse width of 3 ns, and a period of 6 ns. Plot the input
and output waveforms.
Spice netlist:
MNMOS_1 Out In Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_1 Out In Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
Vv1 Vdd Gnd PULSE(0 5 0 5n 5n 95n 200n)
Vv2 In Gnd BIT({0100101111} )
.PRINT TRAN V(Out)
.PRINT TRAN V(In)
.tran 5ns 100ns
.end
EXTRACTED RESULTS:
Provide a printout of the circuit diagram with parasitic capacitors, and a print
out of the required input and output waveforms.
Schematic diagram:
Page | 90
Tabular form:
EXPERIMENT-9
Static RAM
Page | 91
AIM: Using Tanner tools obtain an SRAM cell, and to perform the DRC, extraction,
LVS, and simulation of the Static RAM.
PROCEDURE:
1. Creating a New Design using S-EDIT and open file with name sram. Tanner.
2. Browse the tools and devices from tanner EDA tools.
3. Drag the components of PMOS and NMOS transistors and connect them
appropriately.
4. Check for loose connections using design rules and design checks in tools.
5. Provide the values to the circuit and simulate the result.
6. After simulation is successful extracts the net list from the circuit.
7. Use T-spice to for simulation.
Page | 92
Layout:
5. Label all
input,
output and
supply
voltage
terminals by
Page | 93
selecting the corresponding layers and typing t. The power supply and
ground labels must be global (Vdd! and GND! respectively).
Expected Results:
Layout plot of the SRAM cell.
1. Run T- Spice and simulate your SRAM cell. Apply Vdd to input b and apply
a pulse to input a with a height 2.5 volts with the rise and fall time of 200 ps,
a delay time of 0 ns, a pulse width of 3 ns, and a period of 6 ns. Plot the input
and output waveforms.
Spice netlist:
Provide a printout of the circuit diagram with parasitic capacitors, and a print
out of the required input and output waveforms.
Schematic diagram:
Page | 95
Tabular form:
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
EXPERIMENT-10
FULL ADDER
AIM: Using Tanner tools obtain a FULL ADDER, and to perform the DRC,
extraction, LVS, and simulation of the Full Adder.
Page | 96
APPARATUS: Tanner EDA tools 13.0V
PROCEDURE:
Schematic Using S-EDIT:
1. Creating a New Design using S-EDIT and open file with name fulladd. Tanner.
2. Browse the tools and devices from tanner EDA tools.
3. Drag the components of PMOS and NMOS transistors and connect them
appropriately.
4. Check for loose connections using design rules and design checks in tools.
5. Provide the values to the circuit and simulate the result.
6. After simulation is successful extracts the net list from the circuit.
7. Use T-spice to for simulation.
Page | 97
Layout:
5. Label all input, output and supply voltage terminals by selecting the
corresponding layers and typing t. The power supply and ground labels must
be global (Vdd! and GND! respectively)
Page | 98
Expected Results:
Layout plot of the Full adder.
1. Run T- Spice and simulate your Full adder. Apply Vdd to input b and apply a
pulse to input a with a height 2.5 volts with the rise and fall time of 200 ps, a
delay time of 0 ns, a pulse width of 3 ns, and a period of 6 ns. Plot the input
and output waveforms.
Spice Netlist:
Cc1 Cout Gnd 1f
Cc2 SUM Gnd 1f
MNMOS_1 N_34 Cin N_38 Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
Page | 99
MNMOS_2 N_36 A N_40 Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_3 N_38 B Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_4 N_38 A Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_5 N_40 B Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_6 N_26 N_34 N_42 Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_7 Cout N_34 Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_8 N_42 A Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_9 N_42 B Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_10 N_42 Cin Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_11 N_26 A N_1 Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_12 N_1 B N_2 Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_13 N_2 Cin Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MNMOS_14 SUM N_26 Gnd Gnd NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_10 N_26 N_34 N_13 Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_11 N_13 Cin Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_12 N_34 Cin N_3 Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_13 N_36 A N_7 Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_14 SUM N_26 Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_1 N_3 A Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p PD=6.8u
Page | 100
MPMOS_2 N_3 B Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p PD=6.8u
MPMOS_3 N_7 B Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p PD=6.8u
MPMOS_4 Cout N_34 Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_5 N_13 A Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_6 N_13 B Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_7 N_4 Cin Vdd Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
MPMOS_8 N_5 B N_4 Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p PD=6.8u
MPMOS_9 N_26 A N_5 Vdd PMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
Vv1 Vdd Gnd DC 2.5
Vv2 A Gnd BIT({00001111} ON=2.5 )
Vv3 B Gnd BIT({00110011} ON=2.5 )
Vv4 Cin Gnd BIT({01010101} ON=2.5 )
.PRINT TRAN V(Cout)
.PRINT TRAN V(SUM)
.PRINT TRAN V(Cin)
.PRINT TRAN V(B)
.PRINT TRAN V(A)
********* Simulation Settings - Analysis section *********
.tran 5ns 200ns
EXTRACTED RESULTS:
Provide a printout of the circuit diagram with parasitic capacitors, and a print
out of the required input and output waveforms.
Page | 101
Schematic Diagram:
Page | 102
Tabular form:
A B Output
0 0 0
0 1 0
1 0 0
1 1 1
EXPERIMENT-11
Page | 103
AND GATE
AIM: Using Tanner tools obtain an AND gate, and to perform the DRC, extraction,
LVS, and simulation of the AND gate.
PROCEDURE:
Schematic Using S-EDIT:
1. Creating a New Design using S-EDIT and open file with name andgt. Tanner.
2. Browse the tools and devices from tanner EDA tools.
3. Drag the components of PMOS and NMOS transistors and connect them
appropriately.
4. Check for loose connections using design rules and design checks in tools.
5. Provide the values to the circuit and simulate the result.
6. After simulation is successful extracts the net list from the circuit.
7. Use T-spice to for simulation.
Timing Waveforms:
Page | 104
Layout:
5. Label all input, output and supply voltage terminals by selecting the
corresponding layers and typing t. The power supply and ground labels must
be global (Vdd! and GND! respectively)
Expected Results:
Layout plot of the AND gate.
Page | 105
Extract & LVS the Layout:
1. Doing extraction means obtaining the net list of an electrical circuit from the
layout images. This is done in order to perform circuit level simulation (for Ex:
using Spice) parasitic capacitance between layout layers should be included in
the extracted circuit.
2. Once the layout is finished, do the extraction by clicking on extract it under
the local menu. Observe the local messages in the TANNER command
window, make sure we dont gat get any error messages. If the extraction is
successful, you will see the following message: DONE.
3. Extraction may fail if there is any error in the layout (Ex: The Drawn image
doesnt form a transistor).
4. The extractor will report errors and warnings by including the area of their
occurrence.
5. LVS stands for Layout-Verses-Schematic, which is used to compare the net list
of your extracted layout to the schematic. This check is used to make sure you
have no mistakes in your layout, and it actually corresponds to your schematic.
To LVS your extracted layout you have to create a schematic for the AND gate
with the same transistor dimensions.
1. Run T- Spice and simulate your AND gate. Apply Vdd to input b and apply a
pulse to input a with a height 2.5 volts with the rise and fall time of 200 ps, a
delay time of 0 ns, a pulse width of 3 ns, and a period of 6 ns. Plot the input
and output waveforms.
Spice Netlist:
model nmos nmos level=1
MMOSFET_N_1 N_1 b N_2 Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_N_2 N_2 a Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_N_3 c N_1 Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_P_1 N_1 a Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
Page | 106
MMOSFET_P_2 N_1 b Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_P_3 c N_1 Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
v1 vdd gnd 5
.end
EXTRACTED RESULTS:
Provide a printout of the circuit diagram with parasitic capacitors, and a print
out of the required input and output waveforms.
Schematic Diagram:
Page | 107
Truth Table:
A Output
0 0
1 1
EXPERIMENT-12
Page | 108
AIM: Using Tanner tools obtain TWO STAGE BUFFER , and to perform the DRC,
extraction, LVS, and simulation of the TWO STAGE BUFFER.
PROCEDURE:
Timing Waveforms:
Page | 109
Layout:
Page | 110
5. Label all input, output and supply voltage terminals by selecting the
corresponding layers and typing t. The power supply and ground labels must
be global (Vdd! and GND! respectively)
Expected Results:
Layout plot of the Two stage buffer.
1. Run T- Spice and simulate your Two stage buffer. Apply Vdd to input b and
apply a pulse to input a with a height 2.5 volts with the rise and fall time of
200 ps, a delay time of 0 ns, a pulse width of 3 ns, and a period of 6 ns. Plot the
input and output waveforms.
SPICE NETLIST:
Page | 111
.model pmos pmos level=1
MMOSFET_N_1 N_1 a Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_N_2 N_1 b Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_P_1 N_1 b N_2 N_2 PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_N_3 c N_1 Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_P_2 N_2 a Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
MMOSFET_P_3 c N_1 Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
v1 vdd gnd 5
.end
EXTRACTED RESULTS:
Provide a printout of the circuit diagram with parasitic capacitors, and a print
out of the required input and output waveforms.
Page | 112