On 2021, Dec 1, at 9:55 AM, Douglas McIlroy
<douglas.mcilroy(a)dartmouth.edu> wrote:
My take on defining random logic
random logic : hardware :: spaghetti code : software
Doug
I don’t think this is right. The irregular parts of die photographs didn’t get that way
because the hardware engineers were writing bad (spaghetti) code. They got that way due
to several levels of optimizing tools working over quite sensible RTL or System C code or
whatever. You might as well ding the output of -O3 for being incomprehensible.
You might get the same logic by writing a clean state machine and letting the tools
minimize the control rom into gates (good) or by writing the gates yourself (bad). You
can’t tell without looking at the sources.
Software coding: You write the conrol flow and the compiler generates the datapath
Hardware coding: You write the datapath and the compiler does the control logic.