hamster

Reframing the perception of FPGAs for OSHW fans.

Recommended Posts

I've put in feelers to talk at the OSHW miniconf in Auckland NZ early next year.(see https://linux.conf.au/media/news/58)

 

I am starting to think that a name change could be beneficial to OSHW on FPGA.

 

Perhaps if we were to redefine FPGAs as "Software Defined Hardware" it would sound more alluring and marketable.

 

What you you think?

 

Mike

.

Share this post


Link to post
Share on other sites

Hi Hamster,

 

As you might deduce from my Flavia project and my various writings, my opinion is that FPGAs are a "gray area" as far as OSHW is concerned.  Strict OSHW requires using silicon that is fully documented, e.g., using TI and Freescale parts with open documentation instead of parts with NDAs.  GPUs are a "gray area", since the documentation needed to program GPUs is generally unavailable.  OSHW projects note this and take a "well, you can't have everything and at least we're moving in the right direction" attitude.

 

IMO FPGA fall into the same "gray area" as GPUs.  The documentation needed to write open source software tools for them is not available, so you are required to use free-as-in-beer proprietary software.  This is unfortunate, and IMO has held back FPGAs from achieving their potential for decades.

 

Getting to your question: IMO calling them "Software-Defined Hardware" to make them more marketable to OSHW enthusiasts draws attention to the fact that to use FPGAs you must violate the open spirit of OSHW and use proprietary software.  Perhaps that's a good thing, since vendors are not going to change their habits until lots of people ask for change, and the OSHW community has the potential to be good advocates for this.  But it seems to me bad manners to have "Software-Defined OSHW" when the software isn't free-as-in-freedom.

 

Also, isn't any embedded system is "software-defined hardware"?

 

JMO/YMMV

Share this post


Link to post
Share on other sites

Humm... I guess it gets into the whole kiCad / vs Cadsoft Eagle debate that OSHW is currently facing. Even if you have all the H/W design files available to you, is it still Open Source if you have a closed source tool somewhere in the tool chain? So what about when that set of Gerbers hit the PCB house? do the use open source tools? And the actual PCB machines and pick and place? Do they use open source tools?

 

Do people consider the Propeller CPU "Open Source" now that the design files are available, even though there is no economic way to implement it in silicon?

 

A purest would say "Open Source all the way" but turns up empty handed when they are asked for the design codes for their systems firmware, an Intel CPU or microcode, their system's chip-set or Motherboard design files.

 

I see it no different from running Apache on WIndows, or using Perl on HP-UX - as long as somebody else can pick up the design and port it to another platform without undue cost or legal issues then it is Open Source. 

 

I see FPGAs as closed tools that allow people to peel the onion a few layers more - would you not agree that the ZPUino is more "Open" than an Arduino, as the design for the CPU is all yours to play with, adapt and enhance?

Share this post


Link to post
Share on other sites

Mike,

I would skip the politics and push on with your content. You're a smart guy with lots of good stuff to share. Make it interesting and technical - they will come. I would love to explore the devicetree stuff more, soft peripherals etc this would attract the linux crowd.

To me backbone of oshw has to be teaching interesting stuff for free. If the tools are free then you're in a better place that most of history. Even if the tools were open source the silicon is proprietary, like you say, we can't build our own chips in a foundry (this includes cpus that open software run onto).

Cheers,

Tom

Share this post


Link to post
Share on other sites

Humm... I guess it gets into the whole kiCad / vs Cadsoft Eagle debate that OSHW is currently facing. Even if you have all the H/W design files available to you, is it still Open Source if you have a closed source tool somewhere in the tool chain? So what about when that set of Gerbers hit the PCB house? do the use open source tools? And the actual PCB machines and pick and place? Do they use open source tools?

 

Do people consider the Propeller CPU "Open Source" now that the design files are available, even though there is no economic way to implement it in silicon?

 

A purest would say "Open Source all the way" but turns up empty handed when they are asked for the design codes for their systems firmware, an Intel CPU or microcode, their system's chip-set or Motherboard design files.

 

I see it no different from running Apache on WIndows, or using Perl on HP-UX - as long as somebody else can pick up the design and port it to another platform without undue cost or legal issues then it is Open Source. 

 

I see FPGAs as closed tools that allow people to peel the onion a few layers more - would you not agree that the ZPUino is more "Open" than an Arduino, as the design for the CPU is all yours to play with, adapt and enhance?

 

In hardware, a "purist" is going to be endlessly frustrated for the reasons you have described.  I consider myself to be a "pragmatic idealist", i.e., I'll use things "as they are" if the technology is sufficiently attractive, while advocating for more openness, especially regarding silicon documentation.  There are some technologies I'd love to use -- e.g., Cypress PSoC 5LP -- but I can't and/or won't use it until they document the routing registers or provide the key to letting the community do it for them.

 

IMO it's good to consider the original motivation for free-as-in-freedom open source software.  According to legend, RMS was inspired to start the Free Software movement because he wanted to fix a bug in a laser printer and he couldn't because the source code was trapped inside an NDA.  Why should you have to keep using a defective product when if it were documented you could fix it yourself or hire someone to fix it?  That would be like having a car with a defect but you can't fix it because there's no service manual and third parties can't create replacement parts and the original manufacturer isn't planning on fixing that defect for at least three years.

 

My understanding is that OSHW has the same motivation: make hardware open source so others can fix defects and/or improve it in other ways.  Now, if you use a proprietary schematic or PCB format you are limiting the ability for others to do this.  But as long as the format is public, IMO you can use whatever tools you like because you're not limiting the ability for others to benefit from OSHW.  I don't know if the Eagle formats are documented.

 

IMO you can use an FPGA as part of an OSHW design, just like you can use a SoC with proprietary GPU.  However, I think you should make clear that the resulting OSHW includes undocumented proprietary functions that limit what you can do at the software level.

 

JMO/YMMV

Share this post


Link to post
Share on other sites

Hamster: I'd love to help, but I am not a great person at explaining things (like you are).

 

What I do know is that people, even technical people linked to electronics, have diffuculty understanding what an FPGA is (and most of all, what it is not).

 

Recently I have been describing them as "empty chips", whose design is not yet done, but the packaging is already there. Still not enough - most people still believe that they behave like computers, and are programmed in the most understanded (computer) way.

 

Alvie

Share this post


Link to post
Share on other sites
Recently I have been describing them as "empty chips", whose design is not yet done, but the packaging is already there. Still not enough - most people still believe that they behave like computers, and are programmed in the most understanded (computer) way.

 

Here's how I explain FPGAs:

 

Have you ever wanted a custom digital chip for a project, but didn't have $1 million lying around to pay for fabricating it?   Well, an FPGA lets you do it for tens of dollars.  And if you make a mistake designing it, you can change the FPGA instead of spending another $1 million to fabricate replacement chips.

Share this post


Link to post
Share on other sites

Have you ever wanted a custom digital chip for a project, but didn't have $1 million lying around to pay for fabricating it?   Well, an FPGA lets you do it for tens of dollars.  And if you make a mistake designing it, you can change the FPGA instead of spending another $1 million to fabricate replacement chips.

 

I like it :-)

 

For the electronics guys, I also like the "Have you ever played around with solderless breadboards and little ICs? - and FPGA is equivilent to a breadboard the size of a somewhere between a garage and a basketball court, all covered in digital ICs, and a thousand eager minions ready to do the tedious wiring for you".

 

despicable-me-minion-rush.jpg

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now