
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
|