Visual6502wiki/6502 datapath control timing fix

From NESdev Wiki
Revision as of 05:41, 10 February 2022 by Lidnariq (talk | contribs) (copy wikitext from archive.org)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

This odd structure appears several times in the 6502 datapath.

A couple of transistors are connected to one clock (the on-chip phi2), but the shape of the poly shows evidence that they used to be connected to another (an inverted on-chip phi1). See the missing contacts here in the JavaScript simulator. Although contacts are not shown, you can tell that the contacts are missing from the south ends of the highlighted 'tuning fork' shape because the poly is highlighted but the horizontal metal which it crosses is not.

In the picture below, there are yellow rectangles to show the North and South ends of the poly where the shape shows possible contact cut positions. At the North end a contact cut is visible, but not at the South ends.

File:6502 photo wrong-clock-annot.jpg

That is, the gates were originally laid out so they could be clocked by not-phi1 but in fact are clocked by phi2. They control the X and the Y driving onto SB (special bus). There's another pair like them further along, which control the driving of the A onto the SB and the IDB. Seems like a fix for a timing marginality?