Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Most software products exibit all kinds of similar behaviors to his "A-G" list. The "pure coincidence" thing is how most libraries work in your code.

However, software is usually evolved rapidly to avoid triggering design problems.

The solution should perhaps be moving more things off hardware and into software.



This is actually one of the things we're looking at with the open-source lowRISC project. Moving aspects of the I/O system to RISC-V cores to enable you to implement SPI, I2C, I2S etc and other custom protocols in software. http://www.lowrisc.org/docs/memo-2014-001-tagged-memory-and-...

For integration of more analog components, I think the Silego GreenPak is a very interesting product http://www.silego.com/products/greenpak3.html.


In my view, this is being done continuously. Hardware designers are always conscious of what work can be moved to software. Thus the state of the art in hardware, at any given moment, will be exactly to do the stuff that isn't done well in software, or that is limiting the performance of software.

For this reason I think hardware will always be hard, because we will keep moving the goalposts as technology advances.

Interestingly, outside of the electronics realm, 3-d printing has begun to spur collaborative hardware design. So we should "never say never" about electronic hardware.


What things would you move off hardware and into software?

Typically the reason why we produce something in hardware is because it's infeasible to do in software. This is because of the costs mentioned.


I imagine we can have SOC of CPU+RAM in one package and save on their wiring, for example.


Typically you'll use PoP with modern SoCs, where you put the memory on top of the CPU so connections don't go through the PCB


Place FPGA blobs down, now you have hardware like software components. But not an option for battery powered products, because of the high power requirements of FPGA's.


Not only that, FPGAs can't do sensing, can't condition analog signals, can't drive large currents. The power consumption is just one of many limitations.


FPGAs could be one way of moving things into "software". IMO we need a revolution in "programmable" hardware before open hardware can really take off.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: