[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Power nets in hierarchy



Stuart Brorson wrote:

From your drawing, it looks like Global is a subclass of Design, and
it points to a bunch of net instances. (I don't quite recognize your
schema drawing formalism -- it looks similar to UML, but it's not.
Therefore, I am just guessing.) Anyway, I imagine that your program's
job is to read in a .sch file and create this structure. In this
case, I guess it makes sense. OTOH, why wouldn't you just make
"Global" an attribute of Net (i.e. a part of the Net structure)? On
the third hand, I guess that if you want to find all global nets
easily, without searching for them, yours is the way to do it.
As for the big picture, I am still confused where your tool will be
used. Is it fired up from within gschem? Or is it stand-alone?

Stuart

The schema is an entity-relationship diagram. There aren't any inheritance relationships shown, and there aren't any in the database. It's a sub-set of UML. The relationship types are:

--|> Fat arrows: one-to-many relationship, usually a linked list of some sort
--> Light arrows: one-to-one relationships
--|_| Empty box: name based hash table with embedded doubly linked lists. For example, instances have unique names within a netlist.
--X Box with X in it: Array relationship.

The bubble on the other end means that the child class has a back-pointer in it to the parent. This formalism dates back to old Silicon Valley EDA days. Cadence used a variation of it quite a bit.

The first application of the database is for my new hierarchical spice netlister for my own project. It currently runs on the command line, parses the .sch and .sym files, and writes out a .cir file. If I can figure out a netlist format gnetlist can read, I'll write that out next.

However, the purpose of the database is much like what libgeda does. It provides a set of data structures that are good for advanced netlist operations like logic optimization or timing analysis or place and route. IMO, libgeda is not well suited for this, and an additional database is badly needed.

I've got the first version compiling, and just have to debug the (limited) SPICE netlister I've written for my own present work. I can offer it under the GPL license to gEDA, if there's interest. Things that would be apropriate to build on top if it include:

-- A hierarchy browser
-- A schematic generator
-- A transistor or gate level simulator that cross-probes to schematics
-- A layout editor that understands the eletrical connectivity from the schematics
-- An LVS tool
-- An FPGA place and route tool

It should be far less painful to write these tools with the netlist database.

Bill