Navigation Bar - INF UFRGS




A Flexible Model of Storing and Reading Data for Fast Prototyping of CAD systems.


Marcelo Johann, student
Ricardo Reis, advisor


Research area: Microelectronics
Research interests: Physical synthesis of VLSI layouts, placement, routing, cell generation, software engeneering, Java...




1) Introduction

What does Microelectronics is?

- informal definition
- process
- design
- EDA

What is needed to make EDA software?

- VLSI specific knowledge
- computer science theory
- software engeneering




2) Motivation

Basic ideas

- amount and variety of data involved in CAD
- data and configuration files needed
- syntax and parser development: from tables to Object-Orientation
- Why not to use a programming language?

A practical decision

- AGATA project in cooperation with CTI (SP)
- need for a specific routing system in 4 months
- UFDS and exeption handling used in GAROTA
- Overall results were very worth




3) UFDS Implementation

UFDS Version 1

- syntax: a set of C-like function calls in a file
- funtions have to define functionality

strip_model(16,2,13);

/****** celula INV ******/

cell (0,"INV",2,5,81,2 ,1,0);
tpin (0, 0, "I0", 2,3,4);
bpin (0, 0, "I0", 2,3,4);
tpin (0, 1, "OUT", 0,2,4);
bpin (0, 1, "OUT", 0,2,4);
/* I0 */
totc (0, 0, 2, "1>");
botc (0, 0, 2, "1>");
/* position 3 does`nt need template:
it is the correct access position */
totc (0, 0, 4, "1<");
botc (0, 0, 4, "1<");
/* OUT */
totc (0, 1, 0, "3v1>");
botc (0, 1, 0, "3^1>");
totc (0, 1, 2, "2v");
botc (0, 1, 2, "2^");
totc (0, 1, 4, "2v1<");
botc (0, 1, 4, "2^1<");



- interaction, and the parser working





- noticed advantages
* a single syntax and a single parser
* function calls are independent of ordering
* function calls are independent of files
* configuration and programming are posible
* parser is independent of system modules
* system modules independent of parser implementation
* facility to include new functions in a file
* facilities to include new parameters in file or software




New features required

- nested function calls
- context variables
* named parameters
* expressions

Evaluating the options again
Comparison with programming languages

- Java
- postscipt
- Tcl
- practical advantages




4) Current Research

Implementing new features

- Object Oriented
- problems with named parameters
- variables, expressions, and control flow

// basic example of a gate description

Gate ( name="nand2",
xsize=5,
ysize=12,
interface=("IN1", "IN2","OUT"),
Pin (name="IN1",xpos=1,ypos=4,access='m'),
Pin (name="IN2",xpos=2,ypos=6,access='m'),
Pin (name="OUT",xpos=4,ypos=0,access='h');
);

// example of how to use programming facilities

Memory
{
name = "Mem64Kx1";
for (i=0;i<16;++i)
Pin (number=i,address=2^i);
alert="Under construction!";
}




Automatic generation of source code

- visual interface, parser, and code generator



- generation options and compatibility with LEDA



5) Conclusions

- use of abstraction
- the power of flexibility
- direct impact on productivity
- research for new facilities
- some interaction with software engeneering techniques