MECOP Internship August 2008 Kevin Jones SOFTWARE DEVELOPMENT INTERN

advertisement
MECOP Internship
August 2008
Kevin Jones
SOFTWARE DEVELOPMENT INTERN
CALIBRE – YIELD SERVER
Background



HP
Planar Systems
Mentor Graphics – DFM
– Mentor
— Greg - Manager
— Sridhar

Calibre - YS
2
KCJ, MECOP Internship, August 2008
Work Conditions



Hours - 40 hours/week
Wages – $21/hour
Overtime – pre-approved
3
KCJ, MECOP Internship, August 2008
Projects
4
KCJ, MECOP Internship, August 2008
Organizational Reporting Structure

Mentor – Sridhar
— Assigned

DFM
— Manager

most tasks
– Greg
Calibre
— Related
products/tasks
— QA
5
KCJ, MECOP Internship, August 2008
Projects & Tasks

Getting up to speed…
— C++
— Basics
of Application Specific Integrated
Circuits
— Calibre products
— TCL, TK, and C APIs
— Perl
6
KCJ, MECOP Internship, August 2008
Projects & Tasks

Getting up to speed…(continued)
— Environment




Linux
Mentor build environment
Regression test environment
Other tools:
— Debugger
— Rational
Purify
— Sun Performance Analyzer
7
KCJ, MECOP Internship, August 2008
Projects & Tasks

Converted help output to TCL
— Allowed
for access from other
products

Multi-command TCL script (left)
— Redirects
commands to multiple YS
instances
— Used for DFM DB lock testing
8
KCJ, MECOP Internship, August 2008
Projects & Tasks

Command, Object, and Notification Registry
— Common



Goals:
Simplify common tasks
Centralize entry locations
Eliminate invalid/inconsistent entries
9
KCJ, MECOP Internship, August 2008
Command, Object, Notification Registry
10
KCJ, MECOP Internship, August 2008
Projects & Tasks

Command Registry
— Single



line of text will:
Register the command with the TCL interpreter
Integrate the command with the help system
Possibly add it to an API for supported commands
— Command

Object Registry
— Generates

completion
code needed to create a new TCL type
Notification Registry
— Generates code
needed to add a new notification and
process the specified arguments
— Refactored to remove unneeded levels of indirection
11
KCJ, MECOP Internship, August 2008
Projects & Tasks




Added, exposed and/or updated various interfaces
and commands
Updated various TCL types to use a change
observer interface (allowing for proper object
lifetime)
Updated some commands to support read-only
databases
Added support for sending load-time progress to
GUI clients.
12
KCJ, MECOP Internship, August 2008
Projects & Tasks


Updated all commands in YS to use exceptions for
error handling.
Implemented a Performance Monitoring
infrastructure for:
— Timing
various tasks
— Measuring memory usages changes.

Created large invalid-input test case, which
resulted in fixing many (75+) potential crash
scenarios.
13
KCJ, MECOP Internship, August 2008
Projects & Tasks


Added new revision commands for extracting
revision tree information.
Updated revision listing command
— Now
works with unloaded database (much faster)
— Updated sort algorithm

Analyzed and documented YS /DFM DB timing
— Based
on a series of test cases & scenarios
— Breakdown of time-consuming call hierarchy

Created a Tk GUI based help implementation
14
KCJ, MECOP Internship, August 2008
What I learned…
15
KCJ, MECOP Internship, August 2008
What I’ve learned


Basics of what the EDA industry is about
Implications of huge code base:
— Lots



of testing, retesting
Languages: C++, Perl, TCL/Tk, Shell Scripting
Gained more experience working with large code
bases
Product development in Linux environment
16
KCJ, MECOP Internship, August 2008
Helpful courses




Programming Projects in C++ (CS 262)
Data Structures (CS 261)
Operating Systems I/II (CS 311/CS 411)
Analysis of Algorithms (CS 325)
17
KCJ, MECOP Internship, August 2008
Overall Impressions

Mutually beneficial
— Learned
what I wanted to learn and more!
— Completed many tasks, created numerous
documents, maintained code quality
18
KCJ, MECOP Internship, August 2008
Internship Differences

Planar Systems
— Small
company with minimal facilities
— Software team in a hardware company
— Windows; C# development; single target platform

Mentor Graphics
— Large
company with on-site cafeteria, gym,
recreational equipment, etc.
— Software company with a hardware focus - steeper
product/topic learning curve
— Linux; C/C++,Tcl/Tk, Perl development; numerous
target platforms
19
KCJ, MECOP Internship, August 2008
20
KCJ, MECOP Internship, August 2008
Download