You are on page 1of 96

VLSI LAB MANUAL

DEPARTMENT OF ELECTRONICS AND COMMUNICATION

BEARYS INSTITUTE OF TECHNOLOGY


Innoli, Boliyar Village, Mangalore

VLSI Lab manual


(10ECL77)

Prepared by:

MR. SUSHANTH K.J

ASST. PROF, BIT, MANGALORE

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 1


VLSI LAB MANUAL

BEARYS
P.A. INSTITUTE
COLLEGE OF TECHNOLOGY
OF ENGINEERING
Innoli,
(Affiliated to BoliyarbyVillage
VTU, Recognized AICTE, NBA Accredited)

Near Mangalore University, Mangalore – 574 153, Karnataka


Mangalore - 574153

LABORATORY CERTIFICATE

This is to certify that …………………………………………… has


satisfactorily completed the course of experiments in CAD for VLSI
Laboratory practical prescribed by the Visveswaraiah Technological
University for 7th sem. of Electronics and Communication branch of
Engineering in this College.

Register No: Signature of the Staff-in-charge

Signature of the H.O.D.

Marks awarded in words

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 2


VLSI LAB MANUAL

Part A
Sl.no. Programs Page Remarks
No.
1 Timing verification with gate level simulation of an Inverter
(Sample program)
2 Timing verification with gate level simulation of a Buffer

3 Timing verification with gate level simulation of Transmission


Gate
4(a) Timing verification with gate level simulation of AND gate

4(b) Timing verification with gate level simulation of OR gate

4(c) Timing verification with gate level simulation of XOR gate

4(d) Timing verification with gate level simulation of XNOR gate

4(e) Timing verification with gate level simulation of NAND gate

4(f) Timing verification with gate level simulation of NOR gate

5(a) Timing verification with gate level simulation of SR flip-flop

5(b) Timing verification with gate level simulation of D flip-flop

5(c) Timing verification with gate level simulation of JK flip-flop

5(d) Timing verification with gate level simulation of MS flip-flop

5(e) Timing verification with gate level simulation of T flip-flop

6 Timing verification with gate level simulation of Parallel Adder

7(a) Timing verification with gate level simulation of Synchronous


Counter
7(b) Timing verification with gate level simulation of an Asynchronous
Counter
8 Timing verification with gate level simulation of Successive
Approximation Register (SAR)

Part B
Sl.No. Programs PageNo. Remarks
1. Design of an inverter using analog design flow

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 3


VLSI LAB MANUAL

2. Design of an Differential Amplifier using analog design flow

3. Design of an Common Source Amplifier using analog design flow

4. Design of an Common Drain Amplifier using analog design flow

5. Design of an Operational Amplifier using analog design flow

VLSI Viva Questions and Answers

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 4


VLSI LAB MANUAL

PART-A
DIGITAL DESIGN BASIC-DIGITAL
DESIGN FLOW

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 5


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 6


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 7


VLSI LAB MANUAL

Procedure:
1)Simulation

pwd- To check the present working directory.

ls- to list the contents of the directory

cd cadence_DB - to change the directory

csh- invoke C shell script

source cshrc – to link cadence with c shell

“Welcome to cadence_tools”

mkdir (dirname)- to make a directory

cd dirname

vi (filename.v)– to invoke the vi editor

Press I to go into INSERT mode

Type the program

Esc :wq to save and exit

nclaunch

launch verilog compiler with current selection

elaborate ( top level module)

launch simulator with current selection

send to waveform

run simulation

2) Synthesis

Copy the library to the current directory

rc

set_attribute library dirname/library/slow or fast.lib

read_hdl dirname/filename.v

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 8


VLSI LAB MANUAL

elaborate

gui_show

synthesize –to_mapped –effort medium

report timing

report gates

report gates –power

report area

report summary

write_hdl > net_name.v

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 9


VLSI LAB MANUAL

Experiment No. 1. An inverter

 Sample Program (INVERTER)


 Boot the system to Red Hat Linux
 Right click on the Desktop
 Click on open terminal tab
 To check whether the system is connected to server, the command used is
 [root@llocal host ~]ping 192.168.80.1 { press Enter }
 Press ctrl+c to stop pinging
 To mount into the system:
mount –t nfs 192.168.80.1:/home/cadence /mnt/cadence {press Enter}
 To initialize your client , the command is:
/etc/init.d/nfs restart {press Enter}
 [root@local host ~]# will be displayed on the screen
 Type [root@local host ~] csh to go to C shell
 Then the # will be replaced with a $ symbol
 [root@local host ~]$
 Type [root@local host ~] $ source cshrc
 If the above steps are done correctly a message will be displayed saying:

Welcome to Cadence tool suite

 To make a directory type mkdir ourlabs


 To go to the created directory type cd ourlabs
 [root@local host ourlabs]$
 To see files within the directory type [root@local host ourlabs]$ ls {Press Enter}
 NOTE (1): To move from the present directory to previous directory type cd .. {Press Enter}
 NOTE (2): To move from the present directory to the root directory type cd<SPACE> {Press
Enter}
 To create a directory for the inverter program type:
 [root@local host ourlabs]$ mkdir invertr {Press Enter}
 To open the created directory :
 [root@local host ourlabs]$ cd invertr {Press Enter}
 The above the path will change to:- [root@local host invertr]$
 If we need to check the path type:
 [root@local host invertr]$ pwd {Press Enter}

Steps to create a file in verilog:

 [root@local host invertr]$ vi invertr.v


 The above command will open a window where the module program can be written

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 10


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 11


VLSI LAB MANUAL

 The writing of the program can be done after activating the insert mode by pressing I in the
program window

Module Program
module inv(a,y);
input a;
output y;
assign y=~a;
endmodule

 To save and quit the module program press ESC and type :wq
 To quit without saving press ESC and type :q!
 Test bench file is used for simulation

To create a test bench file type

 [root@local host invertr]$ vi invertr_test.v


 The above command will open a window where the testbench program can be written
 The writing of the program can be done after activating the insert mode by Pressing I in the
program window

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 12


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 13


VLSI LAB MANUAL

Testbench Program

