part3

93
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. 1

Upload: nabilah-aziz

Post on 27-Oct-2015

292 views

Category:

Documents


2 download

DESCRIPTION

chapter 3 web page project

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Figure 22: NMOS Code

23

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

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

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)

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

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

Figure 29: Control File Setup

Figure 30: NMOS (Ids VS Vds)

Figure 31 : NMOS (Ids vs Vds for Vgs 1-5V)

29

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

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

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

& 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

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

Table 11: Test Condition for VOH Simulations

Figure 41 : Output VOH For Io=5.2mA

Figure 42: Test Condition for Io=20uA

35

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

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

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

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

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

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

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

\

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

APPENDIX A

Expert Software Gateway Software

Athena Software Atlas Software

71

APPENDIX B

Recommended Operation Conditions in 74HC04

DC characteristic for 74HC04

72

AC Characteristic for 74HC04

73