Re: gEDA-user: Design Flow Roadmap starting point

2007-04-03 Thread Magnus Danielson
From: al davis <[EMAIL PROTECTED]>
Subject: Re: gEDA-user: Design Flow Roadmap starting point
Date: Tue, 3 Apr 2007 20:22:34 -0400
Message-ID: <[EMAIL PROTECTED]>

> On Tuesday 03 April 2007 19:38, Magnus Danielson wrote:
> > From: al davis <[EMAIL PROTECTED]>
> > > I was thinking of using the gnucap "CS" parser class, and
> > > doing it like everything else in gnucap, as a language
> > > plugin.  I am guessing that VHDL will be about 50 lines of
> > > code, Verilog will be about 50 lines of code, Spice will be
> > > about 2000 lines of code, pcb about 100 lines, not sure
> > > about gschem.
> >
> > Need to look at the gnucap parser class stuff. Otherwise I
> > agree.
> 
> The line count is a guess.  My point is that VHDL and Verilog 
> are about the same.  Spice is the worst one of all.  Others are 
> between.  The fact that VHDL and Verilog are so regular makes 
> the parsers and generators small.  The Spice parser and 
> generator is huge because the language is so irregular.  It 
> seems every component is different.

Index finger to thumb measures are fine. :)

The point about irregular languages is indeed a good one.

> > Certainly, but for a sufficiently complex thing, type
> > filtering isn't helping unless you can construct new types
> > out of the old and name them as you like. Compound types of
> > various sort comes to mind after some time and ka-bang things
> > got a bit complex again. Filtering on attribute names is
> > probably a better appoach most of the times.
> 
> That is way too complicated.  The type is just a name, used to 
> group things, so they can be filtered as groups.

I was talking about type as in integer, real, string, bit etc. Thus the
confusion.

>  Without 
> changing anything, it is possible to just use a naming 
> convention and partial matching to select.  I am thinking of 
> groups like simulation parameters, the hidden attributes that 
> make gschem work, layout stuff, data coming back from a 
> simulator.  The names cannot be determined in advance.  Strings 
> like what we do now for things like spice sources is not the 
> way to go long term.  To store it, it would need to be able to 
> be encoded as a single string anyway, so it might make sense to 
> just do that and forget doing anything special.
> 

Thus, the only type you initially intend to support is string.
However, many named constants/attributes/generics of the type string is in
there.

I forsee alot of other side-information that follows along. We might need
different architectures depending on which simulator is going to handle things.
A simulation model for one form may not have the same names as another etc.

You would also like attributes to propagate out of devices, so that we can
have for a signal the shortest rise and fall times, which is immensly usefull
for SI and EMC work, just to name one.

If you take a few steps back, there are more of these things.

Cheers,
Magnus


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-04-03 Thread al davis
On Tuesday 03 April 2007 19:38, Magnus Danielson wrote:
> From: al davis <[EMAIL PROTECTED]>
> > I was thinking of using the gnucap "CS" parser class, and
> > doing it like everything else in gnucap, as a language
> > plugin.  I am guessing that VHDL will be about 50 lines of
> > code, Verilog will be about 50 lines of code, Spice will be
> > about 2000 lines of code, pcb about 100 lines, not sure
> > about gschem.
>
> Need to look at the gnucap parser class stuff. Otherwise I
> agree.

The line count is a guess.  My point is that VHDL and Verilog 
are about the same.  Spice is the worst one of all.  Others are 
between.  The fact that VHDL and Verilog are so regular makes 
the parsers and generators small.  The Spice parser and 
generator is huge because the language is so irregular.  It 
seems every component is different.

> Certainly, but for a sufficiently complex thing, type
> filtering isn't helping unless you can construct new types
> out of the old and name them as you like. Compound types of
> various sort comes to mind after some time and ka-bang things
> got a bit complex again. Filtering on attribute names is
> probably a better appoach most of the times.

That is way too complicated.  The type is just a name, used to 
group things, so they can be filtered as groups.  Without 
changing anything, it is possible to just use a naming 
convention and partial matching to select.  I am thinking of 
groups like simulation parameters, the hidden attributes that 
make gschem work, layout stuff, data coming back from a 
simulator.  The names cannot be determined in advance.  Strings 
like what we do now for things like spice sources is not the 
way to go long term.  To store it, it would need to be able to 
be encoded as a single string anyway, so it might make sense to 
just do that and forget doing anything special.


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-04-03 Thread Magnus Danielson
From: al davis <[EMAIL PROTECTED]>
Subject: Re: gEDA-user: Design Flow Roadmap starting point
Date: Tue, 3 Apr 2007 19:08:27 -0400
Message-ID: <[EMAIL PROTECTED]>

Al,

> All that is needed is the basic framework.  It is really simple.  
> Most of everything is out, but by picking a standard language 
> there is a pre-determined way to add later if we need it.

Certainly. My point with the exercise was to show just how much of VHDL that is
not going in.

> > What we need is:
> >
> > Entity declaration (with generics and ports).
> > Architecture.
> > Instantiation of other entities.
> > Assignment of attributes and generics.
> > Assignment of signals.
> > UREF's could be converted into labels.
> 
> Not even all of that.

Maybe not. This was a very quick and coarse subset exercise.

What is needed is a somewhat large subset of VHDL than the current gnetlist
VHDL backend generates. You can actually take that subset and extend out from
that until you have the features you need. I beleive the relevant comments is
still there to help guidance through the VHDL LRM. :-)

> > This is not complex stuff and it should be fairly easy to
> > generate parser and dumper in C or C++, especially if one
> > uses PCCTS/ANTLR.
> 
> I was thinking of using the gnucap "CS" parser class, and doing 
> it like everything else in gnucap, as a language plugin.  I am 
> guessing that VHDL will be about 50 lines of code, Verilog will 
> be about 50 lines of code, Spice will be about 2000 lines of 
> code, pcb about 100 lines, not sure about gschem.

Need to look at the gnucap parser class stuff. Otherwise I agree.

> The idea is a common framework that gets them all.  It must be 
> able to both parse it and generate it.

Certainly. However, many formast have their quirks and limits, so in the end
you will find that many formats will be hard to fully support.

> > > gnetlist has served us well so far, but we have learned a
> > > lot by doing it and using it, and it is time to move on.
> >
> > Indeed.
> 
> There is  lot of old stuff like that.  That is my opinion of 
> Spice, too.  It has served us well, time to move on.  At least 
> a few of its creators think so too.

Certainly. With "modern" things like VHDL and XML you can take a fresh start,
gain a little and loose a little. I've never been a fan of XMLizing things for
its own sake thought.

> > > gschem attributes need to have types.  The type is just a
> > > string, but important.  That way one type can be those
> > > passed to a simulator, another can be those passed back
> > > from the simulator, etc.  Since the type is just a string,
> > > new types can be added at any time.  An attribute should be
> > > able to have multiple types.
> >
> > Your uses of types confuses me here.
> 
> The idea here is that if attributes have types it is easy to 
> filter out or select all attributes of a given type.  It also 
> is easy to make translators.

Certainly, but for a sufficiently complex thing, type filtering isn't helping
unless you can construct new types out of the old and name them as you like.
Compound types of various sort comes to mind after some time and ka-bang
things got a bit complex again. Filtering on attribute names is probably a
better appoach most of the times.

