Page 1
CHAPTER 1
INTRODUCTION
1.1 Company Background
1.1.1 Company Profiles
IC Microsystems Sdn. Bhd. is a Fabless IC design Company which was founded in
2001 by Abd Rashid Munir an experienced semiconductor industry professional. The
company has been incorporated in Malaysia with headquarter in Cyberjaya, the Malaysia's
heart of Multimedia Super Corridor. Since its inception it has become a leader in RF and
mixed signal IC design in Malaysia.
The company has developed world class products in data converters,
telecommunication and high frequecy RFIC chips. It already boast a healthy portfolio of
some of the best-in-class Digital to Analog Converters, RF communication devices and
telecommunication products devices.
The company owes its phenomenal success to its vision of investing in cutting edge
technologies, hiring and training leading industry professionals to develop world class
products at highly competitive prices.
Figure 1: IC Microsystems Building
1
Page 2
Figure 2 : ICMIC Logo
Day Working Time Break Time Working Time
Monday - Thursday 8.30 am – 12.00 pm 12.00 pm – 1.00 pm 1.00 pm – 5.30 pm
Friday 8.30 am – 12.00 pm 12.00 pm – 2.00 pm 2.00 pm – 5.30 pm
Table 1 : ICMIC working hours
1.1.2 Mission Statement
ICmic envisages being amongst the leader in mixed-signals and RF IC products
through teams of highest competency and integrity.
1.1.3 Fabless Model
ICmic’s core competency is in the field of IC design, device modeling, simulation,
layout and testing. Other operations like masking, foundry and packaging are outsourced to
a number of vendors who specialize in such services. However it is ensured that only the
best vendors are qualified and selected for outsource of such services.
1.1.4 Company Products
ICmic offers some of the best-in-class integrated circuit products including digital to
analog converters, RF IC and products for telecommunication markets.
ICmic products cater for many application markets including telecommunication,
industrial process control, ATE, instrumentation and programmable logic control. Many of
2
Page 3
our products have been acknowledged by various respected publications to be among the
most advanced in their respected categories.
ICmic is committed to providing great performance at an extremely competitive
price to our customers. Thus we have a fast growing customer base in many countries who
are finding the advantage of having ICmic products in their applications.
1.1.5 Company Services
a. IC Design Services
Committed to customer satisfaction, quality, reliability and management excellence; IC
Microsystems is competent to deliver IC development solutions that reduce time-to-market,
product cost and development risk.
Their broad range of proven expertise means they can fully understand their customers'
needs, which is the first key step to delivering solutions that work - first time and on-time.
b. Training solution & Support
ICMIC provide training classes for all clients using Silvaco EDA tools.
c. EDA tools distributor
ICmic have been appointed by Silvaco International as the main distributor for Silvaco
EDA tools in Malaysia.
The TCAD product list by Silvaco International:
Virtual Wafer Fab
ATHENA
ATLAS
VICTORY
MERCURY - Fast Blaze, Mocasim
VYPER - UTMOST, SPAYN
3
Page 4
DISCOVERY - EXACT, QUEST, CLEVER, STELLAR
d. Value-added services
Expand the power of Silvaco EDA tools with their custom designed tools.
Figure 3 : ICMIC Products and Services
1.1.6 Guided Industrial Training
IC Microsystems Sdn. Bhd. (or ICmic) is offering Guided Industrial Training
Program in collaboration with Ministry of Higher Education in Malaysia. This internship
program specializes in microelectronic design and provides a unique opportunity for
university undergraduate students or fresh graduates to develop hands-on expertise in IC
Design. This program provides exposure to students using step-by-step approach in IC
Design technique, based on proven commercial IC design process developed by ICmic.
Some important aspects of this program are summarized below:
a. Internship Schedule
Internship modules are held in 4-week time slots distributed throughout the year. Three
4-week slots are required to complete one module.
b. Certificate
Certificate will be given by ICmic to Internees upon successful completion of individual
modules. Three 4-week slots are required to complete one module..
4
Page 5
1.1.7 ICMIC Organization Chart
Figure 4 : ICMIC Organization Chart
1.2 Scope Of Training
Firstly, in ICMIC all the trainee will be divided into groups. Where each group consists
of 8 to 9 people. This group is call functional group and each group have their own
supervisor and projects. I had been sorted into group F94. This group consist of 9 trainee
from various University and the supervisor for my functional group is Madam Usha Priya
Krishnasamy and the group projects is on making a website for user interface. Other than group
5
Page 6
project, trainee are also needed to completed three modules. This three module can be seen in
table 2.
No Module Starting
Date
Ending
Date
Supervisor
1 A1 : Process and Device
Characterization
15/07/2013 16/08/2013 En Saiful Bahari Bin
Samsuri
2 A2 : Digital IC Design 24/06/2013 12/07/2013 Mr A.Rahman
3 A3 : Digital IC Design 19/08/2013 30/08/2013 Cik Nor Intan
Zazalinda Aizuddin
Table 2 : Module Schedule
No Topic
1 Basic HTML
2 HTML 5
3 JAVA SCRIPT
4 JQuery
Table 3 : Topic Learning in Project group
6
Page 7
CHAPTER 2
THE TRAINING PROGRAMME
2.1 Module for Guided Industrial Training
Module A.1 : Process And Device Characterization (Semiconductor Fabrication Process &
Device Charaterization for CMOS Technology using SILVACO TCAD tools)
No Assignment Deadline
1 A1001A Introduction to Semiconductor Fabrication
Process
17 JULY 2013
2 A1002A Semiconductor Fabrication Process And
Device Characterization for CMOS
25 JULY 2013
3 A1002B Semiconductor Fabrication Process And
Device Characterization for CMOS Technology
16 AUGUST 2013
Table 4 : Assignment for Module A.1
Module A.2: Digital IC Design (semiconductor physics and characterisation of PMOS,
NMOS, CMOS Inverter circuits using SILVACO EDA tools)
No Assignment Deadline
1 A2001A MOSFET Characterization 26 JUNE 2013
2 A2001B MOSFET Characterization 2 JULY 2013
3 A2002A CMOS Inverter Design (Preliminary) 4 JULY 2013
4 A2002B CMOS Inverter Design 12JULY2013
Table 5 : Assignment for Module A.2
Module A.3 : Digital IC Design (Design and layout of combinational digital logic
Arithmetic circuits using SILVACO EDA tools.
No Assignment Deadline
1 A3001A CMOS Adder Design (Preliminary) 20 AUGUST2013
2 A3001B CMOS Adder Deisgn 30 AUGUST 2013
Table 6 : Assignment for Module A.3
2.2 Summary Of Works
7
Page 8
During the 10 weeks of industrial training, there were two types of task that need to be
completed which were Module (70%) and Functional (30%). Table below summarized the
works done within the ten weeks of industrial training.
WEEKS
SUMMARY OF WORK DONE
Week 1 Report in ICMIC at 8.30AM
Briefing by Internship Coordinator for ICMIC, Cik Che'e Azliza binti
Mohd Radzi
Sorted into group F94 and being placed at ICD3
Daily Briefing Session (DBS)
Briefing by En. A.Rahman regarding Module A2
Module A2001A : Preliminary Assignment about MOSFET
characterization
Learning and understand the usage of Gateway and Expert software by
referring on its manual
Module A2001B: MOSFET characterization
Week 2 Daily Briefing Session (DBS)
Module A2001B : MOSFET Characterization
Module A2002A : CMOS Inverter (Preliminary)
Meeting with functional supervisor
Divided the task on HTML Basic assignment
Week 3 Module A2002B : CMOS Inverter Design
Functional project assignment on HTML5
8
Page 9
Week 4 Module A1001A : Introduction to Semiconductor Fabrication Process
Functional project assignment on Javascript
Week 5 Module A1002A: Semiconductor Fabrication Process And Device
Characterization for CMOS
Week 6 Functional Project Assignment on JQuery Ajax
Learning and understand the Athena and Atlas software by referring
the manual
Module A1002B: Semiconductor Fabrication Process And Device
Characterization for CMOS Technology
Week 7 Module A1002B: Semiconductor Fabrication Process And Device
Characterization for CMOS Technology
Week 8 Module A3001A: CMOS Adder Design (Preliminary)
Week 9 Module A3001B : CMOS Adder Design
Prepare slide presentation for lecturer visit
Week 10 .Module A3001B : CMOS Adder Design
Submit ICMIC feedback form for last internship
Table 7 : Summarization of work done
2.3 Module A1: Fabrication Process and Device Characterization using Technology
Computer Aided Design (TCAD) tools.
9
Page 10
2.3.1 Introduction
CMOS technology has become more popular mainly due to the lower power
dissipation, practicality and lower cost of fabrication. The possibility of placing both analog
and digital circuits on the same chip so as to improve the overall performance also has
made CMOS technology more attractive.
There are many step in fabrication process which is oxidation, threshold voltage
implant, deposition, etching, doping, spacer oxide, ion implantation, annealing and others.
2.3.2 ATHENA
Athena is a SILVACO Inc’s Version of SUPREM and is normally used in
conjunction with virtual wafer fab interactive tools which include DECKBUILD, TONY
PLOT, DEVEDIT, MASKVIEWS and OPTIMIZER. DECKBUILD provides an
interactive run time environment. TONYPLOT supplies scientific visualization
capabilities. DEVEDIT is an interactive tool for structure and mesh, MASKLVIEWS is an
IC Layout Editor. The OPTIMIZER supports black box optimizations across
multiple simulators. ATHENA is frequently used in conjunction with ATLAS device
simulator. ATHENA predicts the physical structure that result from processing. These
physical structures are used as input by ATLAS, which then predicts the electrical
characteristics associated with specified bias conditions.
2.3.3 ATLAS
ATLAS can be defined as device simulation tool. To run ATLAS it must fully
integrated with ATHENA process simulation software. ATLAS is a modular framework for
one, two and three dimensional semiconductor device simulation. ATLAS enables from the
coding stated to simulate the electrical, optical, and thermal behavior of semiconductor
devices. ATLAS provides a physics-based, easy to use, modular, and extensible platform to
analyze DC, AC, and time domain responses for all semiconductor based technologies in 2
10
Page 11
and 3 dimensions. Result and process variation problems for optimal combination of speed,
power, density, breakdown, leakage, luminosity, or reliability.
2.3.4 IC Fabrication Process
a) Oxidation
In the process of oxidation, a protective layer of silicon dioxide is grown on the
surface of the silicon wafer. Oxidation is required throughout the entire IC fabrication
process. Silicon dioxide has several uses which is to act as a mask against implant or
diffusion of dopant into silicon; to provide surface passivation so that wafers do not
degrade when exposed to air to isolate one devices from another and to serve as a
component in MOS structures.
The ability to grow such a layer makes silicon one of the most used semiconductor
materials. Techniques for producing silicon dioxide include thermal oxidation, wet
anodization, chemical vapour deposition and plasma anodization or oxidation,
the most common of which is thermal oxidation. Thermal oxidation takes place in an
oxidation furnace. It is a batch operation where several lots are processed simultaneously.
Wafers are exposed to an atmosphere of O2 or water vapor at temperature in the 900-
1300oC range. Oxidation is preceeded by a cleaning operation design to remove
any impurites that may be present on the wafer surface. After cleaning, the wafers are dried
and placed on a holder to be loaded on the furnace, the thickness of the oxide grown on the
wafer surface is proportional to the furnace temperature and the length of exposure.
b) Threshold voltage implant
adjust and maintain close control of threshold voltage, Vt by using ion implantation
technique.
c) Deposition
11
Page 12
The wafer is defined a thin layer of material must be grown or deposited on the
wafer surface to provide conducting regions within the device, protection from the
environment, and electrical insulation between metals. The most common techniques for
deposition are atmopheric pressure. chemical vapor deposition (CVD), low pressure
chemical vapor deposition (LPCVD), and a plasma assisted chemical vapor deposition
(PCVD). In chemical vapor deposition, the wafer and gaseous compounds react thermally
in a reaction chamber, producing a thin layer of a desired stable compound on the surface
of the wafer, this is usually a batch operation with several lots processed in parallel.
The most commonly deposited materials include polycrystalline silicon, silicon
dioxide (doped and undoped) and silicon nitride. Epitaxial deposition is a special form of
CVD, its special characteristic being that a thin crystalline film is deposited on the wafer
surface. Several techniques have been developed for epitaxial deposition, including vapor
growth,hydrogen reduction of silicon tetrachloride, and pyrolysis of silane. The deposition
process begins by cleaning the wafer surface, the wafers are loaded on the epitaxial
system with great care so as not to contaminate their surfaces. The epitaxial system is
heated up to the proper temperature and a thin region of damaged silicon is removed from
the surface of the wafer by means of an HCL etch. In the deposition step the layer is
actually grown and doped. Finally the system is cooled down and the wafers are unloaded
Figure 5 : Deposition Process
d) Etching
12
Page 13
Etching is the process of using strong acid or etchant to cut into the unprotected
parts of a metal surface to create a design. It is used in microfabrication to chemically
remove layers from the surface of a wafer during manufacturing. It is also a critically
important process module, and every wafer undergoes many etching steps before
it is complete. For many etch steps, part of the wafer is protected from the etchant by a
"masking" material which resists etching. the masking material is a photoresist which has
been patterned using photolithography
Two main methods of etching:
i. Wet etching
Use of chemicals where a batch of wafers is dipped into a highly concentrated pool
of acid and the exposed areas of the wafer are etched away. Wet etching is good and fairly
cheap and capable of processing many wafers quickly.The disadvantage is that wet etching
does not allow the smaller critical geometries that are needed for today chips
ii. Dry etching
Dry etching refers to any of the methods of etching that use gas instead of chemical
etchants. Dry etching is capable of producing critical geometries that are very small.
Example of dry etching are Plasma Etching, Reactive Ion Etching in 80’s, Electron
Cyclotron Resonance (ECR) and Inductively Coupled Plasmas (ICP) in 90’s.
13
Page 14
Table 8 : Comparison between Wet and Dry etching
e) Doping
Doping is a process of chemical dopants are introduced into a silicon substrate to
form the electronic structures that make integrated circuits useful. It is used to form bases,
emitters, and resistors in bipolar devices, as well as drains and sources in MOS devices. It
is also used to dope polysilicon layers. There are two types of doping:
i) Diffusion / Thermal diffusion
The movement of a chemical species from an area of high concentration to an area
of lower concentration.
ii) Ion implant
Process of depositing a chemical species into a substrate by direct bombardment of
the substrate with high energy ions of the chemical for deposition.
14
Page 15
Figure 6 : Doping Process
f) Spacer Oxide
Spacer oxide is one of a step of silicidation where spacer oxide is created on the
edges of the polysilicon gate so that the deposition of the silicide will not short the gate to
the source and drain.
Figure 7: Spacer Oxide Process
g) Ion Implantation
Impurity atoms are vaporized and accelerated toward the silicon substrate. Ion
implantation forms the source or drain regions of NMOS transistors and n-well ties. The
implant also dopes the polysilicon layer of the NMOS transistors, reducing its sheet
resistance.
Figure 8: Ion Implantation Process
h) Annealing
Annealing is the process of heating the silicon up to where the lattice structure
begins to weaken, about 1000degC. It’s left there for 1530minutes. The heat vibrates the
15
Page 16
atoms and if done correctly, the bonds in the crystalline structure realign themselves in their
most stable form. It is needed to repair the lattice damage and put dopant atoms in
substitutional sites where they can be electrically active again.
2.3.5 Parameter That Affect The Gate Oxide Thickness
The parameters that affect the gate oxide thickness are the temperature, partial
pressure, time and HCL. By using ATHENA software I able to prove it.
i) Varying the parameter temperature with constant variable
Time : 11minutes
HCL : 3%
Partial Pressure : 1.0atm
Figure 9: Structure of an oxide thickness for Temperature : 950°c
16
Page 17
Figure 10: Structure of an oxide thickness for Temperature : 1050°c
Figure 11: Structure of an oxide thickness for Temperature : 1100°c
ii) Varying the parameter time with constant :
Temperature : 950oc
HCL : 3%
Partial Pressure : 1.0atm
17
Page 18
Figure 12: Structure of an oxide thickness for Time :11minutes
Figure 13: Structure of an oxide thickness for Time :15minutes
Figure 14: Structure of an oxide thickness for Time: 18minutes
iii) Varying the parameter HCL with constant variable
Time : 11minutes
Temperature : 950oc
Partial Pressure : 1.0atm
18
Page 19
Figure 15: Structure of an oxide thickness for HCL :3%
Figure 16: Structure of an oxide thickness for HCL: 5%
Figure 17: Structure of an oxide thickness for HCL: 8%
iv) Varying the parameter Partial pressure with contant variables:
Time : 11minutes
Temperature : 950oc
HCL :3%
19
Page 20
Figure 18: Structure of an oxide thickness for Pressure : 1atm
Figure 19: Structure of an oxide thickness for Pressure : 3atm
Figure 20: Structure of an oxide thickness for Pressure : 6atm
20
Page 21
Threshold voltage is ideally independent of drain voltage. The Id-Vg graph at
different drain voltages level between 0 to 3.3 is plotted and the different logfiles to
visually compare the operation at different voltages level is overlayed. The code to plot the
graph is as below:
solve vdrain=0.0 outfile=solve_1
solve vdrain=1.1 outfile=solve_2
solve vdrain=2.2 outfile=solve_3
solve vdrain=3.3 outfile=solve_4
#
load infile=solve_1
log outf=nmos2_0.log
solve name=gate vgate=0 vfinal=3.3 vstep=0.3
#
load infile=solve_2
log outf=nmos3_0.log
solve name=gate vgate=0 vfinal=3.3 vstep=0.3
#
load infile=solve_3
log outf=nmos4_0.log
solve name=gate vgate=0 vfinal=3.3 vstep=0.3
#
load infile=solve_4
log outf=nmos5_0.log
solve name=gate vgate=0 vfinal=3.3 vstep=0.3
tonyplot -overlay nmos2_0.log nmos3_0.log nmos4_0.log -set nmos.set
quit
21
Page 22
Figure 21 : Id-VG Graph
2.3.6 MOSFET Design
By using Athena, I design the NMOS and PMOS transistors with the following
specifications.
i. Gate length: 0.6um
ii. Abs. Threshold voltage: 0.4 V < VTH < 0.5 V
iii.Abs. Leakage current: < 0.1 nA
iv. NMOS Drain current, ID > 1 mA at VGS = 3.3 V and VDS = 3.3 V
v. PMOS Drain Current, ID < 0.5 mA at VGS = -3.3V and VDS = -3.3 V
22
Page 23
Figure 22: NMOS Code
23
Page 24
Figure 23 : NMOS Output Structure
Figure 24: I-V Curve
The I-V curve above shows the ID when VDS and VGS are equal 3.3 V. The value
of ID is larger than 1mA as in the specifications. (ID=1.014 mA).
2.4 Module A.2: Digital IC Design (semiconductor physics and characterisation of
PMOS, NMOS, CMOS Inverter circuits using SILVACO EDA tools)
2.4.1 Introduction
CMOS technology has become more popular mainly due to the lower power
dissipation, practicality and lower cost of fabrication. The possibility of placing both analog
and digital circuits on the same chip so as to improve the overall performance also has
made CMOS technology more attractive.
24
Page 25
2.4.2 Three Main MOS Operating Region
i) Cutoff
ii) Linear
25
Vgs>Vt, Vgd=Vgs and Vds=0
-The sources and body is connected then it is
grounded
-Gate to source voltage (Vgs) is less than threshold
voltage (Vt)
*Source and drain have free electrons while body
has free holes but no free electrons
-The junction is in zero biased or reversed biased, so
it have little or no current flows
*No channel exist and the transistor is said to be
OFF and the operation is called cutoff region
-Vgs>Vt,Vgs>Vgd>Vt,0<Vds<Vgs-Vt
-The channel reaches the drain
-Since Vds>0, there is electric field to push current
from drain to source
*Current flows from drain to source
-Drain-to-source current, Ids increases with Vds
-Linear mode of operation is also known as resistive
and nonsaturated or unsaturated
Page 26
iii) Saturation
2.4.3 CMOS Inverter
Inverter is the most common digital gate used in the digital logic. It is used to
implement logical negation. In other words, the inverter inverts the logic value of the input
signal. The CMOS inverter consists of P-MOS transistor as the pull-up device and N-MOS
transistor as the pull-down device. The inverter can be characterized using the voltage
transfer characteristic (VTC) curve and the performance is measured by parameters such as
the noise margin and the speed of the circuit.
Figure 25 : CMOS Basic Inverter Circuit
26
-Vgs>Vt,Vds>Vgs-Vt
-The channel is pinched off close to then drain
(since Vgd<Vt)
-There is still conduction due to drifting motion
of the electron
-Ids independent of Vds and depends on Vgs
only
-Current saturates as current does not change
much (similar to current source)
Page 27
Figure 26 : Voltage Transfer Characteristic with Input Signal
Region I :
The PMOS device is forward biased (VSG > -VTP) and therefore on.This MOSFET is
in the linear region(VSD<=VSG+VTP=VDD-Vo+VTP).
The NMOS device is cut off since the input voltage isbelow VTN (Vi=VGS<VTN).
The power dissipation is zero
Region II:
The PMOS device is in the linear region (VSD<=VSG+VTP).
The NMOS device is in the saturation region (Vi=VDS>=VGS-VTN=Vo-VTN).
Current now flows through both devices. Power dissipation is no longer zero.
Region III:
The PMOS device is in the saturation region (VSD>=VSG+VTP=VDD-Vo+VTP).
The NMOS device is in the saturation region (VDS>=VGS-VTN=Vo-VTN).
Power dissipation reaches a peak in this region, namely at where VM=Vi=Vo.
Region IV:
The PMOS device is in the saturation region (VSD>=VSG+VTP=VDD-Vo+VTP).
The NMOS device is forward biased (Vi=VGS > VTN) and therefore on. This MOSFET
is in the linear region (Vi=VDS<=VGS-VTN=Vo-VTN).
27
Page 28
Region V:
The PMOS device is cut off when the input is at VDD (VSG=0 V).
The NMOS device is forward biased (Vi=VGS > VTN) and therefore on. This MOSFET
is in the linear region (Vi=VDS<=VGS-VTN).
The total power dissipation is zero just as in region I.
Figure 27 : Cmos Inverter Layout
2.4.4 CMOS Characterization
A schematic is setup as shown below. The width, W = 10 μm, length, L = 1 μm is
set, the gate to source voltage, Vgs = 1V and the drain to source voltage, Vds = VDS. The
.PARAM symbol is used to introduce the DC parameter in the schematic. This part uses an
ideal SPICE transistors model. The Control File is setup accordingly.
Figure 28 : NMOS Schematic Setup
28
Page 29
Figure 29: Control File Setup
Figure 30: NMOS (Ids VS Vds)
Figure 31 : NMOS (Ids vs Vds for Vgs 1-5V)
29
Page 30
The Ids vs. Vds characteristics for the N-MOS device using the sizes below is
plotted:
i) W = 80 μm, L = 4 μm,
ii) W = 20 μm, L = 1 μm,
iii) W = 40 μm, L = 20 μm,
iv) W= 200 μm, L = 10 μm,
The Vds voltage from 0 V to 3 V, Vgs = 1 V is sweep
Figure 32: Control File
Figure 33: NMOS graph based on different sizes
2.4.5 Channel Length Modulation (Non-Ideal)
The Control File is set to use the given process transistor model. The library files is
sured are at the same location with the schematic.
30
Page 31
Figure 34: Non-Ideal Library
The Ids vs. Vds characteristics for the N-MOS device for the sizing below is plotted
and the Vds voltage from 0 V to 5 V is sweeped, Vgs = 1 V.:
Table 9: Transistors Sizing for NMOS Non-Ideal and Ideal
31
Page 32
Figure 35: NMOS NON IDEAL GRAPH
Figure 36: NMOS NON IDEAL GRAPH
2.4.6 CMOS Inverter Design
I need to design and simulate the operation of CMOS inverter using the given
reference datasheet. The datasheet (74HC04) is high speed Inverter IC product which
contains six identical inverters with each inverter is designed with three buffer stages.
A CMOS inverter chain according to the specifications (74HC04 at Temp = 25C)
for the typical condition. The transistor model is used as provided by the process. For VIH
32
Page 33
& VIL simulations, the loading capacitance CL = 15 pF at the output of the inverter is
connected.
Figure 37: Schematic for CMOS Inverter Chain with Capacitor
Figure 38: Setup Control File
Figure 39: Output Graph for VIL And VIH
33
Page 34
Table 10 : Comparison between the specification and the measured value
The design met the specifications since all the measured value are in range between
the needed specifications for VIH and VIL
For VOH & VOL simulations, the following is set:
i. Connect a current source at the output of the inverter.
ii. Measure the VOH and compare the measured results to the specifications.
Does the design meet the specifications?
To simulate the VOH, the current source is set so that it sources the current out
from the inverter. i.e the current is negative value.
I. Finding the VOH by using the test condition in the data sheet
Figure 40 : CMOS Inverter Circuit for VOH
34
Page 35
Table 11: Test Condition for VOH Simulations
Figure 41 : Output VOH For Io=5.2mA
Figure 42: Test Condition for Io=20uA
35
Page 36
Figure 43: Test Condition for Io=4.0mA
By using the test condition in the datasheet, I found that all the three test condition
measured value meets it specification by referring the datasheet. The difference between
this three test condition is based on current source and Vcc. That’s why there is difference
in output graph as seen above,.
After that, I need to find VOL by using the test conditions in the data sheet.
Difference from VOH, to find VOL we place the current by connecting one end of it to
VDD and the other one to Vout .
Figure 44: Schematic Setup For VOL
36
Page 37
Table 12: Test Condition for VOL Simulations
Figure 45: Test Condition for Io=5.2mA
Figure 46: Test Condition for Io=20uA
Based on the graph and the measured value, I had prove that this design had meet its
specification.
37
Page 38
After all the test had been proved, I proceed to designing the CMOS Hex Incverter
layout and attach the DRC and LVS report. DRC report can be seen in appendix section.
Figure 47: CMOS HEX Inverter Layout Design
Figure 48: LVS Report
38
Page 39
2.5 Module A3 : Digital IC Design (Design and layout of combinational digital logic
Arithmetic circuits using SILVACO EDA tools.
In digital design, an adder or summer is a digital circuit that performs addition of
numbers. In modern computers adders reside in the arithmetic logic unit (ALU) where
other operations are performed. Generally, there are two types of adder, which are half
adder and full adder. Adder circuit can be implemented in many ways and the most general
way is by using digital gates. For example, the half adder circuit can be implemented using
XOR and AND gates. Multiplier can be designed by using multiple adders.
In this module three I start with basic knowledge such as binary calculation, the
schematic and the truth table for half adder and full adder circuit. Next, I proceed to the
design and simulate the operation of CMOS adder design. To design a full adder circuit, I
need to design it by using the transistor model as provided by the process (model
library:A2-002-M2-Fab2-Process1.lib)
Figure 49: 1 Bit Full Adder Circuit
39
Page 40
Figure 50 : AND schematic used in Full Adder
Figure 51 : X-OR schematic used in the Full Adder
Figure 52 : OR schematic used in the Full Adder
40
Page 41
To test it, I need an appropriate signals for inputs A,B and CIN. The appropriate
signals can be seen as below. After that, I setup the control file and compare the result
output and the truth table of the full adder.
Figure 53 :Full Adder Signal
Figure 54 : Control File
Table 13: Truth Table for Full Adder
41
Page 42
Figure 55 : Output Simulation for Full Adder
Lastly, in module A3, we are required to design a 4 bit CMOS Adder circuit. To
design a 4 bit, I will design 1 bit and then copy and paste it until it have 4 bit and connected
each of it. To design a 4 bit, I need to design one by one logic circuit required in 1 bit full
adder which is x-or, and, or and inverter layout then after test the LVS, I will connected all
of it.
Figure 56: 4 Bit Full Adder Circuit
Figure 57 : 1 Bit Full Adder
42
Page 43
\
Figure 58 : 4 Bit Full Adder
Figure 59: LVS Report
CHAPTER 3
TRAINING PROJECTS
3.1 Introduction
This projects presents a brief presentation on activities that have been carried out in
the functional group F94 which supervised by Mdm Ushapriya. The functional activities
expose us with the basic HTML, HTML 5, CSS, Javascript and jQuery knowledges. With
basic HTML and HTML5 (new HTML standard), a basic web site can be build. CSS let us
to control the style and layout of multiple Web pages all at once, JavaScript can be used to
add functionality, validate input, communicate with web server, and much more. Jquery
greatly simplifies Javascript programming thus easy to learn. The task carried out will be
explained according to the training schedule and achievement tasks.
In this industrial training report, I will only included what task in this project that I
had done because if I put all the project task, it required more than 100 pages .
43
Page 44
3.2 Basic Html
HTML is a language for describing web pages. HTML stands for Hyper Text
Markup Language. HTML is a markup language where a markup language is a set of
markup tags. The tags describe document content and HTML documents contain HTML
tags and plain text. HTML documents are also called web pages. HTML markup tags are
usually called HTML tags. HTML tags are keywords (tag names) surrounded by angle
brackets like <html>. HTML tags normally come in pairs like <b> and </b>. The first tag
in a pair is the start tag, the second tag is the end tag. The end tag is written like the start
tag, with a forward slash before the tag name. Start and end tags are also called opening
tags and closing tags, <tagname>content</tagname>. "HTML tags" and "HTML elements"
are often used to describe the same thing. But strictly speaking, an HTML element is
everything between the start and the end tag including the tags.
HTML Element: <p>This is a paragraph.</p>
The purpose of a web browser (such as Google Chrome, Internet Explorer, Firefox,
Safari) is to read HTML documents and display them as web pages. The browser does not
display the HTML tags, but uses the tags to determine how the content of the HTML page
is to be presented/displayed to the use. The <!DOCTYPE> declaration helps the browser to
display a web page correctly. There are many different documents on the web, and a
browser can only display an HTML page 100% correctly if it knows the HTML type and
version used. Common Declarations:
HTML5
<!DOCTYPE html>
HTML 4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
44
Page 45
3.2.1 Editors
HTML can be edited by using a professional HTML editor like Adobe
Dreamweaver, Microsoft Expression Web and CoffeeCup HTML Editor. However, for
learning HTML we recommend a text editor like Notepad (PC) or TextEdit (Mac). We
believe using a simple text editor is a good way to learn HTML.
3.2.2 HTML Paragraphs
HTML documents are divided into paragraphs where this paragraphs are defined
with the <p> tag and end with the closed tag </p>. Example of paragraphs can be seen as
below where from this example, the browsers will automatically add an empty line before
and after a paragraph.
Figure 60: Example of paragraph
Figure 61: Paragraph Output
The next example of paragraphs is when you open the new paragraphs as many as
you want and closed it with only one closed tag </p>.
45
Page 46
Figure 62: Example of paragraph with one closed tag
Figure 63: Paragraph Output
In paragraphs, we can use the <br> tag where this tag it will break a line (a new
line)without starting a new paragraphs. There's no end tag for <br> tag as it is an empty
HTML element. For example:
Figure 64: Example of paragraph using breakline
46
Page 47
Figure 65: The Breakline Output
3.2.3 HTML IMAGES
3.2.3.1 HTML Images - The <img> Tag and the Src Attribute
In HTML, images are defined with the <img> tag. The <img> tag is empty, which
means that it contains attributes only, and has no closing tag. To display an image on a
page, we need to use the src attribute. Src stands for "source". The value of the src attribute
is the URL of the image you want to display.
Syntax for defining an image:
<img src="url" alt="some_text">
The URL points to the location where the image is stored. For example, let say an
image named "boat.gif", located in the "images" directory on "www.w3schools.com". It
will has the URL: http://www.w3schools.com/images/boat.gif.
The browser then will displays the image where the <img> tag occurs in the
document. If you put an image tag between two paragraphs, the browser will shows the first
paragraph, then the image, and then the second paragraph.
3.2.3.2 HTML Images - The Alt Attribute
The required alt attribute specifies an alternate text for an image, if the image
cannot be displayed. The value of the alt attribute is an author-defined text. For example:
<img src="boat.gif" alt="Big Boat">
47
Page 48
The alt attribute provides alternative information for an image if a user for some
reason cannot view it (because of slow connection, an error in the src attribute, or if the
user uses a screen reader).
3.2.3.3 HTML Images - Set Height and Width of an Image
The height and width attributes are used to specify the height and width of an
image. The attribute values are specified in pixels by default can be seen below:
<img src="pulpit.jpg" alt="Pulpit rock" width="304" height="228">
It is a good practice to specify both the height and width attributes for an image. If
these attributes are set, the space required for the image is reserved when the page is
loaded. However, without these attributes, the browser does not know the size of the image.
The effect will be that the page layout will change during loading (while the images load).
If an HTML file contains ten images - eleven files are required to display the page
right. Loading images takes time, so my best advice is: Use images carefully. When a web
page is loaded, it is the browser, at that moment, that actually gets the image from a web
server and inserts it into the page. Therefore, make sure that the images actually stay in the
same spot in relation to the web page, otherwise your visitors will get a broken link icon.
The broken link icon is shown if the browser cannot find the image.
Figure 66: Example of HTML image
48
Page 49
Figure 67: The Image Output
3.3 HTML 5
3.3.1 Introduction
HTML5 will be the new standard for HTML. The previous version of HTML,
HTML 4.01, came in 1999. The web has changed a lot since then. HTML5 is still a work in
progress. However, the major browsers support many of the new HTML5 elements and
APIs. HTML5 is a cooperation between the World Wide Web Consortium (W3C) and the
Web Hypertext Application Technology Working Group (WHATWG). WHATWG was
working with web forms and applications, and W3C was working with XHTML 2.0. In
2006, they decided to cooperate and create a new version of HTML. Some rules for
HTML5 were established:
• New features should be based on HTML, CSS, DOM, and JavaScript
• Reduce the need for external plugins (like Flash)
• Better error handling
• More markup to replace scripting
• HTML5 should be device independent
• The development process should be visible to the public
3.3.2 The HTML5 <!DOCTYPE>
49
Page 50
In HTML5 there is only one <!doctype> declaration, and it is very simple:
Below is a simple HTML5 document, with the minimum of required tags:
3.3.3 HTML 5 New Features
Some of the most interesting new features in HTML5:
• The <canvas> element for 2D drawing
• The <video> and <audio> elements for media playback
• Support for local storage
• New content-specific elements, like <article>, <footer>, <header>, <nav>, <section>
• New form controls, like calendar, date, time, email, url, search
3.3.4 HTML Drag And Drop
Drag and drop is a very common feature. It is describe when you grabbing an object
and dragging it to a different location. In HTML5, drag and drop is part of the standard, and
any element can be draggable.
3.3.4.1 Browser Support
HTML drag and drop are supported by Internet Explorer 9+, Firefox, Opera,
Chrome, and Safari. Safari 5.1.2 are not compatible for drag and drop.
50
Page 51
Figure 68 : Browser Support
3.3.4.2 Drag and Drop
i. Make an Element Draggable
To make an element draggable, set the draggable attribute to true: <img
draggable="true">
ii. What to Drag - ondragstart and setData()
When the element is dragged, the ondragstart attribute calls a function, drag (event), that
specifies what data to be dragged then the dataTransfer.setData() method will sets the data
type and the value of the dragged data. The syntax for ondragstart and setData() is:
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
from above syntax, the data type is "Text" and the value is the id of the draggable element.
iii. Where to Drop – ondragover
The ondragover event will specify where the dragged data can be dropped. By default, the
data or elements cannot be dropped in other elements. To allow it the default handling of
the element will be prevent by calling the event.preventDefault() method for the
ondragover event. The syntax is:
event.preventDefault()
51
Page 52
iv. Do the Drop – ondrop
A drop event occurs when the dragged data is dropped. To call a function for drop event,
we use the ondrop attribute. The syntax is:
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
The explaination of the syntax above is:
i. Call preventDefault() to prevent the browser default handling of the data (default is
open as link on drop)
ii. Get the dragged data with the dataTransfer.getData("Text") method. This method
will return any data that was set to the same type in the setData() method
iii. The dragged data is the id of the dragged element ("drag1")
iv. Append the dragged element into the drop element
52
Page 53
Figure 69: Simple Example of Drag and Drop
Figure 70: Drag and Drop Output
3.3.5 HTML5 Geolocation
HTML5 Geolocation is used to locate a user's position. To get the geographical
position of a user, we use the HTML5 Geolocation API. Since using this can compromise
user privacy, the position is not available unless the user approves it.
3.3.5.1 Browser Support
HTML5 Geolocation is supported by Internet Explorer 9+, Firefox, Chrome, Safari
and Opera. But the geolocation is more accurate for devices with GPS like smartphone
nowadays.
3.3.5.2 HTML5 - Using Geolocation
Use the getCurrentPosition() method to get the user's position.
53
Page 54
Figure 71: Example of a basic Geolocation script with no error handling
Example explained:
i. Check if Geolocation is supported
ii. If supported, run the getCurrentPosition() method. If not, display a message to the
user
iii. If the getCurrentPosition() method is successful, it returns a coordinates object to
the function specified in the parameter ( showPosition )
iv. The showPosition() function gets the displays the Latitude and Longitude
iii)
54
Page 55
Figure 72: Output of a basic Geolocation script with no error handling
Output Explain :
i. When a browser is open, it will as you to click the button “Try It” to get your
coordinates.
ii. Once the button had been click, a notification will be popped out asking us to share
the location. To share it click the share location button.
iii. The latitude and longitude output will be display.
3.3.5.3 Handling Errors and Rejections
This is the second parameter of the getCurrentPosition() method which used to
handle errors. It specifies a function to run if it fails to get the user's location:
Error Codes Explaination:
Permission denied - The user did not allow Geolocation
Position unavailable - It is not possible to get the current location
Timeout - The operation timed out
3.3.5.4 Displaying the Result in a Map
To display the result in a map, we need an access to a map service that can use
latitude and longitude, like Google Maps. So, the example below is used to returned
latitude and longitude data to show the location in a Google map by using a static image.
55
Page 56
Figure 73: Example coding to display the result in a map
Figure 74: The Output show the result of user position in a map
3.3.5.5 Location-specific Information
Geolocation is not just can display user position, but it also very useful for location-specific
information such as:
Up-to-date local information
56
Page 57
Showing Points-of-interest near the user
Turn-by-turn navigation (GPS)
3.4 JAVASCRIPT
3.4.1 Introduction
JavaScript (JS) is an interpreted computer programming language. It was originally
implemented as part of web browsers so that client-side scripts could interact with the user,
control the browser, communicate asynchronously, and alter the document content that was
displayed. More recently, however, it has become common in server-side programming,
game development and the creation of desktop applications. JavaScript is a prototype-based
scripting language with dynamic typing and has first-class functions. Its syntax was
influenced by C.
JavaScript's use in applications outside of web pages—for example, in PDF
documents, sitespecific browsers, and desktop widgets—is also significant. Newer and
faster JavaScript Vms and frameworks built upon them (notably Node.js) have also
increased the popularity of JavaScript for server-side web applications.
3.4.2 How To
JavaScripts in HTML must be inserted between <script> and </script> tags.
JavaScripts can be put in the <body> and in the <head> section of an HTML page. To
insert a JavaScript into an HTML page, use the <script> tag. The <script> and </script>
tells where the JavaScript starts and ends. The lines between the <script> and </script>
contain the JavaScript.
If we put JavaScript code inside a function, we can call that function when an event
57
Page 58
occurs. Scripts can be in the <body> or in the <head> section of HTML, and/or in both. It
is a common practice to put functions in the <head> section, or at the bottom of the page.
This way they are all in one place and do not interfere with page content. Scripts can also
be placed in external files. External files often contain code to be used by several different
web pages. External JavaScript files have the file extension .js. To use an external script,
point to the .js file in the "src" attribute of the <script> tag.
3.4.3 JAVASCRIPT OBJECTS
In JavaScript almost everything is an object where this object is a special kind of
data, with properties and methods. Even primitype datatypes (except null and undefined)
can be treated as objects.
Booleans can be objects or primitive data treated as objects
Numbers can be objects or primitive data treated as objects
Strings are also objects or primitive data treated as objects
Dates are always objects
Maths and Regular Expressions are always objects
Arrays are always objects
Even functions are always objects
3.4.3.1 Accessing Object Properties
Properties are the values associated with an object. The syntax for accedding the
property of an object is:
objectName.propertyName
This example uses the length property of the String object to find the length of a string:
var message="Hello World!";
var x=message.length;
58
Page 59
The value of x, after execution of the code above will be: 12
3.4.3.2 Accessing Objects Methods
Methods are the actions that can be performed on objects. We can call a method with the
following syntax:
objectName.methodName()
This example uses the toUpperCase() method of the String object, to convert a text to
uppercase:
var message="Hello world!";
var x=message.toUpperCase();
The value of x, after execution of the code above will be:
HELLO WORLD!
3.4.3.3 Creating JavaScript Object
With JavaScript we can define and create our own objects. There are 2 different
ways to create a new object:
1. Define and create a direct instance of an object.
2. Use a function to define an object, then create new object instances.
3.4.3.4 JavaScript Classes
JavaScript is an object oriented language, but JavaScript does not use classes.
In JavaScript we don’t define classes and create objects from these classes and JavaScript is
a prototype based, not a class based.
59
Page 60
3.4.3.5 JavaScript for...in Loop
The JavaScript for...in statement loops through the properties of an object.
The block of code inside of the for...in loop will be executed once for each property.
Syntax
for (variable in object)
{
code to be executed
}
Figure 75 : Example of for..in loop
60
Page 61
Figure 76 : For in loop Output
3.4.3.6 Javascript Number
JavaScript has only one type of number that can be written with, or without
decimals. For example :
var pi=3.14; // A number written with decimals
var x=34; // A number written without decimals
Extra large or extra small numbers can be written with scientific (exponent) notation.
Example :
var y=123e5; // 12300000
var z=123e-5; // 0.00123
3.4.3.7 JavaScript Strings
A string simply stores a series of characters like "John Doe". A string can be any
text inside quotes. We can used string for storing and manipulating text. In string we can
use simple or double quotes. For example:
var carname="Volvo XC60";
var carname='Volvo XC60';
We can access each character in a string with its position (index). For example:
61
Page 62
var character=carname[7];
String indexes are zero-based, which means the first character is [0], the second is [1], and
so on. We can use quotes inside a string, as long as they don't match the quotes surrounding
the string. For example:
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
We can also put quotes inside a string by using the \ escape character.
3.4.3.8 The Array object
An array can be created in three ways. The following example code creates an Array object
called myCars:
1: Regular:
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2: Condensed:
var myCars=new Array("Saab","Volvo","BMW");
3: Literal:
var myCars=["Saab","Volvo","BMW"];
62
Page 63
Figure 77 : Example of a regular array
Figure 78: Regular array output
3.5 JQuery AJAX
3.5.1 Introduction
What is AJAX? AJAX stands for Asynchronous JavaScript and XML. In short;
AJAX is about we loading data in the background and display it on the webpage, without
reloading the whole page.
Examples of applications using AJAX: Gmail, Google Maps, Youtube, and
Facebook tabs.
In jQuery, AJAX is the art of exchanging data with a server, and updating parts of a
web page - without reloading the whole page. Jquery provides several methods for AJAX
functionality. With the jQuery AJAX methods, we can request text, HTML, XML, or JSON
63
Page 64
from a remote server using both HTTP Get and HTTP Post and we can load the external
data directly into the selected HTML elements of our web page.
3.5.2 jQuery load() Method
The jQuery load() method is a simple, but powerful AJAX method. The load()
method loads data from a server and puts the returned data into the selected element.
Syntax:
$(selector).load(URL,data,callback);
The required URL parameter specifies the URL we wish to load. The optional data
parameter specifies a set of querystring key/value pairs to send along with the request and it
is the name of a function to be executed after the load() method is completed.
Example of content file: "demo_test.txt":
<h2>jQuery and AJAX is FUN!!!</h2>
<p id="p1">This is some text in a paragraph.</p>
Figure 79: Example of jQuery Load
64
Page 65
Figure 80 : jQuery Load Output
3.5.3 Get and Post
3.5.3.1 HTTP Request: GET vs. POST
Two commonly used methods for a request-response between a client and server
are: GET and POST.
i. GET - Requests data from a specified resource
ii. POST - Submits data to be processed to a specified resource
GET is basically used for just getting (retrieving) some data from the server and this
method may return cached data.
POST can also be used to get some data from the server. However, the POST
method never caches data, and is often used to send data along with the request.
3.5.3.2 jQuery $.get() Method
The $.get() method requests data from the server with an HTTP GET request.
Syntax:
$.get(URL,callback);
65
Page 66
i. The required URL parameter specifies the URL you wish to request.
ii. The optional callback parameter is the name of a function to be executed if the
request succeeds.
The following example uses the $.get() method to retrieve data from a file on the
server:
Figure 81: Example of jQuery Get method
Figure 82: jQuery Get Method Output
Explaination on the example above, the first parameter of $.get() is the URL we
wish to request ("demo_test.asp"). The second parameter is a callback function. The first
callback parameter will holds the content of the page requested, and the second callback
parameter holds the status of the request.
66
Page 67
The content of ASP file ("demo_test.asp"):
<%
response.write("This is some text from an external ASP file.")
%>
3.5.3.3 jQuery $.post() Method
The $.post() method requests data from the server using an HTTP POST request.
Syntax:
$.post(URL,data,callback);
i. The required URL parameter specifies the URL you wish to request.
ii. The optional data parameter specifies some data to send along with the request.
iii. The optional callback parameter is the name of a function to be executed if the
request succeeds.
The content of ASP file looks like ("demo_test_post.asp"):
<%
dim fname,city
fname=Request.Form("name")
city=Request.Form("city")
Response.Write("Dear " & fname & ". ")
Response.Write("Hope you live well in " & city & ".")
%>
The following example uses the $.post() method to send some data along with the request:
67
Page 68
Figure 83: Example of jQuery Post
Figure 84 : jQuery Post Output
Explaination on example above, The first parameter of $.post() is the URL we wish
to request ("demo_test_post.asp"). Then we pass in some data to send along with the
request (name and city).nThe ASP script in "demo_test_post.asp" reads the parameters,
process them, and return a result.
The third parameter is a callback function. The first callback parameter holds the
content of the page requested, and the second callback parameter holds the status of the
request.
68
Page 69
CHAPTER 4
CONCLUSION AND SUGGESTION
4.1 Conclusion
Industrial Training program had been an excellent exposure to me as an
undergraduate student. It provides me with an overview of the real working situation and
preparation that I should take in order to join the professional level. I have gained lot of
knowledge and specialized skills in the areas of electronic engineering in IC design.
Moreover, I had learned a lot of soft skills at this company such as for working with high
spirit, teamwork, leadership, tolerance and communication skill
In ICmic, I gain an interesting experienced in designing the IC layout and
schematic. Moreover, everyday there is daily briefing session or DBS. This DBS had two
part which is motivational and technical. Each of the trainee will be scheduled for this
DBS. Each module and project topic completed, there will be a presentation held with the
module supervisor. This DBS and presentation is one of the ICmic step in training the
intern to brush up their communication skills. ICmic had succeed in training me in
communication skill and increase my English language level. I’m now more confident in
facing people and communicated in proper way.
Besides that, I also learn how to work in group where cooperation is the most
important thing. These experiences really open my eyes to real working experience and
prepare me for the working life that I’ll be going through after graduation.
69
Page 70
4.2 Suggestion for Final Year Project
Next semester is my final year. Where on this semester all final year student will
undergo final year project where it is one of the compulsary subject in order to finish their
studies. Actually in my final year project I had two things in my head. The first one is by
by upgrading my final year project during my diploma. In my diploma, I had done project
called ”propeller led diplay”. This project will display words in rotation where once rotated
all led will light up, then once the sensor detect the block for each rotation it will send a
signal to microcontroller to process. Then this microcontroller will send this output back to
the led. Where certain led will light up and some will turn off in order to display the word.
In this project I use Atmel 8051. So tu upgrade it im going to try code it by using PIC
controller. Other than that I will try to make the propeller display to display many words.
But to this I need to start many research to make my project becoming more fantastic.
On second thought, I was thinking to do research on IC design as I had done
industrial training in IC company. If I did this research it will help me more on developing
IC world and gain more knowledge. However I will get an advice from lecturer on
choosing which one is the suitable for my final year project
70
Page 71
APPENDIX A
Expert Software Gateway Software
Athena Software Atlas Software
71
Page 72
APPENDIX B
Recommended Operation Conditions in 74HC04
DC characteristic for 74HC04
72
Page 73
AC Characteristic for 74HC04
73