Tag physically/logically connected items differently in the "Find" action
[geda-pcb/pcjc2.git] / doc / wishlist.txt
blob737a06d96909c2c606cc7ef3e8c87208e593b917
1 This file is the start of a wish list of features/improvements in no particular
2 order.
4 -----------------------------------------------------------------------------
5 - The ability to create more complex pad shapes.  For example, a pad which
6   has a square end on one end and a round end on the other.  Or, for example,
7   a polygon shaped pad.  
8 -----------------------------------------------------------------------------
10 -----------------------------------------------------------------------------
11 - Support in both the layout editor and in components for additional non-mask
12   layers.  Examples are:
13       -  A layer with some alignment marks.  Uses are for connectors which must
14          be mounted a specified distance from the board edge.  You could 
15          align the alignment layer with the board outline.  I've used the 
16          assembly layer for this in the past.
18       -  A keepout area for copper.  One use is if you create a microstrip
19          filter and want to prevent traces from being accidentally placed
20          too close or you want to keep the autorouter away from that area.
22       -  A keepout area for drills.  This is useful in some applications where
23          you need to put vias on top of a pad, but need to keep other areas
24          of a pad via-free.  The application here is, for example, a Johnstech
25          socket for a QFN package.  See johnstech.inc.
27 -----------------------------------------------------------------------------
28 - Support for an arbitrary number of copper layers or at least lots more than
29   currently supported.
31 -----------------------------------------------------------------------------
32 - Support for including soldermask relief in a component.  Useful for some
33   engineering sockets used with advanced high frequency packages such as QFN
34   which require a certain area to be clear of soldermask and silk.
35 -----------------------------------------------------------------------------
37 -----------------------------------------------------------------------------
38 - The ability to create components that include copper polygons and pads where
39   the user should connect up to.  This would enable creating elements like
40   a microstrip filter, a spiral inductor, patch antenna, etc which could easily
41   be handled by the layout.  You'd want some sort of keepout region around to
42   at a minimum cause a DRC violation if you got traces too close to part of your
43   microstrip stuff.  Another application is a solder bridgable gap.  This is 
44   typically made by taking a square or round pad and making a diagonal cut
45   across it.  Currently, you can make such a thing with a polygon, but it can't
46   become part of a component which is verified for connectivity.
48 -----------------------------------------------------------------------------
50 - some support for hierarchy.  I don't have a completely clear vision of how this
51   should work.  The things I'd like to accomplish are the following:
52      - When layout out a fully differential circuit, its nice to be able to 
53        layout a 1/2 circuit and instantiate two copies of it.  This helps ensure
54        that the layout is absolutely symmetric.
56      - When laying out multiple channels of some circuit, its nice to not have
57        to replicate the work.
59 -----------------------------------------------------------------------------
61 - Some link back to the library for components.  That way if I update a broken
62   footprint in my library I don't have to manually fix every instance of it.
64 -----------------------------------------------------------------------------
66 - A way to store the active/inactive list of nets so when you exit pcb and 
67   load it again, the set of nets is saved.  Also, when reloading the netlist
68   this saved set should be compared and merged as best as possible.  This
69   way, you can keep ground and power rats off while the design is still changing.
71 -----------------------------------------------------------------------------
73 - A 'distribute components' feature.  This would let you select a group of
74   components and automatically place them, but with no attention paid to
75   connectivity.  It would simply move them apart.  Useful if you've used
76   a tool such as gsch2pcb that created a new board from a schematic, but all
77   devices are on top of each other.
79 -----------------------------------------------------------------------------
81 - versioned elements.  
83 -----------------------------------------------------------------------------
85 - a database of which elements (and which version of that element) have been
86   verified through fabrication.
88 -----------------------------------------------------------------------------
89 - Port to GTK for a more modern look and feel along with providing an easy
90   path to a native windows port.
91 -----------------------------------------------------------------------------