module inv_test;
reg a;
wire y;
inv abc(a,y);
initial
begin
$monitor($time,"y=%d",y);
a=1'b0;
#10 a=1'b1;
#10 a=1'b0;
#10 $finish;
end
endmodule
 To save and quit the module program press ESC and type :wq
 To quit without saving press ESC and type :q!
 Compilation of the module and the testbench program can be
done using the commands
ncvlog invertr.v –mess {Press Enter}
ncvlog invertr_test.v –mess {Press Enter}
 To elaborate the program to the libraries
ncelab inv_test –mess {Press Enter}
 Simulation can be done by
ncsim inv_test {Press Enter}
 To launch the simulation window the command is
nclaunch {Press Enter}

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 14


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 15


VLSI LAB MANUAL

Simulation window :

 In the simulation window set the directory as root


 Delete files from worklib
 Select invertr on the lower right side of the window
 Click on invertr.v and click vlog icon on the nclaunch window
 Click on invertr_test.v and click vlog icon on the nclaunch window
 Then within the worklib we can see two files
 Invertr
 Invertr_test
 Click on inv and select the launch icon on top of the nclaunch window
 Click on inv_test and select the launch icon on top of the nclaunch window
 Then click on the snapshots folder which will contain the below two files
 Worklib.invertr.module
 Worklib.invertr_test.module
 Click on worklib.invertr_test.module and select the Launch Simulator with current selection
icon on the nclaunch window
 After simulation go back to the directory invertr
 The path should be as shown below
 [root@local host invertr]$
 Open root’s home in the desktop and open the Cadence_digital_labs folder
 Copy the directory rclabs present in the Workarea folder
 Go to your directory in root’s home i.e. invertr in this case
 Paste the rclabs in your directory
 Go back to the rtl directory in Cadence_digital_labs and move it to trash
 Copy the module program to the rtl folder in your directory.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 16


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 17


VLSI LAB MANUAL

 When the copying is done correctly check whether the file is present in the rtl directory by
following the below given steps

 Enter the rclabs directory


 cd rclabs

 Enter the rtl directory


 cd rtl

 List the files within the directory and check whether the files have been copied properly, if not
repeat the copying procedure again

 ls

 Return back to the rclabs directory using the below given command
 cd ..

 Go to the work directory by


 cd work

 Create a log file for the inverter file using the command:
 rc –gui –logfile invertr.log

 When the inverter log file is executed a new screen will open displaying rc:\> on the screen

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 18


VLSI LAB MANUAL

 The below given command is used to generate the template script from the compiler by
entering:
 rc:\>write_template –outfile template.tcl
 rc:\>set_attr hdl_search_path {../rtl} /
 rc:\>set_attr lib_search_path {../library} /
 rc:\>set_attr script_search_path {../tcl} /
 rc:\>include setup.g

 The reading of the libraries can be done by:


 rc:\>set_att library $LIBRARY

 Reading and elaborating is done by the commands:


 rc:\>read_hdl invertr.v
 rc:\>elaborate
 Maximize the Cadence window and observe the circuit diagram

For Synthesis

 Synthesize –to_mapped –eff medium –no_incr

 Synthesis succeeded

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 19


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 20


VLSI LAB MANUAL

Program No.2 : A Buffer

Module Program

‘timescale 1ns/ 1ns


module buff(a,y);
input a;
output y;
reg y,c;
always@ (a)
begin
c=~a;
y=~c;
end
endmodule

Testbench program

‘timescale 1ns/ 1ns


module buf_test;
reg a;
wire y;
buff al(a,y);
initial
begin
$monitor($time,”y=%d”,y);
a=1’b0;
#10 a=1’b1;
#10 a=1’b0;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 21


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 22


VLSI LAB MANUAL

Program No.3 : Transmission gate

Module Program

module transgate(s,x,y);
input x,s;
output y;
reg y;
always@(x or s)
begin
if(x==0 && s==1)
y=1’b0;
if (x==1 && s==1)
y=1’b1;
else
y=1’bz;
end
endmodule

Testbench program

module transgate_test;
reg x,s;
wire y;
transgate al(s,x,y);
initial
begin
$monitor($time,”y=%d”,y);
x=1’b0;
s=1’b0;
#10 x=1’b1;
s=1’b0;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 23


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 24


VLSI LAB MANUAL

Program No. 4(a) : AND gate


Module Program

‘timescale 1ns/ 1ns


module andgate(a,b,c);
input a,b;
output c;
assign c=a&b;
endmodule

Testbench program

‘timescale 1ns/ 1ns


module andgate_test;
reg a,b;
wire c;
andgate abc(a,b,c);
initial
begin
$monitor($time,"c=%d",c);
a=1'b0; b=1'b0;
#10 a=1'b0; b=1'b1;
#10 a=1'b1; b=1'b0;
#10 a=1'b1; b=1'b1;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 25


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 26


VLSI LAB MANUAL

Program No. 4(b) : OR gate

Module Program

‘timescale 1ns/ 1ns


module or1(a,b,c);
input a,b;
output c;
assign c=a|b;
endmodule

Testbench program

‘timescale 1ns/ 1ns


module or1_test;
reg a,b;
wire c;
or1 abc(a,b,c);
initial
begin
$monitor ($time,"c=%d",c);
a=1'b0; b=1'b0;
#10 a=1'b0; b=1'b1;
#10 a=1'b1; b=1'b0;
#10 a=1'b1; b=1'b1;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 27


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 28


VLSI LAB MANUAL

Program No. 4(c) : An XOR gate

Module Program

‘timescale 1ns/ 1ns


module exor(a,b,c);
input a,b;
output c;
assign c=(a^b);
endmodule

Testbench Program

‘timescale 1ns/ 1ns


module exor_test;
reg a,b;
wire c;
exor abc(a,b,c);
initial
begin
$monitor($time,"c=%d",c);
a=1'b0; b=1'b0;
#10 a=1'b0; b=1'b1;
#10 a=1'b1; b=1'b0;
#10 a=1'b1; b=1'b1;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 29


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 30


VLSI LAB MANUAL

Program No. 4(d) :An XNOR gate

Module Program

‘timescale 1ns/ 1ns


module xnor1(a,b,c);
input a,b;
output c;
assign c=~(a^b);
endmodule

Testbench Program

‘timescale 1ns/ 1ns


