6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Apr 27, 2024 12:26 pm

All times are UTC




Post new topic Reply to topic  [ 61 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
PostPosted: Thu Jul 29, 2021 11:12 pm 
Offline

Joined: Sun Jul 11, 2021 9:12 am
Posts: 137
BigDumbDinosaur wrote:
The 74HC04 is likely not helping you as much as you'd like. Try a 74ACT04 and see if you gain some stability at the high speeds. The HC04's output transition speed isn't up to the WDC specs of ±5ns or less.


Yeah, that was my main suspicion also.

I don't have much at all in the 74ACT range yet. But I do have a couple of 74ACT245's. A quick breadboard test (wiring it up purely as a buffer) last night with the oscilloscope showed they seem to by way faster switching between input and output, so I'll have a bit of a play later on and get back to you.


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 9:37 am 
Offline
User avatar

Joined: Fri Aug 03, 2018 8:52 am
Posts: 745
Location: Germany
damn, running a 65C02 at 5V >25MHz and that reliably. that's a lot further than i expected it to go.
my 65C02 SBC can only reach 16MHz. i have tried it a 20MHz Oscillator and it just won't budge.
i thought that was just the natural limit of the 65C02 but i guess i was wrong and the real limit were just my lacking PCB designing skills.

Testing overclock-ability of these chips at different voltages seems important as well. (specifically 3.3V)

though to be honest i'm mostly just saying that because i recently ordered some PCBs for a Shield that plugs onto an (3.3V) FPGA Breakout board i made.
the shield has some SRAM, some Flash, a 25MHz Oscillator, a VGA Connector, and a 65C816 on it.
i doubt it will reach 25MHz, mostly due to the still lacking PCB Skills and the Pin Header connecting both boards, but i see what i can reach and report back (if i remember to do so)
or did someone already see what can be done at 3.3V without crazy 4 layer PCBs and such?

in the meantime, what about the duty cycle of the clock? could it be adjusted to either side to allow for even faster stable Clock Speeds?


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 9:42 am 
Offline

Joined: Sun Jul 11, 2021 9:12 am
Posts: 137
Proxy wrote:
damn, running a 65C02 at 5V >25MHz and that reliably. that's a lot further than i expected it to go.
my 65C02 SBC can only reach 16MHz. i have tried it a 20MHz Oscillator and it just won't budge.
i thought that was just the natural limit of the 65C02 but i guess i was wrong and the real limit were just my lacking PCB designing skills.


I wouldn't write off your PCB making skills just yet. Just cracked 35 MHz on this hideous setup. :lol

Attachment:
35.jpg
35.jpg [ 208.83 KiB | Viewed 747 times ]


Still 5V and still running stable as I write this post. Clock is still being fed from a Raspberry Pi Pico, but now being passed through a 74ACT245 (instead of the 74HC04 that I was using previously).


[edited typo for the ACT245, I incorrectly had 275 in there]


Last edited by J64C on Fri Jul 30, 2021 11:55 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 9:53 am 
Offline

Joined: Sun Jul 11, 2021 9:12 am
Posts: 137
Just shy of 38 MHz at 5V! Getting unstable though, barely have to move to make it crash.

Attachment:
38.jpg
38.jpg [ 198.42 KiB | Viewed 748 times ]


Will look at moving the clock buffer IC on to a very small stripboard over the weekend, so I can get the signal as close as I can to the W65C02. At ~40MHz the waveform is looking pretty nasty over that distance.


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 11:28 am 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3346
Location: Ontario, Canada
Proxy wrote:
what about the duty cycle of the clock? could it be adjusted to either side to allow for even faster stable Clock Speeds?
According to WDC specifications, the optimal duty cycle is 50%. But, as the lyrics of that old song say, "it ain't necessarily so." It would be worthwhile -- although a tad tricky -- if you could arrange for your experiments to vary the duty cycle.

BTW and FWIW, clock timing (including duty cycle) is discussed in my Visual Guide to 65xx CPU Timing.
Image


Quote:
At ~40MHz the waveform is looking pretty nasty over that distance.
Just a reminder that your scope will to some extent limit what you're able to view, and things may not be quite as bad as they seem. For example, if we optimistically assume that the 40 MHz waveform is truly a square wave, then the "corners" of the wave will appear rounded, even on a scope whose bandwidth is hundreds of MHz.

-- Jeff

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 11:30 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
J64C wrote:
Just cracked 35 MHz on this hideous setup...Clock is still being fed from a Raspberry Pi Pico, but now being passed through a 74ACT275 (instead of the 74HC04 that I was using previously).

Do you have another MPU you can try? It could be the one you have in-circuit right now was star-crossed. :D

What is a 74ACT275? I can find no reference to such a part. There was a 74LS275 (evidently obsolete), but that device wouldn't have been used as a buffer, as you are doing. Could you have meant 74ACT245?

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 11:34 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
Dr Jefyll wrote:
Just a reminder that your scope will to some extent limit what you're able to view, and things may not be quite as bad as they seem. For example, if we optimistically assume that the 40 MHz waveform is truly a square wave, then the "corners" of the wave will appear rounded, even on a scope whose bandwidth is hundreds of MHz.

The 'scope would need at least a 400 MHz bandwidth to display a reasonable facsimile of a square wave at 40 MHz. Naturally, the probe would have to be capable of the same bandwidth when running on the ×10 setting.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 11:41 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
BTW if you're free to put any values in any locations in the memory map, MOS's original bring-up test, which supposedly exercises the internal critical path, is to have the reset vector point to FFFF, place a JMP at FFFF, and have it wrap around and read FFFF from locations 0 and 1. The wrap-around of the PC is (or was) the critical path. By monitoring the address lines you can see if the 6502 stays within that very tight loop.

(It would in fact be interesting to see how this test fails, as you raise the clock speed, as it must inevitably fail.)

See previous discussion at viewtopic.php?p=85232#p85232


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 11:53 am 
Offline

Joined: Sun Jul 11, 2021 9:12 am
Posts: 137
BDD - Sorry, typo there! Right you are 74ACT245. Edited the post now but made reference to the typo at the bottom, to save confusion for people newly visiting the page.

And yes, I do indeed have a second CPU that I can try out in the morning.

Dr Jeffyl - Yep! I actually stumbled on your site a month or so ago. I found it very helpful with understanding the clock and timings. Extremely well done!!

Big Ed - I’ll give that a try. I wasn’t aware of that test at all. I do have easy access to entire memory map with this setup.


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 12:21 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
BigEd wrote:
BTW if you're free to put any values in any locations in the memory map, MOS's original bring-up test, which supposedly exercises the internal critical path, is to have the reset vector point to FFFF, place a JMP at FFFF, and have it wrap around and read FFFF from locations 0 and 1. The wrap-around of the PC is (or was) the critical path. By monitoring the address lines you can see if the 6502 stays within that very tight loop.

Interesting you mention this.

Since all of RAM from $010000 to $01FFFF in POC V1.3 is unencumbered I ran a test such as you described. I filled all that RAM with NOPs and then changed $010001 to a BRK. I initiated execution at $010002 and let 'er rip. The MPU halted on the BRK, PB was still $01 and PC was $0003, indicating that the MPU wrapped as it was supposed to do. That was at 16 MHz, which is the current clock ceiling for V1.3.

Following that test, I wrote a short program to decrement a 16-bit counter with each pass through RAM and halt when the counter hit zero. The counter was at located at $000300, which would survive the second-stage POST memory test if the machine crashed and had to be reset. I theorized if the MPU had trouble at any point wrapping PC the counter would likely never reach zero and the system would crash. It passed that test with no problem.

POC V2.0, which I soon hope to have built, should be able to run faster. In that design, it's possible to jumper-configure the clock generator to generate one or two wait-states on ROM and I/O accesses. Two wait-states should, in theory, give me timing headroom to 30 MHz, assuming the use of a 45ns ROM and a 7.5ns CPLD. Assuming my theorizing is correct, I'm hoping to push the 65C816 into the 25 MHz range (the highest speed for which I have an oscillator).

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 12:33 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
J64C wrote:
BDD - Sorry, typo there! Right you are 74ACT245. Edited the post now but made reference to the typo at the bottom, to save confusion for people newly visiting the page.

Sounds as though the 245 has improved the quality of the clock signal. Shame you don't have access to a 400 MHz scope. It would be interesting to have a look at Ø2.

Quote:
And yes, I do indeed have a second CPU that I can try out in the morning.

"In the morning?" Where are you located? It's morning here (UTC -5) as I type.

As good as chip-making has become, it's still a given that two dice cut from the same wafer can perform differently. If you're operating the MPU right at its timing limits another part might not be able to function under the same conditions. Another test you could try would be to artificially raise the MPU's temperature while it is running and see if it goes belly-up. CMOS switching speeds deteriorate with temperature, so you would quickly find out how much timing headroom you've got.

Bill Mensch once told me that production testing of their parts is at 20 MHz and that the failure rate is extremely low. I'm guessing he knows his product can perform much better than the data sheets let on, but sticks with the 14 MHz rating for 'CYA' reasons. :D

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 12:53 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
Nice test BDD. We should be able to do something similar with Beeb816.


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 1:19 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8144
Location: Midwestern USA
BigEd wrote:
Nice test BDD. We should be able to do something similar with Beeb816.

Does Beeb816 have a full bank of unencumbered RAM to run the test? Also, what's the Ø2 rate for that machine?

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 1:31 pm 
Offline
User avatar

Joined: Fri Aug 03, 2018 8:52 am
Posts: 745
Location: Germany
J64C wrote:
I wouldn't write off your PCB making skills just yet. Just cracked 35 MHz on this hideous setup. :lol

you were right. my SBC is able to run at higher speeds, despite the PCB being suboptimally designed.
I changed the CPLD to insert a single wait state whenver ROM or IO is accessed. (the ROM/Flash has a maximum access time of 70ns, the FT240X has a minimum access time of 50ns)
and now i can insert a 20MHz Oscillator and it works fine.
i also tested 24MHz using my FT240X, since you can set the Programmable IO Ports to output 1/2, 1/4, or 1/8 of the internal 48MHz USB Clock. and it was working too.

overall that was a lot easier than expected. some wait states for the slower components but other than that it was fairly straightforward.

this gives me a lot of hope for my future 3.3V 65C816 Computer. i'll be aiming for something like 16MHz, but i will try 25MHz in case i won the silicon lottery.

good luck with your own overclocking attempts!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 30, 2021 1:55 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
BigDumbDinosaur wrote:
BigEd wrote:
Nice test BDD. We should be able to do something similar with Beeb816.

Does Beeb816 have a full bank of unencumbered RAM to run the test? Also, what's the Ø2 rate for that machine?

Indeed it does, since the Mk2 revision: 512k of RAM, in a necessarily slightly complicated memory map, but with 4 free high banks. As for speed, 16MHz stable and we've seen 19MHz recently.

Edit: we didn't have a Beeb816 thread until now, but here's a fresh one.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 61 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 30 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: