beyond a certain point mess is inevitable
How did I come to this? We were working on some messy digital circuitry which handles the output data stream of an image sensor and does some computations on it. Since I am not proficient with Place and Route tools (in fact have never done a PnR myself before) and don't have them available either, I faced the challenge of designing data pipelines and processing the old-fashioned analog-style digital design way. I am setting down a few observations here:
1. The human brain can only track a few variables at a time... Mine in particular seems to start getting confused when dealing with anything beyond 3.
2. Analog-style digital simulations takes longer to complete. By the time they are ready (SPICE), the neural network of an average homo sapiens would have forgotten what the bug was in the first place. Even if it's just 15 minutes - it's enough. Gate replacements with macros and VerilogA helps, and I should definitely write on the topic some other time.
3. RC in the clock/data path and retiming just complicates matter 10x.
4. Polygon pushing digital designs where timing needs to be obeyed can sometimes be a re-iterative process and a pain.
To pass the time while simulating you can contribute to your signal unconcentration by browsing the web. In my case, I found some immaculately organized pages on the history of VLSI design and also came across some old design files uploaded by Lynn Conway on her corner of the web. So let me share a tiny chip bit:
Impressive - an MPW back in 1978! From the history above it is evident that back in the day VLSI design used to be what Python coding is today - astonishingly popular amongst students. It has been so much harder back in the day, but excitement-spurred-motivation seems to have compensated for those difficulties. This document shows the working-out of the physical design rules for VLSI, as well as lists the gigantic list of projects placed on the 1979 MPC: array processors seem to have hyped in 1978, together with DMA controllers and associative memories - but really, what a lovely cocktail of digital circuitry. Oh, one last note there is also a project: an Inifinite precision multiplier - yeah if you had the inifinite memory!
It is heartwarming to see that LiTH has joined the MPC project just two years later, in 1980, to produce their first MPC in 1981. That's so so cool and likely few will understand! Now the graffiti under the tunnels between A and B house start to make sense.