Mail Archives: geda-user/2015/10/24/02:02:38
On Sat, Oct 24, 2015 at 5:28 AM, DJ Delorie <dj AT delorie DOT com> wrote:
>
>> There are multiple angles to this problem.
>> - the gschem end
>> - the rendition of this semantics in (one of many) netlist formats
>> - the treatment of that netlist information in board layout (or other hardware)
>>
>> At the gschem end, and the netlist representation, I don't see any
>> sensible approach besides having a symbol and a component.
>
> Perhaps gschem needs a separate "star point" construct. For example,
> a large dot you can place, and any nets that connect at that dot are
> considered "connected but separate". No need for custom symbols or
> pre-guessing pin counts.
I have the following proposal. Before I start I just want to say : Yes
I know this is not possible yet because we are flattening nets.
We add a route attribute that has a few options for things such as
star - make a star connection (ex star ground)
bus - route as bus keeping all the traces grouped as you move them.
diffpair - route as a differential pair
matchedl - matched length
(we will probably want more later for things like matched impedance,
strip lines, and etc)
It should also let you pass options to those options with [ ] and it
should have scope.
local - this route option applies to the stuff visually connected
page - this route option applies to just the stuff on this page
global - this route option applies to everything in the design
(default because only star )
Scope should not be over ridding you should be able to combined them
so local scope works in that area but the connection to the greater
hole is done via the global definition.
Finally you can stack them with a ;
Some examples
route=star:local
- All the stuff drawn in this area of the schematic (where the nets
are visually connected) are in a star configuration with a center to
be defined in the PCB layout stage or via a more involved mechanism I
will describe later.
route=star[U2:2]:local
- All the stuff drawn in this area of the schematic (where the nets
are visually connected) are in a star configuration with U2 pin 2 at
the center.
route=star[CONN1:1]:page
- This on a trace just before a ground symbol and all the pins
connected to ground on that page get their own trace to a central
grounding point at CONN1 pin 1.
route=star[SCREW1]:global
- Every pin on that net irrespective of the layout on the schematic or
page gets it's own trace to the designated center of the star a plated
through screw hole.
route=diffpair[SR0H,SR0L]
- Since no scope is stated this would be global and it would cause the
two nets SR0H and SR0L to be routed as a differential pair
route=matchedl[D0,D1,D2,D3,D4,D5,D6,D7, RW, RESET]
- Since no scope is stated this would be global and all of the nets
named between the [ ] marks should be routed with matched length
traces
This is an expansion on the hierarchical netlisting and some stuff
described here
https://bugs.launchpad.net/geda/+bug/698771/comments/2
I will add this to that thread later. (Need sleep)
> As for the netlisters, they'd each have to do what their downstreams
> expect. Internally, we could have netlisters that know about star
> points to call a guile function that enables them and disables
> warnings about multi-named nets.
>
>> On to PCB (or any other layout too; John Doty can close his ears for
>> this part). AFAICT, there is no established technique to implement
>> such a star short in a way that will pass DRC. There needs to be
>> copper half-inside the DRC process, that definitely shows up on the
>> Gerber output. This copper can't exist during the netlist check
>> (optimize rats).
>
> <[Blue skying> We've talked about being able to "label" copper with
> net names, for example labelling a polygon with "net=GND" to override
> what DRC and rats guess at. We could allow labelling copper with
> "net=GND,AGND" or something, to say that it may be connected to
> multiple nets. That would allow us to use a line, arc, polygon, via,
> pin, etc as the "star point". Such labels might also help with short
> detection, by limiting where DRC might guess a short would be.
>
> Of course, anything like this would predicate a new DRC :-(
>
> A label of "net=<ignore>" could be used for antennas etc, although if
> we had true copper-in-footprint we might need to rethink how to tell
> "copper that's a net" (like tying two gnd pins together) from "copper
> that's not a net" (like an antenna).
> </Blue skying>
--
Home
http://evanfoss.googlepages.com/
Work
http://forge.abcd.harvard.edu/gf/project/epl_engineering/wiki/
- Raw text -