Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   VHDL (http://www.velocityreviews.com/forums/f18-vhdl.html)
-   -   VHDL for PCB design? (http://www.velocityreviews.com/forums/t699989-vhdl-for-pcb-design.html)

self 09-30-2009 08:28 PM

VHDL for PCB design?
 
Hello All,

I'm looking for a practical way to use VHDL as the design entry method
for designing printed circuit boards. We have expensive schematic
drawing tools at work but I tire of editing all those silly symbols
and connecting them together. I'd much rather use an HDL for board
design for all the same reasons people abandoned schematics for
designing integrated circuits years ago.

Really, all I need is a way to generated a netlist from some
structural VHDL of my design. If I could get to and EDIF output I
could probably read that into my PCB layout tool. It occured to me
that perhaps I could trick a regular chip synthesis tool, say Synplify
or XST, into making the netlist.

Please share any ideas.

Pete Dudley
Albuquerque, NM, USA

Mike Treseler 09-30-2009 11:02 PM

Re: VHDL for PCB design?
 
self wrote:

> Really, all I need is a way to generated a netlist from some
> structural VHDL of my design. If I could get to and EDIF output I
> could probably read that into my PCB layout tool.


I've had the same thought, as have others:
http://groups.google.com/groups/sear...r+board+layout

The netlist could be entered in vhdl in theory,
but real layout tools like allegro see netlists
as outputs, not inputs.

Most schematics with large parts look like netlists already.

And do I really want to type in 500 port IDs and
pin numbers for an fpga model at my normal 1% error rate?
The layout guy can do it faster than I can
and most of the parts are already done.

> It occurred to me
> that perhaps I could trick a regular chip synthesis tool, say Synplify
> or XST, into making the netlist.


Even if allegro would accept my vhdl synthesis netlist as source,
I would still have to make or port map the
allegro physical models for layout.

> Please share any ideas.


That's all I've got.

-- Mike Treseler

Petter Gustad 10-01-2009 10:44 AM

Re: VHDL for PCB design?
 
Mike Treseler <mtreseler@gmail.com> writes:

> I've had the same thought, as have others:


Me too: http://tinyurl.com/y8p7ynv

I've also been looking for a way to write the netlist in HDL rather
than drawing schematics for PCB designs.

Petter

--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Shannon 10-01-2009 01:28 PM

Re: VHDL for PCB design?
 
On Oct 1, 3:44*am, Petter Gustad <newsmailco...@gustad.com> wrote:
> Mike Treseler <mtrese...@gmail.com> writes:
> > I've had the same thought, as have others:

>
> Me too:http://tinyurl.com/y8p7ynv
>
> I've also been looking for a way to write the netlist in HDL rather
> than drawing schematics for PCB designs.
>
> Petter
>
> --
> A: Because it messes up the order in which people normally read text.
> Q: Why is top-posting such a bad thing?
> A: Top-posting.
> Q: What is the most annoying thing on usenet and in e-mail?


Are you guys serious? I know I am going to get in trouble for
responding to this on a VHDL group but...wow....come on.

I can not imagine a more horrendous way of entering a schematic. I
praised the day when PSpice went from text only netlist to graphical
entry! I guess I'm too much of a hardware guy. Schematic entry
brings with it tons of important design rules and checks. Not to
mention I defy anyone to look at a VHDL text representation of a
schematic and tell me what the circuit does. Most of us hardware guys
can take one glance at a schematic and get a gist of what it's doing
in an instant. I guess for ultra simple designs you could do it but
for anything more complex it would be a diagnostic nightmare of the
1st order.

Shannon (preparing to get flamed to death)

Petter Gustad 10-01-2009 02:12 PM

Re: VHDL for PCB design?
 
Shannon <sgomes@sbcglobal.net> writes:

> Are you guys serious? I know I am going to get in trouble for
> responding to this on a VHDL group but...wow....come on.


I'm much more effective instantiating, connecting wires, searching
etc. using Emacs using HDL rather than drawing wires. Also I'm able to
do simple simulations of the PCB as well (depending upon if I have
models of the devices, or make my own mockups).

I'm thinking mostly of simple digital designs where larger parts like
processor, memory, FPGA, etc. are being instantiated. The story would
be different for a low level analog design (since you mentioned
PSpice).

Of course I would need to be able to run my netlist through a design
rule checker, etc. but I haven't seen anything witch supports this
flow yet.

> schematic and tell me what the circuit does. Most of us hardware guys
> can take one glance at a schematic and get a gist of what it's doing


For the designs I have in mind you would probably not be able to tell
without having the source of the code running on the processor and the
HDL for the FPGA...

Petter
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Andy 10-01-2009 07:13 PM

Re: VHDL for PCB design?
 
I started doing FPGA design 20 years ago using schematics, and after
initial reluctance, embraced the move to VHDL in the early 90's (I
remember rejoicing about direct entity instantiation when it was
introduced in VHDL'93). I had created recursive schematic
implementations for parameterized symbols for adders, counters, shift
registers, binary trees of gates, comparators, muxes, demuxes, etc.
all done in schematics (using Valid GED, the precursor to Cadence
Concept/DE-HDL), but it did not take long to gladly abandon all that
for VHDL. I even had a trick for designing state machines in
schematics, but it paled in comparison to what I could do with VHDL.

But that was FPGA's, not boards...

There is a huge difference in the nature of board level design vs ASIC/
FPGA design. Board level design is necessarily about adding and
connecting pre-defined components. While this is also true of ASIC/
FPGA designs that primarily stitch together IP cores, ASIC/FPGA design
also involves functional behavior independent of structure (RTL code).
The big advance in ASIC/FPGA design from schematic to HDL was not in
how easy it was to enter a netlist of primitives, but in how easy it
was to specify a desired behavior, and let synthesis figure out how to
build it. Until we have board level synthesis, we cannot expect a
similar productivity improvement for board level design from utilizing
HDL. Cadence introduced a "spreadsheet" board design entry tool a few
years ago, that as far as I know went no-where. For backplane designs,
etc. it was a god-send (lots of repetitive connections to multiple
identical components), but for typical board level design, it did not
give a significant advantage over schematic entry; it was too much
like netlist entry.

How hard it is to draw a schematic depends on what level of detail you
need to show. If you can live with bus-wide pins on symbols, connected
by a single "wire" on the schematic, (no discrete pin numbers shown),
then a lot of the advantages of HDL entry are gone. Intelligent use of
schematic hierarchy (depending on the tool's capability) gives you
similar abilty to manage scale, complexity and reuse as you have in
HDL.

While the glorious part of a board design (hooking up this bus from
this chip to that chip) is what most people "see", all the little
"analog" connections between discrete resistors, capacitors, etc. that
don't need to be named, give a significant boost to the efficiency of
schematic entry. Even with named signals, the name is only specified
once in a schematic (twice or more if it spans pages), rather than at
least three times for a simple point to point connection (declaration,
source port map, destination port map) in HDL. If I need to insert a
resistor or buffer in the middle of a net, I can drop it into my
schematic editor on top of the wire, and the tool immediately breaks
the wire in two and connects it. In HDL, I'd need to declare another
signal name, change one (or more) port map(s) to the new name, and add
the new instance and port map connections manually. You never have to
deal with these things in ASIC/FPGA design largely because the
synthesis tool does it for you. Unfortunately we don't have those
kinds of tools for board level design.

With regards to creating symbols and the various map files required by
schematic tools, the same types of information have to be entered in
text in an HDL design, so there is no savings (and no semiautomated
symbol generation tools) for HDL.

When it comes to adding information to guide packaging, PWB layout and
routing, a few simple mouse clicks or commands is all it takes to copy
attributes from one net to another, or from one symbol to a whole set
of symbols. Applying those attributes in HDL requires a lot more
manual effort.

And when it comes to understanding the large scale structure of a
design, I find it easier to digest from a well drawn block diagram or
top level of a hierarchical schematic than I do from a huge chunk of
HDL.

Andy

backhus 10-02-2009 06:25 AM

Re: VHDL for PCB design?
 
On 30 Sep., 22:28, self <padu...@gmail.com> wrote:
> Hello All,
>
> I'm looking for a practical way to use VHDL as the design entry method
> for designing printed circuit boards. We have expensive schematic
> drawing tools at work but I tire of editing all those silly symbols
> and connecting them together. I'd much rather use an HDL for board
> design for all the same reasons people abandoned schematics for
> designing integrated circuits years ago.
>
> Really, all I need is a way to generated a netlist from some
> structural VHDL of my design. If I could get to and EDIF output I
> could probably read that into my PCB layout tool. It occured to me
> that perhaps I could trick a regular chip synthesis tool, say Synplify
> or XST, into making the netlist.
>
> Please share any ideas.
>
> * *Pete Dudley
> * *Albuquerque, NM, USA


Hi Pete,
sure, VHDL can be used to create netlists, and wether you want to edit
them manually or with a schematic tool is up to your personal
preferences.
But what definitely won't work is to feed it into any FPGA synthesis
tool and hope to get something useful for PCBs.
Not even a useful design rule check, because FPGAs have different
design rules than PCBs.

So, while you can write a netlist in VHDL and expand it with
attributes that arte useful for PCBs, you need a backend software that
reads this file and does something useful with it.
Even if you are going to convert it to EDIF, which is just another
netlist format, it won't change anything. Even the converting tool has
to be special to understand your VHDL attributes.

e.g. You probably need a attribute to define wire_widths. No FPGA tool
knows how to handle such an attribute, it is just meaningless for
FPGAs.
So even if you get some EDIF file from a FPGA tool you will loose
all these attributes and the netlist is useless.

So if you really want to use an existing PCB-tool that is able to read
EDIF netlists, you probably need to write a vhdl2edif converter that
creates an EDIF output that can be understood by your PCB-tool.

Regards
Eilert

Petter Gustad 10-02-2009 08:14 AM

Re: VHDL for PCB design?
 
Andy <jonesandy@comcast.net> writes:

> There is a huge difference in the nature of board level design vs ASIC/
> FPGA design. Board level design is necessarily about adding and
> connecting pre-defined components.


I'm not saying that they are similar (I've been designing ASIC's since
Verilog was a Gateway product and used HILO prior to that). I'm not
talking about board level syntheis either.

Still I think I can connect the predefined components quicker in Emacs
than drawing the nets using a schematic editor. That's because I'm
don't do it very often.

> source port map, destination port map) in HDL. If I need to insert a
> resistor or buffer in the middle of a net, I can drop it into my
> schematic editor on top of the wire, and the tool immediately breaks
> the wire in two and connects it. In HDL, I'd need to declare another
> signal name, change one (or more) port map(s) to the new name, and add
> the new instance and port map connections manually. You never have to


I can do this in Emacs. I could write a (gensym) type function to
generate unique netnames as well. One of the things I like better in
Verilog than VHDL is the ability to declare a wire right in the middle
of the logic, especially for little anonymous wires like these.

The problem is that I haven't seen any tools which supports this type
of flow.

Petter
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Andy 10-02-2009 04:45 PM

Re: VHDL for PCB design?
 
Given enough time and effort, I'm convinced anything can be done in
Emacs.

You'd need:
a tool to create/invoke "anonymous" signal names (I think this is a
bad idea, see below.)
a tool to easily create/invoke/manage attributes on signals, ports and
component/entity instances.
a tool to generate a (good) schematic drawing of your design (required
output for most customers)
a tool to manage/hide non-critical attributes to reduce clutter for
review.
a tool to do things like "find all the 1.1K 0603 resistors, and change
them to 1.0K 0402 resistors"
....and many more I can't think of until I need it and don't have it.

It's already done in a good schematic editor.

Regarding "anonymous" wires: in a schematic, it is easy enough to see
what pins a short, unnamed wire connects. In HDL, you have to find the
name, and then find the matching name somewhere else. A schematic page
uses two dimensions to allow you to place related things nearby, an
HDL file has only one dimension. Reviewing connections by name in an
hdl file is like panning around a schematic page with a postage stamp
size viewer. Trust me, I've spent enough time tracking through
netlists with machine-generated net names to know this ain't gonna be
pretty.

Cadence Design Entry HDL (FKA Concept-HDL) creates logical verilog and
vhdl netlists from the schematic. Then the packager (assembler/
netlister) uses the verilog netlist for its input to generate the
physical netlist for board layout.

So, theoretically you could code verilog and get a netlist to dump
into Allegro for board layout and routing.

Andy

Petter Gustad 10-02-2009 07:05 PM

Re: VHDL for PCB design?
 
Andy <jonesandy@comcast.net> writes:

> Given enough time and effort, I'm convinced anything can be done in
> Emacs.
>
> You'd need:
> a tool to create/invoke "anonymous" signal names (I think this is a
> bad idea, see below.)
> a tool to easily create/invoke/manage attributes on signals, ports and
> component/entity instances.
> a tool to generate a (good) schematic drawing of your design (required
> output for most customers)
> a tool to manage/hide non-critical attributes to reduce clutter for
> review.
> a tool to do things like "find all the 1.1K 0603 resistors, and change
> them to 1.0K 0402 resistors"
> ...and many more I can't think of until I need it and don't have it.
>
> It's already done in a good schematic editor.


I can do most of these in Emacs expect for the schematic generation. I
would use this flow for my own projects. For external customers this
is probably not a suitable flow. I've never seen a good automatic
schematic drawings (I've seen lots of Synopsys Design Compiler
PostScript output which does not look that great).

Keep in mind what I said earlier: "I'm thinking mostly of simple
digital designs where larger parts like processor, memory, FPGA, etc.
are being instantiated"

> Regarding "anonymous" wires: in a schematic, it is easy enough to see
> what pins a short, unnamed wire connects. In HDL, you have to find the
> name, and then find the matching name somewhere else. A schematic page


As I said, I prefer Verilog here since they can be right next to the
instance in the file. I could write/generate something like this in my
HDL netlist:

processor cpu (.addr(addr),
....

wire res109_to_addr_15;
resistor r109 (.t1(res109_to_addr_15),.t2(addr[15]));
.....

Which I don't think is that bad.

> size viewer. Trust me, I've spent enough time tracking through
> netlists with machine-generated net names to know this ain't gonna be
> pretty.


I've also traced lots of post synthesis/PAR netlsts which have been
hacked by BIST tools, by ATPG tools etc. But I have always used some
programs or Emacs functions to trace the netlist. However, a flattened
FPGA netlist with n000000N style netnames and u00000U style instance
names connecting 80.000 LUT's is quite different than what I have in
mind for a hand written HDL netlist at the top level.

Last week I actually requested an EDIF netlist export from a board
design engineer. I find it easier to trace signals in the EDIF file
than browsing the 65 page PDF file containing the schematics. But
since my favorite programming language is Common Lisp I have a toolbox
of programs to search and transfer sexps which EDIF is based upon.
However, I think I'm the only one that have this preference. We're all
different.

> Cadence Design Entry HDL (FKA Concept-HDL) creates logical verilog and
> vhdl netlists from the schematic. Then the packager (assembler/
> netlister) uses the verilog netlist for its input to generate the
> physical netlist for board layout.
>
> So, theoretically you could code verilog and get a netlist to dump
> into Allegro for board layout and routing.


Theoretically you can probably do it in any PCB package as long as you
can generate the right structure and use the right format for the
netlist. The problem is that this is not a supported flow and it's not
documented so you have to sort of reverse engieer the whole thing.

Actually I did something similar in the late 80's. I wrote a program
to flatten Verilog netlists and convert them into Dazix netlist format
which was used to produce the PCB. In this case I was given some
documentation for the Dazix netlist format. This was actually used for
a design of a UNIX computer. However, I haven't done anything similar
since.

Petter
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?


All times are GMT. The time now is 08:21 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.