Boosting STFM: 16MHz bus, 64MHz Shifter

Blogs & guides and tales of woo by forum members.
troed
Posts: 333
Joined: Mon Aug 21, 2017 10:27 pm

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by troed » Wed Mar 07, 2018 10:07 pm

Alright, clocks synced on the falling edge. Current status is that it works pretty well - I have the Unicorn working in all three modes. There's something strange about why it doesn't boot sometimes, and even what looks like a wakeup mode in the "Stefan"-mode, I'm assuming the 2MHz is out of sync with the MMU/Shifter sometimes and sometimes not. I'm pondering whether to add RESET as an input to the GAL and try to get it into a known state (even though it always should be, considering the GAL has known input/output states .. but .. )

Curiously, with the clocks synced on the falling edge it now works well with the LA _not_ attached, but it only boots in "stock" mode with it attached :D In both the boosted modes it doesn't.

Since I'm confident this is close to the "final" GAL code for this (I might still add hardware overscan, it's simple) - I'm also attaching the CUPL code for those interested.

(If you look closely, you can see that all derived clocks sync their falling edge to the rising edge of the Shifter clock in doubleST and stock modes, but all - including the Shifter - sync to the falling edge in the "Stefan" mode. This is probably due to the use of MMUCLK in the combinatorial Shifter clock output in that mode.)

"doubleST"
64MHz Shifter, 32MHz MMU, 16MHz CPU. I have a modified Overscan-program that fixes the display and gives me 640*200*16, 1280*200*4 and 1280*400*2 resolutions:
doublest_clocks_synced.png
doublest_clocks_synced.png (131.98 KiB) Viewed 810 times
(even at 400MHz the LA cannot accurately capture the 64MHz Shifter clock)

"Stefan 16MHz mod"
32MHz Shifter, 32MHz MMU, 16MHz CPU. Regular ST video modes.
stefan_clocks_synced.png
stefan_clocks_synced.png (141.35 KiB) Viewed 810 times

"stock"
using the regular ST system clock and not the 64MHz. I've verified that my demo code shell which can detect between 8.01, 8.02 and 8.05MHz CPUs gets exactly what it expects so it really is stock ;)
stock_clocks_synced.png
stock_clocks_synced.png (134.29 KiB) Viewed 810 times
... and the point of this exercise compared to the old mod I made was that I wanted to be able to switch easily between these modes, of course. Additionally, the CUPL code might be of some use if there's ever a proper booster made from this by someone else ;)

/Troed

caveat: In the doubleST mode I had several spontaneous machine resets with this mod that I can't remember I had with the previous. I think it's related to accessing the ACSI device, but I'm not sure. Might still need some work on the DMA timing then ..
Attachments
doublest.pld.zip
(1.7 KiB) Downloaded 29 times

User avatar
exxos
Site Admin
Posts: 3461
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by exxos » Wed Mar 07, 2018 10:22 pm

:bravo:
Great work there, and thanks for posting the LA traces! I'm sure they will be useful in the future, and of course all your work doing this! :cheers:

I hope to add this mod into the next gen booster as you know, so you doing this work gives me a huge head start there! As you know I'm distracted with moving to the SEC CPU currently, but once that is working and I get 32MHz stable on the STFM, then I can look into adding this mod...

Not trying to hijack your thread here ;) I'm half thinking of a board which will "replace" the MMU (PLCC) with a PCB with the SMT MMU & 4MB DRAM built on. Then the next gen booster will have a few jumper wires between boards to replace the clocks.
4MB STFM 1.44 FD- VELOCE+ 020 STE - 4MB STE 32MHz - STFM 16MHz - STM - MEGA ST - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - HxC - CosmosEx - Ultrasatan - various clutter

https://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.

User avatar
rpineau
Posts: 308
Joined: Thu Aug 17, 2017 6:08 pm
Location: USA
Contact:

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by rpineau » Wed Mar 07, 2018 10:47 pm

I believe the 10ns time is given as worst case when doing some operation. If you are just copying input to output it's way less than that.. it might even just be a plain wire as this is probably done as a fuse in the GAL and doesn't pass through any of the logical block.
To get "delays" you would probably need to do :
Signal -> input -> invert -> output -> input->invert-> output .. or some combination of this.
and even then you probably won't actually get 10ns but more like 3ns
I agree that trying to use a gal to get exact delay is hard unless you need to delay by 1 clock cycle in with case you use a MLC and the GAL clock.

troed
Posts: 333
Joined: Mon Aug 21, 2017 10:27 pm

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by troed » Thu Mar 08, 2018 8:16 am

exxos wrote:
Wed Mar 07, 2018 10:22 pm
Not trying to hijack your thread here ;) I'm half thinking of a board which will "replace" the MMU (PLCC) with a PCB with the SMT MMU & 4MB DRAM built on. Then the next gen booster will have a few jumper wires between boards to replace the clocks.
I hijacked your old thread on A-F with this so go ahead :D I agree that adding the RAM to the booster will probably be necessary - it's too tedious to replace the existing RAM for it to be in any way a quick install otherwise.

Are there a lot of SMT MMUs available? I haven't looked. Or are you still thinking of reimplementing it?

troed
Posts: 333
Joined: Mon Aug 21, 2017 10:27 pm

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by troed » Thu Mar 08, 2018 9:00 am

