furrtek/DMG-CPU-Inside

The bigger tri-state buffers are all non-inverting

msinger opened this issue · 0 comments

In #11 I reported on the smaller tri-state buffers, but haven't figured out the bigger ones. Turned out that the bigger ones are all non-inverting. They pass the signal through as is. I guess they are bigger because they contain an additional inverter for that. Their enable input is active-low. So the little circle at the output must move to the enable input.

Here's a full list:

  • ANAR, AZUV, AKAN, BYXE, BYNE, BYNA, KEJO, LYNA, LEFY, LOFA, NEFE, LORA, MAPU, RALA, AJOV and (a bit further away to the left) SYZU on page 8. As reported in #55, the input buffers invert A0_C-A15_C. They each get inverted a second time by inverter cells BASE, AFEC, ..., so the tri-state must not invert them again. NET01 is active-low.
  • XACA, XAGU, XEPU, XYGU, XUNA, DEVE, ZEHA and FYRA on page 31. They get the !Q output from those latches, but OAM_A_D[0-7] are actually inverted, so it cancels it out and the tri-states here must not be inverting. You can look on page 28 where they use the smaller tri-states (the inverting ones) to route D0-D7 and MD0-MD7 onto the OAM data lines. Also OAM_A_CPU_RD is active-low (should be marked as that with a line above it), so the enable inputs are active-low. You can also check this on page 28 where CPU_RD2 (which is active-high) is basically inverted three times (by MYNU, LEKO and WEWU) to generate OAM_A_CPU_RD (and OAM_B_CPU_RD).
  • XELE, YPON, XUVO, ZYSA, YWEG, XABU, YTUX and YFAB on page 29. The same thing for OAM B.
  • ROPA, SYWA, SUGU, TUTE, TEMY, SAJO, TUTY and TAWO on page 25. Data inputs are inverted at I/O pad, then inverted by an inverter each. So they mustn't be inverted a third time by the tri-states. Enable input is active-low. They are only enabled when T1 is active.
  • TEME, TEWU, TYGO, SOTE, SEKE, RUJO, TOFA and SUZA on page 25. They route D0-D7 to MD0-MD7. This shouldn't be inverting. Their enable inputs are too complicated for me right now though. Not 100% sure that they are active-low in this case.
  • TAHY, TESU, TAXO, TOVU, TAZU, TEWA, SOSA and SEDU on page 25. As already pointed out in #24, RUNY provides a constant 1 (VCC) to the active-low enable inputs of those tri-states. This disables them permanently.