Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Tom Burke

Using Schematics to Capture a 'Hello World' App, Part 2

Tom Burke
Page 1 / 3   >   >>
thrakkor
thrakkor
2/17/2013 10:09:24 AM
User Rank
Blogger
here is
a project that created an HDL for board design schematic entry:

http://sourceforge.net/p/phdl/wiki/Home/

 

I found out about it over on a LinkedIn forum thread.

50%
50%
devel@latke.net
devel@latke.net
2/16/2013 11:47:55 PM
User Rank
Guru
Re: Schematics from HDL
Shakeeb: @thrakkor - I too feel the same that "The schematic entry part of board design could be done better in an HDL like format."

I worked for a small company that used a text-based "schematic" entry design methodology. It was home grown and used emacs for entry because a bunch of LISP modules were written to do all sorts of things. It didn't use VHDL, though.

It was quite powerful. Basically, the system "knew" about all sorts of parts that existed in "libraries" in known locations in the file system. The parts in the "libraries" were just text descriptions of the part's pinout. It defined the usual pin types (input, output, bidirectional, passive, power, etc) and it handled passives (resistors, caps) and such all the way up to large BGA processors and FPGAs. The parts also had a defined PCB footprint, and part names followed a somewhat-straightforward standard nomenclature.

It was hierarchical, too, in that you could define a "module" which included all parts you'd need for say a processor -- the processor itself, decoupling caps, cache SRAM chips, etc etc, and you just instantiated the module into your "schematic." 

After design entry was complete, you'd run a DRC which checked whether inputs and outputs were connected legally, and it flagged no-connects and missing pins on a part and all sorts of things. It spit out a netlist which was imported into the layout tool.

It also had hooks to build a BOM and some other useful manufacturing things.

Being text based, it was easy to diff and edit and compare and everything we take for granted with HDLs and software development, although it didn't use an SCC per se.

Of course it had downsides. The most obvious was that it was home grown and basically the only person who could support it was the president/half-owner of the company (long story). (The company was bought by a larger company and my group was axed pretty much right away but I found out that the president left soon after.) Also if you're looking for a job and you're asked "which EDA tools do you know?" it wasn't something you could put on a resume.

So yeah, a text-based schematic design entry method is nothing new but it's definitely something that requires a solid architecture.

50%
50%
shakeeb
shakeeb
2/16/2013 5:47:32 AM
User Rank
Beginner
Re: Schematics from HDL
@thrakkor - I too feel the same that "The schematic entry part of board design could be done better in an HDL like format."
 


50%
50%
tomii
tomii
2/13/2013 3:17:30 PM
User Rank
Blogger
Re: Schematics from HDL
@Thrakkor:

I think...


Okay, I'm not being a complete naysayer here.  I'll stick with my assertion about too much abstraction when working at the PCB level.

