P        r        o        j        e        c        t        s
Setup and configured LMS Northchurch Communications
Setup the LMS configuration files. The development library contained a merge of two libraries, a library maintained by Northchurch and a library maintained by Newbridge Networks. Configured multiple non-LMS source libraries. Defined LMS directory structure for symbols, maps, geoms, and setup catalog file templates. Configured the LMS menu drivers to build the DA menus to include Northchurch and Newbridge parts.
Setup To_Layout configuration files, package config, layers file, process config, etc. Defined a process for converting non-LMS parts and designs to LMS.

Customized Environment Northchurch Communications
Created C-shell startup files for MGC environment. Created location map with library definitions. Defined and resolved problems with PCB release process.
Created site userware area. Created many DA utilities, menus, and dialog boxes. Customized default DA title blocks with Northchurch name. Created utility with custom dialog box for updating existing designs with Northchurch name. Defined key definitions for NT xterm environment. Added menu items in symbol editor for adding Northchurch LMS properties.

Tcl/Tk Library Palette - Patent# 6121965 Lucent Technologies
Replaced the DA palette menu with a floating Tcl/Tk palette. Lucent users found the Falcon user interface inefficient due to deficiencies such as lack of call backs and dynamic widgets. The users found traversing up and down the DA palette menu was a major productivity issue.
Created a Tk palette menu with bi-directional communication with DA. The Tk palette communicated with DA via the DA IPC socket and communicated back via a Tcl named pipe. The communication provided a scope sensitive palette, where the palette dynamically reflected commands for the schematic, symbol, or session scopes. The communication also allowed commands to obtain information, such as property values, and to send Ample commands back to the active window.
The Tk palette has features such as component menus on tabbed panels, icons of symbols instead of text, balloon descriptions, tear away command windows, support for multiple process technologies, single versus double clicking for single or repeat mode, depending on technology about 120 icons for the various scopes and tabbed panels provided efficient command access. Screen Snapshot

Dynamic Form Builder Lucent Technologies
Automated the process of building technology dependent IC symbol libraries. Created Ample software that builds custom dialog forms for setting the symbol properties. Instead of setting each property individually, a form is presented with a field for each property. Each symbol type has a custom form that is generated on the fly based on parameters parsed from the device model file.
To create a new technology specific library, an initial script first parses the parameters from the model file along with choice values and default values. Each parameter is then mapped to a widget such as a text field, choice button, etc. and a proprietary intermediate file is created for each symbol type.
When the user clicks the library palette to add a symbol, the intermediate file is read and a dialog form is generated on the fly with a widget for each property. When the form is executed, the properties are added to the generic symbol. The same form generation is also used when editing an existing symbol. Once created the forms are cached.
With the Dynamic Form Builder the user interface is automatically updated when the model files are updated or spun off for new process technologies. This product is being consider for patent.

Tcl/Tk Netlister GUI Lucent Technologies
Created a user interface for the Lucent netlister. Creates the netlist and optionally creates a symbol and viewpoint, followed by displaying the results in a report window.
Consisting of many compound widgets with inter-widget communication. Such as Path name widgets that display a label for a default value and dynamically change to a text entry widget with a navigator pop-up for non-default specification. Path name widgets have a pop-up navigator capable of displaying Mgc file sets (directory and attribute file, etc.) as one icon, using same icons as Mgc. The main form contains 3 widgets with an advanced options feature that expands the form to reveal an additional 13 widgets. Inter-widget communication involves modifying path names of other widgets when changing a viewpoint type, viewpoint name, viewpoint path or stand alone mode. Other inter-widget communication involves graying-out some widgets base on other widget settings and a dynamic message area for real time warnings.
Communication with DA is accomplished via an IPC socket and named pipe (uses the same resources as the Tcl/Tk Library Palette or creates its own if the palette is not in use). Presets the path name fields based on the active schematic or symbol window and obtains the default viewpoint and available viewpoint definitions. Upon form execution, creates, if necessary, a symbol, viewpoint, netlist, and report. Screen Snapshot