Cheers,
Magnus


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-04-03 Thread al davis
On Tuesday 03 April 2007 18:36, Magnus Danielson wrote:
> You can strip of many things from VHDL which you will not
> initially need. What you end up with very quickly is a small
> subset which brings much of the properties which gedas
> textual format has. It should be fairly easy to do so.
>
> Hierarchial stuff is trivial.
> Attributes is trivial.
>
> >From this you can then selectively add things from the VHDL
> > standard at need.
>
> What should one cut out or cut down then?
>
> Design entities and configurations (Section 1) - all but
> config (1.3) Subprograms and packages (Section 2) - cut out
> Types (Section 3) - cut down considerably
> Declarations (Section 4) - cut down
> Specifications (Section 5) - most if not all is in
> Names (Section 6) - most if not all is in
> Expressions (Section 7) - initially all cut out
> Sequential statements (Section 8) - initially all cut out
> Concurrent statements (Section 9) - all but 9.5 and 9.6 which
> however is cut down

All that is needed is the basic framework.  It is really simple.  
Most of everything is out, but by picking a standard language 
there is a pre-determined way to add later if we need it.

>
> What we need is:
>
> Entity declaration (with generics and ports).
> Architecture.
> Instantiation of other entities.
> Assignment of attributes and generics.
> Assignment of signals.
> UREF's could be converted into labels.

Not even all of that.

> This is not complex stuff and it should be fairly easy to
> generate parser and dumper in C or C++, especially if one
> uses PCCTS/ANTLR.

I was thinking of using the gnucap "CS" parser class, and doing 
it like everything else in gnucap, as a language plugin.  I am 
guessing that VHDL will be about 50 lines of code, Verilog will 
be about 50 lines of code, Spice will be about 2000 lines of 
code, pcb about 100 lines, not sure about gschem.

The idea is a common framework that gets them all.  It must be 
able to both parse it and generate it.

> > gnetlist has served us well so far, but we have learned a
> > lot by doing it and using it, and it is time to move on.
>
> Indeed.

There is  lot of old stuff like that.  That is my opinion of 
Spice, too.  It has served us well, time to move on.  At least 
a few of its creators think so too.

> > gschem attributes need to have types.  The type is just a
> > string, but important.  That way one type can be those
> > passed to a simulator, another can be those passed back
> > from the simulator, etc.  Since the type is just a string,
> > new types can be added at any time.  An attribute should be
> > able to have multiple types.
>
> Your uses of types confuses me here.

The idea here is that if attributes have types it is easy to 
filter out or select all attributes of a given type.  It also 
is easy to make translators.


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-04-03 Thread Magnus Danielson
From: al davis <[EMAIL PROTECTED]>
Subject: Re: gEDA-user: Design Flow Roadmap starting point
Date: Sun, 18 Mar 2007 01:29:07 -0400
Message-ID: <[EMAIL PROTECTED]>

Al,

(Jumping into the discussion mid-waters)

> I still believe we need an interchange file format, that should 
> be a VHDL derivative.  VHDL has most of the capabilities 
> needed, and is an industry standard.  If something is missing, 
> we can add it, and propose it back to the standards committee.  
> They might even welcome it.

I think that VHDL is a very good boiler-plate. This approach was used for
Boundary Scan files.

You can strip of many things from VHDL which you will not initially need.
What you end up with very quickly is a small subset which brings much of the
properties which gedas textual format has. It should be fairly easy to do so.

Hierarchial stuff is trivial.
Attributes is trivial.

>From this you can then selectively add things from the VHDL standard at need.

What should one cut out or cut down then?

Design entities and configurations (Section 1) - all but config (1.3)
Subprograms and packages (Section 2) - cut out
Types (Section 3) - cut down considerably
Declarations (Section 4) - cut down
Specifications (Section 5) - most if not all is in
Names (Section 6) - most if not all is in
Expressions (Section 7) - initially all cut out
Sequential statements (Section 8) - initially all cut out
Concurrent statements (Section 9) - all but 9.5 and 9.6 which however is cut 
down

This is just a swift walk-through of the VHDL standard (using the VHDL-93
that was lying on my desk anyway). Whatever is needed to support AMS infra-
structure (i.e. analog signals), which should not be very much.

What we need is:

Entity declaration (with generics and ports).
Architecture.
Instantiation of other entities.
Assignment of attributes and generics.
Assignment of signals.
UREF's could be converted into labels.

This is not complex stuff and it should be fairly easy to generate parser and
dumper in C or C++, especially if one uses PCCTS/ANTLR.

Writing up a VHDL equalent format for the geda netlist format should not be
too hard. If you want to go beyond the geda netlist format constrains of today,
it is fairly easy to do.

The one thing which I am not up to date on is how modern character sets is
handled etc.

> gnetlist really needs to be redone, from the ground up.  This 
> VHDL based intermediate format is the way to do it.
> 
> gnetlist has served us well so far, but we have learned a lot by 
> doing it and using it, and it is time to move on.

Indeed.

> > *  Similarly, how should gnetlist behave?  A use-case list
> > would be useful.
> 
> Any extraction should preserve hierarchy, in hopes that the 
> target tool also benefits from it.  If it doesn't, you need a 
> separate flattener pass, separate from the translation.

In a gnetlist rewrite, a flattener could be written and called for those
backends that need it.

In the other direction, naming conventions may alow for de-flatenations in
some cases, so support for that may also be considered.

> Regardless, the translation must be 100%, lossless, in both 
> directions.

Indeed.

> gschem attributes need to have types.  The type is just a 
> string, but important.  That way one type can be those passed 
> to a simulator, another can be those passed back from the 
> simulator, etc.  Since the type is just a string, new types can 
> be added at any time.  An attribute should be able to have 
> multiple types.

Your uses of types confuses me here.

In a future, it is not necessarilly only strings, but it is a good first
assumption.

> 
> > *  Finally, how should PCB behave with a hierarchical
> > schematic?
> 
> Right click on a symbol, select "go inside", and another drawing 
> opens up showing what's inside.  gschem also should act this 
> way.

Indeed.

Cheers,
Magnus


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-04-02 Thread Ales Hvezda

> Since it is LISP-ish it seems closest to a common file format language with 
> gschem, which uses guile.  Are there rumors of 
> planning to stop using guile?
> 

For the current gEDA/gaf: no.

-Ales



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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread John Griessen

Dan McMahill wrote:
 how should PCB behave with a hierarchical

schematic?



 by default for each cell to be an entity that
you can grab and move around.  The ability to visually toggle all 
hierarchical instances between the contents and a box is fairly useful. 

[jg]As in Cadence.  To save on redraw time for big designs.

 If you want to edit the contents, you have to descend into the block to 
edit it. 
[jg] Some have hinted they want to create unnamed versions on the fly by doing this, but I like to keep the main 
reuse-identical-cells value at front and have the editing affect all placements of that same named cell.  If I want to make a 
separate version of a layout instance, I have to save as some-new-name to get it.


 You almost certainly want a mode where when you descend you
only see that block in its zero rotation as well as an edit in place 
mode where you edit the block while all the rest of the board is 
visible.  I'm saying this based on having done quite a bit of 
hierarchical layout in the ic world.  Haven't done it in the board world 
although I've wished for it a few times.


[jg]And I think when organic printable semiconductors become more real, we will be wanting the IC layout style more and more.  Our 
IC's will just be organic and naked-eye-visible is all...


I'll add the visual toggle concept to the wiki, along with 
zero-rotation-as-in-the-orginal on edit by default.

http://geda.seul.org/wiki/geda:design_flow_and_hierarchy_roadmap

The other ideas Igor and DJ already asked for.  And I second all those motions.

John Griessen


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread Dan McMahill

al davis wrote:


*  Finally, how should PCB behave with a hierarchical
schematic?



Right click on a symbol, select "go inside", and another drawing 
opens up showing what's inside.  gschem also should act this 
way.


I think what you want is by default for each cell to be an entity that 
you can grab and move around.  The ability to visually toggle all 
hierarchical instances between the contents and a box is fairly useful. 
 If you want to edit the contents, you have to descend into the block 
