Introduction to Digital VLSI Circuit Design
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Introduction to Digital VLSI Circuit Design
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
4 | P a g e
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.
VLSI Design EENG 34050/EENG M4050
6 | P a g e
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.
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.
VLSI Design EENG 34050/EENG M4050
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.