The NEC V20 is an Intel 8088-compatible processor that features the same use of microcode, though with its own characteristics. This makes it important to use this same microcode if your goal is to create a cycle-accurate emulator of this processor, as [GloriousCow]’s goal is. Cue decoding the microcode ROM in a die shot of this CPU, in order to create a usable ROM image.
As with any fabricated ROM you can technically do it by hand, the ROM section in the die shot contained 29,928 bits which even at a pretty zippy pace would take up a considerable amount of time to parse. Here you can divide-and-conquer by handing parts of the ROM off to good friends, or you can use automation and some machine vision and theoretically get an answer as soon as you have finished writing and testing the tool.
Although [Travis Goodspeed]’s MaskRomTool exists exactly to automate bit detection, it was found that there wasn’t enough contrast in the die shot for it to work reliably. What it did provide were the locations of the bits and from it 42×42 pixel PNG files of each bit.
Next a convolutional neural network (CNN) was trained to determine the difference between a 0 and 1 bit. This still took the manual classifying of 1,000 images, but seemed to work fairly well. Although some bits were marked as ambiguous, it was easy enough to use Mark 1 eyeballs to run a classification on these handful of images than to tweak the CNN model.
With this microcode in hand it was then possible to match it against the V20’s internal architecture to fully determine what each part does. Although not quite finished yet, there’s a GitHub repository containing the progress so far.
The V20’s microcode has been the focal point of much legal fighting back when NEC and Intel were still duking it out in how far one could make a CPU compatible with that of a competitor.
Isn’t Ken Shiriff doing the same thing with the original 8086 microcode ROM? I think Intel’s patents and the court documents from their lawsuits with NEC guide his efforts.
Maybe they will also figure out the 8080 timings, which AFAIK were never published (8088 timings were ~15% faster on average). Yes, in case you didn’t know, this processor had an 8080 mode!
Facts Only
* The NEC V20 is an Intel 8088-compatible processor.
* The processor uses microcode with its own characteristics.
* Cue decoding the microcode ROM in a die shot involves parsing 29,928 bits.
* A convolutional neural network (CNN) was trained to determine the difference between 0 and 1 bits.
* Training the CNN required manually classifying 1,000 images.
* MaskRomTool provided bit locations and 42x42 pixel PNG files from die shots.
* The MaskRomTool lacked sufficient contrast for reliable operation.
* The V20's microcode was matched against its internal architecture.
* Legal fighting between NEC and Intel focused on CPU compatibility.
* The 8088 processor had an 8080 mode.
Executive Summary
Full Take
Sentinel — Human
The text reads like an engaged expert synthesizing niche technical developments and historical patent disputes, characterized by specific internal references rather than generic LLM synthesis.