to edit it.  You almost certainly want a mode where when you descend you 
only see that block in its zero rotation as well as an edit in place 
mode where you edit the block while all the rest of the board is 
visible.  I'm saying this based on having done quite a bit of 
hierarchical layout in the ic world.  Haven't done it in the board world 
although I've wished for it a few times.



-Dan


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread joeft

Igor2 wrote:


On Sun, 18 Mar 2007, al davis wrote:

 


*  Finally, how should PCB behave with a hierarchical
schematic?
 

Right click on a symbol, select "go inside", and another drawing 
opens up showing what's inside.  gschem also should act this 
way.
   



I like this idea very much. In case of PCB it also would make sense to
add a way to display in place what's inside. With an "expand
all" functionality this would allow one to see the whole pcb with all
inner structures at once, without needing to export to ps.
 

The ability to "look inside" or "expand all" is a feature that is 
standard for IC layout editors.  Years ago I used a PC board editor that 
evolved from an IC layout tool and it had this behavior.  In particular, 
you could create sub-blocks of circuitry that might represent individual 
"devices" (or elements in PCB parlance) or more complex blocks that you 
might want to repeat.  You could add these to your layout (with up to 
256 levels of nesting).  You could turn on/off the visibility or 
"editability" of any device at a lower or higher level of nesting than 
the one you were currently working in.  When "editing down" to a lower 
level device it would leave all the surrounding features (the "context") 
visible so you see what you were doing.  Other copies of the current 
block could be immediately displayed with the changes you just made.  
Needless to say, this implementation of heirarchy allowed for some very 
complex designs and much easier re-use than we have now.


Joe T





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

 





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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread DJ Delorie

>   Couldn't resource file be used with the plugin mode of programming
> to extend function?  Since it is LISP-ish it seems closest to a
> common file format language with gschem, which uses guile.  Are
> there rumors of planning to stop using guile?

The resource file is purely data.  Its primary benefits are that its
syntax is independent of its content, and the values are all strings.
Hence, you can put pretty much any data in it, and pcb can parse it.
Here's a copy of pcb-menu.res:

# -*- c -*-
# Note - pcb-menu.res is used to build pcb-menu.h
# Note - parameters are sensitive to extra spaces around the commas

Mouse =
{
  Left = {
Mode(Notify)
up = Mode(Release)
  }
  Right = {
{ Mode(Save) Mode(Rotate) Mode(Notify) Mode(Release) Mode(Restore) }
  }
  Middle = {
Pan(1)
up = Pan(0)
ctrl = Pan(thumb,1)
ctrl-up = Pan(thumb,0)
  }
  Up = Zoom(0.8)
  Down = Zoom(1.25)
# If you want zoom to center, do this instead.
  #Up = { {Zoom(0.8) Center()} }
  #Down = { {Zoom(1.25) Center()} }
}

