Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706...

32
Microelectronics Lab ELCT706 IC Design Lab Session #2 IC Layout Dr. Eman Azab Eng. Samar Shukry

Transcript of Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706...

Page 1: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Microelectronics Lab ELCT706 IC Design Lab Session #2

IC Layout

Dr. Eman Azab Eng. Samar Shukry

Page 2: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Design the layout view of an inverter circuit using

automatically generated nmos and pmos devices.

The schematic view of the inverter circuit is as follows:

Launch Layout XL Create a new layout with an automatic

configuration.

Page 3: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...
Page 4: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Choose the library in which the schematic is saved, choose a

name for your layout cellview and choose both type and view

to be layout.

Page 5: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

This window will pop up representing the space in which the

layout design is to be constructed with the help of the LSW to

select the suitable layers.

And now, in order to build the layout, we are going to use the

ready designed layouts for the nmos and pmos devices used in

the schematic view together with the pins generated earlier in

the schematic.

Connectivity Generate All from Source (this option

enables us to generate the layout forms of all devices and pins

Page 6: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

in the schematic) if you choose option “ Selected from source”

you can choose from schematic which device or pin to be

generated.

The following window will pop up:

We select the instances and I/O pins to be generated

automatically

Page 7: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

We then select the I/O Pins tab:

From this window, we choose the layer used in generating the

pins to be a metal1 layer that is used for the purpose of pins

and hence it is called M1”pin”.

We can also manipulate the label that will be put on the pin

which must be the same as the name you chose for the pin in

the schematic. Create Label as Options.

Page 8: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

We can adjust the height and the font of the label as required,

in the Layer name, we choose the name of the layer from

which the pin will be made which is Metal1 “M1” and in the

Layer purpose, we have to define that this layer will be used

for pin.

Page 9: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

This window will pop up:

To see the layers of the generated devices in the layout view,

you can press shift + f and the following view will appear.

Page 10: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

After generating the devices, we start to connect the devices

as illustrated in the schematic view to build up the inverter

layout view, we start to move the pmos device over the nmos

device and as shown in figure, connection lines will appear

showing us which terminals should be connected and to which

signal.

Page 11: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

We start with connecting the two gates together using a

polysilicon “PO” layer and the two drains together using a

metal1 layer.

Note: to draw the drain connection using a metal1 layer, we

can select the M1 layer used for drawing from the LSW and

draw a rectangular shape between both drains or we can

create what is called a “wire” , Create wire and select the

starting point which is the drain of the pmos and select the

end point of the wire which is the drain of the nmos, double

click at the end point, the wire will be created, if you click

Page 12: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

once, this segment of the wire will end and the tool will start

another segment.

Now, we are going to generate the bulk terminals of the nmos

and pmos devices as follows:

Select the device nmos or pmos and press “q”, the following

window will appear:

Page 13: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

From the parameter tab, we will find a parameter called

“bodytie_typeL” and “bodytie_typeR”, this is the body ”bulk”

contact we need to generate, where bodytie_typeL is used to:

generate the bulk at the side of the source terminal of the

device, while bodytie_typeR is used to: generate the bulk at

the side of the drain terminal of the device.

The option of the bodytie to be “integred” will connect the

bulk terminal to the source/drain terminal of the device using

a metal1 layer while option “detached” will leave it

unconnected.

Page 14: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

In our example, we chose bodytie_typeL and hence the bulk

was generated at the source side of the transistor, and we

also chose it to be integred and hence the generated bulk is

connected to the source of the transistor by a metal layer.

The next step is to draw the power rails for the Vdd and Gnd

supplies and connect the bulk of the pmos to the vdd and that

of the nmos to the ground as follows:

Page 15: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

From the above figure, we can notice that we have two metal

layers of same type on each other forming a short circuit and

that was intended as we want the signals on both layers to

see each other.

The next step is to route the input signal to the gate of both

transistors, and to do that, we use a metal1 layer for routing

the signal but we need this signal to be seen at the polysilicon

layer therefore to connect two different layers, we use what is

called a via, Create via.

Page 16: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

We chose the via definition to be a via between M1 and PO

layers and then place the via over the PO layer as follows.

Page 17: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

From the figure, we can notice that when we activate the

option of DRD notify while placing the via, it shows that there

is a minimum spacing that must not be violated between the

Metal1 layer in the via and that used to connect the drains of

both transistors and also that the area of the metal layer in

the via is not fulfilling the design rules, so we drag the via

outwards till the notification disappears and place it then

cover it with a metal layer with an area obeying the design

rules.

Page 18: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

This is the final layout after putting the pins, now we check

and save to run the DRC and LVS checks.

To Run the DRC, Calibre Run nmDRC

Page 19: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Extracting the layout to be checked:

Page 20: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Entering the directory of the DRC rules file as follows:

Page 21: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...
Page 22: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...
Page 23: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...
Page 24: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...
Page 25: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

We check that the rules file is mounted correctly and Run

DRC.

Page 26: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

To run the LVS check , Calibre Run nmLVS, we use same

directory as DRC except for last step instead of drc folder we

use the lvs one and select the file called calibre.lvs.

Note that in case of LVS check, we export the layout and we

have to export the schematic view file as well so in the inputs

tab we choose the Netlist tab and make sure that the

schematic source file is exported.

Page 27: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...
Page 28: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

If this correct sign and smiley face appeared then your layout

matches with the schematic and hence you checked the

function implemented.

Page 29: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

The comparison result shows the matched points and the

mismatches if exist.

Page 30: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Right click on the layout file name view cell, you will see

the gate level/transistor level of the layout file versus that of

the schematic file.

Page 31: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

Extras:

Note that: if we want to create a pin:

Create pin

We enter the name of the pin, we choose its I/O type and we

should activate the ‘Display Terminal name” option, from the

options we can manipulate the display of the pin like we did

with the one generated.

Page 32: Microelectronics Lab ELCT706 IC Design Lab Session #2 …eee.guc.edu.eg/Courses/Electronics/ELCT706 Microelectronics Lab... · Microelectronics Lab ELCT706 IC Design Lab Session ...

We can also create the label of the pin separately Create

Label.