In principle he thinks that it should be possible to compile such a language down to an ASIC representation, but that would only make sense for very high volume runs. (He's specifically interested in software to run financial models, so those would not be high volume runs.)
He makes sense to me, but I have no idea what practical difficulties there would be. But does something like this sound doable in principle from your point of view?
I think you need some specialized knowledge to use this existing generation of tools, but having never used such tools, I couldn't quantify that.
I'm also not sure how well these tools perform on arbitrary hardware designs.
But no - I certainly don't think he's out to lunch.
The interesting flip side is that if you design for easy parallelism, you are better able to take advantage of multiple cores in standard CPUs. Also you can then turn it around and also distribute the same program across a cluster of commodity hardware on the cloud.
But yes, the toolchain matters. A lot.
That ranks up with "rear-window defrogger" and "string-loaded door" in my collection of amusing typos ...
I will have to look for an opportunity to use it on purpose.
Originally implemented by one of the major Haskell gurus, Augustusson.
One FPGA module costs around 3000 $ and a Labview licence costs around 10000 $, at least in Denmark. It is probably cheaper in the US.
http://www.synopsys.com/Systems/BlockDesign/Pages/default.as...
I have somewhat recently transitioned from embedded software to verification, and you have hit the nail right on the head. We should talk.
I've been in the industry for about 15 years. I agree the languages are horrible. The tools can be buggy, but I don't feel they are all horrible.
There are open source verilog and vhdl simulators out there, although I haven't used them yet [1]. They could be a good starting point for tool improvement. It mentions synthesis as well, but anything practical for hacking would have to target FPGAs and that means vendor tools have to be involved.
While the hardware implementation languages could stand improvement, verification is the largest consumer of resources right now. Being able to work in something like python or clojure for testbenches would be really interesting.
[1] http://iverilog.icarus.comA matter of degrees, I guess. They're certainly improving, but we run into bugs and missing core language features in all three major vendors. I work for a consulting company, and we switch simulators and coding styles from one gig to another, so that may amplify my perception of bugginess. But just as examples, in the last couple of years, my coworkers and I have discovered:
- a case where one simulator gets the xor of a two-state and a four-state logic vector wrong.
- a case where another simulator converts from 4-state to 2-state value with the wrong result.
- one of the simulators doesn't implement a single-precision floating point type
Those are pretty fundamental bugs - not the class of bug I expect to find in a tool that has been in the wild for 5 or 6 years and costs more than my car for a single one-year license. And we've found many, many more less-blatant ones.
I wish the vendors would stop adding new features and just fix what they've already got.
http://pyhvl.sourceforge.net/ http://www.myhdl.org/doku.php/start
I couldn't get pyhvl to work, reported a bug, and got no response.
For verification there should have been effort expended on creating libraries for existing high-level software languages and on interop between those languages and simulators, not on creating our own iffy language (SystemVerilog), and then a huge library to work around all the deficiencies and impedance mismatches between the language and the problems we are trying to solve (UVM).
Real board-level skills are difficult to acquire on your own. I've only done a little - and that was last millenium - but a lot of it is a black art: rules of thumb here and there about what works, what doesn't - and they're best learned as an apprentice to someone who's been doing it a while.
VHDL is probably a cleaner language than Verilog/SystemVerilog, but it's used less in industry - at least in ASIC designs. There are free Verilog compilers/simulators (Icarus Verilog being a common one); there are probably no free SV implementations. Not sure what the status of free VHDL is. There are probably decent cheap options for development boards from Altera, Xilinx and co.
Feel free to drop me a line if you want to discuss further - email in profile.
I've used them in digital design courses, they are pretty awesome. Xilinx, however, is eldritch.
I do think the status quo will be radically reshaped by an external force one day, but thinking one is going to mount an assault without knowing who the three main EDA vendors are - let alone without real-world ASIC experience - is quixotic.
It is also not obvious to me how the economics of a viable competitor would actually work.
[EDIT: I hope this didn't come across as excessively abrasive. You are quite right - it's an industry that needs shaking up, but its not obvious how to do it. Fresh faces and new ideas would help us at least realize that there is a problem]
- It has been developed without public discussion, now that the IEEE has shut down their mailing lists to non-paying entities and persons
- The steering committee are bright, well-meaning individuals... who don't appear to have any language design experience between them, and whose knowledge of programming languages appear to be limited to Verilog, Java and a daring dash of Tcl. They have never seen a feature they didn't think was worth adding as new syntax.
- It retains backward compatibility with Verilog, which was a cool hack in 1983.
- It basically looks like Java with a whole bunch of additional (inconsistent) syntax for stuff that should probably be in a standard library, but...
- It doesn't have a standard library
- Oh, and by Java, I mean Java as it was in 1995. Or at least, it will have sort of the same feature set, once they add interface inheritance - later this year. Yup, 2012.
- Its metaprogramming facilities are weaker than ANSI C, which is why most large ASIC shops end up brewing their own metalanguage syntax, usually by having embedded snippets of Perl or Tcl.
- And this inexpressive, crippled language somehow has a spawling mess of a spec that runs a whopping 1200+ pages.
The entire thing is a train-wreck.
It sounds like Verilog fell prey to the C++ philosophy of language design-- just keep adding anything that sounds remotely like a good idea to the core language. If it interacts poorly with what's already there, that's just too bad.
Unfortunately, new programming languages are NOT a good startup idea, in any field. Also, if people are paying 5 and 6 figures for tools in SystemVerilog, change is going to be slow.
HDL Designer was cool but it was pretty outdated looking even 5 years ago when I was at school. It was all motif running on Sparc Solaris boxes.
When I was in Computer Engineering at Waterloo (class of '98), many of my classmates were vying for coop jobs in FPGA, ASIC or board-level design. I happened to be one of the lucky ones and it set me on a path to a career in ASIC verification.
Today when I look around at my industry, it's downright shocking how little young blood there is around. The youngest ASIC guy I've met in the last 6 or 7 years had a Master's and three years experience - and we all regarded him as the newbie.
Only in the last few months have we seen the occasional new-grad's resume cross our threshold. I'd not yet call it a trend, but I hope it becomes one. We have horrible languages, horrible libraries, horrible tools - a huge, shaky mess of infrastructure built on technologies stretched far beyond what they were originally built for - and it's so deeply entrenched that few of my colleagues seem to recognize it. We really need a new generation of fresh perspectives to shake us all up.
Let's hope it is indeed a new renaissance that Mr. Graham heralds.