7 ms·
They have. The problem is that efficient silicon layout is NP-complete and automated tools can't do better than humans today. At best they can assist and detect
by darzu 8y ago
They have. The problem is that efficient silicon layout is NP-complete and automated tools can't do better than humans today. At best they can assist and detect certain classes of errors. I'm sure Intel has invested more than $100 million on tooling by now.
- ur-whale 8y agoThere are many NP complete problems where computer do vastly better than humans. But when it comes to EDA, the utterly closed-source culture of the industry has completely prevented what essentially amounts to a horde of smart people to work on the problem: no one - except a very small number insiders - even know what the problems are.
- detuur 8y agoYou couldn't be any more dead-on. EDA feels like Scientology, where with every level closer to the core you first need to invest half your life savings + a firstborn. I have an FPGA lying on my desk I can do barely anything interesting with because there are no open-source cores for even simple things like USB3.1 controllers or Thunderbolt or pretty much any interesting bus. Protocols are strongly guarded open secrets where everyone in the industry knows how they work (like MIPI for example) but God Forbid anyone outside the industry might show interest in them. Then you first need a $100k annual membership to the foundation and need to sign and NDA with your blood and that of the next three kin in line. There's a cargo cult confidentiality that achieves absolutely nothing if not completely frustrating out anyone who tries their best to keep their interest in it alive.
- gascan 8y agobecause there are no open-source cores for even simple things like USB3.1 controllers or Thunderbolt Those are hardly that simple. There exist entire companies whose function is designing such cores (and licensing them).
- detuur 8y agoRed Hat entirely operates on a business-licensed version of a fundamentally free product. Oracle does pretty much the same. Many large, widely deployed and lucrative software packages are completely open-source. Because there's very few businesses who think that grabbing those packages without vendor support is a good idea. Especially in the EDA industry, with its very sensitive and particular cores, having the source does not guarantee it working, let alone working well. Buying vendor support is cheaper than winging it yourself. I guarantee you, every single Chinese manufacturer who wants to dodge licensing fees has already done so with stolen IP cores. After all, EDA companies are hopelessly stuck in the past and woefully unaware of proper security practices.
- analognoise 8y agoYeah I'm reading these comments and getting a good laugh.
- ur-whale 8y agoYup. Thanks for proving my point. This comment of yours is precisely the culture I've experienced when talking / trying to work with EDA folks. Snide comments, mockery, "you sw guys just don't get it", and a general ivory-tower attitude towards everyone who's not in the inner circle.
- gascan 8y agoI'm a hw guy, FWIW that reaction you see might owe a lot to the periodic castigation directed our way over things like, (paraphrasing) There's a clear need for a Ruby-to-gates compiler, the only possible explanation for why there isn't one is because hw guys just don't get it Hard not to just throw up your hands. The sad irony is a lot of the tools, languages, & culture of today's software could really be valuable- for formal verification. But that doesn't get much attention.
- tasty_freeze 8y agoUSB 3.1 pushes data at 10Gbps. Do you have any idea how much black magic it takes to do that? Try writing an FPGA SDRAM controller that reliably operates across frequency, voltage, and temperature at 150 MHz. It is doable but a challenge with the common xilinx boards that are sold to hobbyists for $80. If you can do that, then think about designing a circuit which operates 20 times faster, and negotiates a protocol which is 100 times more complex than what an SDRAM controller has to do.
- adrianN 8y agoBut in contrast there are boatloads of free open source software that does highly nontrivial things and has thousands and thousands of PhD-man-hours poured into it.
- st26 8y agoIndeed. But what if every statement in those boatloads of open source software were race conditions, and varied with each machine, frequency, temperature, voltage, workload, etc?
- ur-whale 8y agoYou're saying the problem is harder. I'm more than willing to believe that. Wouldn't you then want ten times the number of people eyeballing the code? And boatloads of free contributers submitting change requests to fix potential problems? And a marketplace of users that can freely choose deciciding which "IP (I still find the term so deeply offensive, I can't help but it I have to put it in quote)?
- st26 8y agoThe key is the solution is so application specific. Write code once, it runs anywhere forever more. But IP blocks are not really like that. Especially advanced IP (USB1.1 vs USB3.1) need to be heavily customized for each application. So John user can't just download a block from Sourceforge and use it.
- ghettoimp 8y agoIt's really godawful. Software guys have no idea how good they have it. You have layers upon layers of closed source EDA tools and home-brew scripts, all built around horribly abysmal "standards" like SystemVerilog, mostly cobbled together in TCL and Perl. For instance, the following sounds like a horrible joke, but it is real. In a real life, world-class company, port connections between modules are handled using a Perl script. This perl script invokes, I shit you not, an Emacs-Lisp Verilog parser, that scans your files to figure out what submodules you are instantiating, infers the ports that you want to connect, then injects a blob of connections directly into the source code file you were editing. The engineers at this company then commit the output of this Perl script into their source code repository. Predictably the diffs are full of line noise. And you can't escape from this, any of it, because there are so many tools involved, and they all do such useful things, that you end up truly stuck using whatever features all of the tools support. And `ifdefs. Sigh...
- kazinator 8y agoSoftware guys have it good thanks to software guys; especially the code-sharing, open-sourcing software guys. And mostly just in the last quarter century or so.
- amelius 8y ago> It's really godawful. Software guys have no idea how good they have it. You can also look at it from the other perspective: at least you can still make money making hardware tooling. That is not possible for software tooling, as everything is open-source already.
- ur-whale 8y ago>That is not possible for software tooling, as everything is open-source already You have a very distorted view of OpenSource. People working on OpenSource related project do make money. And lots of it. They're just not selling what essentially amounts to obfuscated source code, a way of doing business that is apparently a great source of astonishment for HW folks. The other point is the state of hardware tooling. Tool vendors may be making money, but their customers are getting shafted something fierce. Every single EDA tool I've used feels like it was written in the 80's: slow, bulky, bloated, opaque, complicated, unpredictable behavior, need band-aids all over the place to get it to do what you actually need (Tcl anyone?) The typical byproduct of an industry focused on secrets instead of innovation.