Features that perhaps prevent a simple interface to other tools
I am by no means an expert in EDIF or other file interchange
formats, but I believe that in order to make Schemata data bases read and write
from other tools I would have to disable some features. (If any readers know
better, please excuse my ignorance on the topic).
- Schemata
does not necessarily have an object in the data base for a glyph on the
screen. An example is the bus width marker. A bus width marker is simply
an artifact (a side effect, a heuristic that runs and prints the number)
of the drawing of a line of more than one net width. I think I would have
to hack something to write a fake bus width object on file export and some
how parse the thing on file import.
- There
is not a one to one mapping of symbol to module hierarchy; in fact there
is no concept of a symbol. I know that common tools have a pointer to
symbol object that is “stamped out” with reflection rotation etc when the
object is drawn. Schemata does not have such a methodology. In place of
that data structure which would normally be a transform (position,
reflection rotation) and a pointer to the symbol, Schemata stores the
drawing elements themselves. The advantage of this is that each symbol is
editable.
- There
is no concept of a “segment” connecting points. The intuitive move actions
etc are easily implemented because Schemata has only one object in the
data base – effectively a point. (I call it a “blob”). Blobs have pointers
to other blobs and when rendered on the screen, each draws a line halfway
to the blobs to which it connects. I would need I think to translated
segments in the file into blobs etc – could be done I guess.
- Transparent
icons – don’t mean anything to other tools I suspect.
- All
the associated file formats – are they storable within the interchange
format? I.e. do I just dump the graphic SPICE results and scripts etc on
write out and read in blank on read in?
- How
are optional ports represented? Is there a concept a port that connects to
a certain place if no wire is connected to it?
- I
know from experience that I cannot dump the wires with multiple names to
the interchange format – it seems very common to forbid two names on the
same wire in other tools. (Why does Schemata use this? This is the basis
of the PASCAL scoping of globals which is
huge asset in Schemata I would not want to forgo this feature).