You are on page 1of 73

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

Figure 2 : ICMIC Logo

Day Monday - Thursday Friday

Working Time 8.30 am 12.00 pm 8.30 am 12.00 pm

Break Time 12.00 pm 1.00 pm 12.00 pm 2.00 pm

Working Time 1.00 pm 5.30 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

ICmics 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 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 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 4

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

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 project, trainee are also needed to completed three modules. This three module can be seen in table 2. 6

No

Module

Starting Date

Ending Date 16/08/2013

Supervisor

A1 : Process and Device Characterization

15/07/2013

En Saiful Bahari Bin Samsuri

2 3

A2 : Digital IC Design A3 : Digital IC Design

24/06/2013 19/08/2013

12/07/2013 30/08/2013

Mr A.Rahman Cik Nor Intan Zazalinda Aizuddin

Table 2 : Module Schedule

No 1 2 3 4

Topic Basic HTML HTML 5 JAVA SCRIPT JQuery

Table 3 : Topic Learning in Project group

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 1 2 3 Assignment A1001A Introduction to Semiconductor Fabrication Process A1002A Semiconductor Fabrication Process And Device Characterization for CMOS A1002B Semiconductor Fabrication Process And Deadline 17 JULY 2013 25 JULY 2013 16 AUGUST 2013

Device Characterization for CMOS Technology 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 1 A2001A MOSFET Characterization 2 A2001B MOSFET Characterization 3 A2002A CMOS Inverter Design (Preliminary) 4 A2002B CMOS Inverter Design Table 5 : Assignment for Module A.2 Arithmetic circuits using SILVACO EDA tools. No Assignment 1 A3001A CMOS Adder Design (Preliminary) 2 A3001B CMOS Adder Deisgn Table 6 : Assignment for Module A.3 2.2 Summary Of Works 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. 8 Deadline 20 AUGUST2013 30 AUGUST 2013 Deadline 26 JUNE 2013 2 JULY 2013 4 JULY 2013 12JULY2013

Module A.3 : Digital IC Design (Design and layout of combinational digital logic

WEEKS Week 1

SUMMARY OF WORK DONE 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 Week 2 Module A2001B: MOSFET characterization 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 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

Table 7 : Summarization of work done

2.3 Module A1: Fabrication Process and Device Characterization using Technology Computer Aided Design (TCAD) tools. 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 Incs 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 10

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 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 9001300oC 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. 11

b) Threshold voltage implant adjust and maintain close control of threshold voltage, Vt by using ion implantation technique. c) Deposition 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

12

Figure 5 : Deposition Process d) Etching 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.

13

Example of dry etching are Plasma Etching, Reactive Ion Etching in 80s, Electron Cyclotron Resonance (ECR) and Inductively Coupled Plasmas (ICP) in 90s.

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 14

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.

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

15

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. Its left there for 1530minutes. The heat vibrates the 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

16

Figure 9: Structure of an oxide thickness for Temperature : 950c

Figure 10: Structure of an oxide thickness for Temperature : 1050c

Figure 11: Structure of an oxide thickness for Temperature : 1100c 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

18

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

Figure 15: Structure of an oxide thickness for HCL :3%

Figure 16: Structure of an oxide thickness for HCL: 5%

19

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%

Figure 18: Structure of an oxide thickness for Pressure : 1atm

20

Figure 19: Structure of an oxide thickness for Pressure : 3atm

Figure 20: Structure of an oxide thickness for Pressure : 6atm 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 # 21

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

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 22

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

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 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

ii) Linear -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

25

iii)

Saturation -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)

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

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. ii. Connect a current source at the output of the inverter. 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. Thats 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

45

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

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. ii. Call preventDefault() to prevent the browser default handling of the data (default is open as link on drop) 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. iv. The dragged data is the id of the dragged element ("drag1") 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. ii. Check if Geolocation is supported 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. ii. When a browser is open, it will as you to click the button Try It to get your coordinates. 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 pagesfor example, in PDF documents, sitespecific browsers, and desktop widgetsis 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 dont 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. ii. GET - Requests data from a specified resource 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. ii.

The required URL parameter specifies the URL you wish to request. 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. ii. iii. The required URL parameter specifies the URL you wish to request. The optional data parameter specifies some data to send along with the request. 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. 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 Ill be going through after graduation. ICmic had succeed in training me in communication skill and increase my English language level. Im now more confident in

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 Software

Atlas

71

APPENDIX B

Recommended Operation Conditions in 74HC04

DC characteristic for 74HC04 72

AC Characteristic for 74HC04

73

You might also like