Paul,

I am doing much more then just flat net listing hierarchical designs.

I don't the time or energy to get into every thin that I am up to.

I still don't find the stock libgeda, gnetlist and backends capable of
all my interests.

Steve Meier

On Sat, 2009-01-03 at 10:57 -0500, Paul Tan wrote:
> Hi Peter Clinton,
> 
> Thank you very much for you response, I really
> appreciate it.
> 
> I am a bit confused, after reading about Steve
> Meier's "hierarchical bus".
> 
> Peter Clinton wrote, On Sat, 03 Jan 2009 12:22:27 +0000
> >Since gnetlist doesn't understand buses or bus pins,
> >you will have to continue using it this way. Steve Meier
> >has a customised netlister which_does_ allow interconnection
> >between hierarchical blocks using native bus objects
> >and bus pins, and that is why I added support in gschem.
> >(Because he asked nicely).
> 
> Many months ago, after some technical discussion
> with Steve Meirer thru private emails exchange
> (we had to discussed those off the forum, because
> Ales would like us to take it offline), I understood
> what Steve Meier's "hierarchical bus" was meant
> for flat-hierarchy netlist such as PAD/PCB format
> only.
> 
> Steve Meier, please correct me if I am wrong:
> Is the "hierarchical bus" you asked Peter Clinton
> to implement is for flat-hierachy netlister
> format such as PADs/PCB ?
> 
> I bring this up because flat-hiearchy netlists
> are different than non-flat herarchy netlists.
> Mike Jarabak already implemented the non-flat
> hiearchy verilog netlist with BUS for 1 hiearchy level.
> The stocked "gnet_hier_verilog.sh" added the
> support for multi-level deep hierachy (with
> limitation of 1 page per hierachy).
> 
> Currently, I already modified the
> "gnet_hier_verilog.sh" to support multi-page
> multi_level full hiearchy with BUS, using
> existing Gschem/gnetlist, Mike's gnet-verilog.scm.
> I can release it once I make a good example
> test case for you to run.
> 
> Well, I hope Steve is reading this and can
> clarify this.
> 
> Thanks again.
> 
> Best Regards,
> Paul Tan
> 
> 
> -----Original Message-----
> From: Peter Clifton <pc...@cam.ac.uk>
> To: gEDA developer mailing list <geda-dev@moria.seul.org>
> Sent: Sat, 3 Jan 2009 4:22 am
> Subject: Re: gEDA-dev: gEDA-user: Is gnetman available for download 
> anywhere?
> 
> 
> 
> On Sat, 2009-01-03 at 00:15 -0500, Paul Tan wrote:
> > Hi Peter,
> >
> > On Date:Fri, 2 Jan 2009 12:48 pm, Peter Clinton wrote:
> > [snip] .. disallowing net->bus pinconnections etc..
> >
> > Normally, I would not voice any concern, but
> > the above causes me to inform you of the
> > consequences of doing what you suggested.
> 
> Ok, nothing has changed in the legality of connecting objects which
> gschem / gnetlist already understood. Perhaps I wasn't clear when I
> suggested some change in the logic:
> 
> To summarise the old logic:
> 
> Net-Net connections OK
> Net-Pin connections OK (but we only supported NET pins)
> Bus-Pin connections NOT OK (but we only supported NET pins)
> Pin-Pin connections OK (indiscriminate of type, but we only supported 
> NET pins)
> Bus-Bus connections OK (although we didn't do anything with them)
> Bus-Net end-point connections not OK
> Bus-Net mid-point connections not OK
> Net-Bus mid-point connections OK (and usually replaced with bus-rippers)
> 
> Changed behaviour:
> 
> Allow    -    Bus-BusPin connections
> Disallow - NetPin-BusPin connections
> 
> (This is "allow" as in, the objects are registered as connected
> internally, and the red cue goes away).
> 
> If you still think there would be any negative comments from the new
> behaviours, please let me know.
> 
> I'll just quote the commit messages:
> 
> commit f37c893edfeb016e57aae5e92f48093608e5cdfb
> Author: Peter Clifton <pc...@cam.ac.uk>
> Date:   Sat Jan 3 02:38:29 2009 +0000
> 
>      gschem: Add interface to toggle a pin between net pin and bus pin 
> types.
> 
>      This allows schematic diagrams of hierarchical connections to 
> include
>      buses. Since gnetlist does not currently support buses, this 
> feature is
>     useful only for diagrams, or when used with a custom netlister.
> 
>     Since we don't want to mislead users into thinking bus pins netlist,
>     the option to set pin type is only present on the page's popup menu,
>     and is marked "(graphical)".
> 
> 
> commit 7d01d4ae87fd329ffa3e93df9e286dd6e56e225c
> Author: Peter Clifton <pc...@cam.ac.uk>
> Date:   Fri Jan 2 23:14:53 2009 +0000
> 
>     libgeda: Fix bus/net to bus/net pin connectivity checking rules
> 
>      Previously, the type of pin was not checked when computing 
> connections,
>     and buses were disallowed from connecting to any type of pin.
> 
>      Refactor s_conn_update_line_object() to concicely check the 
> following:
> 
>       Allow connections between matching pin types only.
>       Allow connections between nets, other nets and net pins.
>       Allow connections between nets and the mid-points of a bus.
>       Allow connections between buses, other buses and bus pins.
> 
> 
> commit 998e8546754fe2ab41a57ce112c3966190c501df
> Author: Peter Clifton <pc...@cam.ac.uk>
> Date:   Fri Jan 2 23:14:52 2009 +0000
> 
>      gschem: Add support for rendering and adding pins with type 
> PIN_TYPE_BUS
> 
>      Bus pins are rendered thicker, and with a bigger cue than standard 
> pins
>     of PIN_TYPE_NET.
> 
>      This commit also fixes a bug where the wrong sized cue circle was 
> drawn
>     for net-net interconnections.
> 
> 
> > The Gschem code can treat BUS exactly the
> > same as net execpt for its visual effect.
> 
> Can, but doesn't. In the code-base as is, OBJ_BUS is a separate object
> type.
> 
> > Bus bin of a symbol is just a thick line laying
> > on top of part of the non-red portion of a pin.
> > The user can just put it there for visual effect.
> 
> gEDA has (since I don't know when) defined in its file format
> specification that a pin object has type "PIN_TYPE_NET" or
> "PIN_TYPE_BUS". Its just that we never used the latter before.
> 
> It now supports setting the bus pin type, and rendering it thicker -
> without any hacks to overlay a thicker line.
> 
> > The bus-tap acts as a no-connect (as currently
> > implemented), so to make sure that the BUS trunk's
> > net name is separated from other bus/net net
> > names tapping the trunk. The bus trunk/s net
> > names are just a place holder for net names
> > processing, just as what is already done
> > in "gnet-verilog.scm".
> 
> None of this has changed.
> 
> Since gnetlist doesn't understand buses or bus pins, you will have to
> continue using it this way. Steve Meier has a customised netlister which
> _does_ allow interconnection between hierarchical blocks using native
> bus objects and bus pins, and that is why I added support in gschem.
> (Because he asked nicely).
> 
> For complex designs, it is useful to be able to connect hierarchy blocks
> via non-graphical buses, and as Peter B suggests, we'll be looking at
> teaching gnetlist to expose the wiring of bus objects to the gnetlist
> backends in a similar way to how we expose net wiring as a netlist.
> 
> > How net names and pins are treated, IMHO should
> > be upto the backend Scheme code, so that any
> > backends can be supported including Verilog-AMS,
> > SystemC, CASE tools, etc, thru attribute
> > processing.
> 
> I agree with you that the interpretation of those, and their underlying
> type needs to end up in the netlist back-ends. If the existing back-ends
> wish to continue allowing buses to be inferred from nets, that is fine.
> 
> Perhaps what wasn't immediately clear, was that we have no plans to
> remove, or change the behaviour of bus rippers and the existing
> graphical only interpretation of buses in gEDA.
> 
> To be honest, I can't think of any instances in gEDA where we've broken
> a behaviour or feature, and we're not about to start now.
> 
> If you suspect that gnetlist's test-suite isn't exercising a particular
> feature (e.g. verilog buses), please contribute a test-case we can add
> to the regression test suite. We take changes in that output very
> seriously.
> 
> PS.. Amusing slightly unrelated story:
> 
> gnetlist code unfortunately misuses GLib hash tables to produce a unique
> list of components. I say mis-uses, because out output depends on the
> sequence that we enumerate all items in the hash table (which isn't
> guaranteed), and we don't apply any sorting for ourselves.
> 
> In the latest version of GLib, they changed the hash table
> implementation to a faster one, and the enumeration ordering behaviour
> changed. (Perfectly legitimate). Almost all our test-suite fails.
> 
> Before the next release, we need to change to our own implementation, or
> apply a sort to the results of the hash table step. Since we may not be
> able to easily reproduce the sorting behaviour of the old hash-table
> implementation, we may now have to add an arbitrary sort order, then
> pour over many thousand lines of diff in the test-suite output, checking
> the output re-ordering is acceptable.
> 
> Not fun, but yes.. we take test-suite failures seriously.
> 
> Best wishes,
> 
> --
> Peter Clifton
> 
> Electrical Engineering Division,
> Engineering Department,
> University of Cambridge,
> 9, JJ Thomson Avenue,
> Cambridge
> CB3 0FA
> 
> Tel: +44 (0)7729 980173 - (No signal in the lab!)
> 
> 
> 
> _______________________________________________
> geda-dev mailing list
> geda-dev@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
> 
> 
> 
> _______________________________________________
> geda-dev mailing list
> geda-dev@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev



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

Reply via email to