联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-02-08 09:03

VLSI Design EENG 34050/EENG M4050 1 Preamble

1.1 Intended Learning Objectives & Outcomes

Learning Objectives

· To introduce the user to the Cadence design environment and the Virtuoso toolset

· To introduce digital full-custom design practices from schematic entry to analogue simulation

Learning Outcomes

By the end of this lab students should be able to:

· Manage basic tasks in the Unix Operating System necessary for using Cadence

· Launch Cadence and use the Virtuoso toolset

· Create circuit-level schematics using transistors and passives and carry out transient simulations

Labs 1 through 3 comprise a tutorial-based introduction to full-custom IC design based on the Cadence

toolset and the 0.35 ?m CMOS process from AMS. It covers three main areas: circuit design using

schematic entry (Lab 1), layout (Lab 2) and advanced simulation and verification techniques (Lab 3).

These labs are complementary to the lectures.

Please feel free to print the lab manuals if it is easier to move back and forth between sections.

Texts with underlines have embedded links.

Click on the symbol to go back to the previous place. For figures, symbols take you

back to the first time that the figure is mentioned within the text, you can click on symbols

to switch to other places that are referring to the same figure. Click on to return to the

Table of Content.

It would be easier if you set the pdf view to ‘Fit One Full Page’ or with a zoom view below

100%.


Note:

Attendance at the scheduled lab sessions (timetable is provided on Blackboard) is

MANDATORY in sessions attended by the lecturer and lab demonstrators. If you cannot attend

any of these for some compelling reason, please see me in good time. Please note that each lab

is a prerequisite for the next one.

You must work alone on these assignments. Please note that plagiarism of any sort is an academic

offence.

VLSI Design EENG 34050/EENG M4050


1.2 Confidentiality of Process Information

To do meaningful, industrially relevant work, these laboratory exercises use a physical design kit (PDK)

for a 0.35 mm technology called the Hit-Kit (short for High Performance Interface Tool Kit) from a

commercial vendor called AMS that is supplied under a Non-Disclosure Agreement (NDA).

All AMS supplied models, library files, datasheets and documentation made available to you can strictly

be used only to carry out design and simulation tasks prescribed in this Unit at the University of Bristol. No

information related to the AMS design kit may be disseminated to anybody or used for any purpose other

than the above. In addition to AMS supplied models, library files, datasheets and documentation, publishing

simulation results based on AMS device models or standard cells that allow comparisons to be made against

other processes is not permitted under the NDA.

You can only start these labs if you consent to the requirements of the NDA. By continuing you agree to

abide by the statement on the last page, which you must sign and upload to Blackboard by the

suggested deadline.

1.3 How to Read the Lab Documents and Complete the Exercises

These labs are individual exercises, i.e., you must work through them on your own, not in a group. Every

lab document is meant to be read through in order from beginning to end, and no section should be skipped.

Questions are embedded in each section, and are of two types:

- Tasks, where you should follow a series of instructions, such as completing a command in the

simulator.

- Exercises, where you are expected to produce some output, whether it is a worked calculation, a

circuit schematic, a simulation, or some discussion.

You will be marked on Exercises, and solutions should be uploaded electronically through Blackboard.

Each exercise will have specific instructions on what and how to submit. For more information refer to:

What you need to upload to Blackboard.

Important coursework submission deadlines:

1. Exercises in Lab 1 and Lab 2 manuals should be submitted to Blackboard as Coursework 1:

Cadence Schematic and Layout (Total 100 points, 30% of your final mark for both EENG 34050

and EENG M4050 students) by 13:00 on Thursday 29 February 2024. The submission point on

Blackboard will be opened 2 weeks before the deadline.

2. Exercises in Lab 3 manual should be submitted in Blackboard as Coursework 2: Cadence

Analysis (Total 100 points, 20% of your final mark for EENG 34050 students and 30% of your

final mark for EENG M4050 students) by 13:00 on Thursday 25 April 2024. The submission point

on Blackboard will be opened 2 weeks before the deadline.

During the lab sessions, the lecturer and lab demonstrators will ask you to show your work.

Please make sure to upload the required documents for each coursework by the deadlines. Penalty marks