Adding Comment Blocks Lucent Technologies
Created a utility for adding a block of comment text to a schematic sheet. Pops-up a form with a hidden disclosure widget for specifying a file name or entering text via a simple text area form. If a file name is selected, the form discloses a list box navigator with the option to open an existing file or create a new file using the VI editor. If the simple text option is selected, then a text area widget is opened allowing the user to enter lines of text. Upon selecting a file or entering simple text, a prompt is issued for digitizing a location where the text is then placed, one line for each line in the file.
The block of text is then editable. When the multiple lines of text was added, each line was assign a group name. The group was named with the handle from the top line of text, and when this utility is invoked with that top line selected, then the group is detected, and same pop-up form opens with the option of writing the text to a file and editing with VI, or opening the simple text area form with the text block pre-loaded.

Copy Component Lucent Technologies
Extended Mgc's copy component with an optional pop-up form for specifying the symbol and interface names. After completing the $copy_component form, a script reads the current symbol and interface names, builds a form dynamically, presenting the existing symbol names next to a text entry field allowing renaming. The dynamic form contains a section of entry widgets for symbol names and a section for interface names. The component is copied, and if necessary $move_design_object is called to rename symbols and a Cib script is dynamically created and executed to modify the interface names. Screen Snapshot

Lucent Title Block Lucent Technologies
Created a script for adding or editing the sheet border and title block. The script presents a custom dialog form containing a widget for each field on the Lucent title block. When adding a new title block, the form fields are preset with component name, date (from sheet last modified date), sheet number, user name, etc. finally upon form execution the border is created centered around any existing components along with the title block. If the sheet has an existing title block, then the form is opened for edit containing current values, also changing the widget for sheet size, rips up and replaces the border and title block. Sheet save functions were overloaded to update the title block date field (as well as re-checking the design to retain check status).