MainMenu =
{
  {File
   {"About..." About()}
   {"Save layout" Save(Layout)}
   {"Save layout as..." Save(LayoutAs)}
{"Revert" Load(Revert,none)}
   {"Load layout" Load(Layout)}
   {"Load element data to paste-buffer" PasteBuffer(Clear) 
Load(ElementTobuffer)}
   {"Load layout data to paste-buffer" PasteBuffer(Clear) Load(LayoutTobuffer)}
   {"Load netlist file" Load(Netlist)}
   {"Load vendor resource file" LoadVendor()}
   {"Print layout..." Print()}
   {"Export layout..." Export()}
   {"Calibrate Printer..." PrintCalibrate()}
   -
   {"Save connection data of..." foreground=grey50 sensitive=false}
   {" a single element" GetXY(press a button at the element location) 
Save(ElementConnections)}
   {" all elements" Save(AllConnections)}
   {" unused pins" Save(AllUnusedPins)}
   -
   {"Start new layout" New()}
   -
   {"Quit Program" Quit() m=Q a={"Ctrl-Q" "Ctrlq"}}
  }
  {View
   {"Flip up/down" checked=flip_y SwapSides(V) a={"Tab" "Tab"}}
   {"Flip left/right" checked=flip_x SwapSides(H) a={"Shift-Tab" 
"ShiftTab"}}
   {"Spin 180°" SwapSides(R) a={"Ctrl-Tab" "CtrlTab"}}
   {"Swap Sides" SwapSides() a={"Ctrl-Shift-Tab" "Ctrl ShiftTab"}}
   {"Center cursor" Center() a={"C" "c"}}
   {"Show soldermask" checked=showmask Display(ToggleMask)}
   -
   {"Displayed element-name..." foreground=grey50 sensitive=false}
   {"Description" Display(Description) checked=elementname,1}
   {"Reference Designator" Display(NameOnPCB) checked=elementname,2}
   {"Value" Display(Value) checked=elementname,3}
   {"Lock Names" checked=locknames Display(ToggleLockNames)}
   {"Only Names" checked=onlynames Display(ToggleOnlyNames)}
   -
   {"Pinout shows number" checked=shownumber Display(ToggleName)}
   {"Open pinout menu" Display(Pinout) a={"Shift-D" "Shiftd"}}
   -
   {Zoom
{"Zoom In 2X" Zoom(-2)}
{"Zoom In 20%" Zoom(-1.2) m=Z a={"Z" "z"}}
{"Zoom Out 20%" Zoom(+1.2) m=O a={"Shift-Z" "Shiftz"}}
# If you want zoom to center, do this instead.
#{"Zoom In 20%" Zoom(-1.2) Center() m=Z a={"Z" "z"}}
#{"Zoom Out 20%" Zoom(+1.2) Center() m=O a={"Shift-Z" "Shiftz"}}
{"Zoom Out 2X" Zoom(+2)}
{"Zoom Max" Zoom() m=M a={"V" "v"}}
-
{"Zoom to 0.1mil/px" Zoom(=10)}
{"Zoom to 0.01mm/px" Zoom(=39.37)}
{"Zoom to 1mil/px" Zoom(=100)}
{"Zoom to 0.05mm/px" Zoom(=196.8504)}
{"Zoom to 2.5mil/px" Zoom(=250)}
{"Zoom to 0.1mm/px" Zoom(=393.7)}
{"Zoom to 10mil/px" Zoom(=1000)}
   }
   {Grid
{"mils" checked=grid_units_mm,0 SetUnits(mil)}
{"mms"  checked=grid_units_mm,1 SetUnits(mm)}
{"Display grid" checked=drawgrid Display(Grid)}
{"Realign grid" GetXY(Press a button at a grid point) Display(ToggleGrid)}
{"No Grid" checked=gridsize,1 SetValue(Grid,1)}
-
{  "0.1 mil" checked=gridsize,10 SetUnits(mil) SetValue(Grid,10)}
{  "1 mil"   checked=gridsize,100 SetUnits(mil) SetValue(Grid,100)}
{  "5 mil"   checked=gridsize,500 SetUnits(mil) SetValue(Grid,500)}
{ "10 mil"   checked=gridsize,1000 SetUnits(mil) SetValue(Grid,1000)}
{ "25 mil"   checked=gridsize,2500 SetUnits(mil) SetValue(Grid,2500)}
{"100 mil"   checked=gridsize,1 SetUnits(mil) SetValue(Grid,1)}
-
{"0.01 mm" checked=gridsize,39 SetUnits(mm) SetValue(Grid,39.37007874)}
{"0.05 mm" checked=gridsize,197 SetUnits(mm) SetValue(Grid,196.85039370)}
{"0.1 mm"  checked=gridsize,394 SetUnits(mm) SetValue(Grid,393.70078740)}
{"0.25 mm" checked=gridsize,984 SetUnits(mm) SetValue(Grid,984.25197)}
{"0.5 mm"  checked=gridsize,1969 SetUnits(mm) SetValue(Grid,1968.503937)}
{"1 mm"checked=gridsize,3937 SetUnits(mm) SetValue(Grid,3937.00787400)}
-
{"Grid -5mil" SetValue(Grid,-5,mil) a={"Shift-G" "Shiftg"}}
{"Grid +5mil" SetValue(Grid,+5,mil) a={"G" "g"}}
{"Grid -0.05mm" SetValue(Grid,-0.05,mm) a={"Shift-Ctrl-G" "Shift 
Ctrlg"}}
{"Grid +0.05mm" SetValue(Grid,+0.05,mm) a={"Ctrl-G" "Ctrlg"}}
   }
   -
   {"Shown Layers"
@layerview
-

Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread John Griessen

DJ Delorie wrote:
[Al Davis]>> Design the file format first,
then the data structures.  The file format should be designed 
as a language for expressing what you want to express.


PCB has a second format it uses called a "resource file".  It's a
semi-lisp-ish format that allows for arbitrarily nested data, without
the complexities of XML (the whole parser is about a page of code).
It could be used to hold pretty much anything, but it isn't "designed
for the data".




 Couldn't resource file be used with the plugin mode of programming to extend 
function?
Since it is LISP-ish it seems closest to a common file format language with gschem, which uses guile.  Are there rumors of 
planning to stop using guile?


John G

PS more condensing and grouping of these ideas done at the wiki.
http://geda.seul.org/wiki/geda:design_flow_and_hierarchy_roadmap


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread C P Tarun

I corrected the documentation and added the TO220 pads example to
the Examples section.


Great. Thanks. :)


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread John Luciani

On 3/19/07, C P Tarun <[EMAIL PROTECTED]> wrote:

> A script to place TO220 pads can be pretty simple (see below). The
> poorly named routine element_add_pin_oval overlays a pin, a rounded pad
> on the component side and a rounded pad on the solder side.

I have been reading your (excellently-formatted reference-class) documentation
on your library. The documentation does not mention that add_pin_oval adds
two pads on two layers... it seems to say that this is a "hybrid
object consisting
of a pad and a pin with the same centre point."

Is the document out of sync with the library?


I corrected the documentation and added the TO220 pads example to
the Examples section.

(* jcl *)

--
http://www.luciani.org


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-19 Thread John Luciani

On 3/19/07, C P Tarun <[EMAIL PROTECTED]> wrote:

> A script to place TO220 pads can be pretty simple (see below). The
> poorly named routine element_add_pin_oval overlays a pin, a rounded pad
> on the component side and a rounded pad on the solder side.

I have been reading your (excellently-formatted reference-class) documentation
on your library. The documentation does not mention that add_pin_oval adds
two pads on two layers... it seems to say that this is a "hybrid
object consisting
of a pad and a pin with the same centre point."

Is the document out of sync with the library?


It is out of sync. I corrected the mistake in the procedure and forgot to
update the documentation.

Thanks for the report.

(* jcl *)

--
http://www.luciani.org


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

A script to place TO220 pads can be pretty simple (see below). The
poorly named routine element_add_pin_oval overlays a pin, a rounded pad
on the component side and a rounded pad on the solder side.


I have been reading your (excellently-formatted reference-class) documentation
on your library. The documentation does not mention that add_pin_oval adds
two pads on two layers... it seems to say that this is a "hybrid
object consisting
of a pad and a pin with the same centre point."

Is the document out of sync with the library?

Tarun


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

Very interesting. What's Pcb_8? Where do I find it? I'm looking through
your Website to see if there's some Perl module there.


Found Pcb_8 in your Perl library documentation. Thanks.

Tarun


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

A script to place TO220 pads can be pretty simple (see below). The
poorly named routine element_add_pin_oval overlays a pin, a rounded pad
on the component side and a rounded pad on the solder side.


Very interesting. What's Pcb_8? Where do I find it? I'm looking through
your Website to see if there's some Perl module there.

Tarun


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread John Luciani

On 3/18/07, C P Tarun <[EMAIL PROTECTED]> wrote:

> You may want to try one of the many footprint scripts that are around.
> Making the footprints in a batch using a script is a lot less error prone
> than one by one in the GUI.
>
> If you are looking for DIPs or SIP headers with rounded pads over pins
> you could try my website.

Actually I've seen some of those scripts and they are lovely for the kind
of things they do. But I need to build much simpler footprints like TO220
devices, but with elongated pads. These are best done by hand, I guess.
I even like TO92 to have elongated pads. I suspect I'm just unsure of my
soldering skills and like larger pads, that's all. :)


A script to place TO220 pads can be pretty simple (see below). The
poorly named routine element_add_pin_oval overlays a pin, a rounded pad
on the component side and a rounded pad on the solder side.

Adding a simple silkscreen would be one or two more lines of code.

(* jcl *)


use strict;
use warnings;

use Pcb_8;

my $Pcb = Pcb_8 -> new(debug => 1);

$Pcb -> element_begin(description => 'TH',
  output_file =>
 "tmp/" . 'TO220',
  dim   => 'mils');

my $pin_num = 1;
my @pos = (-100, 0, 0, 0, 100, 0);

while (@pos) {
   my ($x, $y) = splice @pos, 0, 2;
   $Pcb -> element_add_pin_oval(x => $x,
 y => $y,
 width => 80,
 length => 66,
 name => '',
 pin_number => $pin_num++,
 clearance => 10,
 drill_hole => 46,
 mask => 10);
}


$Pcb -> element_output();








--
http://www.luciani.org


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

You may want to try one of the many footprint scripts that are around.
Making the footprints in a batch using a script is a lot less error prone
than one by one in the GUI.

If you are looking for DIPs or SIP headers with rounded pads over pins
you could try my website.


Actually I've seen some of those scripts and they are lovely for the kind
of things they do. But I need to build much simpler footprints like TO220
devices, but with elongated pads. These are best done by hand, I guess.
I even like TO92 to have elongated pads. I suspect I'm just unsure of my
soldering skills and like larger pads, that's all. :)

One area where I'll be developing scripts is for simple capacitors. I want
pretty-looking non-polar and cylindrical electrolytic caps of various sizes.
(No elongated pads needed.) Resistors I've already done by hand.

Tarun


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread John Luciani

On 3/18/07, C P Tarun <[EMAIL PROTECTED]> wrote:

> > 3.  There should be native support for elongated vias (they
> > are called "pads" in Eagle) when defining an element.
>
> The way to do this in pcb is to put a pin and a pad in the same place.
> The pin gives you the drill hole, and the pad defines the elongated
> copper shape.

Yes, I've tried this with my footprints. The problem is that you need two
pads (for a traditional double-layer footprint) and you need to edit the
text file of the element to set the numbering of the pads. (Can I set the
pad number through the GUI of PCB the way I can for the pin number
by pressing 'n'?) This approach is error-prone, I felt. When I open up
the text file of the element, I see a list of pads but I don't know which
two pads are associated with pin 1, and so on.


You may want to try one of the many footprint scripts that are around.
Making the footprints in a batch using a script is a lot less error prone
than one by one in the GUI.

If you are looking for DIPs or SIP headers with rounded pads over pins
you could try my website.

(* jcl *)

--
http://www.luciani.org


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

> 3.  There should be native support for elongated vias (they
> are called "pads" in Eagle) when defining an element.

The way to do this in pcb is to put a pin and a pad in the same place.
The pin gives you the drill hole, and the pad defines the elongated
copper shape.


Yes, I've tried this with my footprints. The problem is that you need two
pads (for a traditional double-layer footprint) and you need to edit the
text file of the element to set the numbering of the pads. (Can I set the
pad number through the GUI of PCB the way I can for the pin number
by pressing 'n'?) This approach is error-prone, I felt. When I open up
the text file of the element, I see a list of pads but I don't know which
two pads are associated with pin 1, and so on.


It's not heated, it's just nobody has had the time to do it right,
yet.  For example, a true "multipin" (my name) would need to know more
about the physical layer stack than pcb currently knows.  But I do
envision a "multipin" having the ability to independently specify:

* top, inner, and bottom shapes

* copper shapes, including hole-to-edge distance and radius of each
  corner

* pads defined by polygons

* copper, paste, and mask each independently defined

The current plan is to defer this until after the "layer type flags"
project is done, as that project gives us proper mask, paste, etc
layers.


Yes, I've been reading some of the discussions about the "multipin" and
the layer-type projects, and I got the sense that these would make a lot
of the work easier for elongated pads. I think it's a good idea to do it in
the sequence you intend. Will make the implementation a whole lot
cleaner and more powerful internally.

Tarun
--


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread DJ Delorie

> 3.  There should be native support for elongated vias (they
> are called "pads" in Eagle) when defining an element.

The way to do this in pcb is to put a pin and a pad in the same place.
The pin gives you the drill hole, and the pad defines the elongated
copper shape.

> I suspect that I am unaware of the heated arguments some of
> these issues must've seen in the period before I joined the list,
> in which case please excuse my raking them up again. :)

It's not heated, it's just nobody has had the time to do it right,
yet.  For example, a true "multipin" (my name) would need to know more
about the physical layer stack than pcb currently knows.  But I do
envision a "multipin" having the ability to independently specify:

* top, inner, and bottom shapes

* copper shapes, including hole-to-edge distance and radius of each
  corner

* pads defined by polygons

* copper, paste, and mask each independently defined

The current plan is to defer this until after the "layer type flags"
project is done, as that project gives us proper mask, paste, etc
layers.


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread DJ Delorie

> I assume that's the reason for PCB, too.

No, pcb's plugins are very tightly coupled to the internal data
structures.  The reason I added pcb's plugins was to let people define
their own actions without the cvs-build-merge issues, not as a generic
way to allow for future expansion.

> You have the order backwards.  Design the file format first, 
> then the data structures.  The file format should be designed 
> as a language for expressing what you want to express.

PCB has a second format it uses called a "resource file".  It's a
semi-lisp-ish format that allows for arbitrarily nested data, without
the complexities of XML (the whole parser is about a page of code).
It could be used to hold pretty much anything, but it isn't "designed
for the data".

> > *  Finally, how should PCB behave with a hierarchical
> > schematic?
> 
> Right click on a symbol, select "go inside", and another drawing 
> opens up showing what's inside.  gschem also should act this 
> way.

I think pcb "blocks" should be translucent.  You should have some idea
of the physical contents of a block even when you're not editing it.


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

Another point: I thought it would be useful to have more control
over the different attributes which get printed or exported in Gerber
plots. I really like the way Eagle breaks all attributes into layers,
and then allows me to define a "CAM job" to generate, say, the
silkscreen layer. While defining the CAM job, I select whether
I want to print the "tnames" layer (in which case the names of
the components will be included), or the "tvalues" layer (in
which case the values of the components will be included) and
so on.

In PCB, I can't choose to print just the component outlines and
leave out their names in the silk screen layer. I also (IIRC) can't
choose to include the values in the silk screen. The default that
PCB gives me is useful for most of the cases, but it would be
good if this was not hard-coded.

Tarun
--


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-18 Thread C P Tarun

I am a beginner, and I have a lot of exposure to Eagle, so please
keep these limitations/biases in mind.

I would really like to see the following additions:

1.  In gschem, when selecting a footprint, I would like to see the
   footprint _and_ its description in a popup window. I should be
   able to browse the footprint library _visually_, basically.

2.  In PCB, when I create a "Convert buffer contents into an
   element", it should ask me for a description of the element.
   This should get embedded in the description field in the
   element header line.

3.  There should be native support for elongated vias (they
   are called "pads" in Eagle) when defining an element.
   Since pin addition while creating a footprint in PCB is
   done by adding a via, maybe this elongated shape should
   be added as an option to the via itself, like you can flip
   between circular and octagonal. And then of course one
   would need the ability to rotate a via, so that the elongated
   shape could be aligned the way I want.

The current method to define elongated pads ("pins" in PCB
element terminology) is really roundabout, and error-prone,
and needs manual editing of the element file in a text editor,
if I understand correctly. You have to define (at least) two
pads manually, one for the solder layer, one for the component
layer, and make sure they both match the pin/via in diameter
and centering, and then manually edit the element file to
make the pad numbers match the pin number. I feel elongated
pads is a sufficiently universally used feature to require native
support in the software.

I suspect that I am unaware of the heated arguments some of
these issues must've seen in the period before I joined the list,
in which case please excuse my raking them up again. :)

BTW, I like the way PCB has unified the concepts of pads for
element footprints, vias, and holes. Good engineering design,
I thought. :)

Tarun


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-17 Thread Igor2
On Sun, 18 Mar 2007, al davis wrote:

>> *  Finally, how should PCB behave with a hierarchical
>> schematic?
>
>Right click on a symbol, select "go inside", and another drawing 
>opens up showing what's inside.  gschem also should act this 
>way.

I like this idea very much. In case of PCB it also would make sense to
add a way to display in place what's inside. With an "expand
all" functionality this would allow one to see the whole pcb with all
inner structures at once, without needing to export to ps.




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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-17 Thread al davis
On Saturday 17 March 2007 00:13, John Griessen wrote:
> David Baird wrote:  (about data tie ins to higher
> abstractions than "just boards")jg I've been thinking (maybe
> just dreaming?) about an extensible system which allows the
> representation of information which has not yet even been
> envisioned, while also providing forwards and backwards
> compatibility as new component representations are devised. 
> For these reasons, OWL struck me somewhat and now I am
> learning OWL and trying to see if I can really make it do
> what I want.  --  A simple example  --  convey to a PCB
> program that a set of nets are actually grouped