will be considered for delayed submissions.


VLSI Design EENG 34050/EENG M4050

5 | P a g e


Academic Integrity and Avoiding Plagiarism

Plagiarism is the act of trying to pass off somebody else’s work either wholly or in part as your own and is

an academic offence. Simply put, it is cheating and includes copying the answers to questions and

submitting any work electronically that is not exclusively your own. As these are individual assignments,

it is not permitted to:

- Discuss the answers to questions within a group and submit the same solution, possibly with minor

variations. If you do, it will be discovered, and all parties will receive zero for that question at a

minimum.

- Ask a lab demonstrator for the answer to an assessed question. The point of an assessed question is

to test your understanding, not the lecturer’s and lab demonstrators’ understanding.

Every submission for any assessed assignments must be completely your own effort. Discussions are a great

way of tackling new concepts and are an essential part of learning. However, it is not acceptable to provide

the same answer to individual exercises by working as a group. You should attempt the solution to the tasks

and exercises on your own, and not show each other your attempt.

Note:

Carefully read the section on Academic Integrity.

All students who collude on exercises and assignments will get zero marks for that bit of

coursework at a minimum, regardless of who copied from whom.

Please do not ask the lab demonstrators to do exercises for you, or if an answer is correct. Their

task is to help you with Cadence. As an example, in Exercise 3.1, the only help you should ask

for from the demonstrators is on how to extract the delay from the simulated waveforms (if you

need to), not with the equivalent circuits, deriving an expression for the delay, or calculating the

equivalent resistances based on your simulation results. I cover all concepts in teaching sessions

and please do ask me if you need help.

Laboratory Usage

The 2.11 Linux lab is reserved for students of the VLSI Design course every Tuesday, from 10:00-13:00.

Please pick a seat, avoid walking about as much as possible, and keep conversation to a minimum to avoid

disturbing your colleagues. This is a centrally managed teaching resource, and all users must respect

the rules related to not consuming food and drink inside the lab as signposted at the entrance. If you

need a break, please use the resources provided in the foyer.

Remote Access to Linux Machines for Using Cadence

Follow the instructions in Task 2.1.


1.4 Introduction to Unix/Linux

Many of you will be familiar with the Linux flavour of Unix and if that is the case simply skip this section.

If you do not have any experience with Unix, it is a good idea to go through a basic introductory tutorial,

to perform basic Operating System-related tasks such as listing the contents of a directory, copying and

moving files, reading text files, and understanding which configuration files modify which aspect of your

environment. Many such tutorials are freely available on the internet. A good one is available here:

http://www.ee.surrey.ac.uk/Teaching/Unix/.


Note:

If you do not have experience with Unix, the basic commands below will allow you to do the rest

of the lab. It is strongly recommended that you follow some online tutorials afterwards. Spending

an hour or two understanding Unix will greatly benefit you in the long term.


For your reference, some basic commands are listed in Table 1. Bear in mind that Unix is case-sensitive.

All Unix commands listed below that you can type in are given in the format of “command arg” using

quotes and a different font. That is, you can type in the text inside the quotes.


Note:

The Unix help is documented in man pages. You can get more information about any of the

following commands by typing “man command” at the command prompt. For example, “man

ls” will give you the man page for the command “ls”.


TABLE 1. Unix commands

Command Description

passwd Allows you to change your password. (Please follow standard University guidelines in managing

passwords and make sure that you use a secure password, and do not share it with anyone.)

ls Lists the files in your current directory. Most Unix commands take one or more optional

parameters, specified with a leading ‘?’ without the quotes. For example, “ls -l” lists your

files in the 'long format', which contains lots of useful information such as the exact size of the

file, the owner of the file, who has the right to read, write and execute, when it was last modified

etc.

“ls -a” lists all files, including file names that begin with a leading dot, which are typically

used for various configuration uses, and are not shown by default.

“ls -al” shows all files in long format.

VLSI Design EENG 34050/EENG M4050

7 | P a g e


pwd Shows your current directory.

cd Changes directory to the directory . If such a directory does not exist, you will get an

error message. Here can contain a full path. You should bear in mind that paths in

