!"#$%#!&
!"#$ &'()*+,)- ./ 01) 2.34-) 5"467"4) !.6)8#$9 :-#$9 ;)4#8.9 Lecture 01: INTRODUCTION
PROF. INDRANIL SENGUPTA DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
!7
8-)*2 )9/:; ;<- 6-*10/3 <)*+,)*- +-5=*1>?/2 0)23:)3-7
"7
42+-*5;)2+ ;<- +1@-*-2=- 9-;,--2 9-<)A1/*)0 )2+ 5;*:=;:*)0 +-5132 5;B0-57
C7
8-)*2 ;/ ,*1;- ;-5; 9-2=<-5 )2+ ) 2)0BD- 51E:0)?/2 *-5:0;57
F7
8-)*2 ;/ E/+-0 =/E912)?/2)0 )2+ 5-G:-2?)0 =1*=:1;57
H7
I15?23:15< 9-;,--2 3//+ )2+ 9)+ =/+123 >*)=?=-57
J7
K)5- 5;:+1-5 ,1;< 5/E- =/E>0-L +-513257 ()*+,)*- ./+-0123 45123 6-*10/3
"
;<=> ?)-#9$ @4.*)-• I-5132 =/E>0-L1;B 12=*-)5123 *)>1+0B – M2=*-)5-+ 51D- )2+ =/E>0-L1;B – N)9*1=)?/2 ;-=<2/0/3B 1E>*/A123 – KOI ;//05 )*- -55-2?)0 – K/2P1=?23 *-G:1*-E-2;5 01Q- )*-)R 5>--+R ) 2+ -2-*3B =/25:E>?/2
• S<- >*-5-2; ;*-2+ – T;)2+)*+1D- ;<- +-5132 P/, – UE><)515 /2 0/,V>/,-* +-5132R )2+ 12=*-)5-+ >-*W/*E)2=()*+,)*- ./+-0123 45123 6-*10/3
N1*5; X0)2)* MK Y!ZJ![ )2+ M2;-0 \-<)0-E ]:)+ K/*- I1()*+,)*- ./+-0123 45123 6-*10/3
C
F
!..4)A- <"7 • UL>/2-2?)0 3*/,;< • I-5132 =/E>0-L1;B 12=*-)5-5 *)>1+0B • O:;/E);-+ ;//05 )*-55-2?)0
2!&= B3C 0. DD$EF
G#$GHI BJK$EF
L:MNI:!O
• .:5; W/00/, ,-00V +-^2-+ +-5132 P/,
()*+,)*- ./+-0123 45123 6-*10/3
H
()*+,)*- ./+-0123 45123 6-*10/3
J
!
!"#$%#!&
;<=> ?)-#9$ G8.7 • •
• \--+ ;/ :5- K/E>:;-* O1+-+ I-5132 YKOI[ ;//057
T;)2+)*+1D-+ +-5132 >*/=-+:*-
– a)5-+ /2 ()*+,)*- I-5=*1>?/2 8)23:)3- Y(I8[7
– T;)*?23 W*/E ;<- +-5132 1+-) +/,2 ;/ ;<- )=;:)0 1E>0-E-2;)?/27
– (I85 >*/A1+- W/*E);5 W/* *->*-5-2?23 ;<- /:;>:;5 /W A)*1/:5 +-5132 5;->57
U2=/E>)55-5 E)2B 5;->5_
– O KOI ;//0 ;*)25W/*E5 1;5 (I8 12>:; 12;/ ) (I8 /:;>:; ;<); =/2;)125 E/*- +-;)10-+ 12W/*E)?/2 )9/:; ;<- <)*+,)*-7
– T>-=1^=)?/2 – TB2;<-515 – T1E:0)?/2
• a-<)A1/*)0 0-A-0 ;/ *-315;-* ;*)25W-* 0-A-0
– 8)B/:;
• b-315;-* ;*)25W-* 0-A-0 ;/ 3);- 0-A-0
– S-5;)9101;B )2)0B515 – )2+ E)2B E/*- ``
• c);- 0-A-0 ;/ ;*)2515;/* 0-A-0 • S*)2515;/* 0-A-0 ;/ ;<- 0)B/:; 0-A-0
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
&
I7. 2.EC)+$9 5?
=#EC8#-+* ;#)7 ./ ?)-#9$ G8.7
%
Design Idea Behavioral Design
Flow Graph, Pseudo Code
Data Path Design
Bus/Register Structure
Logic Design
Gate/F-F Netlist Physical Design
Transistor Layout Manufacturing
S<-*- )*- /;<-* (I85 01Q- TB5;-EKR TB5;-E6-*10/3R )2+ E)2B E/*- `
Chip / Board ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
Z
!$
=0)C- #$ 01) ?)-#9$ G8.7 • I);) >);< +-5132 • a-<)A1/*)0 +-5132
– c-2-*);- ) 2-;015; /W *-315;-* ;*)25W-* 0-A-0 =/E>/2-2;5R 01Q- *-315;-*5R )++-*5R E:0?>01-*5R E:0?>0-L-*5R +-=/+-*5R -;=7
– T>-=1WB ;<- W:2=?/2)01;B /W ;<- +-5132 12 ;-*E5 /W 1;5 :"5(9$7) 7 – 6)*1/:5 ,)B5 /W 5>-=1WB123_ • a//0-)2 -L>*-551/2 /* ;*:;< ;)90-7
– O &"+/$#+ 15 ) +1*-=;-+ 3*)>/2-2;5R )2+ ;<- -+3-5 12+1=);- 12;-*=/22-=?/257
• N121;-V5;);- E)=<12- 9-<)A1/* Y-737 5;);- ;*)251?/2 +1)3*)E /* ;)90-[7
– O 2-;015; 5>-=1^=)?/2 15 )05/ *-W-**-+ ;/ )5 #+)0*+0)(/ ,"#$%&7
• M2 ;<- W/*E /W ) <13
• \-;015; E)B 9- 5>-=1^-+ ); A)*1/:5 0-A-05R ,<-*- ;<- =/E>/2-2;5 E)B 9W:2=?/2)0 E/+:0-5R 3);-5 /* ;*)2515;/*57
– \--+5 ;/ 9- 5B2;<-51D-+ 12;/ E/*- +-;)10-+ 5>-=1^=)?/25 W/* <)*+,)*- *-)01D)?/27
()*+,)*- ./+-0123 45123 6-*10/3
• TB5;-E)?=)00B ;*)25W/*E-+ W*/E /2- 0-A-0 ;/ ;<- 2-L;7
!!
()*+,)*- ./+-0123 45123 6-*10/3
!"
"
!"#$%#!&
• 8/31= +-5132 • X
– c-2-*);- ) 2-;015; /W 3);-5#P1>VP/>5 /* 5;)2+)*+ =-0057 – O 5;)2+)*+ =-00 15 ) >*-V+-5132-+ =1*=:1; E/+:0- Y01Q- 3);-5R P1>VP/>5R E:0?>0-L-*R -;=7[ ); ;<- 0)B/:; 0-A-07
– c-2-*);- ;<- ^2)0 0)B/:; ;<); =)2 9- 5-2; W/* W)9*1=)?/27 – S<- 0)B/:; =/2;)125 ) 0)*3- 2:E9-* /W *-3:0)* 3-/E-;*1= 5<)>-5 =/**-5>/2+123 ;/ ;<- +1@-*-2; W)9*1=)?/2 0)B-*57
– 6)*1/:5 0/31= />?E1D)?/2 ;-=<21G:-5 )*- :5-+ ;/ /9;)12 ) =/5; -@-=?A- +-51327
– O0;-*2)?A-0BR ;<- ^2)0 ;)*3-; E)B 9- N1-0+ X*/3*)EE)90- c);- O**)B YNXcO[R ,<-*- ;-=<2/0/3B E)>>123 W*/E ;<- 3);- 0-A-0 2-;015; 15 :5-+7
– S<-*- E)B 9- =/2P1=?23 *-G:1*-E-2;5 +:*123 />?E1D)?/2_ • .121E1D- 2:E9-* /W 3);-57 • .121E1D- 2:E9-* /W 3);- 0-A-05 Y17-7 +-0)B[7
• K)2 9- >*/3*)EE-+ 12V^-0+7 • .:=< 3*-);-* P-L19101;BR 9:; 0-55 5>--+7
• .121E1D- 5132)0 ;*)251?/2 )=?A1?-5 Y17-7 +B2)E1= >/,-*[7 ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
!C
!F
&01)4 =0)C- #$ 01) ?)-#9$ G8.7 • T1E:0)?/2 W/* A-*1^=)?/2 – O; A)*1/:5 0-A-05_ 0/31= 0-A-0R 5 ,1;=< 0-A-0R =1*=:1; 0-A-0
HN? &G
• N/*E)0 A-*1^=)?/2 – 45-+ ;/ A-*1WB ;<- +-51325 ;<*/:3< W/*E)0 ;-=<21G:-5
• S-5;)9101;B )2)0B515 )2+ S-5; >)d-*2 3-2-*)?/2 – b-G:1*-+ W/* ;-5?23 ;<- E)2:W)=;:*-+ +-A1=-5
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
!H
!J
?)-#9$ P)C4)-)$0"+.$ •
Lecture 02: DESIGN REPRESENTATION
O +-5132 =)2 9- *->*-5-2;-+ ); A)*1/:5 0-A-05 W*/E ;<*-+1@-*-2; >/12;5 /W A1-,_ !7 a-<)A1/*)0 "7 T;*:=;:*)0 C7 X
PROF. INDRANIL SENGUPTA DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
•
K)2 9- =/2A-21-2;0B -L>*-55-+ 9B eV+1)3*)E7
()*+,)*- ./+-0123 45123 6-*10/3
!%
C
!"#$%#!&
BEHAVIORAL DOMAIN
STRUCTURAL DOMAIN
Programs
Gates
Specifications
Adders
Truth table
Registers Transistors / Layouts
PHYSICAL Cells DOMAIN Chips / Boards ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
!Z
"$
R)1",#.4"8 P)C4)-)$0"+.$ SS HT"EC8)
R)1",#.4"8 P)C4)-)$0"+.$
N:00 O++-*_
• T>-=1^-5 , ) >)*?=:0)* +-5132 5/2+ ;/ ) 31A-2 5-; /W 12>:;57
– – – –
• .)B 9- 5>-=1^-+ 9B_ – a//0-)2 -G:)?/25 – S)90-5 /W 12>:; )2+ /:;>:; A)0:-5
O a K
;,/ />-*)2+ 12>:;5 O )2+ a ) =)**B 12>:; K ) =)**B /:;>:; KB ) 5:E /:;>:; T
T NO
KB
• UL>*-55 12 ;-*E5 /W a//0-)2 -L>*-551/25_
– O03/*1;
T f O7a!7K! g O!7a!7K g O !7a7K! g O7a7K f O " a " K KB f O7a g O7K g a7K
– O03/*1;-=1)0 (I8 01Q- 6-*10/3 /* 6(I8
()*+,)*- ./+-0123 45123 6-*10/3
"!
()*+,)*- ./+-0123 45123 6-*10/3
""
• UL>*-55 12 6-*10/3 12 ;-*E5 /W ;*:;< ;)90- Y/20B KB 15 5,2[ •
primitive carry (Cy, A, B, C); input A, B, C; output Cy; table // A B C Cy 1 1 ? : 1 ; 1 ? 1 : 1 ; ? 1 1 : 1 ; 0 0 ? : 0 ; 0 ? 0 : 0 ; ? 0 0 : 0 ; endtable endprimitive
UL>*-55 12 6-*10/3 12 ;-*E5 /W a//0-)2 -L>*-551/25 module carry (S, Cy, A, B, C); input A, B, C; output S, Cy; assign assign endmodule
S = A ^ B ^ C; Cy = (A & B) | (B & C) | (C & A);
()*+,)*- ./+-0123 45123 6-*10/3
"C
()*+,)*- ./+-0123 45123 6-*10/3
"F
F
!"#$%#!&
=043*034"8 P)C4)-)$0"+.$ • T>-=1^-5 , =/E>/2-2;5 )*- 12;-*=/22-=;-+7 • M2 3-2-*)0R ;<- +-5=*1>?/2 15 ) 015; /W E/+:0-5 )2+ ;<-1* 12;-*=/22-=?/27
• O; ;<- 5;*:=;:*)0 0-A-0R ;<- 0-A-05 /W )95;*)=?/2 )*-_ – – – –
– K)00-+ &"+/$#+ 7 – K)2 9- 5>-=1^-+ ); A)*1/:5 0-A-057
S<- E/+:0- YW:2=?/2)0[ 0-A-0 S<- 3);- 0-A-0 S<- ;*)2515;/* 0-A-0 O2B =/E912)?/2 /W )9/A-
• M2 -)=< 5:==-551A- 0-A-0 E/*- +-;)10 15 *-A-)0-+ )9/:; ;<1E>0-E-2;)?/27
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
"H
HT"EC8)S M KU'#0 P#CC8) 2"44V M66)4 O" a"
OC a" KF
NO"
KC
NO"
O! a! K"
NO!
add4
O$ a$ K!
NO$
add
K$
carry TC
T"
T!
"J
sum
add
carry
add
sum
carry
add
sum
carry
sum
T$
• K/2515;5 /W W/:* W:00 )++-*57
*"44V W MXR Y RX2 Y 2XM
• U)=< W:00 )++-* =/2515;5 /W ) 5:E =1*=:1; )2+ ) =)**B =1*=:1;7
-3E W M " R " 2
• h- 125;)2?);- =)**B )2+ 5:E =1*=:1;5 ;/ =*-);- ) W:00 )++-*7
• h- 125;)2?);- W/:* W:00 )++-*5 ;/ =*-);- ;<- FV91; )++-*7
()*+,)*- ./+-0123 45123 6-*10/3
module add (cy_out, sum, a, b, cy_in); input a, b, cy_in; output sum, cy_out; sumx,s1y); (sum, a, b, cy_in); module add4 (s, cy4, cy_in, carry c1 (cy_out, a, b, cy_in); input [3:0] x, y; endmodule input cy_in; output [3:0] s; output cy4; wire [2:0] cy_out; add B0 (cy_out[0], s[0], x[0], y[0], ci); add B1 (cy_out[1], s[1], x[1], y[1], cy_out[0]); add B2 (cy_out[2], s[2], x[2], y[2], cy_out[1]); add B3 (cy4, s[3], x[3], y[3], cy_out[2]); endmodule ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
"&
"Z
module sum (sum, a, b, cy_in); input a, b, cy_in; output sum; wire t; xor x1 (t, a, b); xor x2 (sum, t, cy_in); endmodule
"%
module carry (cy_out, a, b, cy_in); input a, b, cy_in; output cy_out; wire t1, t2, t3; and g1 and g2 and g3 or g4 endmodule
(t1, a, b); (t2, a, c); (t3, b, c); (cy_out, t1, t2, t3);
()*+,)*- ./+-0123 45123 6-*10/3
C$
H
!"#$%#!&
@1V-#*"8 P)C4)-)$0"+.$
• X)*?)0 >?/2 W/* FV91; )++-* 12 6-*10/3
• S<- 0/,-5; 0-A-0 /W >-=1^=)?/27 – X;/VE)5Q 12W/*E)?/2 *-G:1*-+ 9B ;<- A)*1/:5 >*/=-55123 5;->5 12 ;*/=-557
• O; ;<- E/+:0- 0-A-0R ;<- >/0B3/2R )2+ ) =/00-=?/2 /W >/*;57 • O; ;<- 0)B/:; 0-A-0R ;<-*- =)2 9- ) 0)*3- 2:E9-* /W *-=;)230-5 /* >/0B3/257
()*+,)*- ./+-0123 45123 6-*10/3
module add4; input x[3:0], y[3:0], cy_in; output s[3:0], cy4; boundary [0, 0, 130, 500]; port x[0] aluminum width = 1 origin = [0, 35]; port y[0] aluminum width = 1 origin = [0, 85]; port cy_in polysilicon width = 2 origin = [70, 0]; port s[0] aluminum width = 1 origin = [120, 65]; add a0 add a1 endmodule
origin origin
= =
[0, 0]; [0, 120];
()*+,)*- ./+-0123 45123 6-*10/3
C!
C"
?#9#0"8 >2 ?)-#9$ G8.7S M Z3#*[ 8..[ Pre-layout Simulation
Design Entry Logic Synthesis
Logical design (front-end CAD)
HN? &G
Partitioning Post-layout Simulation
Floorplanning Placement
Circuit Extraction
Physical design (back-end CAD)
Routing ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
CC
CF
\1V 6. 7) 3-) ;)4#8.9O • S/ +-5=*19- ) +131;)0 5B5;-E )5 ) 5-; /W 87,0/"#7
Lecture 03: GETTING STARTED WITH VERILOG
– U)=< /W ;<- E/+:0-5 ,100 <)A- )2 12;-*W)=- ;/ /;<-* E/+:0-5R 12 ) ++1?/2 ;/ 1;5 +-5=*1>?/27 – S,/ ,)B5 ;/ 5>-=1WB ) E/+:0-_ )[ aB 5>-=1WB123 1;5 12;-*2)0 0/31=)0 5;*:=;:*- Y=)00-+ #+)0*+0)(/)".)"#"&+(;7&[7
PROF. INDRANIL SENGUPTA DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
9[ aB +-5=*19123 1;5 9-<)A1/* 12 ) >*/3*)EV01Q- E)22-* Y=)00-+ :"5(9$7)(/ )".)"#"&+(;7&[7
– S<- E/+:0-5 )*- 12;-*=/22-=;-+ :5123 &"+#R ,<1=< )00/, ;<-E ;/ ,/*Q ,1;< -)=< /;<-*7
()*+,)*- ./+-0123 45123 6-*10/3
CJ
J
!"#$%#!&
\1"0 $)T0O • Oi-* 5>-=1WB123 ;<- 5B5;-E 12 6-*10/3R ,- =)2 +/ ;,/ ;<1235_ )[ T1E:0);- ;<- 5B5;-E )2+ A-*1WB ;<- />-*)?/27 • j:5; 01Q- *:22123 ) >*/3*)E ,*1d-2 12 5/E- <13-=1^-5 ;<- 12>:;5 ;<); )*- ;/ 9)>>01-+ )2+ ;<- ,)B ;<- /:;>:;5 )*- ;/ 9- +15>0)B-+7
– h<-2 ;<- +-5132 15 E)>>-+ ;/ <)*+,)*-R ,- +/ 2/; 2--+ ;-5; 9-2=< W/* 51E:0)?/2 )2B E/*-7 – T132)05 =)2 9- )=;:)00B )>>01-+ W*/E 5/E- 5/:*=- Y-737 5132)0 3-2-*);/*[R )2+ *-5>/25- -A)0:);-+ 9B 5/E- -G:1>E-2; Y-737 /5=100/5=/>- /* 0/31= )2)0BD-*[7
9[ 45- ) 5B2;<-515 ;//0 ;/ E)> 1; ;/ <)*+,)*-7 • K/2A-*;5 1; ;/ ) 2-;015; /W 0/,V0-A-0 >*1E1?A-57 • S<- <)*+,)*- =)2 9- ?../$*(;7& @."*$A* B&+"%)(+", C$)*0$+ YOTMK[7 • k* -05-R 1; =)2 9- D$"/, E)7%)(88(:/" F(+" ?))(- YNXcO[7
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
C&
• 45123 OTMK )5 <)*+,)*- ;)*3-;l
6-*10/3 ./+:0-Y5[
– h<-2 <13< >-*W/*E)2=- )2+ <13< >)=Q123 +-251;B 15 *-G:1*-+7 – h<-2 ;<- E)2:W)=;:*-+ <)*+,)*- 15 -L>-=;-+ ;/ 9- :5-+ 12 0)*3- 2:E9-*5 Y-737 >*/=-55/* =<1>5[7
• 45123 NXcO )5 <)*+,)*- ;)*3-;l
S-5; a-2=<
C%
6-*10/3 ./+:0-Y5[
TM.48OSU
Te\S(UTMT
– h<-2 W)5; ;:*2)*/:2+ ?E- 15 * -G:1*-+ ;/ A)01+);- ;<- +-51327 UA)0:);b-5:0;
– S<- E)>>123 =)2 9- +/2- 12 ;<- 0)9/*);/*B 1;5-0W ,1;< ) NXcO Q1; )2+ )55/=1);-+ 5/i,)*-7
OTMK
NXcO
– S<-*- 15 ) ;*)+-/@ 12 >-*W/*E)2=-7 ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
CZ
5.7 0. =#E38"0)O
F$
5.7 0. =V$01)-#])O
• N*-- 5/i,)*- )A)10)90-_
• N/* NXcO )5 ;)*3-;R 5>-=1^= 5/i,)*- 15 *-G:1*-+_
– M=)*:5 6-*10/3 Y_##1A-*10/371=)*:57=/E[
– n1012L MTU /* 6M6OIk W/* n1012L NXcO Q1;57
– cSmh)A- Y_##3;Q,)A-75/:*=-W/*3-72-;[
– T1E10)* 5/i,)*- )A)10)90- W*/E /;<-* NXcO A-2+/*57
• K/EE-*=1)0 5/i,)*- Y,1;< W*-- A-*51/25 )A)10)90-[_
• N/* OTMK )5 ;)*3-;R =/EE-*=1)0 KOI ;//05 -L15;_
– N*/E n1012L YMTUR 61A)+/[
– S//0 5:1;- W*/E K)+-2=-7
– .)2B E/*-7
– S//0 5:1;- W*/E TB2/>5B57 – T-A-*)0 /;<-*5 `
()*+,)*- ./+-0123 45123 6-*10/3
F!
()*+,)*- ./+-0123 45123 6-*10/3
F"
&
!"#$%#!&
=*.C) ./ 01#- 2.34-)
5.7 0. =#E38"0) ;)4#8.9 !.638)B-F
• h- 5<)00 9- +15=:55123 W-);:*-5 /W ;<- 6-*10/3 0)23:)3-R )2+ A-*1WB123 ;<- +-5132 ;<*/:3< 51E:0)?/27
• 45123 ) ;-5; 9-2=< ;/ A-*1WB ;<- W:2=?/2)01;B /W ) +-5132 =/+-+ 12 6-*10/3 Y=)00-+ I-5132V:2+-*VS-5; /* I4S[R =/E>*15123 /W_
– (/, ;/ +-5132 =/E912)?/2)0 )2+ 5-G:-2?)0 +131;)0 =1*=:1;5l
– O 5-; /W 5?E:0:5 W/* ;<- I4S7
– (/, ;/ A-*1WB ;<- W:2=?/2)01;B ;<*/:3< 51E:0)?/2l
– O E/21;/*R ,<1=< =)>;:*-5 /* )2)0BD-5 ;<- /:;>:;5 /W ;<- I4S7
• h- 5<)00 2/; 9- +15=:55123 ;<- 5B2;<-515 ;//05o ,-A-*_
• b-G:1*-E-2;_
– T<)00 +15=:55 A)*1/:5 ;*1=Q5 ;<); <-0> 12 5B2;<-5157
– S<- 12>:;5 /W ;<- I4S 2--+ ;/ 9- =/22-=;-+ ;/ ;<- ;-5; 9-2=<7
– T<)00 +15=:55 ;<- =/EE/2 +-5132 P/, p ^*5; =/+- ;<- E/+:0-5 12 9-<)A1/*)0 +-5132 5;B0-R )2+ ;<-2 ;*)250);- 5-0-=;-+ 5:95-; /W E/+:0-5 ;/ 5;*:=;:*)0 +-5132 5;B0-7
– S<- /:;>:;5 /W ;<- I4S 2--+5 )05/ ;/ 9- =/22-=;-+ ;/ ;<- ;-5; 9-2=<7
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
FC
M$ HT"EC8) SUTS aU\K(
T?E:0:5
./21;/*
I-5132 42+-* S-5; YI4S[
O a
c!
K aq I
c"
U N
cC
module example (A,B,C,D,E,F,Y); input A,B,C,D,E,F; output Y; wire t1, t2, t3, Y;
;!
;"
cF
;C
e
nand #1 and #2 nor #1 nand #1 endmodule
G1 G2 G3 G4
(t1,A,B); (t2,C,~B,D); (t3,E,F); (Y,t1,t2,t3);
h- =)2 =/E912- +-=0)*)?/25 /W 5)E- ;B>- /W 3);- ;/3-;<-*_ nand
()*+,)*- ./+-0123 45123 6-*10/3
#1 G1 (t1,A,B), G4 (Y,t1,t2,t3);
()*+,)*- ./+-0123 45123 6-*10/3
FH
FF
FJ
• T1E:0)?/2 *-5:0;5_
module testbench; reg A,B,C,D,E,F; wire Y; example DUT(A,B,C,D,E,F,Y);
0 A=x, B=x, C=x, D=x, E=x, F=x, Y=x
)T"EC8)X,
module initial begin $monitor ($time,” A=%b, B=%b, C=%b, D=%b, E=%b, F=%b, Y=%b”, A,B,C,D,E,F,Y); #5 A=1; B=0; C=0; D=1; E=0; F=0; #5 A=0; B=0; C=1; D=1; E=0; F=0; #5 A=1; C=0; #5 F=1; #5 $finish; end endmodule
wire
example (A,B,C,D,E,F,Y); t1, t2, t3, Y;
nand #1 and #2 nor #1 nand #1 endmodule
G1 G2 G3 G4
(t1,A,B); (t2,C,~B,D); (t3,E,F); (Y,t1,t2,t3);
5 A=1, B=0, C=0, D=1, E=0, F=0, Y=x 8 A=1, B=0, C=0, D=1, E=0, F=0, Y=1 10 A=0, B=0, C=1, D=1, E=0, F=0, Y=1 13 A=0, B=0, C=1, D=1, E=0, F=0, Y=0 15 A=1, B=0, C=0, D=1, E=0, F=0, Y=0 18 A=1, B=0, C=0, D=1, E=0, F=0, Y=1 20 A=1, B=0, C=0, D=1, E=0, F=1, Y=1 2.EE"$6 #$ #;)4#8.9S a) iverilog -o mysim example.v example-test.v b) vvp mysim
)T"EC8)U0)-0X,
()*+,)*- ./+-0123 45123 6-*10/3
F&
()*+,)*- ./+-0123 45123 6-*10/3
F%
%
!"#$%#!&
module testbench; reg A,B,C,D,E,F; wire Y; example DUT(A,B,C,D,E,F,Y); initial begin $dumpfile (“example.vcd”); $dumpvars (0,testbench); $monitor ($time,” A=%b, B=%b, C=%b, D=%b, E=%b, F=%b, Y=%b”, A,B,C,D,E,F,Y); #5 A=1; B=0; C=0; D=1; E=0; F=0; #5 A=0; B=0; C=1; D=1; E=0; F=0; #5 A=1; C=0; #5 F=1; #5 $finish; end endmodule
I. 6#-C8"V 01) 7",)/.4Eb:2 ;<- =/EE)2+_ gtkwave example.vcd
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
FZ
HN? &G
H$
Lecture 04: VLSI DESIGN STYLES (PART 1) PROF. INDRANIL SENGUPTA DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
()*+,)*- ./+-0123 45123 6-*10/3
H!
;<=> ?)-#9$ 2V*8) System Specifications
• 8)*3- 2:E9-* /W +-A1=-5 • k>?E1D)?/2 *-G:1*-E-2;5 W/* <13< >-*W/*E)2=• S1E-V;/VE)*Q-; =/E>-??/2 • K/5;
;<=> ?)-#9$ 2V*8) B*.$06XF
Automation
Manual
Chip
HC
!7 "7 C7 F7 H7 J7 &7 %7
TB5;-E 5>-=1^=)?/2 N:2=?/2)0 +-5132 8/31= +-5132 K1*=:1; +-5132 X
()*+,)*- ./+-0123 45123 6-*10/3
HF
Z
!"#$%#!&
;"4#.3- ?)-#9$ =0V8)-
@1V-#*"8 ?)-#9$
• X*/3*)EE)90- 8/31= I-A1=-5
• K/2A-*;5 ) =1*=:1; +-5=*1>?/2 12;/ ) 3-/E-;*1= +-5=*1>?/27
– N1-0+ X*/3*)EE)90- c);- O**)B YNXcO[
– S<15 +-5=*1>?/2 15 :5-+ W/* W) 9*1=)?/2 /W ;<- =<1>7
– c);- O**)B
• a)51= 5;->5 12 ;<- >
• T;)2+)*+ K-00 YT-E1VK:5;/E I-5132[ • N:00VK:5;/E I-5132
X)*??/2123R P//*>0)22123 )2+ >0)=-E-2; b/:?23 T;)?= ?E123 )2)0B515 T132)0 12;-3*1;B )2+ =*/55;)0Q )2)0B515 X
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
HH
HJ
\1#*1 ?)-#9$ =0V8) 0. :-)O • a)51=)00B ) ;*)+-/@ )E/23 5-A-*)0 +-5132 >)*)E-;-*57 – ()*+,)*- =/5;
G#)86 @4.94"EE"'8) _"0) M44"V BG@_MF
– K1*=:1; +-0)B – S1E- *-G:1*-+
• k>?E1D123 /2 ;<-5- >)*)E-;-*5 15 /i-2 =/2P1=?237
()*+,)*- ./+-0123 45123 6-*10/3
H&
H"-) ./ :-)
\1"0 6.)- G@_M .`)4O
• NXcO =<1>5 )*- E)2:W)=;:*-+ 9B ) 2:E9-* /W A-2+/*5_
• 45-* # N1-0+ X*/3*)EE)9101;B7
– n1012LR O0;-*)R O=;-0R -;=7
– O**)B /W 0/31= =-005 =/22-=;-+ A1) */:?23 =<)22-057
– X*/+:=;5 A)*B ,1+-0B 12 =)>)9101;B7
– I1@-*-2; ;B>-5 /W =-005_
• NXcO +-A-0/>E-2; 9/)*+5 )2+ KOI 5/i,)*- )A)10)90- W*/E E)2B 5-00-*57
• T>-=1)0 M#k =-0057 • 8/31= =-005 Y.)120B 0//Q:> ;)90-5 Y84S[ ,1;< )55/=1);-+ *-315;-*5[7
– M2;-*=/22-=?/2 9-;,--2 =-005_
– O00/,5 *)>1+ >*/;/;B>123 12 0)9/*);/*B7
• 45123 TbO. 9)5-+ 5,1;=<-57 • 45123 )2?VW:5- -0-E-2;57
()*+,)*- ./+-0123 45123 6-*10/3
HZ
()*+,)*- ./+-0123 45123 6-*10/3
J$
!$
!"#$%#!&
a#8#$T a2KQQQ M4*1#0)*034) CLB
a2KQQQH 2.$b934"'8) <.9#* R8.*[
CLB
Switch Matrix
CLB
CLB
Programmable Interconnect
I/O Blocks (IOBs)
Configurable Logic Blocks (CLBs) ()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
J!
2
J"
<..[ :C I"'8)- B<:IF
• S,/ FV12>:; W:2=?/2 3-2-*);/*5 – ME>0-E-2;-+ :5123 8//Q:> S)90-5 :5123 !JL! bO.7
•
K/E912);/*1)0 8/31= 15 5;/*-+ 12 !JL! TbO. 8//Q 4> S)90-5 Y84S5[ 12 ) K8a7
•
K)>)=1;B 15 01E1;-+ 9B 2:E9-* /W 12>:;5R 2/; =/E>0-L1;B7
•
K/5- ;/ :5- -)=< W:2=?/2 3-2-*);/* )5 FV12>:; 0/31= Y84S[ /* )5 <13--+ bO.7
– K)2 )05/ 1E>0-E-2; !JL! E-E/*B7
• S,/ !V91; *-315;-*5 – U)=< =)2 9- =/2^3:*-+ )5 P1>VP/> /* 0);=<7 – M2+->-2+-2; =0/=Q >/0)*1;B7 – TB2=<*/2/:5 )2+ )5B2=<*/2/:5 T-; # b-5-;7
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
JC
<:I !"CC#$9S M$ HT"EC8)
JF
M4)" U ?)8"V I4"6).`
• O W:2=?/2_ 6 G ?H>I J IH>C>! • S<- E)>>123 >*/=-55_ – K*-);- ;<- ;*:;< ;)90- /W ;<- FVA)*1)90- W:2=?/27 – 8/)+ ;<- /:;>:; =/0:E2 12;/ ;<- TbO. =/**-5>/2+123 ;/ ;<- 84S7 – O>>0B ;<- W:2=?/2 12>:;5 ;/ ;<- 84S 12>:;57
• O2B FVA)*1)90- W:2=?/2 =)2 9- *-)01D-+7 – \-;015; ;/ 84S E)>>123 15 )2 12;-*-5?23 +-5132 ;*)+-/@7
()*+,)*- ./+-0123 45123 6-*10/3
c1A-2 2-;015;
JH
C 84S5 I-0)B f "
()*+,)*- ./+-0123 45123 6-*10/3
F 84S5 I-0)B f C
JJ
!!
!"#$%#!&
a#8#$T G@_M P.3+$9 a2KQQQa >c& R8.*[ ?#"94"E
!7
N)5; I1*-=; M2;-*=/22-=; p K8a ;/ K8a
"7
c-2-*)0 X:*>/5- M2;-*=/22-=; p 45-5 5,1;=< E);*1L
CLB
Switch Matrix
CLB
Switch Matrix
CLB
()*+,)*- ./+-0123 45123 6-*10/3
J&
()*+,)*- ./+-0123 45123 6-*10/3
CLB
J%
G@_M ?)-#9$ G8.7 • I-5132 U2;*B – M2 5=<-E)?=R 6(I8R /* 6-*10/37
HN? &G
• ME>0-E-2;)?/2 – X0)=-E-2; r b/:?23 – a1;5;*-)E 3-2-*)?/2 – O2)0BD- ?E123R A1-, 0)B/:;R 51E:0)?/2R -;=7
• I/,20/)+ – I1*-=;0B ;/ n1012L <)*+,)*- +-A1=-5 ,1;< :201E1;-+ *-=/2^3:*)?/257 ()*+,)*- ./+-0123 45123 6-*10/3
Lecture 05: VLSI DESIGN STYLES (PART 2)
JZ
()*+,)*- ./+-0123 45123 6-*10/3
&$
_"0) M44"V
PROF. INDRANIL SENGUPTA DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
!"
!"#$%#!&
>$04.63*+.$ • c);- )**)B 1E>0-E-2;)?/2 *-G:1*-5 ) ;,/V5;-> E)2:W)=;:*123 >*/=-55_
• M2 A1-, /W ;<- 5>--+ /W >*/;/;B>123 =)>)9101;BR ;<- 3);- )**)B YcO[ =/E-5 )i-* ;<- NXcO7
)[ S<- ^*5; ><)5-R ,<1=< 15 9)5-+ /2 3-2-*1= Y5;)2+)*+[ E)5Q5R *-5:0;5 12 )2 )**)B /W :2=/EE1d-+ ;*)2515;/*5 /2 -)=< cO =<1>7
• I-5132 1E>0-E-2;)?/2 /W – NXcO =<1> 15 +/2- ,1;< :5-* >*/3*)EE123R – c);- )**)B 15 +/2- ,1;< E-;)0 E)5Q +-5132 )2+ >*/=-551237
()*+,)*- ./+-0123 45123 6-*10/3
9[ S<-5- :2=/EE1d-+ =<1>5 =)2 9- =:5;/E1D-+ 0);-*R ,<1=< 15 =/E>0-;-+ 9B +-^2123 ;<- E-;)0 12;-*=/22-=;5 9-;,--2 ;<- ;*)2515;/*5 /W ;<- )**)B7
()*+,)*- ./+-0123 45123 6-*10/3
&C
&F
• S<- cO =<1> :?01D)?/2 W)=;/* 15 <13<-* ;<)2 ;<); /W NXcO7 – S<- :5-+ =<1> )*-) +1A1+-+ 9B ;<- ;/;)0 =<1> )*-)7
• K<1> 5>--+ 15 )05/ <13<-*7 – ./*- =:5;/E1D-+ +-5132 =)2 9- )=<1-A-+ ,1;< E-;)0 E)5Q +-513257
• SB>1=)0 3);- )**)B =<1>5 =)2 1E>0-E-2; E1001/25 /W 0/31= 3);-57
()*+,)*- ./+-0123 45123 6-*10/3
()*+,)*- ./+-0123 45123 6-*10/3
&H
&J
>$04.63*+.$ • k2- /W ;<- E/5; >*-A)0-2; +-5132 5;B0-57
=0"$6"46 2)88 R"-)6 ?)-#9$
– O05/ =)00-+ 5-E1V=:5;/E +-5132 5;B0-7 – b-G:1*-5 +-A-0/>123 W:00 =:5;/E E)5Q 5-;7
• a)51= 1+-)_ – K/EE/20B :5-+ 0/31= =-005 )*- +-A-0/>-+R )2+ 5 ;/*-+ 12 ) 5;)2+)*+ =-00 019*)*B7 – SB>1=)0 019*)*B E)B =/2;)12 ) W-, <:2+*-+ =-005 Y B&9")+")#3 K?K! %(+"#3 KLM %(+"#3 ?LB %(+"#3 L?B %(+"#3 NO+7OP QRS3 !O/(+*5"#3 =$.O =7.#3 "+*>[7 ()*+,)*- ./+-0123 45123 6-*10/3
&%
!C
!"#$%#!&
=0"$6"46 2)88 HT"EC8)
21"4"*0)4#-+* ./ 01) 2)88• U)=< =-00 15 +-5132-+ ,1;< ) ^L-+ <-13<;7
b/:?23 K<)22-0
– S/ -2)90- ):;/E);-+ >0)=-E-2; /W ;<- =-005R )2+ */:?23 /W 12;-*V=-00 =/22-=?/257 – O 2:E9-* /W =-005 =)2 9- )9:d-+ 51+-V9BV51+- ;/ W/*E */,57
.)+- ;/ 5;)=Q 51+- 9B 51+-
• S<- >/,-* )2+ 3*/:2+ *)105 ;B>1=)00B *:2 >)*)00-0 ;/ :>>-* )2+ 0/,-* 9/:2+)*1-5 /W =-007 – \-13<9/*123 =-005 5<)*- ) =/EE/2 >/,-* )2+ 3*/:2+ 9:57
• S<- 12>:; )2+ /:;>:; >125 )*- 0/=);-+ /2 ;<- :>>-* )2+ 0/,-* 9/:2+)*1-5 /W ;<- =-007 ()*+,)*- ./+-0123 45123 6-*10/3
&Z
G8..4C8"$ /.4 =0"$6"46 2)88 ?)-#9$
• N1L-+ <-13<; • h1+;< =)2 A)*B • K)2 )9:; ); 6II )2+ c\I b/:?23 K<)22-0
()*+,)*- ./+-0123 45123 6-*10/3
%$
=0"$6"46 2)88 <"V.30
• M251+- ;<- M#k W*)E- ,<1=< 15 *-5-*A-+ W/* M#k =-005R ;<- =<1> )*-) =/2;)125 */,5 /* =/0:E25 /W 5;)2+)*+ =-0057 – a-;,--2 =-00 */,5 )*- =<)22-05 W/* */:?237 – kA-*V;<-V=-00 */:?23 15 )05/ >/55190-7
• S<- >0)=-+ 12;/ */,5R ;<-1* <-13<;5 E);=<7 – \-13<9/*123 =-005 =)2 )9:; 51+-V9BV51+-R ,<1=< >*/A1+-5 2);:*)0 =/22-=?/25 W/* >/,-* )2+ 3*/:2+ 012-5 12 -) =< */,7
()*+,)*- ./+-0123 45123 6-*10/3
%!
()*+,)*- ./+-0123 45123 6-*10/3
%"
=0"$6"46 2)88 <"V.30
G388 23-0.E ?)-#9$
()*+,)*- ./+-0123 45123 6-*10/3
%C
!F
!"#$%#!&
>$04.63*+.$ • T;)2+)*+V=-005 9)5-+ +-5132 15 /i-2 =)00-+ 5-E1 =:5;/E +-51327 – S<- =-005 )*- >*-V+-5132-+ W/* 3-2-*)0 :5-7
• S<- E/5; *13/*/:5 W:00 =:5;/E +-5132 =)2 9- ;<- +-5132 /W ) E-E/*B =-007 – T;)?= /* +B2)E1=7
• M2 ;<- W:00 =:5;/E +-5132R ;<- -2?*- E)5Q +-5132 15 +/2- )2-, ,1;E-2; =/5; /W 5:=< ) +-5132 5;B0- 15 >*/<191?A-0B <13<7 – S<- =/2=->; /W +-5132 *-:5- 15 9-=/E123 >/>:0)* ;/ *-+:=- +-5132 =B=0?E- )2+ =/5;7
()*+,)*- ./+-0123 45123 6-*10/3
– T12=- ;<- 5)E- 0)B/:; +-5132 15 *->01=);-+R ;<-*- ,/:0+ 2/; 9- )2B )0;-*2)?A- ;/ <13< +-251;B E-E/*B =<1> +-51327
• N/* 0/31= =<1> +-5132R ) 3//+ =/E>*/E15- =)2 9- )=<1-A-+ 9B =/E912123 +1@-*-2; +-5132 5;B0-5 /2 ;<- 5)E- =<1>7 – T;)2+)*+ =-005R +);)V>);< =-005 )2+ X8O57
()*+,)*- ./+-0123 45123 6-*10/3
%H
%J
• M2 *-)0 W:00V=:5;/E 0)B/:; 12 ,<1=< ;<- 3-/E-;*BR /*1-2;)?/2 )2+ >0)=-E-2; /W -A-*B ;*)2515;/* 15 +/2- 12+1A1+:)00B 9B ;<+-5132-*7 M /388 *3-0.E 8"V.30
– I-5132 >*/+:=?A1;B 15 :5:)00B A-*B 0/, Y;B>1=)00B !$ ;/ "$ ;*)2515;/*5 >-* +)BR >-* +-5132-*[7
• M2 +131;)0 K.kT 68TMR W:00V=:5;/E +-5132 15 *)*-0B :5-+ +:- ;/ ;<- <13< 0)9/* =/5;7 – UL=->?/25 ;/ ;<15 12=0:+- ;<- +-5132 /W <13*/+:=;5 5:=< )5 E-E/*B =<1>5R <13-*W/*E)2=- E1=*/>*/=-55/*5 )2+ NXcO E)5;-*57 ()*+,)*- ./+-0123 45123 6-*10/3
%&
()*+,)*- ./+-0123 45123 6-*10/3
%%
2.EC"4#-.$ ME.$9 ;"4#.3- ?)-#9$ =0V8)Design Style FPGA
Gate array
Standard cell
Full custom
Cell size
Fixed
Fixed
Fixed height
Variable
Cell type
Programmable
Fixed
Variable
Variable
Cell placement
Fixed
Fixed
In row
Variable
Interconnect
Programmable
Variable
Variable
Variable
Design time
Very fast
Fast
Medium
Slow
()*+,)*- ./+-0123 45123 6-*10/3
HN? &G
%Z
()*+,)*- ./+-0123 45123 6-*10/3
Z$
!H