That's why gnucap is using plugins now.  I assume that's the 
reason for PCB, too.  I think gnucap's approach is more 
aggressive, in the sense that everything is moving to plugins, 
making the system completely user configurable.

> Stuart Brorson wrote:
>The discussion about hierarchy should focus on the
> following points:
>
> *  What kind of data structures are desirable?  How would
> they look? Right now, the main data structure for a schematic
> is a linear linked list of graphical objects (for each
> schematic page).  Some list items point to others (i.e. to
> support component attributes). How would that change to
> support hierarchy?
>
> *  ONce a datastructure is decided upon, then what does the
> file format look like?  Note that our current file format
> maps fairly closely onto the internal data structures. 
> Preserving this close mapping is a desirable goal. 
> Therefore, the data structures defining hierarchy should
> more-or-less dictate what the file format should look like.

You have the order backwards.  Design the file format first, 
then the data structures.  The file format should be designed 
as a language for expressing what you want to express.  If the 
thing being expressed is a printed circuit board, the language 
should be meaningful and expressive in that context.

If the data structures are already designed, I still say design 
the file format "first" in the sense that it should ignore the 
data structures.

Fitting the file format to the data structures permanently locks 
you to the mistakes of the first cut.  Designing the file 
format description language first leaves you free to change the 
underlying algorithms and data structures later.

File formats that are data structure dumps cause big problems in 
the long run.

I still believe we need an interchange file format, that should 
be a VHDL derivative.  VHDL has most of the capabilities 
needed, and is an industry standard.  If something is missing, 
we can add it, and propose it back to the standards committee.  
They might even welcome it.