However, as far as an HDL for an analog circuit goes, this already exists, and has for many years (since the early 1980's, at least).  This is called SPICE.

Every vendor of modern ICs supports it at some level, and it is flexible enough to model device physics at a reasonable level - so long as you understand the limitations, etc.  The main thing that, say, a PADS netlist brings to the table is physical properties.


For me, at least, this is one of the great things about schematic entry - I can generate the circuit, model the circuit (with certain caveats), and then hand it off to ta PCB tool.  In some cases it's all integrated (although not in many).  No doubt, I often find myself at the netlist level "tweaking" things to get them to work correctly across tools.

But I also find it very difficult to look at a netlist and get an understanding of a circuuit topology without spendinga lot of time trying to recreate the circuit, whereas I can look at a schematic and almost imediately understand - at least for simple schematics.

Over the years, I have found myself having to reverse-engineer and troubleshoot, and the ability to trace a line on a schematic (or multiple lines, for that matter) has been requisite.  I am sure that *I* would likely not be able to do the same with just a netlist.  In fact, I would find myself rebuilding the schematic from the netlist, first, so I could more readily identify the problem areas.

And that brings up another point, too - physical placement of parts is very important in a circuit design. No netlist I've seen (beyond the Gerbers) puts that information in there, in a way that's easily understandable.

50%
50%
thrakkor
thrakkor
2/13/2013 2:44:20 PM
User Rank
Blogger
Re: Schematics from HDL
@Karl, @tomii,

OK, I whipped this together.  it's most likely not perfect, but it gets my point across.

http://sampsel.us/~jsampsel/vhd/valve_caster.vhd

which represents this schematic:

http://www.beavisaudio.com/projects/ValveCaster/MatsuminValveCaster.gif

 

for component values, I would use VHDL's attribute mechanism.

 

also, while working on this, I remembered VHDL-AMS, which is VHDL - Analog Mixed Signal derivative of mainstream VHDL.  looks like an even better candidate than what I whipped together.

http://en.wikipedia.org/wiki/VHDL-AMS

 

this same structural approach could also be used with FFs, LUTs or more generic gates which the synthesis engine could map into vendor LUTs/etc.

 

in both cases, there is no high level abstraction being used.  purely structural.

50%
50%
Karl
Karl
2/13/2013 2:23:17 PM
User Rank
Guru
Re: Block diagrams
@Hamster:  HDLs are more than a generation old and yes, many have dropped schematics(practically everybody here).  I have been talking about using block diagrams where the blocks have HDL design files used to generate the graphics that are certainly useful when iterating on a design to find ways to optimize it.

HLS ain't here yet, so it is up to the designer to optimize.  If you have a way to do that with an HDL so be it and bless you.

HDLs are not for programmers, but some programmers may put forth the effort to understand that they are a way to describe hardware, no sympathy for programmers that do not understand hardware and try to write HDL -- go play with programs.

Now what is a good way to learn hardware fundamentals? 

You are right that block diagrams are not detailed enough for implementation, but certainly can be useful to tie things together and develop concepts.  I do not mean doing a quick experiment by throwing together a small amount of code or modifying code on a development board.

We really should define schematic entry so everyone knows if that means a bunch of TTL gate symbols with a ton of spaghetti thrown in OR does it mean blocks connected by functional named busses and external signals. 

Did you just say that programmers start writing code on day one?

50%
50%
tomii
tomii
2/13/2013 1:50:45 PM
User Rank
Blogger
Re: Schematics from HDL
@Thrakkor:

Maybe, maybe not.  I'll be a complete heretic, here, and posit that I think there *IS* a such a thing as too much abstraction.  *gasp*

All this abstraction is wonderful in the FPGA/programmable device world, as you are working with generic "fabrics" of sort (even in a GP processor).  No doubt, people who understand what's going on "under the hood" will likely build better mousetraps than those who don't (generally speaking), but this intimate knowledge of the inner workings isn't necessary (or so it seems) beyond timing.

In the *very* analog world of circuit layout, I think there needs to be an understanding of not just the physics inside the things, but also a good grip on the physical characteristics of those things.  I can point to the old wag about the guy who ordered a 1F capacitor (back in the 80's), but instead I'll point at something much more personal...

When I was in my 1st college-level digital class, the time came when we had to build our first project.  It was something *really* simple, a handful of gates wired together on a protoboard.  I ended up having to explain to some of my fellow studenst what an IC was, as they had no clue about the relationship of the devices in their hands as compared to the symbols they had been working with in homeworks.  Some of them didn't even understand that they needed to have power.

More recently, I see people daisy-chaining power and grounds, not terminating lines, not looking at crosstalk issues, and so on.  I think doing schematics, at least at some level, forces you to think about those things.

50%
50%
Karl
Karl
2/13/2013 1:50:26 PM
User Rank
Guru
Re: Schematics from HDL
@Thrakkor:  Given your background where you started with purely HDL, you had no things to "unlearn" and synthesis had matured and you took it as a given.

Duane and Crusty have commmented about carry overs from previous experience, so I really think they can relate to using familiar things and then to grasp the notion of using HDLs.

Maybe it would help if you illustrated "the 1:1 HDL description of a schematic (no abstraction).

I think they know what a schematic is, so now they need to understand why HDL is so much better.

50%
50%
thrakkor
thrakkor
2/13/2013 1:32:26 PM
User Rank
Blogger
Re: Schematics from HDL
@tomii,

I'll clarify a bit.  I believe the schematic entry part of board design could be done better in an HDL like format.

50%
50%
tomii
tomii
2/13/2013 1:26:36 PM
User Rank
Blogger
Re: Schematics from HDL
@Thrakkor

I dig where you're coming from on FPGAs and other programmable "fabrics," but I'll have to disagree vehemently when it comes to PCBs.  They are, by nature, analog.  You can get away with a lot of sloppy stuff at low speeds, but they'll kill you on a number of fronts that don't even have to be particularly fast.

Regardless of what some vendor may tell us, laying out a PCB is an inherently manual process, and getting the components and connectivity correct is a part of that process.  Sure, it can be defined by a netlist (that's a ll a PADS file is, after all), but the engineer/designer is going to be making the connections manually, for the most part. 

50%
50%
Page 1 / 3   >   >>
More Blogs from Tom Burke
One of the things I've been wondering is whether or not the "okWireOR" module is really just a giant OR, or if the order in which things are attached matters.
In this blog we extend our previous work with the Opal Kelly FrontPanel SDK (Software Development Kit) to create a GUI that has multiple panels.
In this blog, Tom Burke extends his work with the Opal Kelly FrontPanel by creating a new graphical user interface that employs a numeric slider.
I am convinced that every country has its own governmental office buried deep down in some dark, dank basement -- on this office door is a single word: "They!"
In this column we will extend our Opal Kelly FrontPanel interface to have two "okWireOut" devices in the FPGA... or maybe not depending on your point of view.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS