You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm currently reverse-engineering some NCR-made standard-cell arrays, which have a slightly unusual (to me) interleaved mask-ROM layout:
To me this looks like there are eight data bits exiting from the top, forming eight banks.
Each bank contains sixteen bit lines going across as columns (this suggests to me that these are the decoded form of the four lowest-order address lines). The remaining decoded bits form rows from top to bottom.
I also have this larger version which contains about 5K of data (of all things, 65C02 code!)
This once again has 8 bits per bank, but each bank (output bit) has 32 lanes instead of 16.
I haven't been able to find much information on how the decoders work - is it possible to describe to Maskromtool/Gatorom how to decode these into bytes?
I'm not sure about the bit ordering (MSB-LSB or LSB-MSB) but I expect that's something which could be figured out later.
The text was updated successfully, but these errors were encountered:
The solver should have no trouble figuring out the MSB/LSB ordering, but it is confused by many forms of interleaving. I'd suggest figuring out as much as possible from the address decoder, then forking GatoDecoderColsLeft into a new class for it and writing a Yara rule for some common sequence of 6502 code.
Another way to think of interleaving is that two different rules are used for alternating bits of each word. GatoDecoderSqueezeLR implements one of those, and perhaps if we had enough of the others, the solver would be complete for generic interleaving?
I'm currently reverse-engineering some NCR-made standard-cell arrays, which have a slightly unusual (to me) interleaved mask-ROM layout:
To me this looks like there are eight data bits exiting from the top, forming eight banks.
Each bank contains sixteen bit lines going across as columns (this suggests to me that these are the decoded form of the four lowest-order address lines). The remaining decoded bits form rows from top to bottom.
I also have this larger version which contains about 5K of data (of all things, 65C02 code!)
This once again has 8 bits per bank, but each bank (output bit) has 32 lanes instead of 16.
I haven't been able to find much information on how the decoders work - is it possible to describe to Maskromtool/Gatorom how to decode these into bytes?
I'm not sure about the bit ordering (MSB-LSB or LSB-MSB) but I expect that's something which could be figured out later.
The text was updated successfully, but these errors were encountered: