Professional Documents
Culture Documents
Ec8661 Vlsi Design Record 2023
Ec8661 Vlsi Design Record 2023
DEPARTMENT OF
ELECTRONICS AND COMMUNICATION
ENGINEERING
2022 – 2023
NEW PRINCE SHRI BHAVANI
COLLEGE OF ENGINEERING & TECHNOLOGY
Vengaivasal Main Road, Gowrivakkam, Chennai – 600073
BONAFIDE CERTIFICATE
by ...........................................................................................................
EXP. PAGE
DATE TITLE INITIALS
NO. NO.
Page 3
Expt. No: 01 Date:
AIM:
To study Verilog HDL, Spartan-3E FPGA board and the related software.
SOFTWARE USED:
Xilinx 14.3
DEVICE USED:
Spartan-3E FPGA 250S
THEORY:
The <module name> is an identifier that uniquely names the module. The <port list> is a
list of input, in-out and output ports which are used to connect to other modules. The
Page 4
<declares> section specifies data objects as registers, memories and wires as well as
procedural constructs such as functions and tasks. The <module items> may be initial
constructs, always constructs, continuous assignments or instances of modules.
OPERATORS:
DESIGN FLOW:
SYNTHESIS: The entered design is synthesized into a circuit that consists of the logic
elements (LE’s) provided in the FPGA board.
FITTING: The CAD filter told determines the placement of LE’s defined in the netlist into
the LE’s in the actual FPGA chip. It also chooses routing wires in the chip to make the
required connections between specific LE’s.
TIMING ANALYSIS: Propagation delays along the various paths in the fitted circuit are
analyzed to provide an indication of the expected performance of the circuit.
TIMING SIMULATION: The fitted circuit is tested to verify both its functional
correctness and timing.
Page 5
PROGRAMMING AND CONFIGURATION: The designed circuit is implemented in a
physical FPGA chip by programming the configuration switches that configure the LE’s
and established the required wiring connections.
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
5. If the HDL code is error free a green check mark will be shown on the synthesis
XST.
6. Select simulation then double click on “Simulate Behavioral Model” (here we can
change the level of abstraction. i.e. structural/behavioral/dataflow/switch level)
7. If there is zero error a new window will be shown. Apply the desired input as 1’s
and 0’s and check whether the outputs are correct or not in the output waveform.
Page 6
8. In the design window change into implementation and click on “Synthesis XST”. If
the HDL code is error free a green check mark will be shown on the Synthesize –
XST.
9. Note down the Device Utilization Summary (Number of Slices , Number of LUTs
and Number of bonded IOBs)
10. Double Click the View RTL Schematic in the process window and RTL Schematic
view of your HDL code.
11. Double Click View Technology Schematic in the process window and View the
Technology Schematic view of your HDL code.
12. In User Constraints, double click I/O Pin Planning (PlanAhead) –Post synthesize.
PlanAhead window is opened.
13. Give the input ports and output port 9n the PlanAhead tool and save the
configuration and close the PlanAhead window.
14. Double Click the Implementation Design and green check mark will be shown on
the Implementation Icon.
15. In the Design window, change into Post – Route Simulation and by double clicking
the Post-Place & Route Check Syntax and if code is error free a green check mark
will be shown on the Post-Place & Route Check Syntax.
16. Double Click Simulate Post-Place & Route Model and analyze the output
waveform.
17. In the design window change into Implementation and process window under
implementation – Place & Route, double click the View/Edit Routed Design (FPGA
Editor), now we can see the routed design of our circuit.
18. A BIT file will be generate by double clicking the Generate Programming File.
19. The BIT file is loaded in the FPGA processor through JTAG or USB cable and the
output can be verified using the hardware kit.
20. MCS file is created and loaded into the PROM for verification.
RESULT:
The verilog modelling methodology and Spartan 3E FPGA board were studied.
Page 7
Expt. No: : 02 Date:
AIM:
To design and implement 8 bit adders circuits using Verilog HDL and simulate,
synthesize and implement in FPGA hardware.
APPARATUS REQUIRED:
THEORY:
PROCEDURE:
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
5. If the HDL code is error free a green check mark will be shown on the synthesis
XST.
6. Select simulation then double click on “Simulate Behavioral Model” (here we can
change the level of abstraction. i.e. structural/behavioral/dataflow/switch level)
7. If there is zero error a new window will be shown. Apply the desired input as 1’s
and 0’s and check whether the outputs are correct or not in the output waveform.
Page 8
8. In the design window change into implementation and click on “Synthesis XST”. If
the HDL code is error free a green check mark will be shown on the Synthesize –
XST.
9. Note down the Device Utilization Summary (Number of Slices , Number of LUTs
and Number of bonded IOBs)
10. Double Click the View RTL Schematic in the process window and RTL Schematic
view of your HDL code.
11. Double Click View Technology Schematic in the process window and View the
Technology Schematic view of your HDL code.
12. In User Constraints, double click I/O Pin Planning (PlanAhead) –Post synthesize.
PlanAhead window is opened.
13. Give the input ports and output port 9n the PlanAhead tool and save the
configuration and close the PlanAhead window.
14. Double Click the Implementation Design and green check mark will be shown on
the Implementation Icon.
15. In the Design window, change into Post – Route Simulation and by double clicking
the Post-Place & Route Check Syntax and if code is error free a green check mark
will be shown on the Post-Place & Route Check Syntax.
16. Double Click Simulate Post-Place & Route Model and analyze the output
waveform.
17. In the design window change into Implementation and process window under
implementation – Place & Route, double click the View/Edit Routed Design (FPGA
Editor), now we can see the routed design of our circuit.
18. A BIT file will be generate by double clicking the Generate Programming File.
19. The BIT file is loaded in the FPGA processor through JTAG or USB cable and the
output can be verified using the hardware kit.
20. MCS file is created and loaded into the PROM for verification.
module ripplecarry_adder(a,b,oup);
input [7:0] a,b;
output [8:0] oup;
wire [6:0]c;
parameter cin=1'b0;
RESULT:
The 8-bit Adder was designed and implemented in hardware.
Page 10
Expt. No: 03 Date:
AIM:
To design and implement 4 bit multiplier circuits using Verilog HDL and simulate,
synthesize and implement in FPGA hardware.
APPARATUS REQUIRED:
THEORY:
4-Bit Multiplier
Binary multiplication can be accomplished by several approaches. The approach
presented here is realized entirely with combinational circuits. Such a circuit is called an
array multiplier. The term array is used to describe the multiplier because the multiplier is
organized as an array structure. Each row, called a partial product, is formed by a bit-by-
bit multiplication of each operand.
For example, a partial product is formed when each bit of operand ‘a’ is multiplied
by b0, resulting in a3b0, a2b0,a1b0, a0b0. The binary multiplication table is identical to the
AND truth table.
Each product bit {o(x)}, is formed by adding partial product columns. The product
equations, including the carry-in {c(x)}, from column c(x-1), are (the plus sign indicates
addition not OR). Each product term, p(x), is formed by AND gates and collection of
product terms needed for the multiplier. By adding appropriate p term outputs, the
multiplier output equations are realized, as shown in figure.
PROCEDURE:
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
5. If the HDL code is error free a green check mark will be shown on the synthesis
XST.
Page 11
6. Select simulation then double click on “Simulate Behavioral Model” (here we can
change the level of abstraction. i.e. structural/behavioral/dataflow/switch level)
7. If there is zero error a new window will be shown. Apply the desired input as 1’s
and 0’s and check whether the outputs are correct or not in the output waveform.
8. In the design window change into implementation and click on “Synthesis XST”. If
the HDL code is error free a green check mark will be shown on the Synthesize –
XST.
9. Note down the Device Utilization Summary (Number of Slices , Number of LUTs
and Number of bonded IOBs)
10. Double Click the View RTL Schematic in the process window and RTL Schematic
view of your HDL code.
11. Double Click View Technology Schematic in the process window and View the
Technology Schematic view of your HDL code.
12. In User Constraints, double click I/O Pin Planning (PlanAhead) –Post synthesize.
PlanAhead window is opened.
13. Give the input ports and output port 9n the PlanAhead tool and save the
configuration and close the PlanAhead window.
14. Double Click the Implementation Design and green check mark will be shown on
the Implementation Icon.
15. In the Design window, change into Post – Route Simulation and by double clicking
the Post-Place & Route Check Syntax and if code is error free a green check mark
will be shown on the Post-Place & Route Check Syntax.
16. Double Click Simulate Post-Place & Route Model and analyze the output
waveform.
17. In the design window change into Implementation and process window under
implementation – Place & Route, double click the View/Edit Routed Design (FPGA
Editor), now we can see the routed design of our circuit.
18. A BIT file will be generate by double clicking the Generate Programming File.
19. The BIT file is loaded in the FPGA processor through JTAG or USB cable and the
output can be verified using the hardware kit.
20. MCS file is created and loaded into the PROM for verification.
4-Bit Multiplier
4 X 4 Array Multiplier:
a3 a2 a1 a0
b3 b2 b1 b0
a3b0 a2b0 a1b0 a0b0
a3b1 a2b1 a1b1 a0b1
a3b2 a2b2 a1b2 a0b2
a3b3 a2b3 a1b3 a0b3
o7 o6 o5 o4 o3 o2 o1
Page 12
a0b0 = p0 a1b2 = p8
a1b0 = p1 a0b3 = p9
a0b1 = p2 a3b1 = p10
a2b0 = p3 a2b2 = p11
a1b1 = p4 a1b3 = p12
a0b2 = p5 a3b2 = p13
a3b0 = p6 a2b3 = p14
a2b1 = p7 a3b3 = p15
Logic Diagram:
FA FA HA HA HA
P12 P8
FA FA FA
P9
FA FA FA HA
O7 O6 O5 O4 O3 O2 O1 O0
Programs:
RESULT:
The 4-bit Multiplier was designed and implemented in hardware.
Page 13
Expt. No: 04 Date:
AIM:
To design and implement Arithmetic Logic Unit using Verilog HDL and simulate,
synthesize and implement in FPGA hardware.
APPARATUS REQUIRED:
THEORY:
Arithmetic Logic Unit (ALU) is the fundamental building block of the processor,
which is responsible for carrying out the arithmetic and logic functions. ALU comprises of
combinatorial logic that implements arithmetic operations such as Addition, Subtraction
and Multiplication, and logic operations such as AND, OR, NOT. The ALU gets operands
from the register file or memory. The ALU reads two input operands In A and In B. The
operation to perform on these input operands is selected using the control input Opcode.
The ALU performs the selected operation on the input operands In A and In B and
produces the output, Out. The ALU also updates different flag signals after performing
the selected function. Note that the ALU is purely combinatorial logic and contains no
registers or latches.
The arithmetic functions are much more complex to implement than the logic
functions. The performance of the ALU depends upon the architecture of each structural
components of the ALU. The ALU is divided into an arithmetic section and a logical
section.
The Arithmetic Unit compromises of three functions. They are:
Addition
Subtraction
Multiplication
The Logical Unit compromises of five functions. They are:
Bitwise AND
Bitwise OR
Bitwise NAND
Bitwise NOR
Bitwise XOR
PROCEDURE:
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
Page 14
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
5. If the HDL code is error free a green check mark will be shown on the synthesis
XST.
6. Select simulation then double click on “Simulate Behavioral Model” (here we can
change the level of abstraction. i.e. structural/behavioral/dataflow/switch level)
7. If there is zero error a new window will be shown. Apply the desired input as 1’s
and 0’s and check whether the outputs are correct or not in the output waveform.
8. In the design window change into implementation and click on “Synthesis XST”. If
the HDL code is error free a green check mark will be shown on the Synthesize –
XST.
9. Note down the Device Utilization Summary (Number of Slices , Number of LUTs
and Number of bonded IOBs)
10. Double Click the View RTL Schematic in the process window and RTL Schematic
view of your HDL code.
11. Double Click View Technology Schematic in the process window and View the
Technology Schematic view of your HDL code.
12. In User Constraints, double click I/O Pin Planning (PlanAhead) –Post synthesize.
PlanAhead window is opened.
13. Give the input ports and output port 9n the PlanAhead tool and save the
configuration and close the PlanAhead window.
14. Double Click the Implementation Design and green check mark will be shown on
the Implementation Icon.
15. In the Design window, change into Post – Route Simulation and by double clicking
the Post-Place & Route Check Syntax and if code is error free a green check mark
will be shown on the Post-Place & Route Check Syntax.
16. Double Click Simulate Post-Place & Route Model and analyze the output
waveform.
17. In the design window change into Implementation and process window under
implementation – Place & Route, double click the View/Edit Routed Design (FPGA
Editor), now we can see the routed design of our circuit.
18. A BIT file will be generate by double clicking the Generate Programming File.
19. The BIT file is loaded in the FPGA processor through JTAG or USB cable and the
output can be verified using the hardware kit.
20. MCS file is created and loaded into the PROM for verification.
Page 15
Programs:
always @(*)
begin
case (opcode)
4'b0000 : begin op = a + b; $display("Addition operation"); end
4'b0001 : begin op = a - b; $display("Subtraction operation"); end
4'b0010 : begin op = a * b; $display("Multiplication operation"); end
4'b0011 : begin op = a / b; $display("Division operation"); end
4'b0100 : begin op = a % b; $display("Modulo Division operation"); end
4'b0101 : begin op = a & b; $display("Bit-wise AND operation"); end
4'b0110 : begin op = a | b; $display("Bit-wise OR operation"); end
4'b0111 : begin op = a && b; $display("Logical AND operation"); end
4'b1000 : begin op = a || b; $display("Logical OR operation"); end
4'b1001 : begin op = a ^ b; $display("Bit-wise XOR operation"); end
4'b1010 : begin op = ~ a; $display("Bit-wise Invert operation"); end
4'b1011 : begin op = ! a; $display("Logical Invert operation"); end
4'b1100 : begin op = a >> 1; $display("Right Shift operation"); end
4'b1101 : begin op = a << 1 ; $display("Left Shift operation"); end
4'b1110 : begin op = a + 1; $display("Increment operation"); end
4'b1111 : begin op = a - 1; $display("Decrement operation"); end
default:op = 8'bXXXXXXXX;
endcase
end
endmodule
RESULT:
The Arithmetic Logic Unit was designed and implemented in hardware.
Page 16
Expt No: 05 Date:
AIM:
To design and implement the Universal Shift Register using Verilog HDL and
simulate, synthesize and implement in FPGA hardware.
APPARATUS REQUIRED:
THEORY:
A Universal shift register is a register which has both the right shift and left shift
with parallel load capabilities. Universal shift registers are used as memory elements in
computers. A Unidirectional shift register is capable of shifting in only one direction. A
bidirectional shift register is capable of shifting in both the directions. The Universal shift
register is a combination design of bidirectional shift register and a unidirectional shift
register with parallel load provision.
S1 S0 REGISTER OPERATION
0 0 No changes
0 1 Shift right
1 0 Shift left
1 1 Parallel load
PROCEDURE:
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
Programs:
always@(posedge clk)
begin
case (s)
2'b00:
begin
p[3]<=p[3]; p[2]<=p[2];
p[1]<=p[1]; p[0]<=p[0];
end
2'b01:
begin
p[3]<=p[0]; p[2]<=p[3];
p[1]<=p[2]; p[0]<=p[1];
end
2'b10:
begin
p[0]<=p[3]; p[1]<=p[0];
p[2]<=p[1]; p[3]<=p[2];
end
2'b11:
begin
p[0]<=a[0]; p[1]<=a[1];
p[2]<=a[2]; p[3]<=a[3];
end
endcase
end
endmodule
RESULT:
The Universal Shift Register was designed and implemented in hardware.
Page 20
Expt No: 06 Date:
AIM:
To design and implement Finite State Machine model using Verilog HDL and
simulate, synthesize and implement in FPGA hardware.
APPARATUS REQUIRED:
PROCEDURE:
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
5. If the HDL code is error free a green check mark will be shown on the synthesis
XST.
6. Select simulation then double click on “Simulate Behavioral Model” (here we can
change the level of abstraction. i.e. structural/behavioral/dataflow/switch level)
7. If there is zero error a new window will be shown. Apply the desired input as 1’s
and 0’s and check whether the outputs are correct or not in the output waveform.
8. In the design window change into implementation and click on “Synthesis XST”. If
the HDL code is error free a green check mark will be shown on the Synthesize –
XST.
9. Note down the Device Utilization Summary (Number of Slices , Number of LUTs
and Number of bonded IOBs)
10. Double Click the View RTL Schematic in the process window and RTL Schematic
view of your HDL code.
11. Double Click View Technology Schematic in the process window and View the
Technology Schematic view of your HDL code.
12. In User Constraints, double click I/O Pin Planning (PlanAhead) –Post synthesize.
PlanAhead window is opened.
13. Give the input ports and output port 9n the PlanAhead tool and save the
configuration and close the PlanAhead window.
Page 21
14. Double Click the Implementation Design and green check mark will be shown on
the Implementation Icon.
15. In the Design window, change into Post – Route Simulation and by double clicking
the Post-Place & Route Check Syntax and if code is error free a green check mark
will be shown on the Post-Place & Route Check Syntax.
16. Double Click Simulate Post-Place & Route Model and analyze the output
waveform.
17. In the design window change into Implementation and process window under
implementation – Place & Route, double click the View/Edit Routed Design (FPGA
Editor), now we can see the routed design of our circuit.
18. A BIT file will be generate by double clicking the Generate Programming File.
19. The BIT file is loaded in the FPGA processor through JTAG or USB cable and the
output can be verified using the hardware kit.
20. MCS file is created and loaded into the PROM for verification.
State Diagram
Programs:
endcase
end
end
endmodule
RESULT:
The Finite State machine was designed and implemented in hardware.
Page 23
Expt No: 07 Date:
DESIGN OF MEMORIES
AIM:
To design and implement Memory Circuit using Verilog HDL and simulate, synthesize
and implement in FPGA hardware.
APPARATUS REQUIRED:
PROCEDURE:
1. Start Xilinx ISE 13.1, click on “CREATE A NEW PROJECT” and then click on Next.
2. Select you’re working directory, give the name of the project, then click on
“NEXT”.
3. Select the device family (Spartan 3E), Device (XC3S250E), package (PQ208), Speed
grade (4), Synthesis tool (XST [VHDL/VERILOG]), simulator (ISim) and preferred
language (Verilog) from the available device list, and then click “NEXT” and click
FINISH.
4. Write the HDL code and be careful to give the entity name the same as project
name. After writing the code save the file and click on “Synthesis XST”.
5. If the HDL code is error free a green check mark will be shown on the synthesis
XST.
6. Select simulation then double click on “Simulate Behavioral Model” (here we can
change the level of abstraction. i.e. structural/behavioral/dataflow/switch level)
7. If there is zero error a new window will be shown. Apply the desired input as 1’s
and 0’s and check whether the outputs are correct or not in the output waveform.
8. In the design window change into implementation and click on “Synthesis XST”. If
the HDL code is error free a green check mark will be shown on the Synthesize –
XST.
9. Note down the Device Utilization Summary (Number of Slices , Number of LUTs
and Number of bonded IOBs)
10. Double Click the View RTL Schematic in the process window and RTL Schematic
view of your HDL code.
11. Double Click View Technology Schematic in the process window and View the
Technology Schematic view of your HDL code.
12. In User Constraints, double click I/O Pin Planning (PlanAhead) –Post synthesize.
PlanAhead window is opened.
Page 24
13. Give the input ports and output port 9n the PlanAhead tool and save the
configuration and close the PlanAhead window.
14. Double Click the Implementation Design and green check mark will be shown on
the Implementation Icon.
15. In the Design window, change into Post – Route Simulation and by double clicking
the Post-Place & Route Check Syntax and if code is error free a green check mark
will be shown on the Post-Place & Route Check Syntax.
16. Double Click Simulate Post-Place & Route Model and analyze the output
waveform.
17. In the design window change into Implementation and process window under
implementation – Place & Route, double click the View/Edit Routed Design (FPGA
Editor), now we can see the routed design of our circuit.
18. A BIT file will be generate by double clicking the Generate Programming File.
19. The BIT file is loaded in the FPGA processor through JTAG or USB cable and the
output can be verified using the hardware kit.
20. MCS file is created and loaded into the PROM for verification.
Programs:
input clk;
input we;
input [4:0] a;
input [3:0] di;
output [3:0] do;
reg [3:0] ram [31:0];
RESULT:
The Memory was designed and implemented in hardware.
Exp. No.: 8
LAYOUT EXTRACTION AND SIMULATION
OF C-MOS INVERTOR
AIM:
SOFTWARE USED:
Microwind
DSCH
DESCRIPTION:
CMOS INVERTER:
The NMOS transistor and the PMOS transistor form a typical complementary MOS (CMOS)
device. When a low voltage (0 V) is applied at the input, the top transistor (P-type) is
conducting (switch closed) while the bottom transistor behaves like an open circuit.
Therefore, the supply voltage (5 V) appears at the output. Conversely, when a high voltage
(5 V) is applied at the input, the bottom transistor (N-type) is conducting (switch closed)
while the top transistor behaves like an open circuit. Hence, the output voltage is low (0 V).
LAYOUT DIAGRAM
ALGORITHM:
Drag the components like pmos,nmos,voltage source, ground, and LED from the
symbol library.
Make verilog file go to Microwind and compile the verilog file saved in DSCH2
Compile it and obtain the layourt diagram & draw the waveform
CIRCUIT DIAGRAM:
MOS LAYOUT
We use MICROWIND2 to draw the MOS layout and simulate its behavior. Go to the
directory in which the software has been copied (By default MICROWIND2). Double-click
on the MicroWind2 icon. The MICROWIND2 display window includes four main windows:
the main menu, the layout display window,the icon menu and the layer palette. The layout
the
minimum available lithography of the technology. The default technology is a CMOS 6-
metal layers 0.25μm technology, consequently lambda is 0.125 μm.
Verilog code:
Click on Simulate à Start Simulation. The timing diagrams will appears as follows
RESULT:
Thus the Layout design of a CMOS inverter has been drawn, verified and timing
analysis perform.
Exp. No.: 9
LAYOUT EXTRACTION AND SIMULATION
OF C-MOS NAND AND NOR GATE
AIM:
To design and simulate the cmos NAND and NOIR gate circuit.
SOFTWARE USED
Microwind
DSCH
THEORY:
NAND and NOR gates are known as universal gates as any function can be
implemented with them
ALGORITHM:
Drag the components like pmos,nmos,voltage source, ground, and LED from the
symbol library.
Make verilog file go to Microwind and compile the verilog file saved in DSCH2
Compile it and obtain the layourt diagram & draw the waveform
CIRCUIT DIAGRAM:
NAND gate:
Verilog code:
Layout:
Waveform:
NOR gate:
Verilog code:
Waveform:
RESULT:
Thus the Layout design of a CMOS NAND and NOR gate has been drawn, verified
and timing analysis performed
Exp. No.: 10
LAYOUT EXTRACTION AND SIMULATION
OF C-MOS DIFFERENTIAL AMPLIFIER
AIM:
To design and simulate the emitter follower and differential amplifier circuit.
SOFTWARE USED
Microwind
DSCH
THEORY:
Differential amplifier:
Differential Amplifier amplifies the current with very little voltage gain. It consists of two
FETs connected so that the FET sources are connected together. The common source is
connected to a large voltage source through a large resistor Re, forming the "long tail" of the
name, the long tail providing an approximate constant current source. The higher the
resistance of the current source Re, the lower Ac is, and the better the CMRR. In more
sophisticated designs, a true (active) constant current source may be substituted for the long
tail. The output from a differential amplifier is itself often differential.
ALGORITHM:
Drag the components like pmos,nmos,voltage source, ground, and LED from the
symbol library.
Make verilog file go to Microwind and compile the verilog file saved in DSCH2
Compile it and obtain the layourt diagram & draw the waveform
CIRCUIT DIAGRAM:
DIFFERENTIAL AMPLIFIER:
Verilog code:
endmodule
LAYOUT:
WAVEFORM:
RESULT:
Thus the Layout design of a differential amplifier has been drawn, verified and timing
analysis performed
Exp. No.: 11
DESIGN OF CMOS INVERTER USING TANNER
AIM
To design a CMOS inverter using the Schematic entry tool, Tanner and
verify its functioning.
APPARATUS REQUIRED:
1. Tanner tool
2. PC
THEORY:
CMOS Inverter consists of nMOS and pMOS transistor in series connected between
VDD and GND. The gate of the two transistors are shorted and connected to the input. When
the input to the inverter A = 0, nMOS transistor is OFF and pMOS transistor is ON. The
output is pull-up to VDD. When the input A = 1, nMOS transistor is ON and pMOS transistor
is OFF. The Output is Pull-down to GND.
ALGORITHM
]
WAVEFORM
Transient Analysis
Dc analysis
OUTPUT
\
TSPICE - Tanner SPICE
Version 7.10
Copyright (c) 1993-2001 Tanner Research, Inc.
Parsing "C:\Tanner\S-Edit\Module011.sp"
Including "C:\Tanner\TSpice70\models\ml2_125.md"
Current sources - 0
VCCS - 0
CCCS - 0
I-control switch - 0
Subcircuit instances - 0
Boundary nodes - 3
-----------------------------------------
RESULT
Thus the design & simulation of a CMOS inverter has been carried out using S-Edit of
Tanner EDA Tools
Exp. No.: 12 DESIGN OF CMOS NAND GATE AND NOR GATE USING
TANNER
AIM
To design a CMOS NAND and NOR gates using the Schematic entry tool, Tanner
and verify its functioning.
APPARATUS REQUIRED:
1. Tanner tool
2. PC
THEORY:
NAND and NOR gates are known as universal gates as any function can be
implemented with them
ALGORITHM
CMOS NAND
CMOS NOR
WAVEFORM NAND
OUTPUT - NAND
Version 7.10
Parsing "F:\tanner\TSpice70\Module0.sp"
Including "F:\tanner\S-Edit\models\ml2_125.md"
OUTPUT – NOR
Warning T-SPICE : The vrange voltage range limit (5.5) for diode tables has been exceeded.
Warning T-SPICE : The vrange voltage range limit (5.5) for MOSFET tables has been
exceeded.
Warning T-SPICE : The vrange voltage range limit should be set to at least 7.11984 for best
accuracy and performance.
RESULT
Thus the design & simulation of a CMOS NAND and NOR gates have been carried
out using S-Edit of Tanner EDA Tools
Exp. No.: 13 DESIGN OF CMOS DIFFERENTIAL AMPLIFIER USING
TANNER
AIM
To design a CMOS Differential Amplifier using the Schematic entry tool, Tanner
and verify its functioning.
APPARATUS REQUIRED:
1. Tanner tool
2. PC
THEORY:
Where Vin+ and Vin- are the input voltages and Ac is the differential gain. In
practice, however, the gain is not quite equal for the two inputs. This means that if
Vin+ and Vin-are equal, the output will not be zero, as it would be in the ideal case. A
more realistic expression for the output of a differential amplifier thus includes a
second term.
OUTPUT
Parsing "C:\Tanner\S-Edit\Module0.sp"
Including "C:\Tanner\TSpice70\models\ml2_125.md"
Resistors - 0
Mutual inductors - 0
Voltage sources - 4
VCVS - 0
CCVS - 0
V-control switch - 0
Macro devices - 0
Subcircuits - 0
Independent nodes - 4
Total nodes - 9
Current sources - 0
VCCS - 0
CCCS - 0
I-control switch - 0
Functional model instances - 0
Subcircuit instances - 0
Boundary nodes - 5
Parsing 0.00 seconds
Setup 0.01 seconds
DC operating point 0.01 seconds
Transient Analysis 0.07 seconds
-----------------------------------------
Total 0.09 seconds
RESULT
The design and simulation of Differential Amplifier has been performed using
Tanner EDA Tools.
CONTENT BEYOND SYLLABUS
Exp. No.: 1
DESIGN & FPGA IMPLEMENTATION OF
FLIPFLOPS (D & T FLIPFLOPS)
AIM:
APPARATUS REQUIRED:
PC with Windows XP.
XILINX 9.2i
FPGA-SPARTAN-3 KIT
PARALLEL TO JTAG CABLE
ALGORITHM:
New project and type the project name and check the top level source type as HDL
Enter the device properties and click Next
Click New Source And Select the Verilog Module and then give the file name
Give the Input and Output port names and click finish.
Type the Verilog program and save it
Double click the synthesize XST and check syntax
Simulate the waveform by behavioral simulation
For implementation Select User constraints and give input and output port pin number
Click Implement design for Translate, map and place & route
Generate .bit file using programming file
Implement in FPGA through parallel-JTAG cable
Check the behavior of design in FPGA by giving inputs
D-FLIPFLOP:
PROGRAM:
Truth Table:
D FlipFlop
--------------------------------------------------------------------------
Clock Reset Input (d) Output q(~q)
---------------------------------------------------------------------------
0 0 0 0(1)
1 0 0 0(1)
0 0 1 0(1)
1 0 1 0(1)
0 0 0 0(1)
1 0 0 0(1)
0 1 1 0(1)
1 1 1 1(0)
0 1 0 1(0)
1 1 0 0(1)
0 1 1 0(1)
1 1 1 1(0)
0 0 0 0(1)
1 0 0 0(1)
0 0 0 0(1)
--------------------------------------------------------------------------
OUTPUT:
T-FLIPFLOP:
PROGRAM:
TRUTH TABLE:
---------------------------------------------------------------------------
Clock Reset Input (t) Output q(~q)
---------------------------------------------------------------------------
0 0 0 0(1)
1 0 0 0(1)
0 0 1 0(1)
1 0 1 0(1)
0 0 0 0(1)
1 0 0 0(1)
0 1 1 0(1)
1 1 1 1(0)
0 1 0 1(0)
1 1 0 1(0)
0 1 1 1(0)
1 1 1 0(1)
0 0 0 0(1)
1 0 0 0(1)
0 0 0 0(1)
--------------------------------------------------------------------------
OUTPUT WAVEFORM:
RESULT:
Thus the D & T flipflops are designed, simulated and implemented successfully.
Exp. No.: 2
DESIGN & ANALYSIS OF Half Adders
using Tanner
HALF ADDER
Aim:
a) To construct the Half Adder in Tanner EDA v13.1 and to do the Transient Analysis.
b) To analyze the response with appropriate wave forms. And to verify the Spice.
Tools used:
Tanner Tools v13.1
Schematic-Edit
Layout -Edit
Wave- Edit
Tanner Spice
Procedure:
Open S-Edit window.
Go to File New New design
Go to Cell New View
Add libraries file to the New Cell.
Instance the devices by using appropriate library files.
Save the design and setup the simulation.
Run design and observe waveforms.
Observe DC inputs and outputs by giving appropriate inputs.
Schematic Diagram:
.end
Output responses:
Result:
The Half Adder is constructed in Tanner EDA v13.1, the spice code is generated and wave forms
are verified.