gnetlist really needs to be redone, from the ground up.  This 
VHDL based intermediate format is the way to do it.

gnetlist has served us well so far, but we have learned a lot by 
doing it and using it, and it is time to move on.

> *  How should gschem behave once hierarchy is architected in?
>  Right now you attach a source= attribute to a symbol.  Then
> you do "schematic down" on that symbol to dive into the
> sub-schematic.  Is that OK?  Or what's a better scheme?
>
> And how to handle re-use blocks?  That is, if I have a
> sub-schematic which I instantiate four times, how should it
> be refdesed in the netlist?  If I dive into one of the four
> instantiations and edit it, is it OK that the other three
> instantiations are also updated.
>
> A list of use-cases would be helpful here.
>
> *  Similarly, how should gnetlist behave?  A use-case list
> would be useful.

Any extraction should preserve hierarchy, in hopes that the 
target tool also benefits from it.  If it doesn't, you need a 
separate flattener pass, separate from the translation.

Regardless, the translation must be 100%, lossless, in both 
directions.

gschem attributes need to have types.  The type is just a 
string, but important.  That way one type can be those passed 
to a simulator, another can be those passed back from the 
simulator, etc.  Since the type is just a string, new types can 
be added at any time.  An attribute should be able to have 
multiple types.


> *  Finally, how should PCB behave with a hierarchical
> schematic?

Right click on a symbol, select "go inside", and another drawing 
opens up showing what's inside.  gschem also should act this 
way.



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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-17 Thread Steve Meier
My imediate use for recessing has to do with ridged flex riged boards.
In one example we have a circuit board that has for example a ridged
section on the right that has a connector, this section has to have one
level of thickness. connected to this ridged is a section of flex, on
the other side of the section of flex these is a section of ridged
material that has a flip chip a resistor and a few capacitors. This
second ridged section has a different thickness then the first. It is
thinner and we achieve this by having few layers. Continuing on we have
another section of flex and then a final section of ridged. This last
section of ridged has yet a third thickness then the other two ridged
sections.

All of this is constructed in layers that are glued and pressed
together. So we cut out different holes out of the different layers
before aligning them and gluing them and pressing them. Problem is that
the pads have to be on different layers. We over came this by pretending
at layout that they were different boards and getting the shop to merge
the gerbers.

I think there is a second reason, (note the i think) in that some very
high frequency devices have pins that stick streight out their sides so
as to avoid bends. But that these devices also would like to be heat
sinked to the ground plane. This is again an I think and I am looking
for an example.

Steve M.

DJ Delorie wrote:
>> Yes fab shops can cnc the layers before gluing and pressing them
>> together.
>> 
>
> Drool.  Yeah, you'd need the "layer types" patch to really manage
> that, as you'd be able to tag multiple pcb layers as "outline" layers
> and associate them with specific board layers or whatnot.
>
> You could do it now, except that they'd have all the pins' copper on
> them as well as the outline.
>
> The only thing you can't do already is tell pcb to put elements on
> inner layers.
>
> Of course, I'm curious *why* you need to recess parts...
>
>
> ___
> geda-user mailing list
> geda-user@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
>
>   



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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-17 Thread DJ Delorie

> One practical solution for very small parts is to hid the refdes on the
> board but make a large assembly drawing that has them.

That's almost what I did.  I make the refdes's as big as the parts,
right on top of them, and printed them out as an assembly drawing.  I
just didn't put them on a silkscreen.

This was about the time I added the lock-text and only-text settings ;-)


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-17 Thread Steve Meier
One practical solution for very small parts is to hid the refdes on the
board but make a large assembly drawing that has them.

Steve Meier

DJ Delorie wrote:
>> S2/S2/L1  S2/S2/C1 and S2/S2/U1
>>
>> is the RenumberBlock funtion capable of this?
>> 
>
> It currently pulls the last string of digits (suffix) off for
> renumbering, but pulling the first string shouldn't be too hard.  It
> doesn't give you automatic updating, though.  If you edit the master
> block, you'd cut out the copies, and re-copy/renumber the master block
> to make new copies.
>
> We could script this if we had an action to select a region, but it
> would certainly be better if it "just knew" about such blocks.
>
>   
>> Because when you use those virtual 01005 capcitors there isn't a lot
>> of room for a readable refdes as it is
>> 
>
> Too true.  I didn't even bother with a silkscreen on the furnace
> board, and that's only 0603s.
>
>
> ___
> geda-user mailing list
> geda-user@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
>
>   



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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Igor2
On Fri, 16 Mar 2007, John Griessen wrote:

>John Griessen wrote:
>> So,  "What do you want?
>

Please add this to the list: [PCB] an interface for presenting dynamic
dialog boxes for importers and wizards similar to the exporters. This
would help some plugins to integrate better in the GUI.





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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread DJ Delorie

> S2/S2/L1  S2/S2/C1 and S2/S2/U1
> 
> is the RenumberBlock funtion capable of this?

It currently pulls the last string of digits (suffix) off for
renumbering, but pulling the first string shouldn't be too hard.  It
doesn't give you automatic updating, though.  If you edit the master
block, you'd cut out the copies, and re-copy/renumber the master block
to make new copies.

We could script this if we had an action to select a region, but it
would certainly be better if it "just knew" about such blocks.

> Because when you use those virtual 01005 capcitors there isn't a lot
> of room for a readable refdes as it is

Too true.  I didn't even bother with a silkscreen on the furnace
board, and that's only 0603s.


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Steve Meier
DJ Delorie wrote:
>> From PCB, I would like to seperate the hierarchy from the rest of
>> the refdes. I would like to be able to layout a hierarchical
>> section. I would like to be able to save that section as a seperate
>> collection. I would like to be able to paste a copy of that section
>> into a larger pcb layout and only have to change the top of
>> hierarchy string to correctly interact with the netlist.
>> 
>
> PCB doesn't care what the refdes is, a heirarchical one is just as
> valid as a common one.  I have a RenumberBlock() action that's
> designed to make it easier to have repetetive blocks on a board, but I
> think you want something more automatic, like the way element data is
> grouped as an element.  For example, have a block on the board that is
> a modular entity.  Normally, you can't do anything but move it around
> as a whole.  A special action "opens" this block (and hides everything
> else) so you can edit it.  When you're done, it's closed again - and
> any copies of the block are automatically updated in place.
>
> The usual buffer to/from file mechanism should be sufficient
> (gui-wise) for saving blocks as files.
>
> Have you tried using Xfig's group/ungroup/editgroup mechanism?
>
>   
>
An example of what I was thinking is If I have the following
hierarchical refdess

S1/S2/L1 and S1/S2/C1 and S1/S2/U1

The hierarchy is S1/S2   the non hierarchy refdes are L1, C1 and U1

I would like to replicate this block and just have to edit once

the hierarchy to S2/S2

giving the full hierarchy + refdes to be

S2/S2/L1  S2/S2/C1 and S2/S2/U1

is the RenumberBlock funtion capable of this?

Plus I would like to be able to say to that block Don't display the
hierarchy in the silkscreen.

Because when you use those virtual 01005 capcitors there isn't a lot of
room for a readable refdes as it is



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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread DJ Delorie

> Yes fab shops can cnc the layers before gluing and pressing them
> together.

Drool.  Yeah, you'd need the "layer types" patch to really manage
that, as you'd be able to tag multiple pcb layers as "outline" layers
and associate them with specific board layers or whatnot.

You could do it now, except that they'd have all the pins' copper on
them as well as the outline.

The only thing you can't do already is tell pcb to put elements on
inner layers.

Of course, I'm curious *why* you need to recess parts...


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Steve Meier