module xnor1_test;
reg a,b;
wire c;
xnor1 g1(a,b,c);
initial
begin
$monitor($time,"c=%d",c);
a=1'b0; b=1'b0;
#10 a=1'b0; b=1'b1;
#10 a=1'b1; b=1'b0;
#10 a=1'b1; b=1'b1;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 31


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 32


VLSI LAB MANUAL

Program No. 4(e): A NAND gate

Module Program

module nand1(a,b,c);
input a,b;
output c;
assign c=~(a&b);
endmodule

Testbench Program

module nand1_test;
reg a,b;
wire c;
nand1 g1(a,b,c);
initial
begin
$monitor($time,"c=%d",c);
a=1'b0; b=1'b0;
#10 a=1'b0; b=1'b1;
#10 a=1'b1; b=1'b0;
#10 a=1'b1; b=1'b1;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 33


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 34


VLSI LAB MANUAL

Program No. 4(e): A NOR gate

Module Program

module nor1(a,b,c);
input a,b;
output c;
assign c=~(a|b);
endmodule

Testbench program

module nor1_test;
reg a,b;
wire c;
nor1 abc(a,b,c);
initial
begin
$monitor ($time,"c=%d",c);
a=1'b0; b=1'b0;
#10 a=1'b0; b=1'b1;
#10 a=1'b1; b=1'b0;
#10 a=1'b1; b=1'b1;
#10 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 35


VLSI LAB MANUAL

Program no. 5(a): SR flip flop

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 36


VLSI LAB MANUAL

Program no 5(a) : S R Flip Flop

Module program

module srff2(s,r,clk,q,qb);
input s,r,clk;
inout q,qb;
wire d,e;
nand1 g0(s,clk,d);
nand1 g1(r,clk,e);
nand1 g2(d,qb,q);
nand1 g3(e,q,qb);
endmodule
module nand1(a,b,y);
input a,b;
output y;
assign y=~(a&b);
endmodule

Testbench Program

module srff2_test;
reg s,r,clk;
wire q,qb;
srff2 abc(s,r,clk,q,qb);
initial
clk=1’b0;
always
#10 clk= ~clk;
Initial
begin
$monitor($time, “q=%d”,”qb=%d”,q, qb);
#20 s=1’b0; r=1’b0;
#20 s=1’b0; r=1’b1;
#20 s=1’b1; r=1’b0;
#20 s=1’b1; r=1’b1;
#20 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 37


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 38


VLSI LAB MANUAL

Program No. 5(b): A D Flip Flop

Module Program

module dff1(d,q,qb,clk);
input d,clk;
output q,qb;
reg q,qb;
initial
begin
q=0;
end
always@(posedge clk)
begin
if(d==0)
q=0;
else
q=1;
qb=~q;
end
endmodule

Testbench Program

module dff1_test;
reg d,clk;
wire q,qb;
dff1 al(d,q,qb,clk);
initial
clk=1'b0;
always
#10 clk=~clk;
initial
begin
$monitor($time,"q=%d","qb=%d",q,qb);
d=1'b0;
#30 d=1'b1;
#30 d=1'b0;
#30 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 39


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 40


VLSI LAB MANUAL

Program No. 5(c): A JK Flip Flop

Module Program

module jkff1(jk,clk,q,qb);
input [1:0]jk;
input clk;
output q,qb;
reg q,qb;
initial
begin
q=0;
qb=1;
end
always@(posedge clk)
begin
case(jk)
2'b00:q=q;
2'b01:q=0;
2'b10:q=1;
2'b11:q=~q;
endcase
qb=~q;
end
endmodule

Testbench Program

module jkff1_test;
reg clk;
reg [1:0]jk;
wire q,qb;
jkff1 abc(jk,clk,q,qb);
initial
clk=1'b0;
always
#10 clk=~clk;
initial
begin
$monitor($time,"q=%d","qb=%d",q,qb);
jk=2'b00;
#30 jk=2'b01;
#30 jk=2'b10;
#30 jk=2'b11;
#30 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 41


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 42


VLSI LAB MANUAL

Program No. 5(d): A MS Flip Flop

Module Program
module msff(j,k,clk,q,qb);
input j,k,clk;
output q,qb;
reg q,qb,tq;
initial
begin
q=1'b0;
qb=1'b1;
end
always @(clk)
begin
if(clk)
begin
if(j==1'b0 && k==1'b0)
tq=tq;
else if(j==1'b0 && k==1'b1)
tq=1'b0;
else if(j==1'b1 && k==1'b0)
tq=1'b1;
else if(j==1'b1 && k==1'b1)
tq=~tq;
end
if(!clk)
begin
q=tq;
qb=~tq;
end
end
endmodule

Testbench Program
module msff_test;
reg j,k,clk;
wire q,qb,tq;
msff abc(j,k,clk,q,qb);
initial
clk=1'b0;
always
#10 clk=!clk;
initial
begin
$monitor($time,"q=%d","qb=%d",q,qb);
j=1'b0; k=1'b0;
#30 j=1'b0; k=1'b1;
#30 j=1'b1; k=1'b0;
#30 j=1'b1; k=1'b1;
#30 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 43


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 44


VLSI LAB MANUAL

Program no. 5(e): T flip flop

Module program

module tff(tin,rst,clk,q,qbar);
input tin,rst,clk;
output q,qbar;
reg tq;
always@(posedge clk or negedge rst)
begin
if(!rst)
tq=0;
else
begin
if(tin)
tq=~tq;
end
end
assign q=tq;
assign qbar=~q;
endmodule

Testbench Program

module tff_test; initial


reg tin,rst,clk; #2000 $finish;
wire q,qbar; endmodule
tff t1(tin,rst,clk,q,qbar);
initial
clk=1’b0;
always
#10 clk= ~clk;
initial
begin
rst=1’b0; tin=1’b0;
#30 rst=1’b1;
#10 tin=1’b1;
#205 tin=1’b0;
#300 tin=1’b1;
#175 tin=1’b0;
#280 rst=1’b0;
#20 rst=1’b1;
#280 tin=1’b1;
end

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 45


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 46


VLSI LAB MANUAL

Program No. 6: A Parallel Adder

Module Program

module par(cin,x,y,sum,cout);
input cin;
input [3:0]x,y;
output [3:0]sum;
output cout;
fulladd g0(cin,x[0],y[0],sum[0],c0);
fulladd g1(c0,x[1],y[1],sum[1],c1);
fulladd g2(c1,x[2],y[2],sum[2],c2);
fulladd g3(c2, x[3],y[3],sum[3],cout);
endmodule

module fulladd(cin,x,y,sum,cout);
input cin,x,y;
output sum,cout;
assign sum=x^y^cin;
assign cout=((x&y)||(x&cin)||(y&cin));
endmodule

Testbench Program

module par_test;
reg [3:0] x,y;
reg cin;
wire [3:0] sum;
wire cout;
par al (cin,x,y,sum,cout);
initial
begin
$monitor($time, "sum=%d",sum);
x=4'b0000; y=4'b0000; cin=1'b0;
#20 x=4'b1111; y=4'b1010;
#40 x=4'b1011; y=4'b0110;
#40 x=4'b1111; y=4'b1111;
#50 $finish;
end
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 47


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 48


VLSI LAB MANUAL

Program no. 7(a): Synchronous counter

Module program

module syncount(cnt,e,q); module and1(a,b,c);


input cnt,e; input a,b;
output [3:0]q; output c;
wire e1,e2,e3; assign c=a&b;
tff aaa(e,cnt,q[0]); endmodule
and1 g0(q[0],e,e1);
tff bbb(e1,cnt,q[1]); module and2(d,e,f,g);
and2 g1(q[0],q[1],e,e2); input d,e,f;
tff ccc(e2,cnt,q[2]); output g;
and3 g2(q[0],q[1],q[2],e,e3); assign g=d&e&f;
endmodule endmodule

module tff(t,clk,q); module and3(p,q,r,s,t);


input t,clk; input p,q,r,s;
output q; output t;
reg q; assign t=p&q&r&s;
initial endmodule
q=1’b0;
reg tq;
always@(posedge clk)
begin
if(t==0)
q=q;
else
q=~q;
end
endmodule

Testbench Program
module syncount_test;
reg cnt,e;
wire [3:0]q;
syncount zzz(cnt,e,q);
initial
begin
cnt=0;
e=1;
end
always #100 cnt=~cnt;
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 49


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 50


VLSI LAB MANUAL

Program no. 7(b): An Asynchronous counter

Module program
module acount(cnt,e,q);
input cnt,e;
output [3:0]q;
wire q1,q2,q3,q4;
tff aaa(e,cnt,q[0],q1);
tff bbb(e,q1,q[1],q2);
tff ccc(e,q2,q[2],q3);
tff ddd(e,q3,q[3],q4);
endmodule

module tff(t,clk,q,qb);
input t,clk;
output q,qb;
reg q,qb;
initial
begin
q=1’b0;
qb=1’b1;
end
always@(posedge clk)
begin
if(t==0)
q=q;
else
q=~q;
qb=~q;
end
endmodule

Testbench Program
module syncount_test;
reg cnt,e;
wire [3:0]q;
syncount zzz(cnt,e,q);
initial
begin
cnt=0;
e=1;
end
always #100 cnt=~cnt;
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 51


VLSI LAB MANUAL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 52


VLSI LAB MANUAL

Program no. 8: Successive Approximation Register [SAR]

Module program
module sar(R,L,E,W,clk,q);
parameter n=8;
input[n-1:0] r
input L,E,W,clk;
output [n-1:0] q
reg [n-1:0] q;
integer k;
always@(posedge(clk))
begin
if(L)
q=R;
else if(R)
begin
for(k=n-1;k>0;k=k-1)
q[k-1]<=q[k];
q[n-1]<=W;
end
end
endmodule

Testbench Program
module syncount_test;
reg [7:0]r;
reg l,e,w,clk;
wire [7:0]q;
sar bbb( R(r),L(l),E(e),W(w),clk(clk),q(q));
initial
begin
l=1’b1;
e=1’b0;
r=8’b11110000;
clk=1’b0;
#10 w=1’b1;
l=1’b0;
e=1’b1;
#10 w=1’b0;
end
always #5 clk=~clk;
endmodule

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 53


VLSI LAB MANUAL

PART-B
ANALOG DESIGN FLOW

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 54


VLSI LAB MANUAL

Lab Getting Started

1. Log in to your workstation using the username and password.

The home directory has a cshrc file with paths to the Cadence installation.

2. In a terminal window, type csh at the command prompt to invoke the C shell.

>csh

>source cshrc

Starting the Cadence Software

Use the installed database to do your work and the steps are as follows:

1. Change to the course directory by entering this command:

> cd ~/cadence_DB/cadence_ms_labs_614

2. In the same terminal window, enter:

> virtuoso

The virtuoso or Command Interpreter Window (CIW) appears at the bottom of the screen.

3. If the “What’s New ...” window appears, close it with the File— Close command.

4. Keep opened CIW window for the labs.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 55


VLSI LAB MANUAL

Lab 1: AN INVERTER

Schematic Capture

Objective: To create a library and build a schematic of an Inverter

Execute Tools – Library Manager in the CIW or Virtuoso window to open Library Manager.

Creating a New library

1. In the Library Manager, execute File - New – Library. The new library form appears.

2. In the “New Library” form, type “myDesignLib (arbitrary name)” in the Name section.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 56


VLSI LAB MANUAL

4. In the field of Directory section, verify that the path to the library is set

to ~/cadence_DB/cadence_ms_lab_614 and click OK.

5. In the next “Technology File for New library” form, select option Attach to an existing
techfile and click OK.

6. In the “Attach Design Library to Technology File” form, select gpdk180 from the cyclic
field and click OK.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 57


VLSI LAB MANUAL

7. After creating a new library you can verify it from the library manager.

8. If you right click on the “myDesignLib” and select properties, you will find that gpdk180
library is attached as techlib to “myDesignLib”.

Creating a Schematic Cellview

In this section we will learn how to open new schematic window in the new “myDesignLib”
library and build the inverter schematic as shown in the figure at the start of this lab.

1. In the CIW or Library manager, execute File – New – Cellview.

2. Set up the New file form as follows:

Do not edit the Library path file and the one above might be different from the path shown in
your form.

3. Click OK when done the above settings. A blank schematic window for the Inverter design
appears.

Adding Components to schematic

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 58


VLSI LAB MANUAL

1. In the Inverter schematic window, click the Instance fixed menu

icon to display the Add Instance form.

Tip: You can also execute Create — Instance or press i.

2. Click on the Browse button. This opens up a Library browser from which you

can select components and the symbol view .

You will update the Library Name, Cell Name, and the property values

given in the table on the next page as you place each component.

3. After you complete the Add Instance form, move your cursor to the

schematic window and click left to place a component.

This is a table of components for building the Inverter schematic.

Library name Cell Name Properties/Comments

If you
gpdk180 pmos For M0: Model name = pmos1, W= wp,
place a
L=180n

gpdk180 nmos For M1: Model name = nmos1, W= 2u,


L=180n

component with the wrong parameter values, use the

Edit— Properties— Objects command to change the parameters.

Use the Edit— Move command if you place components in the

wrong location.

You can rotate components at the time you place them, or use the

Edit— Rotate command after they are placed.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 59


VLSI LAB MANUAL

4. After entering components, click Cancel in the Add Instance form

or press Esc with your cursor in the schematic window.

Adding pins to Schematic

1. Click the Pin fixed menu icon in the schematic window.

You can also execute Create — Pin or press p.

The Add pin form appears.

2. Type the following in the Add pin form in the exact order leaving space

between the pin names

Pin Names Direction

vin Input

vout Output

Make sure that the direction field is set to input/output/inputOutput when placing
theinput/output/inout pins respectively and the Usage field is set to schematic.

3. Select Cancel from the Add – pin form after placing the pins.

In the schematic window, execute Window— Fit or press the f bindkey.

Adding Wires to a Schematic

Add wires to connect components and pins in the design.

1. Click the Wire (narrow) icon in the schematic window.

You can also press the w key, or execute Create — Wire (narrow).

2. In the schematic window, click on a pin of one of your components as the first

point for your wiring. A diamond shape appears over the starting point of this wire.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 60


VLSI LAB MANUAL

3. Follow the prompts at the bottom of the design window and click left on the destination point
for your wire. A wire is routed between the source and destination points.

4. Complete the wiring as shown in figure and when done wiring press ESC key in the schematic
window to cancel wiring.

Saving the Design

1. Click the Check and Save icon in the schematic editor window.

2. Observe the CIW output area for any errors.

Symbol Creation

Objective: To create a symbol for the Inverter

1. In the Inverter schematic window, execute

Create — Cellview— From Cellview.

The Cellview From Cellview form appears. With the Edit Options

function active, you can control the appearance of the symbol to generate.

2. Verify that the From View Name field is set to schematic, and the

To View Name field is set to symbol, with the Tool/Data Type set as SchematicSymboL

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 61


VLSI LAB MANUAL

3. Click OK in the Cellview From Cellview form.

The Symbol Generation Form appears.

4. Modify the Pin Specifications as follows:

5. Click OK in the Symbol Generation Options form.

6. A new window displays an automatically created Inverter symbol

as shown here

Editing a Symbol

In this section we will modify the inverter symbol to look like a Inverter gate symbol.

1. Move the cursor over the automatically generated symbol, until the green rectangle

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 62


VLSI LAB MANUAL

is highlighted, click left to select it.

2. Click Delete icon in the symbol window, similarly select the red rectangle and

Delete that.

3. Execute Create – Shape – polygon, and draw a shape similar to triangle.

4. After creating the triangle press ESC key.

5. Execute Create – Shape – Circle to make a circle at the end of triangle.

6. You can move the pin names according to the location.

7. Execute Create — Selection Box. In the Add Selection Box form, click Automatic.

A new red selection box is automatically added.

8. After creating symbol, click on the save icon in the symbol editor window to save the symbol.
In the symbol editor, execute File — Close to close the symbol view window.

Building the Inverter_Test Design

Objective: To build an Inverter Test circuit using your Inverter

Creating the Inverter_Test Cellview

1. In the CIW or Library Manager, execute File— New— Cellview.

2. Set up the New File form as follows:

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 63


VLSI LAB MANUAL

3. Click OK when done. A blank schematic window for the Inverter_Test design appears.

Building the Inverter_Test Circuit

1. Using the component list and Properties/Comments in this table,

build the Inverter_Test schematic.

Library name Cellview name Properties/Comments

myDesignLib Inverter Symbol

analogLib vpulse v1=0, v2=1.8,td=0 tr=tf=1ns,


ton=10n, T=20n

analogLib vdc, gnd vdc=1.8

Note: Remember to set the values for VDD and VSS. Otherwise, your circuit will have no
power.

2. Add the above components using Create — Instance or by pressing I.

3. Click the Wire (narrow) icon and wire your schematic.

Tip: You can also press the w key, or execute

Create— Wire (narrow).

4. Click Create — Wire Name or press L to name the input (Vin) and output (Vout) wires as

in the below schematic.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 64


VLSI LAB MANUAL

4. Click on the Check and Save icon to save the design.

5. The schematic should look like this.

6. Leave your Inverter_Test schematic window open for the next section.

Analog Simulation with Spectre

Objective: To set up and run simulations on the Inverter_Test design

Starting the Simulation Environment

Start the Simulation Environment to run a simulation.

1. In the Inverter_Test schematic window, execute

Launch – ADE L

The Virtuoso Analog Design Environment (ADE) simulation window appears.

Choosing Analyses

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 65


VLSI LAB MANUAL

This section demonstrates how to view and select the different types of analyses to

complete the circuit when running the simulation.

1. In the Simulation window (ADE), click the Choose - Analyses icon.

You can also execute Analyses - Choose.

The Choosing Analysis form appears. This is a dynamic form, the bottom of the form

changes based on the selection above.

2. To setup for transient analysis

a. In the Analysis section select tran

b. Set the stop time as 200n

c. Click at the moderate or Enabled button at the bottom, and then click Apply.

3. To set up for DC Analyses:

a. In the Analyses section, select dc.

b. In the DC Analyses section, turn on Save DC Operating Point.

c. Turn on the Component Parameter.

d. Double click the Select Component, Which takes you to the schematic window.

e. Select input signal vpulse source in the test schematic window.

f. Select “DC Voltage” in the Select Component Parameter form and click OK.

f. In the analysis form type start and stop voltages as 0 to 1.8 respectively.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 66


VLSI LAB MANUAL

g. Check the enable button and then click Apply.

4. Click OK in the Choosing Analyses Form.

