I strongly suspect that was NOT a £50 CPLD.
Mostly because there have been hardly any in stock. :)
Oh well, let’s see if we can get board 5 working and give that one time to sit in the corner and think about what it’s done.
BW

I strongly suspect that was NOT a £50 CPLD.

:thumbup:Badwolf wrote: 05 Dec 2022 21:09 Oh well, let’s see if we can get board 5 working and give that one time to sit in the corner and think about what it’s done.

It's been through the mangle, that one. It's got bodge wires and a borkey FPU interface. It's been through the post three times.

Can you post a link to that file as I am struggling to find a reference to the FPU in the 020 datasheet.foft wrote: 06 Dec 2022 22:04 Reading the manual for the 68020 it specifies the circuit for FPU nCS in Figure 9-3. @Badwolf, why don't you use that exact logic in the CPLD? Perhaps worth a try? It has 3 terms using AS, CLK and CLKD, I only see AS in the github.
I think he is planning on removing the PLD out of the loop. It is likely there because the CPU can run a lot faster than the FPU. If the FPU keeps DSACK low for a "long time" the CPU could double read it. Though I haven't looked into the datasheet timings specifically. But it is likely there just as a matter of safety.foft wrote: 06 Dec 2022 22:04 Edit: Also why mask dsack by fpucs? Aren't all DSACKs meant to be on a single bus, so any device can pull it low (active) - and the fpu will already only pull it low when selected. Might be better directly rather than via the CPLD, adding latency.

Not sure on the 030. Never needed to look really. Though DSACK is normally released after it sees /AS go high. So depending on if its pure logic, could be upto 50ns. Or even slower if its based on the CLK input.foft wrote: 06 Dec 2022 22:32 I guess the CPU doesn't start the next cycle while DSACK is held low by the FPU, though I'd have the check the timing details.
I checked the 68020 manual and ...exxos wrote: 06 Dec 2022 22:45Not sure on the 030. Never needed to look really. Though DSACK is normally released after it sees /AS go high. So depending on if its pure logic, could be upto 50ns. Or even slower if its based on the CLK input.foft wrote: 06 Dec 2022 22:32 I guess the CPU doesn't start the next cycle while DSACK is held low by the FPU, though I'd have the check the timing details.

Is that the GAL example equation for 33MHz operation?foft wrote: 06 Dec 2022 22:04 Reading the manual for the 68020 it specifies the circuit for FPU nCS in Figure 9-3. @Badwolf, why don't you use that exact logic in the CPLD? Perhaps worth a try? It has 3 terms using AS, CLK and CLKD, I only see AS in the github.
I've tried both (see previous picture with DSACK bodge wires and tristate DSACK[x] driver from the CPLC), but since I planned to run the FPU more slowly than the CPU I figured this would be a prudent modification to the logic to stop the FPU stomping on any following non-FPU cycle.Edit: Also why mask dsack by fpucs? Aren't all DSACKs meant to be on a single bus, so any device can pull it low (active) - and the fpu will already only pull it low when selected. Might be better directly rather than via the CPLD, adding latency.
Yes that is the one I meant, I thought the CLK referenced was the CPU clock with sequential logic in the GAL. I didn't realize it was because its a clocked GAL.
So with the DSACK bodge wires did it make any difference to how fast you could run the FPU?I've tried both (see previous picture with DSACK bodge wires and tristate DSACK[x] driver from the CPLC), but since I planned to run the FPU more slowly than the CPU I figured this would be a prudent modification to the logic to stop the FPU stomping on any following non-FPU cycle.
Users browsing this forum: ClaudeBot and 8 guests