Over the past 10 days, I've been busy tracing around all of the diffusion, polysilicon, and contacts in the top left quadrant of the die shot. This is where the address computation logic lives. I thought that I'd just keep tracing around everything in this area before attempting to reverse the logic. So over the next few weeks, I intend to add a number of posts that are looking at this part of the die.
Before I do that though, I wanted to take a look at a part of the die shot that I haven't really mentioned that much in the past. I think this is because it is one of the first parts of the die that I took a close look at, so in my mind its trivial. The main reason I wanted to show it now though is because of a part of it that is of relevance to the address computation logic. So let's start with an image from the die shot:
You will certainly have to click on the image to get a closer look. The darker grey bits at the top and bottom, with the vertical metal lines, are mostly some of the control registers. The horizontal metal lines in the centre are the data and address lines that are used to select the various control registers and to store and retrieve data from those control registers. The polysilicon, diffusion and contacts "behind" those horizontal lines in the centre are the register selection logic. The address lines are used to determine what control register is being read from or written to. Perhaps in a future post I'll take a closer look at one of the control registers to see how it is selected. I think I might have done that at some point last year, but it won't hurt to do it again.
The main reason for this post was to draw your attention to a group of vertical lines to the left of centre, or about one third from the left. If you have the full die shot image, you'll be able to zoom in and see that there are eleven lines of diffusion and polysilicon. These lines alternate from polysilicon to diffusion to polysilicon to diffusion, etc. Over the past few months, we've been looking at areas of the die shot that have allowed me to identify all eleven of these lines, and all eleven of these lines are relevant in some way to the address computation logic. All eleven of these signals go from bottom to top, carrying various signals from the bottom half of the die up to the address computation logic.
The following image takes a closer look at the eleven lines I'm referring to:
They are eleven vertical lines crossing over the metal lines and are alternating polysilicon (pink), diffusion (green), polysilicon (pink), diffusion (green), etc, the whole way across.
I have identified these lines, from left to right, as follows:
CDC3 : Cell Depth Counter bit 3 (only relevant for double height characters)
HCC0' : Horizontal Cell Counter bit (inverse)
BV9 : Bit 7 of control register 2, part of the video matrix start address
D : Bit 0 of control register 3, i.e. selection of double height characters (D=1 is 16 line characters, D=0 is 8 line characters)
VSYNC : Vertical Sync signal
START NEW LINE' : Start of new line (inverse), i.e. inverse of horizontal counter reset.
CDC LAST VALUE' : Cell Depth Counter last value signal (inverse)
INCR VIDEO MATRIX CNTR' : Increment the video matrix counter (inverse). Same signal increments Horizontal Cell Counter.
CDC0 : Cell Depth Counter bit 0
CDC1 : Cell Depth Counter bit 1
CDC2 : Cell Depth Counter bit 2