Setting Design Variables

Set the values of any design variables in the circuit before simulating.

Otherwise, the simulation will not run.

1. In the Simulation window, click the Edit Variables icon.

The Editing Design Variables form appears.

2. Click Copy From at the bottom of the form.

The design is scanned and all variables found in the design are listed.

In a few moments, the wp variable appears in the Table of Design variables section.

3. Set the value of the wp variable:

With the wp variable highlighted in the Table of Design Variables,

click on the variable name wp and enter the following:

Value(Expr) 2u

Click Change and notice the update in the Table of Design Variables.

3. Click OK or Cancel in the Editing Design Variables window.

Selecting Outputs for Plotting

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 67


VLSI LAB MANUAL

1. Execute Outputs – To be plotted – Select on Schematic in the simulation window.

2. Follow the prompt at the bottom of the schematic window, Click on output net Vout, input net
Vin of the Inverter. Press ESC with the cursor in the schematic after selecting it.

Running the Simulation

1. Execute Simulation – Netlist and Run in the simulation window to start the

Simulation or the icon, this will create the netlist as well as run the simulation.

2. When simulation finishes, the Transient, DC plots automatically will be popped up along with
log file.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 68


VLSI LAB MANUAL

Saving the Simulator State

We can save the simulator state, which stores information such as model library file,

outputs, analysis, variable etc. This information restores the simulation environment

without having to type in all of setting again.

1. In the Simulation window, execute Session – Save State.

The Saving State form appears.

2. Set the Save as field to state1_inv and make sure all options are selected under

what to save field.

3. Click OK in the saving state form. The Simulator state is saved.

Loading the Simulator State

1. From the ADE window execute Session – Load State.

2. In the Loading State window, set the State name to state1_inv as shown

3. Click OK in the Loading State window.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 69


VLSI LAB MANUAL

Creating Layout View of Inverter

1. From the Inverter schematic window menu execute

Launch – Layout XL. A Startup Option form appears.

2. Select Create New option. This gives a New Cell View Form

3. Check the Cellname (Inverter), Viewname (layout).

4. Click OK from the New Cellview form.LSW and a blank layout window appear along with
schematic window.

Adding Components to Layout

1. Execute Connectivity – Generate – All from Source or click the icon in the layout
editor window, Generate Layout form appears. Click OK which imports the schematic
components in to the Layout window automatically.

2. Re arrange the components with in PR-Boundary as shown in the next page.

3. To rotate a component, Select the component and execute Edit –Properties. Now select the
degree of rotation from the property edit form.

4. To Move a component, Select the component and execute Edit -Move command.

Making interconnection

1. Execute Connectivity –Nets – Show/Hide selected Incomplete Nets or click the


icon in the Layout Menu.

2. Move the mouse pointer over the device and click LMB to get the connectivity information,
which shows the guide lines (or flight lines) for the inter connections of the components.

3. From the layout window execute Create – Shape – Path/ Create wire or Create – Shape –
Rectangle (for vdd and gnd bar) and select the appropriate Layers from the LSW window and
Vias for making the inter connections

Creating Contacts/Vias

You will use the contacts or vias to make connections between two different layers.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 70


VLSI LAB MANUAL

1. Execute Create — Via or select command to place different Contacts, as given in


below table

Connection Contact Type

For Metal1- Poly Metal1-Poly


Connection
For Metal1- Metal1-Psub
Psubstrate Connection
For Metal1- Nwell Metal1-Nwell
Connection

Saving the design

1. Save your design by selecting File — Save or click to save the layout, and layout
should appear as below.

Physical Verification Assura DRC

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 71


VLSI LAB MANUAL

1. Open the Inverter layout form the CIW or library manger if you have closed that.

Press shift – f in the layout window to display all the levels.

2. Select Assura - Run DRC from layout window.

The DRC form appears. The Library and Cellname are taken from the current

design window, but rule file may be missing. Select the Technology as gpdk180. This
automatically loads the rule file.

Your DRC form should appear like this

3. Click OK to start DRC.

4. A Progress form will appears. You can click on the watch log file to see the log

file.

5. When DRC finishes, a dialog box appears asking you if you want to view your

DRC results, and then click Yes to view the results of this run.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 72


VLSI LAB MANUAL

6. If there any DRC error exists in the design View Layer Window (VLW) and Error

Layer Window (ELW) appears. Also the errors highlight in the design itself.

7. Click View – Summary in the ELW to find the details of errors.

8. You can refer to rule file also for more information, correct all the DRC errors and

Re – run the DRC.

9. If there are no errors in the layout then a dialog box appears with No DRC errors

found written in it, click on close to terminate the DRC run.

ASSURA LVS

Running LVS

1. Select Assura – Run LVS from the layout window.

The Assura Run LVS form appears. It will automatically load both the schematic and layout
view of the cell.

2. Change the following in the form and click OK.

3. The LVS begins and a Progress form appears.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 73


VLSI LAB MANUAL

4. If the schematic and layout matches completely, you will get the form displaying Schematic
and Layout Match.

5. If the schematic and layout do not matches, a form informs that the LVS completed

successfully and asks if you want to see the results of this run.

6. Click Yes in the form.

LVS debug form appears, and you are directed into LVS debug environment.

7. In the LVS debug form you can find the details of mismatches and you need to

correct all those mismatches and Re – run the LVS till you will be able to match the

schematic with layout.

Assura RCX

Running RCX

1. From the layout window execute Assura – Run RCX.

2. Change the following in the Assura parasitic extraction form. Select output type under Setup
tab of the form.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 74


VLSI LAB MANUAL

3. In the Extraction tab of the form, choose Extraction type, Cap Coupling Mode and specify the
Reference node for extraction.

4. In the Filtering tab of the form, Enter Power Nets as vdd!, vss! and Enter Ground Nets as
gnd

5. Click OK in the Assura parasitic extraction form when done.

The RCX progress form appears, in the progress form click Watch log file to see

the output log file.

5. When RCX completes, a dialog box appears, informs you that Assura RCX run

Completed successfully.

6. You can open the av_extracted view from the library manager and view the parasitic.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 75


VLSI LAB MANUAL

Creating the Configuration View

In this section we will create a config view and with this config view we will run the

simulation with and without parasitic.