Unix are specified with a forward slash rather than a backward slash as in Windows. For example,

you move to the root directory by specifying “cd /”. The Cadence installation directory is

/usr/local/cadence. You can move to this directory by typing “cd

/usr/local/cadence” from anywhere since you specify the full path.

When you log in, you always start out in your 'home directory', which is the directory allocated

to you as a user. You can always return to your home directory by typing “cd” without

arguments.

“cd ..” will move you one level up from your current position. You can use the tilde sign

‘~’ followed by a username as a shortcut to that user’s home directory. For example, “cd

~user1” will change to user1’s home directory. The ‘~’ sign on its own without a username

signifies your own home directory. The use of the tilde sign is permitted with any command that

uses a path, such as “ls” or “cp”.

mkdir Creates a directory called dirname.

cp


Copies to . This command also accepts wild cards. For example, the

command “cp /dir1/dir2/*” will copy all files contained in “/dir1/dir2” to

the current directory. The asterisk is a wild card signifying all files, and the dot (period)

at the end says to copy the files to the current location. If the directory being copied has

sub-directories, and you want to copy all these sub-directories, the option “-r” needs

to be used. So, for example, typing “cp -r ~user1/design ~/” will copy

the directory “~user1/design” (assuming you have read permission on it) and

all its contents including sub folders to your home directory.

rm Deletes the file . Bear in mind that Unix does not have a trash can or an undo function,

and anything deleted is deleted forever! It is wise to use the option “rm -i”, which will ask

you for confirmation before deleting anything. “rm” is a very powerful command, and “rm -

r” will remove directory contents recursively. For example, “rm -r myName” will remove

the directory myName and all its contents, including sub directories. Again, there is no recovery

once something is deleted, so always make a habit to use rm with the option ?i. For example,

“rm -i myName” will prompt before trying to delete myName.

mv


Equivalent to “cp ” followed by “rm

”.

rmdir Deletes the directory if it is empty. “rmdir” deletes only empty directories.

more Shows the contents of , formatted to fit whatever size your xterm is. (You will see

machine code symbols if the file is not a text file.) Hitting the space bar will move onto the next

‘page’, while pressing ‘q’ will exit the command.

less More or less the same as “more” (!) except that “less” allows you to scroll using scrollbars.

Also quitting the command will not retain any text in your xterm, while “more” will retain the

contents of the last page.

vi Starts the vi text editor. This is a lightweight text editor that is standard with all Unix installations.

Please check this link https://www.cs.colostate.edu/helpdocs/vi.html for a tutorial on how to use

vi. You will find many such tutorials on the internet.

VLSI Design EENG 34050/EENG M4050

8 | P a g e


emacs Starts the emacs editor. This is a much more powerful editor. This link gives you an idea of its

capabilities and provides a tutorial introduction: http://www.gnu.org/software/emacs/tour/

chmod [options]


Changes the read, write and execute permissions on your files. The default is that only you can

look at them and change them, but you may sometimes want to change these permissions. For

example, “chmod o+r ” will make the file readable for everyone, and

“chmod o-r ” will make it unreadable for others again. Note that for

user1 to be able to read a file created by user2, all containing directories for that file need to be

at least executable for user1.

tar Used to create file archives and extract files from a supplied archive. This is a sort of equivalent

for winzip, without actual compression. For example, “tar -xvf filename.tar”

‘untars’ the tarball or tar archive contained in filename.tar, including the hierarchical directory

structure. The command “tar -xvf filename.tar -C ~user1/test”

will extract to the specific directory ‘~user1/test’. The command “tar -cvf dirname”

will generate an archive consisting of all contents of folder dirname to “dirname.tar”.

gzip Compresses files. “gzip” produces files with the ending '.gz' appended to the original

filename. For example, “gzip tarball.tar” will produce the file ‘tarball.tar.gz’.

gunzip


Uncompresses files compressed by “gzip”.

grep


A very useful and powerful utility that searches for the text pattern ‘string’ in filenames.

For example, “grep ‘foo’ filename1 filename2” looks for the pattern

‘foo’ in filename1 and filename2. “grep” uses regular expressions for specifying

patterns. You can look up regular expressions for example on the internet here:

http://www.regular-expressions.info/quickstart.html.

top Provides an ongoing look at processor activity in real time, displaying a listing of the most CPU-

intensive tasks on the system. It provides an interactive interface for manipulating processes. For

example, if your username is user1, typing “top”, followed by “u” (which prompts you for a

username), and “user1” will list your processes. You can also terminate processes

interactively by typing “k” when running “top”, when you will be prompted for a PID. You

will also be prompted for a ‘kill’ option such as ‘9’.

ps -u Lists all the processes started by . The listing contains lots of information including the

process ID or PID, which is very useful if something crashes and you need to kill processes

individually, as well as the total time a process has been running etc.

kill [options]


Kills (terminates) the process having the process identifier (a number). This works only

for your own processes. You can get the PID by using “ps”. “kill” used on its own without

an optional attempt to terminate the process gracefully, giving it a chance to finish important

business such as flush buffers etc. If the process does not terminate (give it some time!), use the

option -9 or -KILL as in “kill -9 ” or “kill -KILL ”.

You should generally kill off ‘ghost’ processes that are artefacts of crashes or are otherwise not

performing any useful function. For example, Cadence starts many processes with a leading ‘cds’

in the name, such as “cdsMsgServer”, “cdsServIpc”, “cdsNameServer” etc. Another common

process is “obNameServer”. Sometimes Cadence crashes, when these processes remain running

in the background. You should locate these processes using “ps -yourUserName” or

“top” (see below) and kill them before restarting Cadence.


VLSI Design EENG 34050/EENG M4050

9 | P a g e


Note:

A very useful utility in Unix is command completion. If you type the partial name of a command

or a file name and press the tab, Unix will complete the command or file name, and prompt you

if there is no unambiguous choice. This helps when typing long commands. For example, rather

than typing “gunzip”, typing “gun” followed by the key will complete the command.

Typing “gu” and pressing “tab” will not produce a completion in the first instance because

several other available commands begin with “gu” (eg: “guile” and “guile-tools”.

However, if you press the “tab” key a second time, all the commands will be listed, so this is

also a neat way of checking what commands or files are available.

Also, the up arrow will cycle through previous commands.


1.5 Acknowledgements

These labs have been compiled from a combination of knowledge and information gained by personal

experience of using this tool at various institutes, teaching documents available via the internet or acquired

through personal contacts, and Cadence documentation. References are cited wherever text or diagrams are

taken from another source. The following websites have been particularly useful:

1. https://www.mics.ece.vt.edu/ICDesign/Tutorials/Overview/index.html [Retrieved Jan. 2023]

2. https://inst.eecs.berkeley.edu/~cs250/fa10/ [Retrieved Jan. 2023]

2 Introduction to Cadence

2.1 Configuring Your Unix Environment for Cadence

When you log in, you always start out in your 'home directory', which is the directory allocated to you as a

user. For example, if your login name is user1, you will be in the directory “/home/user1/linux”.

You have written permission only in your home directory. You can always return to your home directory

by typing “cd” without arguments.

It is necessary to create a directory from where you always start Cadence since a lot of files and

subdirectories are automatically generated. This way, you can keep the environment for this Unit separate

from the environment for other Units.


VLSI Design EENG 34050/EENG M4050

10 | P a g e


Note:

You must follow the naming convention outlined in each lab very precisely. These names will be

assumed by the automated test bench scripts that will check your submitted designs.

Some characters are not interpreted literally in UNIX. For example, the ~, !, $, *, ?, \ , / and blank

spaces are called meta-characters and can cause problems when used in file names, because they

have other purposes in UNIX and are interpreted as instructions. Thus, you should avoid any

name with the above characters (such as a cell named “nand3 new” or a library named

“lab/2019”), since it may cause strange errors in the later stages of the design phase.

Designs in Cadence are called cells. Cells that logically belong together are organised into a

library. You should have a single library called “lab2024” where you save all your cells. The

naming convention you should follow is shown in Table 2. These names will be repeated at the

point of creating the cell in each lab assignment. You should see “lab2024” instead of

“lab2018” mentioned in some of the Figures.


TABLE 2. Library and cell naming convention for Lab Coursework

Library

Name Cell Name Lab No. Description

lab2024 inv 1 Inverter cell

tb_inv 1 Testbench for the inverter

nand3 2 3-input NAND gate

tb_nand3 2 Testbench for the nand3 gate

invParam 3 Parameterised Inverter Cell

tb_invParam 3 Testbench for the Param. Inverter


Task 2.1: Setting Unix Environment for Full-Custom Design

(Laboratory Usage)

1. Once logged on, select Applications --> System Tools -- > Terminal.

2. Once the terminal window is open, type “cd”, which ensures you are in your home directory.

3. Type “module use /eda/cadence/modules”.

4. Type “module load course/EENG_3M_4050” to create a new working directory for Cadence.

VLSI Design EENG 34050/EENG M4050

11 | P a g e


5. Type “vlsi_setup” to setup the VLSI directory (~/VLSI) and type “cd VLSI” to enter it . On future

runs, you can type “cd EDA/VLSI” to enter the VLSI directory that is already set up.

6. Start Cadence by typing: “ams_cds &”.

(Remote Access)

Note: It is strongly suggested to access the software in the lab only. If you need to remote access the

software and you face any issues, you should directly contact IT services for support.

1. For remote Linux desktops follow the instructions in this link based on your operating system:

https://uob.sharepoint.com/sites/itservices/SitePages/fits-engineering-linux-x2go.aspx

2. Once logged on to x2goclient, select Applications --> Terminal Emulator.

3. Once the terminal window is open, type “cd”, which ensures you are in your home directory.

4. Type “module use /eda/cadence/modules”.

5. Type “module load course/EENG_3M_4050” to create a new working directory for Cadence.

6. Type “vlsi_setup” to setup the VLSI directory (~/VLSI) and enter it. On future runs, you can type

“cd EDA/VLSI” to enter the VLSI directory that is already set up.

7. Start Cadence by typing: “ams_cds &”.



Note:

? The ampersand character (&) at the end of the command is to have the Cadence executable run in

the background, which frees up the xterm to accept other commands. This is a general Unix

utility and works with any command. You can leave a space between the final argument and the

ampersand as shown or have no space.

When you run this script for the first time, several configuration files are created. In the xterm you will see

various messages.

All messages beginning with “Creating..” relate to initialisation files that are created the first time

you run the tool, and will not appear again. The last line tells you that the Cadence executable virtuoso

is running, with the Hit-Kit version 4.10, (which is the technology kit supplied by AMS and relates to

libraries and process-related information), with a C35B4 technology that refers to a 0.35 ?m 4 metal

CMOS technology.

You should now have the following windows open:

- The Select Process Option window, which lists the available options for the C35B4 process. YOU

MUST SELECT “C35B4C3 PIP VG5 HIRES”, then press “OK” (see Figure 1 ).

- The Command-Interpreter-Window or CIW for short (Figure 2) is the main Cadence window

which echoes the main log created as “~/cds.log”. This window prints diagnostic

and error messages from the various other tools that Cadence starts up. Closing the CIW will cause

Cadence to exit.

VLSI Design EENG 34050/EENG M4050

12 | P a g e


- The Library Manager, which lists all available libraries, and provides a menu-driven GUI for

performing common tasks such as creating/copying/deleting libraries and cell views (Figure 3 ).

If for any reason the Select Process Option window is not visible, go to the CIW menu bar, select Hit-Kit,

and then select Process Option from the drop-down menu. A Select Process Option window will pop up

(Figure 1). Select the “C35B4C3 PIP VG5 HIRES” option and click “OK”.



FIGURE 1. Fabrication process options


FIGURE 2. The CIW

VLSI Design EENG 34050/EENG M4050

13 | P a g e



FIGURE 3. The Library Manager

At this point, you should have two windows open, the CIW and the Library Manager. You should now

have a look at the contents of your Cadence working directory, by typing “ls” into the Linux terminal

window, which will list the files present. Two important files are the “cds.lib” and the “.cdsinit”

file. Type “ls -al” if you don’t see these files.

The “cds.lib” file is the library definition file, which tells Cadence where the various supplied and user-

defined libraries are available.

The “.cdsinit” file specifies user customisation of the general tool environment.

Additionally, various other configuration files specify the configuration for various other tools that will be

used later, such as the layout editor.

2.2 Using the Cadence Documentation

At any time, you can type “cdnshelp&” into the terminal to launch the Cadence document server. You

can do a text search or access the various user guides separately. This is a valuable source of information,

and many manuals, tutorials and user guides exist for various parts of the tool. The Cadence help should be

your first source of reference whenever you have a query.

2.3 Cadence Design Flow

In the full custom design, the basic flow is to create the schematic according to the specifications, and then

the layout according to the schematic (see Figure 4).

VLSI Design EENG 34050/EENG M4050

14 | P a g e


Creating a schematic to match the specifications is the more straightforward of the steps, due to the higher

level of abstraction. Creating a layout to match the schematic is much more difficult, as it consists of

manipulating polygons of different materials on several layers, and even creating a wire (metal connection)

between two nodes is a complicated task in comparison with schematic entry.

In layout design, a primary check that needs to be carried out is called a Design Rule Check or DRC for

short. This is a check that the layout does not violate any of the design rules for the targeted technology,

such as spacing rules. This is an automated check that is specified by rule files, which were set up when

you ran the “ams_cds” script for the first time.

A second check is that the layout matches the schematic, through a Layout vs Schematic or LVS check. This

is an automated tool task in Cadence.

A final check is to extract the parasitic resistances and capacitances from the layout, the unintended artefacts

of the layout, and simulate the schematic with these parasitics in place so that wires are not treated as

equipotential regions but rather as resistive-capacitive (RC) lines, and capacitive coupling between nodes

is accounted for.

It almost always happens that when running these checks, errors are discovered, or the circuit does not

match the required specifications, and the layout needs to be modified. The number of these iterations can

be high depending on the complexity of the circuit, and typically we move back and forth between the

circuit schematic and layout.

Various tools handle the flow between the schematic, layout, and simulation. Each lab in the coming weeks

will examine these steps in detail. In the rest of this lab, you will create an inverter schematic and run a first

analogue simulation.




FIGURE 4. The waterfall design flow

2.4 Running Cadence in Subsequent Lab Sessions

(Laboratory Usage)

In the first instance of running Cadence, it was necessary to stipulate the AMS C35B4C3 process, which

initialised the creation of the associated files within your Cadence working directory. This process is not

necessary again, thus in all future lab sessions, Cadence should be run as follows.


1. Once logged on, select Applications --> System Tools -- > Terminal.

2. Once the terminal window is open, type “cd”, which ensures you are in your home directory.

3. Move into your (/VLSI) Cadence working directory, by typing “cd EDA/VLSI”.

4. Type “module use /eda/cadence/modules”.

Schematic

Layout

Specifications

VLSI Design EENG 34050/EENG M4050

15 | P a g e


5. Type “module load course/EENG_3M_4050” to create a new working directory for Cadence.

6. Start Cadence by typing: “ams_cds &”.

(Remote Access)

1. Once logged on, select Applications --> Terminal Emulator.

2. Once the terminal window is open, type “cd”, which ensures you are in your home directory.

3. Move into your (/VLSI) Cadence working directory, by typing “cd EDA/VLSI”.

4. Type “module use /eda/cadence/modules”.

5. Type “module load course/EENG_3M_4050” to create a new working directory for Cadence.

6. Start Cadence by typing: “ams_cds &”.

3 Schematic Entry

3.1 Creating a New Library

The first task is creating a new library where your new schematics will reside. The Library Manager

(Figure 3) is a design management tool that helps us navigate the different libraries and cell views, including

the supplied libraries as well as the project libraries.

You will see that under the “Library” tab, many libraries are already defined. Two libraries that we will

be using very often are “analogLib”, a Cadence-supplied library for common components such as

ground, vdd and voltage and current sources, and “PRIMLIB”, an AMS-supplied library that contains

parameterised transistor cells among other components that we can use directly. We will see how to use

these libraries later. The first task is to create a new library where you will be storing the different views


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp