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

gEDA-user: Christmas wishlist



Merry Christmas!

== PCB wishlist ==

The recent (and some not so recent) discussions made me think about how
development of PCB could proceed to solve some of the feature request,
in a future-proof way.  This is what came up in my mind.

=== Make all layers explicit ===

Everything shall be layers. Silk, paste, mask layers shall be exlicit.

Via-layers typically only contain filled circles, the holes.  A
via-layer defines to which subset of other (copper) layers it connects
to.  A Via is a hole on a via layer plus copper circles on all copper
layers.  Vias-layers will probably not be implememted before macros
(below) are available.  Until then, they may be special case macros,
like they are now.

The old layergroup mechanism will be replaced by defining for a copper
layer to which other layers it electrically connects, in the same way
as a via-layer does.

File format/connectivity does not require different layer types.
There is no difference between via-, copper-, graphical layers.  Layer
types steer footprint import, routers, drc, ...  Those can be
arbitrary attributes, understood by the respective HID engines.

=== Make elements small layouts ===

An element shall be defined as a small layout, same syntax, same
semantics. A pin/pad shall be an attribute on any piece of copper
(which may then be drawn dark gray by the HID).

On footprint import, some layer mapping needs to happen, so that
generic pads and pins appear on and connect to the right layers.

=== Introduce the concept of classes/macros ===

A macro is a sub-layout that can be instantiated at a higher level,
positioned and rotated.

Footprints and via-stacks are defined as macros. A via is defined as a
via-stack macro instance, an element initially typically contains a
single footprint macro instance. The HIDs will implement Copy-On-Write
by default, so we can still change individual vias, pads, ... Or
descend into the hierarchy, and edit the macro.

COW can either create a new macro (default for Vias?) or copy the
macro contents into the Element.  

=== Hierarchical layout ===

Elements may contain Elements. Either with hierarchical netlist, or
with flattened refdes, like gnetlist generates. When the higher level
elements are defined as macros, a fully hierarchical layout is
possible.
 
=== Convert the internal units from decimil to nanometer ===

Start by defining a variable (=254e-9), and make all output HIDs use
that to convert to PS-point or gerber units or whatever. Then introduce
attributes of the layout file which sets the internal units and the
default unit of the file.

=== ASIC HID ===

When all that is implemented, an HID(-mode) optimized for chip design
is only a small step.

-- 
Stephan


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user