On Nov 13, 2011, at 12:17 AM, Mouse wrote:
> I wonder
if there is open source / reasonably priced tools to take
> the source -> workable code.
Open source, no. But both Xilinx and Altera
offer the compiler tools
(runnable on Windows and Linux) needed to run on all their low-cost
devices (and some of their high-end ones) for free;
...except that you have to (a) be willing to run either Windows or
Linux, (b) run on their choice of hardware, and either (c1) set up a
very heavily firewalled sacrificial system or (c2) trust the security
of your system to code they aren't even willing to let you look at.
I'm not willing to do (c2) at all, and not willing to do either (a) or
(c1) unless I'm getting paid a fair bit to do so ((b) might join (a)
and (c1), if their required hardware is something I don't have, though
that's highly unlikely).
That's great, and I'm with you in that I'd much rather see open source tools
for this. However, the devices themselves and their configuration details are generally
closely-held trade secrets, so closed vendor tools are what we've got. If you're
not willing to run Windows or Linux to develop FPGAs, you better be satisfied with only
simulation.
I'm much less concerned about tools than I am
about documentation on
the hardware's interface, on what the bits in the blob thrown at the
hardware mean (and how to thrown them at it, though that part is much
more likely to be documented). I would probably find open-source tools
useful mainly as hardware documentation, though if they are properly
designed I might be able to pull off their UI and stick on something I
find usable.
I would love that. For my master's thesis, I'd hoped to gain some insight into
the configuration bitstreams so I could configure the FPGA as a neural network
dynamically. I got a very flat "no, and if you try to reverse engineer our
bitstreams there may be trouble" answer from the major vendors.
It would be nice to see someone make more open silicon, but without literally billions of
dollars and thousands of employees, you couldn't hope to compete with the major
players on performance (or even performance per watt), or in the marketplace. It's a
sad aspect of the Free Market(tm), I guess. There is as much money and R&D poured
into developing FPGA silicon as there is in memory and CPUs; those three are basically the
main areas TSMC (and a few other foundries) focus their efforts on.
I'd love to get into FPGA hacking. But not nearly
enough so to
tolerate something as abusive towards their users as "you have to run
our closed-source code". :-?
There's always simulation. You can go a long way in simulation (in fact, you should)
and have someone else implement it in an FPGA (if you've done your job right and read
the synthesis manual, they shouldn't even need to tweak your code), and there are
definitely open-source ASIC design tools. Icarus Verilog will even synthesize to a
netlist intermediate, but that still requires closed vendor tools to turn it into a
hardware implementation.
I would also say that closed-source design implementation tools aren't as abusive
towards the users as you might think; it's really just a proprietary translation using
optimization algorithms they've spent millions of dollars on. While I think
there's a case to be made that they could offer the source for money (like DEC did for
most of their OSes), it would be a hard sell.
You're welcome to lobby them; I'd support that effort. I think it could improve
the ecosystem; I think the existence of cheap, GCC-based developer tools has bolstered the
sales of ARM chips, for example, much more than Keil or IAR would like to admit.
It'll be an uphill battle, though, because you have to convince the people who just
want to make money that it will make them more money (I can tell you categorically that
they are not interested in goodwill from the community, nor are they interested in
hobbyists; they are interested in military and telecom sockets, because that's where
their money comes from).
- Dave