While designing my MMC3 clone, I have noticed CPLDs have a relatively high configuration time (for a 128 macrocell density one, it's about 400 us). So I was wondering if they will be fast enough to be operative when the console starts requesting data...
So the question is... how much time do I have since power is applied to the cartridge port, to the moment at which the CPU and PPU start reading data from the ROMs?
In my experience, the voltages stabilize close to 0.1 seconds before the CPU is released from reset... but you really should double check. (I've only got my two NES-CPU-07 boards to test with)
What CPLD are you talking about?
I built my flash-cart on XC9572 (which emulates MMC1/UNROM/CNROM/NROM) and I have absolutelly no issues, this CPLD is instantly ready after powerup, because the cell data is stored internally. I have got problems that you describe with FPGA, because the cells information is stored in external flash and after powerup, the ram has to be read and then transferred to FPGA.
Would the CPU come out of reset sooner on a Famicom or NES-101?
Does your CPLD's datasheet state that all pins are high-Z (not connected) until configuration completes? If so, you may be able to work around this by using resistors to create a fixed bank. This way, the CPU can at least spin for a few milliseconds while the CPLD boots.
@krzysiobal I have checked so far 2 CPLDs:
- Xilinx XC2C128: 350 us configuration time (from datasheet).
- Lattice LCMXO256C: I have not found the exact number. Family datasheet states it "boots in microseconds", but I haven't found how many. Wake from sleep timing for this CPLD is 400 us, so I assume configuration time might be similar (maybe a bit bigger).
@tepples Inputs are high impedance. I already thought about that, but I want to avoid it unless really needed.
Doesn't anybody have measurements? How is the NES internal reset circuitry? RC based maybe?
lidnariq wrote:
In my experience, the voltages stabilize close to 0.1 seconds before the CPU is released from reset... but you really should double check. (I've only got my two NES-CPU-07 boards to test with)
Didn't see this post. If the value is correct, 0.1 s should be a lot more than enough, thanks!