>> While I am at it. PCB should be able to do hidden vias, buried vias
>> and micro vias...
>> 
>
> If we can get the "layer types" project done (this is listed as the
> non-copper layers project in SoC), we'll be able to have a concept of
> a "layer stack" (unless we just assume the physical stack matches the
> GUI layer layout).
>
> The next project after that is what I call a "multi-pin", which is a
> standard pin, but with a much more intense copper description, one for
> each layer, with drill depth parameters et al.  That would include
> blind and buried vias.  Microvias is just a drill size after that,
> unless you need them called out in a different .cnc file
>
>   
No a micro via should be the same in the the cnc file. The PCB fab shop
will deside how to drill the hole.


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Steve Meier
DJ Delorie wrote:
>
>   
>> Did I mention the ability to cut out areas of
>> layers such that I can resese components into lower layers?
>> 
>
> Assuming you know a fab that can mill layers before assembling
> them... is that what you're talking about?  That would mean having
> elements and pads on layers other than the outer two, yes?
>
>   
Yes fab shops can cnc the layers before gluing and pressing them together.




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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread DJ Delorie

> From PCB, I would like to seperate the hierarchy from the rest of
> the refdes. I would like to be able to layout a hierarchical
> section. I would like to be able to save that section as a seperate
> collection. I would like to be able to paste a copy of that section
> into a larger pcb layout and only have to change the top of
> hierarchy string to correctly interact with the netlist.

PCB doesn't care what the refdes is, a heirarchical one is just as
valid as a common one.  I have a RenumberBlock() action that's
designed to make it easier to have repetetive blocks on a board, but I
think you want something more automatic, like the way element data is
grouped as an element.  For example, have a block on the board that is
a modular entity.  Normally, you can't do anything but move it around
as a whole.  A special action "opens" this block (and hides everything
else) so you can edit it.  When you're done, it's closed again - and
any copies of the block are automatically updated in place.

The usual buffer to/from file mechanism should be sufficient
(gui-wise) for saving blocks as files.

Have you tried using Xfig's group/ungroup/editgroup mechanism?

> I would like to be able in the netlist to tell pcb which slots are
> swapable, which i/o pins are swapable and which pin pairs can
> function as differential pairs (these last two have to be able to be
> limited to specific banks) such that pcb could correctly change the
> net list itself. Then I would like PCB to be able to tell me what
> pins and in what order the pins were swapped so that this could be
> imported back into the original design.

This is the usual back-annotation request, for starters.  If we can
propogate the slotting information to pcb, perhaps we can figure out a
GUI to swap them.

> While I am at it. PCB should be able to do hidden vias, buried vias
> and micro vias...

If we can get the "layer types" project done (this is listed as the
non-copper layers project in SoC), we'll be able to have a concept of
a "layer stack" (unless we just assume the physical stack matches the
GUI layer layout).

The next project after that is what I call a "multi-pin", which is a
standard pin, but with a much more intense copper description, one for
each layer, with drill depth parameters et al.  That would include
blind and buried vias.  Microvias is just a drill size after that,
unless you need them called out in a different .cnc file.

> Did I mention the ability to cut out areas of
> layers such that I can resese components into lower layers?

Assuming you know a fab that can mill layers before assembling
them... is that what you're talking about?  That would mean having
elements and pads on layers other than the outer two, yes?


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Steve Meier
>From PCB, I would like to seperate the hierarchy from the rest of the
refdes. I would like to be able to layout a hierarchical section. I
would like to be able to save that section as a seperate collection. I
would like to be able to paste a copy of that section into a larger pcb
layout and only have to change the top of hierarchy string to correctly
interact with the netlist.

I would like to be able in the netlist to tell pcb which slots are
swapable, which i/o pins are swapable and which pin pairs can function
as differential pairs (these last two have to be able to be limited to
specific banks) such that pcb could correctly change the net list
itself. Then I would like PCB to be able to tell me what pins and in
what order the pins were swapped so that this could be imported back
into the original design.

While I am at it. PCB should be able to do hidden vias, buried vias and
micro vias... Did I mention the ability to cut out areas of layers such
that I can resese components into lower layers?

Finaly I could use all of these by, . say next Tuesday.

"I'd gladly pay you Tuesday for a hamberger today"

Thanks,

Steve M.

John Griessen wrote:
> John Griessen wrote:
>> So,  "What do you want?
>
> The gschem gnetlist PCB gsch2pcb gattrib gerbv  wants mentioned
> recently and needing discussion are:
>
> Steve Meier:
> 1) hierarchical data and file structures (xml or other)
> 2) an integrated hierarchical netlister
> 3) use of a better supported scripting language
> 4) a method of dynamically partioning devices into meaningfull symbols
> 5) a method of communicating between the schematic design and the layout
> program on issues of slot swapping, i/o pin swapping, differential i/o
> pin swapping, bank swapping
> 6) strong drc
>
> > My plan for dealing with long refdes names e.g.S1/S2/S3/U3 is to hide
> > the refdes and create a large box on the silkscreen which is labled S1.
> > Then inside the S1 Box, a smaller box on the silcrean labled S2 and
> > inside ths S2 box an even smaller box labled S3. The device inside the
> > S3 box will have a silk screened comment near it that states U3.
>
> Svenn Are Bjerkem wrote:  (about geda installer)jg
> For real day-to-day work the engineer should be
> able to decide himself what tool he wants to use
> it should be enough to
> run a command to have it installed.
>
> On 3/4/07, Dan McMahill <[EMAIL PROTECTED]> wrote:(about
> multiple flows)jg
> > I think designing the tool up front to explicitly deal with and support
> > 2 different back end flows (layout and simulation in this case) is very
> > important.  Presumably that will be a good vehicle to making sure it
> can
> > extend to many back end flows.
>
> David Baird wrote:  (about data tie ins to higher abstractions
> than "just boards")jg
> I've been thinking (maybe just dreaming?) about an extensible system
> which
> allows the representation of information which has not yet even been
> envisioned, while also providing forwards and backwards compatibility
> as new component representations are devised.  For these reasons, OWL
> struck me somewhat and now I am learning OWL and trying to see if I
> can really make it do what I want.  --  A simple example  --  convey to a
> PCB program that a set of nets are actually grouped
> > together to form the address bus of a microprocessor system.
>
> Dan McMahill wrote:  (about using gnetman work already done to get
> hierarchy )jg
> I guess what I'd hate to see is a lot of work put into improving
> gnetlist (which needs improving)
> only to find that the underlying database structure and methods for
> accessing it still
> aren't complete enough, fast enough, or scalable enough.
>
> Stuart Brorson wrote:
>   The discussion about hierarchy should focus on the
> following points:
>
> *  What kind of data structures are desirable?  How would they look?
> Right now, the main data structure for a schematic is a linear linked
> list of graphical objects (for each schematic page).  Some list items
> point to others (i.e. to support component attributes). How would that
> change to support hierarchy?
>
> *  ONce a datastructure is decided upon, then what does the file
> format look like?  Note that our current file format maps fairly
> closely onto the internal data structures.  Preserving this close
> mapping is a desirable goal.  Therefore, the data structures defining
> hierarchy should more-or-less dictate what the file format should look
> like.
>
> *  How should gschem behave once hierarchy is architected in?  Right
> now you attach a source= attribute to a symbol.  Then you do
> "schematic down" on that symbol to dive into the sub-schematic.  Is
> that OK?  Or what's a better scheme?
>
> And how to handle re-use blocks?  That is, if I have a sub-schematic
> which I instantiate four times, how should it be refdesed in the
> netlist?  If I dive into one of the four instantiations and edit it,
> is it OK that the other three instantiations are also updated.
>

Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Dan McMahill

John Griessen wrote:

