delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/01/16/15:00:51

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
Date: Sat, 16 Jan 2016 14:59:36 -0500
Message-Id: <201601161959.u0GJxa4G027544@envy.delorie.com>
From: DJ Delorie <dj AT delorie DOT com>
To: geda-user AT delorie DOT com
In-reply-to: <F723B760-53BB-467C-8595-20EB5FC50E47@noqsi.com> (message from
John Doty on Sat, 16 Jan 2016 12:03:44 -0700)
Subject: Re: [geda-user] first attempt at bus support in gnetlist for pcb
References: <201601080714 DOT u087Ejj5032766 AT envy DOT delorie DOT com> <F723B760-53BB-467C-8595-20EB5FC50E47 AT noqsi DOT com>
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> 1. For netlists flattened by gnetlist, we have a configurable syntax
> for net renaming before the Scheme stuff gets the data. The bus
> syntax here will have some difficulty with that.

Because of my choice of syntax, or because of some design limitation
in that part of the code?  I'm not tied to the syntax, I know verilog
has a specific one it needs to use, that I don't mind adopting, but I
figured it would be neccessary for the backend at some point to pick
"something" via a callback to choose/enable such expansion.

> 2. For genuinely hierarchical netlists, there's probably not a
> single one-size-fits-all plug in solution. Not today.

Sigh.

> 3. For pinseq-centered netlisting (SPICE), it needs to expand
> pinseqs, too.

My example expands two attributes; expanding three shouldn't be a
problem.

> Another issue is that "-" seems a little strange as a range
> token. ":" would match Verilog and some programming languages for
> more user familiarity.

I picked dash because common English uses it as a shortcut for "to",
like "Copyright 1990-1995" or "meeting from 1-3pm".  It made sense in
a list context.

Perl, C, and C++ use ".." (or "...") for ranges.  It varies.

Plus, consider that a layout "bus" connects to a list of usually
non-sequential pin numbers.  From the pinnumber point of view, "A:B"
syntax is less common than the "A,B,C" syntax.

OTOH the two syntaxes are orthogonal; one module could expand both -
so you could say A[1:4] connects to pins "4-6,8".

And I can see some folks getting confused about whether the :N means
"to this number" or "for this many numbers".  I.e. is A[4:2] A4,A3,A2
or A4,A5 ?  Unless you already know Verilog, it might be a stumbling
point, esp if you've seen ":16" elsewhere to mean "a 16-bit bus".

But in any case I'm not particularly tied to the syntax.

> I suggest using Dirac-style angle brackets to designate a bus
> definition, so a typical example might be "<nBL,A[8:2]>". While I
> think a sufficiently aware gnetlist plugin could navigate this
> without the extra tokens, we've historically exploited the
> transparency of our formats to process schematics with other tools
> as well. The extra tokens will help.

I don't see how the extra syntax helps anything, as it would just add
a "strip angle brackets around string" step.  Busses would always only
have <> around the whole string.

I.e. what's the difference in usability between these:

     <nBL,A[8:2]>
     nBL,A[8:2]

I see no problem with just stripping out angle brackets, if that's
what you mean.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019