FAL6567 back-burner project
Posted: Sun Jul 31, 2016 2:22 am
A back-burner project of mine is implementing a 6567 series compatible replacement. The component would be FPGA based. It would be register set and functionally compatible but not bus cycle accurate. Output would be VGA / HDMI, no composite.
The 6567 works on the basis of sharing the bus during odd and even phases of the 02 clock. Rather than do this I would have the core track writes to external DRAM and mirror the writes to a 64 kB dual port ram in the FPGA. That way it isn’t required to share the bus between clock phases. And the FPGA could access the memory at full speed. It would speed up the system slightly because there would be no “badlines” required for character fetches. It would also allow for a scan-rate conversion.
But the pinout for the 6567 doesn’t include all the signals necessary to do this. In a C64, the *CASRAM signal and the two highest order multiplexed address lines would have to be fed via jumpers to the board. Other signals may need to be jumpered as well such as the *CHARROM signal. The reset signal to the processor would have to be delayed until the FPGA was ready.
It’s not too bad to jumper three or four signals, but I’m wondering what else I missed.
The replacement would also generate 02 at a slightly different rate (33.3333MHz/32 = 1.04MHz) and the dot clock signal (8.33MHz) which would have to be disconnected in the C64. The reason for the slightly different clock is the FPGA would have it’s own 100MHz osc. and the VGA dot clock is 33.3333MHz.
A couple of links:
http://www.syntiac.com/fpga64.html
http://unusedino.de/ec64/technical/misc ... c656x.html
http://github.com/robfinch/Cores/blob/master/FAL6567
The 6567 works on the basis of sharing the bus during odd and even phases of the 02 clock. Rather than do this I would have the core track writes to external DRAM and mirror the writes to a 64 kB dual port ram in the FPGA. That way it isn’t required to share the bus between clock phases. And the FPGA could access the memory at full speed. It would speed up the system slightly because there would be no “badlines” required for character fetches. It would also allow for a scan-rate conversion.
But the pinout for the 6567 doesn’t include all the signals necessary to do this. In a C64, the *CASRAM signal and the two highest order multiplexed address lines would have to be fed via jumpers to the board. Other signals may need to be jumpered as well such as the *CHARROM signal. The reset signal to the processor would have to be delayed until the FPGA was ready.
It’s not too bad to jumper three or four signals, but I’m wondering what else I missed.
The replacement would also generate 02 at a slightly different rate (33.3333MHz/32 = 1.04MHz) and the dot clock signal (8.33MHz) which would have to be disconnected in the C64. The reason for the slightly different clock is the FPGA would have it’s own 100MHz osc. and the VGA dot clock is 33.3333MHz.
A couple of links:
http://www.syntiac.com/fpga64.html
http://unusedino.de/ec64/technical/misc ... c656x.html
http://github.com/robfinch/Cores/blob/master/FAL6567