Still thinking about why I sometimes need a few power cycles for successful boot, I ran /RESET through an inverter to the /OE of the GAL. But that only caused the machine to stop booting completely, most of the time (and the times where a signal got to the screen it was in the "hung" state I tried to get away from by doing it).

I guess there's something about the ST RESET signal circuitry I don't understand since this was apparently a bad idea? I know I've seen frequency bounces from the GAL when I power on so I really thought this would help.

I can of course add RESET as a term to all the output expressions in the GAL but in theory it would have the same effect I think.

User avatar
exxos
Site Admin
Posts: 3461
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by exxos » Thu Mar 08, 2018 9:24 am

troed wrote:
Thu Mar 08, 2018 8:16 am
Are there a lot of SMT MMUs available? I haven't looked. Or are you still thinking of reimplementing it?
Re-doing the MMU would take a lot of time :( Really the direction would be to re-create the suska chips and validate they all work as expected and go that route. Though I know nothing about VHDL etc.. Really needs someone like Tim who created mist to do the chip.. probably wouldn't take him long, though when I asked about it some years ago, he basically didn't seem interested.
troed wrote:
Thu Mar 08, 2018 9:00 am
I guess there's something about the ST RESET signal circuitry I don't understand since this was apparently a bad idea? I know I've seen frequency bounces from the GAL when I power on so I really thought this would help.

ST reset circuit is a bit rubbish. Add more uF to the reset cap and add 1K pull up on reset line.. see if that helps... I had to bypass reset to gal in some of my V1.5 booster tests as it was screwing up the GAL :roll:
4MB STFM 1.44 FD- VELOCE+ 020 STE - 4MB STE 32MHz - STFM 16MHz - STM - MEGA ST - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - HxC - CosmosEx - Ultrasatan - various clutter

https://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.

User avatar
exxos
Site Admin
Posts: 3461
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by exxos » Thu Mar 08, 2018 11:50 am

A thought... could you try a slightly faster osc ? Maybe not much use in the real world.. but always interesting to see at what point things max out.. :twisted:

I've branched off here to discuss the MMU adapter boards...

viewtopic.php?f=29&t=677#p4603
4MB STFM 1.44 FD- VELOCE+ 020 STE - 4MB STE 32MHz - STFM 16MHz - STM - MEGA ST - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - HxC - CosmosEx - Ultrasatan - various clutter

https://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.

User avatar
exxos
Site Admin
Posts: 3461
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by exxos » Thu Mar 08, 2018 3:24 pm

I wonder if the original 32mhz clock (32.08?) could be done away with if a 64.16mhz osc was used ?

I'm not sure how the exact frequency effects the full screen stuff either.. I think we have 8.02mhz on the CPU normally ? though what is the min and max values of the clock which would still work ok code wise ?
4MB STFM 1.44 FD- VELOCE+ 020 STE - 4MB STE 32MHz - STFM 16MHz - STM - MEGA ST - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - HxC - CosmosEx - Ultrasatan - various clutter

https://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.

troed
Posts: 333
Joined: Mon Aug 21, 2017 10:27 pm

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by troed » Thu Mar 08, 2018 3:44 pm

exxos wrote:
Thu Mar 08, 2018 3:24 pm
I wonder if the original 32mhz clock (32.08?) could be done away with if a 64.16mhz osc was used ?

I'm not sure how the exact frequency effects the full screen stuff either.. I think we have 8.02mhz on the CPU normally ? though what is the min and max values of the clock which would still work ok code wise ?
Yeah we need the exact same crystal for demos to work like stock. The ST line has 8.01, 8.02 and 8.05 (and apparently some very few 8.007) CPU clocks, and for the latest & greatest tricks I do my demo shell measures which speed the machine has and modifies the code accordingly. It's cycle exact so even the slightest difference would break the code.

It was slightly difficult finding 5V 64.000MHz oscillators at all, never mind trying to find an exact multiple of the Atari's :) Don't know if it would work to go with a programmatic clock generator. (And so I don't have any faster either)

But it's no problem using the original clock from the ST board for the stock mode I think?

User avatar
exxos
Site Admin
Posts: 3461
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
Contact:

Re: Boosting STFM: 16MHz bus, 64MHz Shifter

Post by exxos » Thu Mar 08, 2018 5:01 pm

troed wrote:
Thu Mar 08, 2018 3:44 pm
But it's no problem using the original clock from the ST board for the stock mode I think?
Of course not :)

I am thinking ahead a little bit though as well with my future booster designs.. I will have another clock in the mix as the CPU will be running on its own clock.. So at first glance this could get little bit complicated with all the clock switching..

I was just trying to see if a 64.16mhz oscillator would work fine as I could be actually using that as a master clock the CPU rather than having another oscillator in the mix.

There is things like this http://www.exxoshost.co.uk/atari/last/FALCOSC/index.htm where the frequency can be set simple resistor.. The actual clock frequency wouldn't be a problem to generate. It's just if it becomes a odd multiple like 8.025MHz is that likely going to break stuff ?

Really just trying to see what the options are with it all :)

EDIT:

Seems 64MHz,65MHz,66.66Mhz are available..
https://www.mouser.co.uk/Passive-Compon ... twZ1z0wdsf

65 / 8 = 8.125MHz.
4MB STFM 1.44 FD- VELOCE+ 020 STE - 4MB STE 32MHz - STFM 16MHz - STM - MEGA ST - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - HxC - CosmosEx - Ultrasatan - various clutter

https://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.

Post Reply