I finally got round to trying some initial checks.
So far I've just done this, on two boards:
i) 0.1uF on the bottom of the FPU (as per previous BW post)
ii) Removed R18. Connected X2 to pin 23 of the expansion connector (CPU clock).
iii) Verified that I'm using release 1.0 of the CPLD firmware.
iv) Tried swapping FPUs from 4 tested by exxos
v) Removed the internal FPU from the board, on the off-chance that interferes somehow (unlikely, would be no CS I guess!)
vi) Resoldered all the CPLD pins again, using a little more solder and a lot of tacky flux!
One of the boards (that one that passed ONCE) seems to fail on the 3rd instruction. The other board fails always on the 1st instruction.
Not FPU related: Also soldered on the two 29F800 chips and those are working well.
DFB1 FPU experiment thread
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
You do not have the required permissions to view the files attached to this post.
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
Next I'm going to try two things BW tried before:
i) Using the internal FPU instead with https://github.com/dh219/DFB/blob/v1.0/ ... _hack.jpeg
ii) Capture FPU CS, FPU CLK, CPU CLK and DSACK on the logic analyzer.
I see on the schematic and PCB J8 that you break out unused CPLD pins P50,P61,P106 and P110. I'm going to wire that header up so I can capture a few other choice things by recompiling the firmware.
i) Using the internal FPU instead with https://github.com/dh219/DFB/blob/v1.0/ ... _hack.jpeg
ii) Capture FPU CS, FPU CLK, CPU CLK and DSACK on the logic analyzer.
I see on the schematic and PCB J8 that you break out unused CPLD pins P50,P61,P106 and P110. I'm going to wire that header up so I can capture a few other choice things by recompiling the firmware.
-
Badwolf
- Site sponsor

- Posts: 3043
- Joined: 19 Nov 2019 12:09
Re: DFB1 FPU experiment thread
You're putting extra load on XCPUCLK -- I had meant driving the main oscillator with that pin rather than the FPU, but never mind. You are also driving it through the inline termination resistor there. Quite a few variables to look at.
To simplify things even further I might consider the following:-
* Use OPTION2 to force the CPU clock to 16MHz. jumper the CPU's clock input pin and the FPU's clock input pin directly together.
You're then running both in lockstep and considerably below their ratings. Absolute base conditions to start from.
BW
To simplify things even further I might consider the following:-
* Use OPTION2 to force the CPU clock to 16MHz. jumper the CPU's clock input pin and the FPU's clock input pin directly together.
You're then running both in lockstep and considerably below their ratings. Absolute base conditions to start from.
That's good news at least! :)foft wrote: 30 Dec 2022 11:12 Not FPU related: Also soldered on the two 29F800 chips and those are working well.
BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
-
Badwolf
- Site sponsor

- Posts: 3043
- Joined: 19 Nov 2019 12:09
Re: DFB1 FPU experiment thread
Let me know how that goes -- it worked a treat for me, but I tried to get greedy with a 32 bit 40MHz CPU. ;)foft wrote: 30 Dec 2022 13:09 Next I'm going to try two things BW tried before:
i) Using the internal FPU instead with https://github.com/dh219/DFB/blob/v1.0/ ... _hack.jpeg
It ought to be a tri-state driver really. If you going to program up those J8 pins, perhaps configure one as an open drain DS signal for this purpose?
Something like:
Code: Select all
assign P106 = DS ? 1'bz : 1'b0;
BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
The FPU hack isn't working for me, perhaps I made a mistake.
I connected nDS on the 030 here, then to a 20ohm resistor then to pin 3 of U62. Sysinfo shows no FPU and fputest bombs straight away. I removed the FPU on the DFB1.
I connected nDS on the 030 here, then to a 20ohm resistor then to pin 3 of U62. Sysinfo shows no FPU and fputest bombs straight away. I removed the FPU on the DFB1.
You do not have the required permissions to view the files attached to this post.
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
This one works :DBadwolf wrote: 30 Dec 2022 13:24 To simplify things even further I might consider the following:-
* Use OPTION2 to force the CPU clock to 16MHz. jumper the CPU's clock input pin and the FPU's clock input pin directly together.
You're then running both in lockstep and considerably below their ratings. Absolute base conditions to start from.
Now to get the CPU to also run faster than 16MHz at the same time.
Edit:
BTW I also tried removing R1 from the loop of the direct from pin 23 case - no change in that case.Badwolf wrote: 30 Dec 2022 13:24 You're putting extra load on XCPUCLK -- I had meant driving the main oscillator with that pin rather than the FPU, but never mind. You are also driving it through the inline termination resistor there. Quite a few variables to look at.
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
I just wired up to the logic analyzer:
FPU clock
FPU cs
FPU dsack0
FPU dsack1
CPU dsack0
The first thing I noticed is that I'd make a mistake in locking them both to 16MHz with option2. The CPU was 16MHz but I'd connected the FPU back to 25MHz by mistake!
The second thing is that I see both 16-bit and 32-bit accesses.
The third thing is 6ns latency from fpudsack0 drop-> dsack0 dropped and 8ns latency from fpudsack0 raise -> dsack0 raise.
These captures are with 16MHz CPU and 25MHz FPU (the case that works). I probably should have grabbed AS or DS and CPU dsack1 too in hindsight!
FPU clock
FPU cs
FPU dsack0
FPU dsack1
CPU dsack0
The first thing I noticed is that I'd make a mistake in locking them both to 16MHz with option2. The CPU was 16MHz but I'd connected the FPU back to 25MHz by mistake!
The second thing is that I see both 16-bit and 32-bit accesses.
The third thing is 6ns latency from fpudsack0 drop-> dsack0 dropped and 8ns latency from fpudsack0 raise -> dsack0 raise.
These captures are with 16MHz CPU and 25MHz FPU (the case that works). I probably should have grabbed AS or DS and CPU dsack1 too in hindsight!
You do not have the required permissions to view the files attached to this post.
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
At 50MHz CPU, 25MHz FPU I see it seems to retry 4 times (it fails on the first test).
Each try looks like this...
Each try looks like this...
You do not have the required permissions to view the files attached to this post.
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
One more to contrast with the same first in the working case (16MHz CPU, 25MHz FPU):
You do not have the required permissions to view the files attached to this post.
-
foft
- Posts: 342
- Joined: 28 Mar 2022 12:20
Re: DFB1 FPU experiment thread
Adding on cpu dsack1 and cpu as/ds. So more of the cycle timing can be seen.
Here is the 16MHz cpu, 25MHz fpu case (working):
Here is the 50MHz cpu, 25MHz fpu case (not working):
Here is the 16MHz cpu, 25MHz fpu case (working):
Here is the 50MHz cpu, 25MHz fpu case (not working):
You do not have the required permissions to view the files attached to this post.
Who is online
Users browsing this forum: ClaudeBot and 0 guests