6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Nov 21, 2024 11:05 pm

All times are UTC




Post new topic Reply to topic  [ 126 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7, 8, 9  Next
Author Message
PostPosted: Sat Apr 16, 2022 1:50 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
fachat wrote:
@akohlbecker I like your test-driven approach, and validating all the steps (according what I read from the forum, just discovered the thread, haven't seen the videos yet). I'm more into rule-of-thumb calculations and that sometimes bites me...


Thank you! Drawback is that + all the editing means I'm one year in and I'm only now adding a VIA :D

fachat wrote:
btw, if you think about going to DIN41612 - you may have a look at this 6502/816 bus design here based on it http://www.6502.org/users/andre/csa/bus-1.1.html
It would be cool if someone else besides me would actually use it and we could share boards....
(sorry 'bout the self-plug, but the mentioning of the DIN triggered it)


I'll take a look, though I'm leaning more towards PCIe at the moment. DIN41612 is more period-accurate though, so I haven't committed yet.

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Sat Apr 16, 2022 1:51 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
BigEd wrote:
Ahem, yes, sorry, I rather missed the point. I was comparing the two over-chip caps in your picture, Jeff, where there is a very small difference between the relatively conventional and the micro-optimised.

I completely agree, of course, that bypass caps are needed and need to be pretty well connected to the chips in question, and also, of course, that power and ground need to be solidly routed and connected.

(I don't like phrases like "as close as possible" because they don't quite convey the real tradeoffs.)


tmr4 wrote:
akohlbecker wrote:
Yeah, I know that my decoupling capacitors do little on my breadboard, wired as they are.

I'd opine that they increase the stability of your build, even wired as is. I've seen many breadboard builds that were unstable without decoupling capacitors. It's an easy test. Take your decoupling capacitors off and see if your build still runs.


Agree with both of you!

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Sat Apr 16, 2022 10:01 pm 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1043
Location: near Heidelberg, Germany
akohlbecker wrote:
fachat wrote:
@akohlbecker I like your test-driven approach, and validating all the steps (according what I read from the forum, just discovered the thread, haven't seen the videos yet). I'm more into rule-of-thumb calculations and that sometimes bites me...


Thank you! Drawback is that + all the editing means I'm one year in and I'm only now adding a VIA :D



No worries. I learned to do double and triple check everything when boards where 60€ for two, but now with 5 pcbs for 10€ or less I feel I've gotten sloppier... It's definitely worth taking the time, not just for finding the errors but also refining the features

Quote:

fachat wrote:
btw, if you think about going to DIN41612 - you may have a look at this 6502/816 bus design here based on it http://www.6502.org/users/andre/csa/bus-1.1.html
It would be cool if someone else besides me would actually use it and we could share boards....
(sorry 'bout the self-plug, but the mentioning of the DIN triggered it)


I'll take a look, though I'm leaning more towards PCIe at the moment. DIN41612 is more period-accurate though, so I haven't committed yet.


Do you mean just the physical form factor and use your own signals? PCIe has the advantage of the simple board edge.

I am more concerned about the actual signals. I've been designing a backplane recently to use AppleII, RC2014 as well as RC6502 boards with my bus linked above. Apple II mostly had the address decoding. RC2014 had some signal conversions for the Z80 bus - which to the unknowing eye looks utterly strange - but was doable. The RC6502 although included is almost useless as it has no separate select line that disables the device in any of the non-dedicated bank.

Some RC2014 boards have quirks too in that they require e.g. the system to run at a specific speed to get the rs232 timing right on the serial interface. Some require latch timing on /wr, others on /mreq... it's just weird...

If your and my bus could be made compatible, I think it would be good for both sides.

Happy to discuss, also on a call if you like.

André

_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/


Top
 Profile  
Reply with quote  
PostPosted: Sat Apr 16, 2022 10:37 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8543
Location: Southern California
I don't want to throw a wet blanket on things; but especially if you hope to increase device speeds in the future, you'll need to distribute the grounds and bypassed power lines more evenly among the signal lines, rather than clumping them together at the ends like André's scheme. See this video, long but good, which makes the point that the signal energy does not travel in the copper, but rather in the dielectric space between the conductor and the return path. The copper merely guides it. The bigger that space between the signal line and the return path is, the greater the space has to be charged up, and the harder it is to get good performance. Mutual inductance will cause the closest neighboring lines to try to carry the return current; and if those are signal lines, you'll get unwanted crosstalk. As edge rates increase, so does the risk of going non-op.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 17, 2022 6:49 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10985
Location: England
> especially if you hope to increase device speeds in the future

I'm afraid this is another of those phrases which ring alarm bells for me: it's a form of scope creep. It's true, of course, that building a low speed design without any concern for how to turn it into a high speed design is going to be limiting, but then that is part of the point of a low speed design. I think it's good advice to avoid trying to do everything at once. Let a subsequent design and build take on those bigger challenges.


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 17, 2022 7:24 am 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1043
Location: near Heidelberg, Germany
GARTHWILSON wrote:
I don't want to throw a wet blanket on things; but especially if you hope to increase device speeds in the future, you'll need to distribute the grounds and bypassed power lines more evenly among the signal lines, rather than clumping them together at the ends like André's scheme. See this video, long but good, which makes the point that the signal energy does not travel in the copper, but rather in the dielectric space between the conductor and the return path. The copper merely guides it. The bigger that space between the signal line and the return path is, the greater the space has to be charged up, and the harder it is to get good performance. Mutual inductance will cause the closest neighboring lines to try to carry the return current; and if those are signal lines, you'll get unwanted crosstalk. As edge rates increase, so does the risk of going non-op.


I totally agree with your comments on ground and supply lanes on the bus for anything "faster" than my bus.

My newest board (to be revealed soon) is a uPET-based 12 MHz Colour-PET clone with VGA video, that runs at 12MHz entirely on its own Euro-PCB. It currently runs the cross-board bus at 1MHz, and will probably never go above 2 MHz, as I feel this is the maximum for this type of system (and works, as proven by my previous 2MHz-only designs).

I am just worrying about the type of signals. Mostly, is there a select line for memory, is there a select line for I/O on the bus, can the bus be slowed down for slower devices. The rest can be done on an adapter between busses (if a bus can be slowed down e.g. using RDY)

After all, the memory is the stuff that needs to be lightning fast. Byte I/O can be slower (depending on which type of course). Mass storage is maybe in the middle (potentially high latency but fast throughput once data is there) - but if the CPU is fast, it can compensate for that.

André

Edit: but never mind, bus design can be a much discussed topic, so I'll stop posting about my stuff here and look forward for more content from @akohlbecker


Attachments:
20220407_212221_1920x1080.jpg
20220407_212221_1920x1080.jpg [ 897.7 KiB | Viewed 1691 times ]

_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/
Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 17, 2022 7:33 am 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1043
Location: near Heidelberg, Germany
BigEd wrote:
> especially if you hope to increase device speeds in the future

I'm afraid this is another of those phrases which ring alarm bells for me: it's a form of scope creep. It's true, of course, that building a low speed design without any concern for how to turn it into a high speed design is going to be limiting, but then that is part of the point of a low speed design. I think it's good advice to avoid trying to do everything at once. Let a subsequent design and build take on those bigger challenges.


A valid point. I think it helps a real lot if you define the goals and limitations of your system up-front very clearly. Otherwise you end up with creeping scope and shifting priorities all the time without getting to an end. There are examples....

Having said that: it's absolutely a valid goal to "play around" and learn, explore different types of ways of doing things, etc. Just you should not expect that this will be "the" final design of something.

André

_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 17, 2022 8:57 am 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
I'm leaning towards PCIe for the physical connector because of ground distribution and the issue that Garth has raised. The connector has 164 positions, and for the real PCIe standard, around half of those are ground, leaving 82 for signals. This is what it looks like physically:

Attachment:
Screenshot 2022-04-17 at 10.40.20.png
Screenshot 2022-04-17 at 10.40.20.png [ 704.21 KiB | Viewed 1684 times ]


82 signals would be plenty of space for what I want to include. If you look at my KiCad schematic, it is already grouped mainly by what would be a card in the future, so the signals that need to be on the bus are the ones connecting all the hierarchical sheets below. I might group one or two in a single card, like the glue logic and the CPU for example, but it is a rough approximation of what I need.

Attachment:
Screenshot 2022-04-17 at 10.45.30.png
Screenshot 2022-04-17 at 10.45.30.png [ 758.08 KiB | Viewed 1684 times ]


Going with DIN41612 would have the advantage of being period-accurate and being a bit easier to solder. You can also purchase pre-made prototyping cards. However the connectors are more expensive, I priced them on Mouser at around 2.5€-3€ per connector, of which you need 2 per card, whereas PCIe is less than 1€ per connector. I could also design my own prototyping cards.

That's all in the future though! The plan for now is to add a VIA so I can validate that I have all the right signals to drive the WDC bus interface, then do a 65C816 breakout board. It will contain everything needed to run this CPU with all the glue logic, demultiplexing etc. I'm thinking it will be useful for people getting into this CPU.

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 17, 2022 11:05 am 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1043
Location: near Heidelberg, Germany
akohlbecker wrote:
I'm leaning towards PCIe for the physical connector because of ground distribution and the issue that Garth has raised. The connector has 164 positions, and for the real PCIe standard, around half of those are ground, leaving 82 for signals. This is what it looks like physically:

Attachment:
Screenshot 2022-04-17 at 10.40.20.png



Good point. Seems to make a good choice for a high speed bus.

Quote:
Attachment:
Screenshot 2022-04-17 at 10.45.30.png


Going with DIN41612 would have the advantage of being period-accurate and being a bit easier to solder. You can also purchase pre-made prototyping cards. However the connectors are more expensive, I priced them on Mouser at around 2.5€-3€ per connector, of which you need 2 per card, whereas PCIe is less than 1€ per connector. I could also design my own prototyping cards.


Do you have a link to a specific connector? I looked it up at Mouser, but all that were currently available did not seem to fit, or at least > 6€...
Quote:
That's all in the future though! The plan for now is to add a VIA so I can validate that I have all the right signals to drive the WDC bus interface, then do a 65C816 breakout board. It will contain everything needed to run this CPU with all the glue logic, demultiplexing etc. I'm thinking it will be useful for people getting into this CPU.


Looks like a good plan!

Question to your schemaitcs: where is /ROM_WE coming from?

_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 17, 2022 3:23 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
fachat wrote:
Do you have a link to a specific connector? I looked it up at Mouser, but all that were currently available did not seem to fit, or at least > 6€...


These are the DIN connectors I looked at :
https://nl.mouser.com/ProductDetail/Amp ... r8Iw%3D%3D
https://nl.mouser.com/ProductDetail/Amp ... hoXA%3D%3D

And these are the PCI express connectors I looked at : https://nl.mouser.com/ProductDetail/649 ... 8410203TLF

fachat wrote:
Question to your schemaitcs: where is /ROM_WE coming from?


At the moment from nowhere, it just has a pull-up. I plan to wire it up to the Teensy but first I need to solder the optional header on it to get access to more GPIO

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Mon May 02, 2022 3:48 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
Episode 21 is out! https://www.youtube.com/watch?v=mDXbO4jw0HE

In this video, the computer gets its first I/O ports! I connect the 65C22 Versatile Interface Adapter. We look at the datasheet and at the timing diagrams, and I code a blinking LEDs demo.

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Mon May 23, 2022 4:00 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
Episode 22 is out! https://www.youtube.com/watch?v=0eZf2dIW6-M

I added an LCD display to my build, and I discussed calling conventions, which are inspired by the llvm-mos project shared in this forum.

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Thu May 26, 2022 11:44 am 
Offline
User avatar

Joined: Tue Aug 11, 2020 3:45 am
Posts: 311
Location: A magnetic field
akohlbecker: I thought that it was extremely rude of me to mistakenly attribute your Digital diagrams to AndersNielsen and watch all of AndersNielsen's videos without watching your videos. After going through 20 hours of video, I feel exhausted. I expected to breeze through your videos in two days or so. However, it took me five days to watch the first 14 episodes due to the quantity of good information. You must be exhausted too. It must have taken you at least 200 hours to shoot and edit. Given that you've been working on these videos for more than one year, I'd be unsurprised if you spend an average of one hour per day working on video.

I feel vicariously productive after watching your videos and especially so after watching accelerated sections. I am reminded of W. C. Fields' quote "Work fascinates me. I can watch it for hours." More seriously, I knew that my work was a minimal hack but I vastly under-estimated the effort required to make a full system which conforms to data-sheet specifications.

My attention wavered more than usual in the first half of Episode 2, Episode 6 and Episode 14. However, I was amply rewarded in the second half of each episode. Likewise, I was riveted throughout Episode 15, Episode 16, Episode 17 (address decode), Episode 21 (6522) and your series about two digit hexadecimal displays.

I wish that you had more split-screen video where the KiCAD schematic and the bread-boarding is updated simultaneously. Admittedly, keeping that synchronized would probably require more planning and would increase editing time. With the wisdom of hindsight, half KiCAD/half bread-board and half timing diagram/half data-sheet would be very desirable.

After you brought all 65816 address, data and control lines to one edge of one bread-board, I hoped that you'd make a short ROM, RAM and I/O bus extending in one direction while the address decode, interrupts and RDY logic would extend in the opposite direction.

The software which you use has been a moving target. For example, moving from KiCAD5 to KiCAD6 (although it looks like the KiCAD6 interface is borked in the same manner as GIMP). I appreciate that the style of your correctly scaled WaveDrom diagrams match your early manually drawn diagrams. Your early diagrams were preferable but it is probably quicker and more consistent to use the appropriate tool.

There has been some whinging about sound quality but it was only a faint milli-second echo and no worse than having a conversion in an empty room. From the complaints, I expected much worse. Concerns about power distribution were quite valid. Radical Brad prototypes up to 80MHz with a rectangular mesh of power and ground and places an oscillator in the middle. You had a tree of power distribution with an oscillator in the corner. However, this works due to fastidious use of de-coupling capacitors and short wires which are often color coded. Indeed, the exclusive use of red and black wires for power and ground is greatly appreciated.

There is a very minor error in the clock circuit which may cause very infrequent error. I have only learned this by reading all of Advanced FPGA Design by Steve Kilts. A flop on the slow clock followed by a flop on the fast clock feels correct. However, it creates an obscure edge case. A "double flop" on the fast clock is more reliable. Either way, the slow clock has the jitter of the fast clock.

There is a re-newed interest in asymmetric clocks and you are well placed with this trend. I believe that your design currently has one spare, calibrated 10ns delay line. The delay line combined with one OR gate would create a high clock phase which is 20ns longer than the low phase. Save this for an episode of minor tweaks but it would be instructive to compare this against a uncalibrated bodge of three or four OR gates. Either arrangement would allow you to increase the maximum clock speed or operate with additional reliability.

I typically read text and watch video off-line. From bitter experience, I skim through the 6502 Forum to make sure that I haven't omitted any diagrams which are pertinent to discussion. During this process, I was uncharacteristically stopped by your address decode and I had to check that logic gates were used in multiples of four. ("Well, *that's* not accidental.") I am even more impressed by the optimization process which takes into account propagation delay and component availability. In particular, I am impressed by the speed at which you work. I say this after spending yet another 1.5 days on address decode.

Finally, no-one has mentioned the best feature of your design! Although you have fitted 512KB of extended RAM for demonstration, your design allows 4MB of contiguous RAM from $400000 to $7FFFFF and does not preclude significantly more RAM. In this regard alone, your implementation exceeds many people's vaporware.

_________________
Modules | Processors | Boards | Boxes | Beep, Beep! I'm a sheep!


Top
 Profile  
Reply with quote  
PostPosted: Fri Jun 03, 2022 1:54 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
Thank you Sheep64 for this thorough critique of my videos, I am humbled!

Sometimes I wonder if I'm not letting myself be bogged down by details and if I should just get on with it, stop talking about propagation delay, and ship a final product. But then I get encouraging feedback like yours that shows that there is definitely interest for the right amount of details. :mrgreen:

I can say you're not too far on the time it takes to shoot these. I think I'm more at 2h per day average.

Quote:
I wish that you had more split-screen video where the KiCAD schematic and the bread-boarding is updated simultaneously. Admittedly, keeping that synchronized would probably require more planning and would increase editing time. With the wisdom of hindsight, half KiCAD/half bread-board and half timing diagram/half data-sheet would be very desirable.


Interesting idea, but not really doable in practice, it would take too long to keep everything in sync. Plus I worry that each panel would be to small / low resolution to clearly see details in the schematic or the breadboard.

Quote:
There is a very minor error in the clock circuit which may cause very infrequent error. I have only learned this by reading all of Advanced FPGA Design by Steve Kilts. A flop on the slow clock followed by a flop on the fast clock feels correct. However, it creates an obscure edge case. A "double flop" on the fast clock is more reliable. Either way, the slow clock has the jitter of the fast clock.


I'm not sure I understand what you mean here? Could you explain it in more detail?

Quote:
I believe that your design currently has one spare, calibrated 10ns delay line. The delay line combined with one OR gate would create a high clock phase which is 20ns longer than the low phase. Save this for an episode of minor tweaks but it would be instructive to compare this against a uncalibrated bodge of three or four OR gates. Either arrangement would allow you to increase the maximum clock speed or operate with additional reliability.


I don't have a spare delay line unfortunately, there are only 3 per chip.

Again, thanks for taking the time to write this feedback, it is much, much appreciated!

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
PostPosted: Wed Jun 08, 2022 3:46 pm 
Offline
User avatar

Joined: Sat Jul 24, 2021 1:37 pm
Posts: 282
Episode 23 is out! https://www.youtube.com/watch?v=_9iUIJOeNhU

In this episode, I make some improvements to the clock switching circuitry, by doing a timing analysis of the switching, as well as introducing better control on the clock from the Teensy monitor.

I'm going on holiday for a bit, so the next episode will take a couple of weeks longer. It will either be about adding Eater's PS/2 interface, or about making an EEPROM programmer with the Teensy.

_________________
BB816 Computer YouTube series


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 126 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7, 8, 9  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 40 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:  
cron