Generate Symbol Lucent Technologies
A graphical user interface for entering pin information used to automatically generate a symbol. To create a symbol, the user simply completes two forms, the forms will be preset with values (component name, symbol name, pin names, etc.) from the current symbol or schematic scope. The first form accepts the component name along with the number of pins. The first form also has an advance options pop-up form for information such as symbol name, pin spacing, sort, symbol shape, etc. The second form is generated on-the-fly with a row of fields for each pin, each row has a widget for the pin order (pin order used by Lucent's own simulator), pin name, pin type, pin side (right, left, top, bottom), bubble and clock graphic. When the form is executed a pin list file is created and $generate_symbol is called. Subsequent use on the same component allows editing. Screen Snapshot

Traverse and Modify Property Lucent Technologies
Traverses the logical component hierarchy and reports or modifies properties. User configurable to modify property; value, type, name, visibility, color, scale, etc. Provides a no-save option for review. Generates a report on changes and errors.

Update Instances Lucent Technologies
Created and out-of-date instance utility with the option to either highlight, update auto, or update clear. If the argument is not provided and out-of-date instances exist, a form prompts the user. If the sheet is in read only mode, then the form only provides highlight or cancel. Added to pull down menus and automatically called when opening a sheet (in no argument mode).

Ample Library Lucent Technologies
Created a library common functions for string parsing, system calls, reading and writing files, date formatting, alias and stroke definitions, startup and Init files, userrule checks, etc. Perform system administration, maintained my own workstation, licensing, printing, OS and Mgc installations and patches. All Gui work contains pop-up help and all code thoroughly documented.

Full Custom IC Library Sarnoff Corporation
Defined an AMP modeling architecture that included the model registration, logical library hierarchy, primitive levels, properties, expressions, n-bit devices, viewpoint parameters, etc.
Also in a team development effort, we developed Quickpart schematic models, Quickpart table models, Builtin models, VHDL models, timing models, and the symbols. Defined the library directory structures, released and unreleased procedures, and access control.

Load Dependant Characterization Sarnoff Corporation
Created Quicksim technology timing files for a full custom IC library. These timing models used load dependent linear equations whose data was automatically derived from an Accusim script.
For each component, I developed a script that measured the load and noload delays of the schematic model. The delays of each path was then used to compute the linear coefficients. The script would also calculate the capacitance of each input pin using the spice model properties of the connected devices. Finally the script would add the data to the timing file, recompile and re-register the model.
The delay equation used a load based on the sum of the connected pin capacitance properties and the back annotated routing parasitics. Prior to back annotation, the equation estimated the routing parasitic based on the connected pin count.
Each component's script allowed the timing to be updated in one step when process or structural changes were made to the component's schematic level spice model. Also the library was designed to be quickly spun off for a new process by global modifications to viewpoint or spice model file. I also assisted in creating the rules file and the ICextract procedure. Released with complete FrameMaker documentation.
These models were used to simulate a 625K transistor IC with first pass success. Presented MeneLug Paper.

IC Project Standards and Procedures Sarnoff Corporation
Worked on the definition of library directory structures, released and unreleased procedures, access control, Mentor startup files, shell startup files, location map, automounting, etc. This environment was design to enable users to easily switch or concurrently work on different projects that reference different libraries, userware and Unix scripts.
Created site, project and process userware that included DA parameterized symbol menus, custom check sheet extensions, key definitions, custom registered commands, automatic title block updates, plotting scripts, startup files, viewpoint definitions, etc. Additionally I created Quicksim scripts and verified adders, multipliers, and other models.
Created site userware area and defined guidelines. Created and documented a library of useful functions that include simplified file operations, string parsing, debugging and plotting.
Performed project and library archives. Defined a Design Manager archive configuration and trained others with the procedure. Managed version depth and purging.

Design Viewpoint Innovation Sarnoff Corporation
Created an innovative DVE Unix "here" script that allows project administrators to quickly define custom viewpoints.
The script takes the viewpoint configuration name and design name as arguments. The script simply invokes DVE and executes an Ample function of the same name as the configuration name. Thus, the project administrator only needs to define a userware function when defining a custom viewpoint. By default the viewpoint is named the same as the configuration name, unless a third optional argument is provided.
Also defined an alias naming convention to simplify calling the script with the project userware variable and configuration name. For Accusim viewpoints, I provided a userware template for attaching the model file reference. Released with complete documentation (FrameMaker).

Mentor Installation and Configuration Sarnoff Corporation
Defined and installed Master and User configurations of Mentor IC and PCB products. Setup licensing, printing, location map, and performed verification. Also installed patches and kept users informed of relevant service bulletin items.
Documented the installation configuration (FrameMaker) and trained others with the process.
Installed and configured the Logic Automation library.

UNIX System and Network Administration Sarnoff Corporation
Performed Setup and Maintenance in the following areas:
  • Automounter
  • Printing
  • NIS
  • Cron
  • Security
  • OS Patches
  • Backups & Archives
Also transitioned Apollo environment to HP-UX and provided Unix training.

Mentor Consulting Proposal Sarnoff Corporation
Worked with Mentor's Professional Services team in defining, documenting and presenting the consulting services to Sarnoff. Defined version 8 transition plans for a research IC design environment.
Proposal resulted in $100K contract that later was performed with complete customer satisfaction. I rendered 90% of the contract services. Sarnoff presented the project's success at MUG '95.

Automatic PCB Menu Builder Sarnoff Corporation
To Address Package delays due to typos and missing part numbers, I created a DA menu builder that virtually eliminated errors by eliminating duplicate data entry.
I developed userware for automatically creating PCB DA component menus. The menu structure is built based on the structure of the symbol directory with each symbol's menu item then having a sub-menu of part numbers based on matching comp properties found in the catalog library. When symbols are instantiated, the parameterized menu applies the part number and optional properties obtained from the catalog entry.
The librarian builds the menu by clicking a DA palette icon, the menus are built based on the current library, then the librarian would test the new entries, finally after verification the new menus are installed for user access by a second palette icon.
The menu builder started with a specification and was released with complete librarian and user documentation (FrameMaker), all were very well received.
Recently an engineer at Lucent in North Carolina some how found and read the above, then contacted me for a copy, Sarnoff agreed and now they are a satisfied user.

PCB Support, Problem Solving and Training Sarnoff Corporation
Transitioned Cadnetics site to Mentor Board Station. Trained new users in Librarian, Package, Layout and Fablink. Defined library structure and standards. Trained Librarian and Designers in creating symbols, catalogs, maps, geometries and debugging Package errors.
Trained engineers in schematic capture, hierarchical concepts, and Quicksim/LAI.

Bill of Materials Program - C/DFI ChipCom Corporation
Created a C program using DFI procedural interface calls. The program produces a bill of materials from schematics at any level of completion (unlike Mentor's bom that requires a fully Packaged and error free design).
The early bom provides purchasing additional lead time, thus compensating for a very short development cycle. This bom also flags parts that are missing from the catalog, mapping, and geometry library and therefore can be forwarded to the librarian.
The bom handles hierarchical designs and extracts the part number for each primitive instance defined by the comp property. Using the part number, the catalog files are searched where the values of comp, geom, package count, and a description (either instpar, current, voltage, or model) is obtained. The bom is created with a line for each unique part number. Each line lists a line number, part number, comp, description, geom, instance count, instances per package, and required packages.
The bom originated with a technical specification and released with builtin user documentation.

Developed Library Verification Tool ChipCom Corporation
In response to Packaging errors, I created a script that runs a component through package. The script places a component on a blank schematic and executes check schematic. Next Package is invoked and catalogs are loaded, build is performed, geometries are resolved, and a package check is executed. Finally the script checks the DA and Package transcript for errors and reports the results. I ran the script on the complete library and notified the librarian of results.

Ample Script for Creating Map from Symbol ChipCom Corporation
Developed an Ample script that creates a mapping file from the symbol properties. The script is invoked from the symbol editor and after creating the mapping file, the notepad editor is opened for finishing touches. The script was a time saver on high pin count symbols (Librarian can perform this task, but this site translated to Cadence Allegro and did not have Librarian).

Motorola Codex Design Handbook Motorola Corporation
To resolve the problem of engineers creating schematics that were incompatible with layout, I wrote an 80 page handbook to guide the engineer through the CAE procedures. The handbook was based on a pilot project that I had championed.
The handbook covers requesting an account, requesting components, planning hierarchy, required startup files, directory structure, title blocks, approved libraries, supported symbol and net properties, conveying mechanical components, plotting, expand, simulation, protoview package and layout, reconcile, PCB release, revisions, etc.
With the release of the handbook, PCB designers received designs that were layout ready instead of having to redraw schematics and then not having the catalog, maps, and geometries ready. The handbook also eliminated out of sequence expand and back-annotation's that would cause loss of data. The PCB process became very predictable.

Design Release & Archive Motorola Corporation
Created a design environment and a release script that converts a version 7 design into a self contained entity. The script copies the symbols listed in the schematic reference files into the design directory. The modification of the design environment was an environment variable within a (Aegis) symbolic link that when set, redirected the symbol references from the library to those copied into the design directory.
Presented a paper on this at Menelug.

IGES - Intergraph to Mentor Motorola Corporation
Co-developed, with my Intergraph counter-part, a process for transferring the mechanical board drawings from Intergraph to Mentor.
We outlined guide lines for the mechanical drawings and transferred the drawings via Iges. The Iges transfer required determining common drawing elements supported by both systems. Then I wrote a script that converted polygons, lines, circles, and text to board station attributes. Based on the layer, the script would convert the element to an outline, placement area, routing keepout, height restriction, mounting hole, etc.