Hacker News new | ask | show | jobs
by gravypod 2406 days ago
Is there a high level overview, for programmers, of how chip design software works? Something I eventually want to investigate is building some of those pieces of software but I have no idea where to get started learning about that ecosystem. From a software perspective I have a good understanding of how source gets turned into machine code, which gets packaged into shared object code, which then gets linked into a binary. How do those steps work for HDLs? What standards are involved? How do you test that each of those steps works?
4 comments

The GP mixed up hardware compiler and board layout tools.

KiCad (funded by CERN) and LibreCAD are pretty good PCB layout and routing tools. Since Autodesk bought Eagle, they're the Open Source "great hopes."

For PCB tools, you should just join an existing project since there's several Open Source ones and we need better ones, not more. This is a suitable long-term hobby if you occasionally make boards yourself. Especially welcome if you work on the parts library UI and items.

Chisel, etc. are hardware compiler tools, not board layout tools.

You should get a job at a chip or HFT company and have them pay you to learn and apply this stuff.

The commercial software is shitty since the vendors spend more on keeping their license dongles up-to-date than adding features.

Source: worked at a company that designed a 400 million transistor chip. Most of my X-co-workers worked on the A11 and A12.

Take a look at Verilog-to-Routing - an educational/research tool that is open-source.

https://github.com/verilog-to-routing/vtr-verilog-to-routing

That looks like a great resource! Thank you!
Start with an electrical and computer engineering course. Some eda tools are literally fancy vector graphics engines. Some are em simulators wrapped up. Others are circuit modeing tools.

It's not really like programming. The tools are deeply integrated into the physics of the system.

> It's not really like programming. The tools are deeply integrated into the physics of the system.

What specifically makes electronics different from modeling other systems with software? DSP immediately comes to mind as something that is explicitly tied to Maxwell but there is really good software out there for describing, modeling, and creating signal processing components similar to how you'd write software. An example of this could be GNU Radio.

Is there something that prevents the creation of workflow automation tools, abstractions, and "compilers"/DSLs?

Do engineers at Intel, AMD, and Nvidia manually lay out each feature in their chip designs? If not, what workflow tools have they developed internally? Could those tools, or similar, be used for smaller scale circuit design?

There’s nothing fundamentally different about modeling electronics. It’s just that modeling nonlinear dynamical systems is a tough nut to crack, be it electronics, weather, heat transfer, whatever. SPICE is pretty good at it, but the newer modeling tools (that dates to the 1970s) are proprietary.

As for the DSLs/workflow/etc there are companies in this space.

> Do engineers at Intel, AMD, and Nvidia manually lay out each feature in their chip designs? If not, what workflow tools have they developed internally? Could those tools, or similar, be used for smaller scale circuit design?

The answer is yes, but of course not exclusively. There was an English talk at ccc a while ago by an AMD engineer with lots of details on the whole process.

Not every feature, typically there will be a physical team that will lay out a gate library, data paths and srams for any particular process - but the bulk of the gates are laid out by CAD tools from high level languages using gates from the gate library
I haven't personally taken these so can't comment on quality but there is:

1. https://www.coursera.org/learn/vlsi-cad-logic

2. https://www.coursera.org/learn/vlsi-cad-layout