News for hackers. Stuff that matters.
Re:VLSI Physical Design by UncleOxidant on Wednesday September 27, 2023 @02:12PM (#37678761)
This plus the Verilog to Routing that was posted yesterday showcase the algorithms used in chip design (this post being more about the physical side, v2r covering frontend synthesis as well). The field of Electronic Design Automation (EDA) has some of the most interesting, hardest problems in tech, yet the pay in EDA is kind of mediocre. And EDA is essential in developing new chips -> Semiconductors are essential to our economy.

The EDA companies complain about not being able to attract new talent, but maybe if they paid better? The other problem with the EDA companies (as someone who has worked in EDA in the past) is that they're just plain stodgy - they feel like some kind of old boys club. We had C++ code from the early 90s and to a large extent they still coded C++ in a 90s style. C++ Templates? Nope, not allowed in the group I was in.

Re:VLSI Physical Design by mathisfun123 on Wednesday September 27, 2023 @02:52PM (#37679443)
> is that they're just plain stodgy - they feel like some kind of old boys club

I mean just go look at that post from yesterday where I complain that yosys uses C++ to script flows and the response to the complaint - I'm starting to think these people just enjoy being miserable.

Re:VLSI Physical Design by ip26 on Wednesday September 27, 2023 @03:08PM (#37679671)
I think it’s more likely these people mainly enjoy designing hardware, not tools for designing hardware (aka software). Learn to use a tool, and use it. It’s a hammer, start driving nails

Software development is unique in that tools for building software are also software. This hammer is great and all, but I make hammers, and I know this one could be better

Re:VLSI Physical Design by mathisfun123 on Wednesday September 27, 2023 @03:27PM (#37679959)
This is apologetics.

The real reason is the hardware vendors are entrenched and don't make money off the software at all. The situation is exactly the same as it was in the proprietary compiler space before gcc (and then clang) - no incentive to improve or open source the compilers -> no access to good tools -> proprietary tools remain only option.

Yosys though, being an open source attempt, is just making unforced errors, hence my ranting and raving in the other thread.

Re:VLSI Physical Design by spear on Wednesday September 27, 2023 @04:50PM (#37681123)
You're talking about FPGA tools but this thread is about VLSI design where the major EDA vendors (Synopsys, Cadence, and Mentor) don't sell hardware(*) and *do* make a lot of money from software.

(*) Excluding emulators or simulation accelerators.

Re:VLSI Physical Design by mathisfun123 on Wednesday September 27, 2023 @04:55PM (#37681168)
> You're talking about FPGA tools but this thread is about VLSI design

did you miss the part where the comment i'm responding to is about VTR?

Re:VLSI Physical Design by ip26 on Thursday September 28, 2023 @09:56PM (#37698407)
My bad, I thought we were talking about ASIC designers, not VTR developers.
Re:VLSI Physical Design by i_don_t_know on Wednesday September 27, 2023 @03:25PM (#37679936)
Can you recommend books on the algorithms used in frontend synthesis? And/or FPGA-specific algorithms?
Re:VLSI Physical Design by UncleOxidant on Wednesday September 27, 2023 @03:35PM (#37680073)
Logic Synthesis And Verification Algorithms by Hachtel and Somenzi the copy I have is copyright '96, not sure if it's been updated.
Re:VLSI Physical Design by oldgradstudent on Wednesday September 27, 2023 @08:06PM (#37683373)
It hasn't been updated.

The book is considerably out of date, but a lot of the concepts and definitions are still relevant.

Re:VLSI Physical Design by xw3099 on Wednesday September 27, 2023 @09:18PM (#37683957)
This deck has a great introduction to mapping and the references at the end are more up to date

https://www.eng.biu.ac.il/temanad/files/2018/11/Lecture-4-Sy...

Re:VLSI Physical Design by oldgradstudent on Thursday September 28, 2023 @11:10AM (#37690703)
Similarly out of date.

A good starting point for more modern techniques would be something like this:

https://people.eecs.berkeley.edu/~alanmi/publications/2006/t...

Re:VLSI Physical Design by i_don_t_know on Friday September 29, 2023 @09:10AM (#37703643)
I came across this survey paper on Combinatorial Optimization in VLSI Design: https://www.or.uni-bonn.de/research/montreal.pdf

I don't know how up-to-date the information is. Two of the authors (Korte, Vygen) wrote a textbook on combinatorial optimization. I haven't read it and I don't know enough about the subject to be able to say how useful the contents are to VLSI design. I think they focus more on the theory than the application: https://link.springer.com/book/10.1007/978-3-662-56039-6

Re:VLSI Physical Design by stefanpie on Thursday September 28, 2023 @11:07AM (#37690641)
Wow, people seem to like my EDA submissions :)

Another aspect, at least what I have experienced, is that these tools are built on top of themselves and layered over older versions of themselves, making the code base fragile and hard to work on. For example, Xilinx's Vitis HLS is based on AutoESL, an academic work that underwent commercialization and transitioned into a Xilinx product. You can tell in Vitis HLS that there are many layers on top of simple tool actions that go through custom TCL functions and then down to the most likely Java/C++ software, which also calls out to outdated versions of LLVM tools. I would imagine this is not a pleasant code base to work on and add new features to.

Also, making changes to an EDA tool has large implications for downstream customers who depend on your FPGA chips and are maximizing the utilization on the chips, making them super sensitive to any changes in the EDA algorithms used. This also makes the software development process for these commercials a little sticky. This makes it hard to even plug into and build on top of these tools as an academic.

However, this is no excuse for bad software engineering. I agree that a big investment in software engineering for EDA could be a slam dunk. I think Synopsys and Cadence realize this payoff for their use cases (mostly ASIC), while maybe the payoff is not as big for FPGA companies? Who knows what they are thinking.

On the technical side, more open-source EDA tools help even if they are not fully practical in a commercial setting. Even the C++ codebase for VPR is readable and mostly easy to follow. As a thought experiment, a Rust-based port of that would be interesting from an API and program architecture perspective. There are also some DARPA programs that are pushing for better open-source tools for EDA flows as well as better EDA algorithms for large-scale, 3D, and heterogeneous semiconductor design, so I think they see the technical problems we are behind on.