Although the shoot-through problem in the incrementer will be fairly easy to address, I'm concerned that similar situations could exist elsewhere. I consulted with Lagos Kintli, the author of the awesome 4004 simulator, about modifying it to automatically detect these situations. We've concluded that it's not technically feasible, but I might be able to analyze the internal state log the simulator already provides.
This got me thinking about the scope of the problem. For this problem to occur, there must be an active pull-up transistor with the drain connected to Vdd. This can be determined by searching the simulator's netlist; there are 104 of them. Of these:
- 58 are used in push-pull drivers (see below).
- 12 are used in Read Precharge circuits in the Instruction Pointer array.
- 8 are used in Read Precharge circuits in the Scratch Pad array.
- 6 are used in the IP Incrementer; one of these is a problem.
An undetermined number 8 are used in Tri-state push-pull drivers.
All of the above have been analyzed. Although it's possible, perhaps even likely, that there may be brief transients as the push-pull drivers switch state, these will be extremely brief; unlike the problem in the incrementer which persists for as long as CLK1 is high.
That leaves
20 12 potential problems to be reviewed. That's a manageable number for a manual search.
No comments:
Post a Comment