1. In the CIW or Library Manager, execute File – New – Cellview

2. In the Create New file form, set the following:

3. Click OK in create New File form.

The Hierarchy Editor form opens and a New Configuration form opens in front of it.

4. Click Use template at the bottom of the New Configuration form and select

Spectre in the cyclic field and click OK.

The Global Bindings lists are loaded from the template.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 76


VLSI LAB MANUAL

5. Change the Top Cell View to schematic and remove the default entry from the

Library List field.

6. Click OK in the New Configuration form.

The hierarchy editor displays the hierarchy for this design using table format.

7. Click the Tree View tab. The design hierarchy changes to tree format. The form should look
like this:

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 77


VLSI LAB MANUAL

8. Save the current configuration.

9. Close the Hierarchy Editor window. Execute File – Close Window.

To run the Circuit without Parasites

1. From the Library Manager open Inverter_Test Config view.

Open Configuration or Top cellview form appears.

2. In the form, turn on the both cyclic buttons to Yes and click OK.

The Inverter_Test schematic and Inverter_Test config window appears. Notice the

window banner of schematic also states Config: myDesignLib Inverter_Test config.

3. Execute Launch – ADE L from the schematic window.

4. Now you need to follow the same procedure for running the simulation. Executing Session–
Load state, the Analog Design Environment window loads the previous state

5. Click Netlist and Run icon to start the simulation.

The simulation takes a few seconds and then waveform window appears.

6. In the CIW, note the netlisting statistics in the Circuit inventory section. This

list includes all nets, designed devices, source and loads. There are no

parasitic components. Also note down the circuit inventory section.

Measuring the Propagation Delay

1. In the waveform window execute Tools – Calculator.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 78


VLSI LAB MANUAL

The calculator window appears

2. From the functions select delay, this will open the delay data panel.

3. Place the cursor in the text box for Signal1, select the wave button and select

the input waveform from the waveform window.

4. Repeat the same for Signal2, and select the output waveform.

5. Set the Threshold value 1 and Threshold value 2 to 0.9, this directs the

calculator to calculate delay at 50% i.e. at 0.9 volts.

6. Execute OK and observe the expression created in the calculator buffer.

7. Click on Evaluate the buffer icon to perform the calculation, note down the value
returned after execution.

8. Close the calculator window.

To run the Circuit with Parasites

In this exercise, we will change the configuration to direct simulation of the av_extracted view
which contains the parasites.

1. Open the same Hierarchy Editor form, which is already set for Inverter_Test config.

2. Select the Tree View icon: this will show the design hierarchy in the tree format.

3. Click right mouse on the Inverter schematic.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 79


VLSI LAB MANUAL

A pull down menu appears. Select av_extracted view from the Set Instance view menu, the
View to use column now shows av_extracted view.

4. Click on the Recompute the hierarchy icon, the configuration is now updated from
schematic to av_extracted view.

6. From the Analog Design Environment window click Netlist and Run to

start the simulation again.

7. When simulation completes, note the Circuit inventory conditions, this time the list shows
all nets, designed devices, sources and parasitic devices as well.

8. Calculate the delay again and match with the previous one. Now you can conclude how much
delay is introduced by these parasites, now our main aim should to minimize the delay due to
these parasites so number of iteration takes place for making an optimize layout.

Generating Stream Data

Streaming Out the Design

1. Select File – Export – Stream from the CIW menu and Virtuoso Xstream out form appears
change the following in the form.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 80


VLSI LAB MANUAL

2. Click on the Options button.

3. In the StreamOut-Options form select under Layers tab and click OK.

4. In the Virtuoso XStream Out form, click Translate button to start the stream translator.

5. The stream file Inverter.gds is stored in the specified location.

Streaming In the Design

1. Select File – Import – Stream from the CIW menu and change the following

in the form.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 81


VLSI LAB MANUAL

You need to specify the gpdk180_oa22.tf file. This is the entire technology file that

has been dumped from the design library.

2. Click on the Options button.

3. In the StreamOut-Options form select under Layers tab and click OK.

4. In the Virtuoso XStream Out form, click Translate button to start the stream translator.

5. From the Library Manager open the Inverter cellview from the GDS_LIB

library and notice the design.

6. Close all the windows except CIW window, which is needed for the next lab.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 82


VLSI LAB MANUAL

Lab 2: DIFFERENTIAL AMPLIFIER

Schematic Capture

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 83


VLSI LAB MANUAL

Simulation

To Calculate the gain of Differential pair:

Configure the Differential pair schematic as shown below –

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 84


VLSI LAB MANUAL

Now, open the ADE L, from LAUNCH ADE L , choose the analysis set the ac response and
run the simulation, from Simulation Run. Next go to ResultsDirect plot select AC dB20
and output from the schematic and press escape.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 85


VLSI LAB MANUAL

LAB 3 COMMON SOURCE AMPLIFIER

Schematic Capture

Test Circuit

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 86


VLSI LAB MANUAL

Layout Capture

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 87


VLSI LAB MANUAL

Lab 4: COMMON DRAIN AMPLIFIER

Schematic Capture

Library name Cellview name Properties/Comments

myDesignLib cd_amplifier Symbol

Define pulse specification as

analogLib vsin AC Magnitude= 1; DC Voltage= 0;

Offset Voltage= 0; Amplitude= 5m;

Frequency= 1K

analogLib vdd,vss,gnd vdd=2.5 ; vss= -2.5

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 88


VLSI LAB MANUAL

Test Circuit

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 89


VLSI LAB MANUAL

Lab 5: OPERATIONAL AMPLIFIER

Schematic Capture

Library name Cellview name Properties/Comments

myDesignLib op-amp Symbol

Define pulse specification as

analogLib vsin AC Magnitude= 1; DC Voltage= 0;

Offset Voltage= 0; Amplitude= 5m;

Frequency= 1K

analogLib vdc, gnd vdd=2.5 ; vss= -2.5

analogLib Idc Dc current = 30u

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 90


VLSI LAB MANUAL

Note: Remember to set the values for vdd and vss. Otherwise your circuit will have no power.

Test Circuit

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 91


VLSI LAB MANUAL

Layout Capture

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 92


VLSI LAB MANUAL

VLSI Viva questions

Which is the software used in this lab?

cadence .

What are the other alternative software apart from cadence used for VLSI design?

