|
|
Cypress Semiconductor
The following report was submitted by Phil Townsend, EE Major
How
I got the co-op position
Cypress
Semiconductor is a microelectronics company based out of San Jose ,
California with offices across the United States as well as in India
, the Philippines , and Belgium . The company was founded in 1982 by
T.J. Rodgers and has expanded to become the current leader in USB device
production in the United States . The office in downtown Lexington is
part of the CAD (Computer-Aided Design) group and opened in 1996 after
Vice President of IT (Information Technology) Alan Hawse expressed a
desire to leave the corporate headquarters in San Jose for his hometown
of Lexington . The Board of Directors elected to allow Hawse to open
an office in Lexington (now located downtown in the newly-renovated
Festival Market across from the Lexington Financial Center and Rupp
Arena) that has since expanded from fewer than a dozen to over thirty
employees. Cypress has a strong relationship with the University and
is currently in charge of administering the EE 584 and 555 courses at
UK , providing both the software for designing the circuits and the
professor for the course, Dr. Elias.
My
experience with Cypress began at the end of April 2006 with a phone
call from the office's secretary, Heather Ley, offering a job interview
the following week. I received this message on my cell phone while I
was at the Co-op office so I was able to tell Donna Hewett about my
interview immediately. Hewett advised me not only to read the previous
Co-op reports about Cypress that other Co-ops had submitted but also
to get in contact with a previous employee of the company, Jeanette
Djigenou, to ask for advice on the interviewing process. Hewett provided
me with Djigenou's phone number, and when I called Jeanette she told
me that I should be prepared for two separate interviews on separate
days: a screening interview where I would be asked general questions
about my academic experience and career goals and, if Cypress was still
interested, a follow-up technical interview that would consist of questions
specifically about the various EE courses that I had taken or was currently
enrolled in. (Later on I would learn that this second phase is referred
to within in the company as the "pack of wolves" interview.)
The Co-op
Work
I
spent the next several evenings reviewing the three most relevant courses
I had had so far in EE that I would likely be asked about in the interview-EE
280: Digital Logic, EE 281: Logic Design Lab, and EE 360: Intro to Semiconductors.
My interview began at about 1 PM in the office's upstairs conference
room. Initially I was interviewed by the two supervisors for the site
in the anticipated fashion of very general questions about myself such
as why I wished to work at Cypress , why I was in Electrical Engineering,
and how my previous experience had prepared me for work in the semiconductor
industry. However, I soon learned that the company wanted to get new
hires in as quickly as possible and as such brought in several other
employees to begin the second, technical phase of the interview process
immediately. My questions consisted of designing a four-input and output
sorting machine given a set of two-input and output sorting machines,
an explanation of the recursive algorithm for the factorial function,
and drawing a frequency divider using D flip-flops and an inverter (all
of which I answered successfully). My interrogators were unable to ask
about the four courses most related to what I would be doing at Cypress,
EE 461 and 462: Electronics Lecture and Lab, and EE 584 and 599: Beginning
and Advanced VLSI, because I hadn't taken those courses yet-thus I was
able to avoid many of the more difficult questions they might have asked
me. After about an hour in total the interview was complete. I sent
a thank you note via email the next day to my interviewers and follow-up
asking whether I had gotten the job the following week, the later message
resulting in a reply that I had gotten the position. The process of
actually starting was held up for several weeks, however, because a
formal job offer could not be made until the requisite paperwork was
processed and mailed from the corporate headquarters in San Jose. I
received an offer letter the third week of May, and on May 30, over
a month after my call in RGAN from Heather, I began my job.
My first
several days at Cypress involved taking online training courses required
for all Cypress employees such as general computer safety and avoiding
workplace harassment. Unfortunately, since I had not had the VLSI classes
at UK before starting work at Cypress and since VLSI is the core of
what the Kentucky Cypress office does, the set of useful tasks that
I could perform was extremely limited. My saving grace was my programming
background, since I had taken AP CS A and AB in high school as well
as CS 216 at UK, giving me a background in C++, UNIX, and Perl (even
though I hadn't used UNIX in over a year and had to relearn the majority
of it very, very quickly). Thus the majority of my work involved computer
programming where, although I may not have had a firm grasp of the circuital
concepts at work in a particular process, I could still write computer
code that would complete the requested task.
My
first Co-op tour at Cypress served as an introduction to the semiconductor
industry and VLSI. Since I had not had any electronics or VLSI courses
prior to starting with the company I had to learn the vast majority
of the information required to perform daily tasks on the job. Since
I was part of the CAD group my projects almost entirely involved computer
programming and in several different languages (Ruby, Lisp, Visual Basic,
and UNIX). Although the majority of my tasks have involved writing short
scripts to help other employees with their work, my largest project,
enhancing a program called lvsvcellsim, was a significant modification
and was released to the entire company.
Lvsvcellsim
is a shortened form of the phrase "layout versus schematic violator
cell simulation." All circuits designed at Cypress are represented by,
most importantly, a schematic and a layout. The schematic view is an
abstract representation of the circuit that Electrical Engineers are
familiar with beginning with Circuits I: resistors are represented as
squiggles, capacitors as a pair of parallel lines, and so forth. The
layout view, on the other hand, represents precisely how one would create
the circuit on a silicon wafer, where different materials are represented
with differently-colored rectangles in a bird's-eye view of the chip.
Layouts and schematics are (at present) created manually in the software
by the CAD engineers and must be checked to ensure that they represent
the same circuit. Additionally, part of the quality assurance process
at Cypress requires simulation of chips with "violator cells" connected
to them. (A violator cell produces a strange input for a chip, such
as an input voltage at a pin of 8 V rather than the now-standard 1.8,
in order to ensure that the chip will not fail catastrophically.) Thus,
the program lvsvcellsim is intended to check that the layout and schematic
views for a particular violator cells match, connect this violator cell
to the chip, and then simulate the chip to ensure that it is not destroyed
by an unusual condition.
The enhancements
I made involved adding two new simulation programs, Nanosim and Spectre,
adding the option to use a different type of schematic view called a
simsch, using several different netlist formats (a netlist is a textual
representation of the elements and connections in a circuit), and generating
an graphical report that is emailed to the user after the simulation
process is completed. This project involved learning how the new simulators
worked, how lvsvcellsim worked, how to program in Ruby, and how much
of a headache porting functional code from one machine to another can
be. (My modifications were ultimately released to the entire company
through the computer code repository in Mississippi , and much time
was spent getting my program to work at all sites, not just Kentucky
.) The usefulness of my enhancements became apparent almost immediately
as several circuits were shown to have transistors with invalid properties
that the old simulator, Eldo, could not detect but that the newly-added
ones could.
In addition,
I've been assigned several other odd jobs throughout the summer, mostly
involving writing Bourne shell scripts and Visual Basic Macros for the
other engineers for various purposes. My role has mostly been to complete
tasks that the other engineers could complete without much difficulty
but that don't have a high enough priority to take care of right away.
Thankfully, this has given me extra time to learn VLSI with several
trips to the EE 584 website to read the tutorials and lectures. Over
time my tasks have begun to require more and more knowledge of VLSI
as my knowledge of the subject matter has increased: currently I'm working
on automating the process of generating a chip layout given its schematic,
requiring a working knowledge of Cypress 's circuit design software
and its internal programming language, SKILL (a dialect of Lisp).
My
job at Cypress is not only my first position in my chosen field but
also my first full-time job, making it doubly a new situation to become
accustomed to. I had few, if any, initial expectations or preconceptions
entering my job (after all, that's partly why I decided to Co-op-to
find out what the real world's all about!), so the first two months
were certainly a period of transition for me. Even though I had taken
full course loads throughout college up to starting at Cypress (usually
around twenty hours), working forty hours per week took a great deal
of getting accustomed to. In an academic setting one has a great deal
of liberty in when one works on a task-one might be in classes for three
or four hours per day but completing the assigned material can be done
at any time, day or night, week or weekend. But in the professional
world one has to get tasks done in an orderly manner between 8 and 5,
Monday through Friday, with no breaks outside of lunch and no excuses.
(Skip a lecture, nothing happens. Skip a workday, lose your job!)
Yet
despite the many challenges I've faced with my new job I've also learned
a very great deal. I've had to pick up several programming languages
on the spot (Ruby, Lisp, Visual Basic, and relearning UNIX) and have
gradually begun to learn the concepts of VLSI that I would have picked
up in EE 584 and 599. But beyond the realm of purely technical knowledge
I've learned how to effectively interact with my fellow employees and
bosses, most importantly summed-up in a discipline called Precise Questioning
and Answering. PQ&A is a philosophy of interaction that attempts
to make the process of speaking about business issues as efficient as
possible by making the questioner (oftentimes your boss) the driving
force of the conversation and by keeping the responses of the answerer
(oftentimes you) as short and direct as possible. (For example, one
would not answer "Have you completed writing your program?" with "Well
I ran some simulations this afternoon and some of them haven't quite
worked because in the first test case..." with the far more concise "No,
I'll be done by the end of tomorrow.")
In addition,
I have had to learn how and when to ask for help from other employees,
either in person, through email, or over the phone. Learning to ask
for help has been perhaps the most difficult lesson for me learn in
my time at Cypress because, being a born perfectionist, asking for help
goes directly against my personality type. Probably the best maxim at
Cypress is "'I don't know' is a step forward, not backward", since the
sooner one admits he needs help the sooner he can get that help and
move on.
|