Dan McMahill wrote:  (about using gnetman work already done to get 
hierarchy )jg
I guess what I'd hate to see is a lot of work put into improving 
gnetlist (which needs improving)
only to find that the underlying database structure and methods for 
accessing it still

aren't complete enough, fast enough, or scalable enough.


and just to clarify, this is a reason to use the gnetman database as 
opposed to one designed by one of us.


-Dan


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


Re: gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread Steve Meier
John,

Keep this up and we are not only going to think you are paying attention
but that you are taking notes as well.

Steve Meier

John Griessen wrote:
> John Griessen wrote:
>> So,  "What do you want?
>
> The gschem gnetlist PCB gsch2pcb gattrib gerbv  wants mentioned
> recently and needing discussion are:
>
> Steve Meier:
> 1) hierarchical data and file structures (xml or other)
> 2) an integrated hierarchical netlister
> 3) use of a better supported scripting language
> 4) a method of dynamically partioning devices into meaningfull symbols
> 5) a method of communicating between the schematic design and the layout
> program on issues of slot swapping, i/o pin swapping, differential i/o
> pin swapping, bank swapping
> 6) strong drc
>
> > My plan for dealing with long refdes names e.g.S1/S2/S3/U3 is to hide
> > the refdes and create a large box on the silkscreen which is labled S1.
> > Then inside the S1 Box, a smaller box on the silcrean labled S2 and
> > inside ths S2 box an even smaller box labled S3. The device inside the
> > S3 box will have a silk screened comment near it that states U3.
>
> Svenn Are Bjerkem wrote:  (about geda installer)jg
> For real day-to-day work the engineer should be
> able to decide himself what tool he wants to use
> it should be enough to
> run a command to have it installed.
>
> On 3/4/07, Dan McMahill <[EMAIL PROTECTED]> wrote:(about
> multiple flows)jg
> > I think designing the tool up front to explicitly deal with and support
> > 2 different back end flows (layout and simulation in this case) is very
> > important.  Presumably that will be a good vehicle to making sure it
> can
> > extend to many back end flows.
>
> David Baird wrote:  (about data tie ins to higher abstractions
> than "just boards")jg
> I've been thinking (maybe just dreaming?) about an extensible system
> which
> allows the representation of information which has not yet even been
> envisioned, while also providing forwards and backwards compatibility
> as new component representations are devised.  For these reasons, OWL
> struck me somewhat and now I am learning OWL and trying to see if I
> can really make it do what I want.  --  A simple example  --  convey to a
> PCB program that a set of nets are actually grouped
> > together to form the address bus of a microprocessor system.
>
> Dan McMahill wrote:  (about using gnetman work already done to get
> hierarchy )jg
> I guess what I'd hate to see is a lot of work put into improving
> gnetlist (which needs improving)
> only to find that the underlying database structure and methods for
> accessing it still
> aren't complete enough, fast enough, or scalable enough.
>
> Stuart Brorson wrote:
>   The discussion about hierarchy should focus on the
> following points:
>
> *  What kind of data structures are desirable?  How would they look?
> Right now, the main data structure for a schematic is a linear linked
> list of graphical objects (for each schematic page).  Some list items
> point to others (i.e. to support component attributes). How would that
> change to support hierarchy?
>
> *  ONce a datastructure is decided upon, then what does the file
> format look like?  Note that our current file format maps fairly
> closely onto the internal data structures.  Preserving this close
> mapping is a desirable goal.  Therefore, the data structures defining
> hierarchy should more-or-less dictate what the file format should look
> like.
>
> *  How should gschem behave once hierarchy is architected in?  Right
> now you attach a source= attribute to a symbol.  Then you do
> "schematic down" on that symbol to dive into the sub-schematic.  Is
> that OK?  Or what's a better scheme?
>
> And how to handle re-use blocks?  That is, if I have a sub-schematic
> which I instantiate four times, how should it be refdesed in the
> netlist?  If I dive into one of the four instantiations and edit it,
> is it OK that the other three instantiations are also updated.
>
> A list of use-cases would be helpful here.
>
> *  Similarly, how should gnetlist behave?  A use-case list would be
> useful.
>
> *  Finally, how should PCB behave with a hierarchical schematic?
>
>
>
>
>
> ___
> geda-user mailing list
> geda-user@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
>



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


gEDA-user: Design Flow Roadmap starting point

2007-03-16 Thread John Griessen

John Griessen wrote:

So,  "What do you want?


The gschem gnetlist PCB gsch2pcb gattrib gerbv  wants mentioned recently and 
needing discussion are:

Steve Meier:
1) hierarchical data and file structures (xml or other)
2) an integrated hierarchical netlister
3) use of a better supported scripting language
4) a method of dynamically partioning devices into meaningfull symbols
5) a method of communicating between the schematic design and the layout
program on issues of slot swapping, i/o pin swapping, differential i/o
pin swapping, bank swapping
6) strong drc

> My plan for dealing with long refdes names e.g.S1/S2/S3/U3 is to hide
> the refdes and create a large box on the silkscreen which is labled S1.
> Then inside the S1 Box, a smaller box on the silcrean labled S2 and
> inside ths S2 box an even smaller box labled S3. The device inside the
> S3 box will have a silk screened comment near it that states U3.

Svenn Are Bjerkem wrote:  (about geda installer)jg
For real day-to-day work the engineer should be
able to decide himself what tool he wants to use
it should be enough to
run a command to have it installed.

On 3/4/07, Dan McMahill <[EMAIL PROTECTED]> wrote:(about multiple 
flows)jg
> I think designing the tool up front to explicitly deal with and support
> 2 different back end flows (layout and simulation in this case) is very
> important.  Presumably that will be a good vehicle to making sure it can
> extend to many back end flows.

David Baird wrote:  (about data tie ins to higher abstractions than "just 
boards")jg
I've been thinking (maybe just dreaming?) about an extensible system which
allows the representation of information which has not yet even been
envisioned, while also providing forwards and backwards compatibility
as new component representations are devised.  For these reasons, OWL
struck me somewhat and now I am learning OWL and trying to see if I
can really make it do what I want.  --  A simple example  --  convey to a
PCB program that a set of nets are actually grouped
> together to form the address bus of a microprocessor system.

Dan McMahill wrote:  (about using gnetman work already done to get hierarchy )jg
I guess what I'd hate to see is a lot of work put into improving gnetlist 
(which needs improving)
only to find that the underlying database structure and methods for accessing 
it still
aren't complete enough, fast enough, or scalable enough.

Stuart Brorson wrote:
  The discussion about hierarchy should focus on the
following points:

*  What kind of data structures are desirable?  How would they look?
Right now, the main data structure for a schematic is a linear linked
list of graphical objects (for each schematic page).  Some list items
point to others (i.e. to support component attributes). How would that
change to support hierarchy?

*  ONce a datastructure is decided upon, then what does the file
format look like?  Note that our current file format maps fairly
closely onto the internal data structures.  Preserving this close
mapping is a desirable goal.  Therefore, the data structures defining
hierarchy should more-or-less dictate what the file format should look
like.

*  How should gschem behave once hierarchy is architected in?  Right
now you attach a source= attribute to a symbol.  Then you do
"schematic down" on that symbol to dive into the sub-schematic.  Is
that OK?  Or what's a better scheme?

And how to handle re-use blocks?  That is, if I have a sub-schematic
which I instantiate four times, how should it be refdesed in the
netlist?  If I dive into one of the four instantiations and edit it,
is it OK that the other three instantiations are also updated.

A list of use-cases would be helpful here.

*  Similarly, how should gnetlist behave?  A use-case list would be
useful.

*  Finally, how should PCB behave with a hierarchical schematic?





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