Microwind, Tanner, Hspice, Pspice, Mentor graphics, Xilinx etc…

Name the Simulator used in cadence for simulation ?

Insim or incisive simulator

What is RTL ?

RTL stands for Register Transfer Level. It is a high-level hardware description language (HDL)
used for defining digital circuits. The most popular RTL languages are VHDL and Verilog.

What is the difference between simulation and synthesis?

Simulation is used to verify the functionality of the circuit.. a)Functional Simulation: study of
ckt's operation independent of timing parameters and gate delays. b) Timing Simulation :study
including estimated delays, verify setup, hold and other timing requirements of devices like flip
flops are met

Synthesis: One of the foremost in back end steps where by synthesizing is nothing but converting
VHDL or VERILOG description to a set of primitives or components(as in FPGA'S)to fit into
the target technology. Basically the synthesis tools convert the design description into equations
or components.

Which is the tool used for analog design of vlsi circuits?

Virtuoso

What is the platform for virtuoso?

Encounter

Why don’t we use just one NMOS or PMOS transistor as a transmission gate?

Because we can't get full voltage swing with only NMOS or PMOS .We have to use both of
them together for that purpose.

Why don’t we use just one NMOS or PMOS transistor as a transmission gate?

nmos passes a good 0 and a degraded 1 , whereas pmos passes a good 1 and bad 0. for pass
transistor, both voltage levels need to be passed and hence both nmos and pmos need to be used.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 93


VLSI LAB MANUAL

What are set up time & hold time constraints? What do they signify?

Setup time: Time before the active clock edge of the flip-flop, the input should be stable. If the
signal changes state during this interval, the output of that flip-flop cannot be predictable (called
metastable).

Hold Time: The after the active clock edge of the flip-flop, the input should be stable. If the
signal changes during this interval, the output of that flip-flop cannot be predictable (called
metastable).

Explain Clock Skew?

clock skew is the time difference between the arrival of active clock edge to different flip-flops’
of the same chip.

Why is not NAND gate preferred over NOR gate for fabrication?

NAND is a better gate for design than NOR because at the transistor level the mobility of
electrons is normally three times that of holes compared to NOR and thus the NAND is a faster
gate. Additionally, the gate-leakage in NAND structures is much lower.

What is Body Effect?

In general multiple MOS devices are made on a common substrate. As a result, the substrate
voltage of all devices is normally equal. However while connecting the devices serially this may
result in an increase in source-to-substrate voltage as we proceed vertically along the series chain
(Vsb1=0, Vsb2 0).Which results Vth2>Vth1.

Why is the substrate in NMOS connected to Ground and in PMOS to VDD?

we try to reverse bias not the channel and the substrate but we try to maintain the drain, source
junctions reverse biased with respect to the substrate so that we don’t loose our current into the
substrate.

What is the fundamental difference between a MOSFET and BJT ?

In MOSFET, current flow is either due to electrons (n-channel MOS) or due to holes(p-channel
MOS) - In BJT, we see current due to both the carriers..Electrons and holes. BJT is a current
controlled device and MOSFET is a voltage controlled device

In CMOS technology, in digital design, why do we design the size of pmos to be higher than
the nmos. What determines the size of pmos wrt nmos. Though this is a simple question try
to list all the reasons possible?

In PMOS the carriers are holes whose mobility is less[ aprrox half ] than the electrons, the
carriers in NMOS. That means PMOS is slower than an NMOS. In CMOS technology, nmos

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 94


VLSI LAB MANUAL

helps in pulling down the output to ground PMOS helps in pulling up the output to Vdd. If the
sizes of PMOS and NMOS are the same, then PMOS takes long time to charge up the output
node. If we have a larger PMOS than there will be more carriers to charge the node quickly and
overcome the slow nature of PMOS . Basically we do all this to get equal rise and fall times for
the output node.

Why PMOS and NMOS are sized equally in a Transmission Gates?

In Transmission Gate, PMOS and NMOS aid each other rather competing with each other. That's
the reason why we need not size them like in CMOS. In CMOS design we have NMOS and
PMOS competing which is the reason we try to size them proportional to their mobility.

What happens when the PMOS and NMOS are interchanged with one another in an
inverter?

If the source & drain also connected properly...it acts as a buffer. But suppose input is logic 1
O/P will be degraded 1 Similarly degraded 0

Why are pMOS transistor networks generally used to produce high signals, while nMOS
networks are used to product low signals?

This is because threshold voltage effect. A nMOS device cannot drive a full 1 or high and pMOS
can’t drive full '0' or low. The maximum voltage level in nMOS and minimum voltage level in
pMOS are limited by threshold voltage. Both nMOS and pMOS do not give rail to rail swing.

What’s the difference between Testing & Verification?

Testing: A manufacturing step that ensures that the physical device , manufactured from the
synthesized design, has no manufacturing defect.

Verification: Predictive analysis to ensure that the synthesized design, when manufactured, will
perform the given I/O function

What is Latch Up? Explain Latch Up with cross section of a CMOS Inverter. How do you
avoid Latch Up?

A latch up is the inadvertent creation of a low-impedance path between the power supply rails of
an electronic component, triggering a parasitic structure(The parasitic structure is usually
equivalent to a thyristor or SCR), which then acts as a short circuit, disrupting proper functioning
of the part. Depending on the circuits involved, the amount of current flow produced by this
mechanism can be large enough to result in permanent destruction of the device due to electrical
over stress - EOS

What is slack?

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 95


VLSI LAB MANUAL

The slack is the time delay difference from the expected delay(1/clock) to the actual delay in a
particular path. Slack may be +ve or -ve.

Explain the working of Nmos and Pmos?

Explain the fabrication steps of nmos ,pmos and CMOS?

What happens if we interchange the nmos and pmos in an inverter?

Explain the DC and transient characteristics of inverter?

What is the Need for DRC? And explain the design rules.

Working of flip flops ,counters and adders..

Difference between combinational and sequential circuits?

Difference between MOSFET and BJT?

Difference between latch and flip flops?

Steps involved in digital and analog design.

Why germanium is not used generally for nmos and pmos manufacturing

Moores law

Regions of operation of nmos/pmos.

Bearys Institute of Technology, Dept. of ECE, Mangaluru Page 96

You might also like