6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri Nov 22, 2024 12:41 pm

All times are UTC




Post new topic Reply to topic  [ 842 posts ]  Go to page 1, 2, 3, 4, 5 ... 57  Next
Author Message
PostPosted: Mon Jun 15, 2015 2:33 am 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Thanks again for the comments!

Had some time today, so I soldered the SRAMs to the sockets.
So far, I plan to use the 512K SRAMs as follows...

512K #1 = Front / Back Video buffer (120K used)
512K #2 = Front / Back Video buffer (120K used)
512K #3&4 = 1024K Graphics memory dedicated to GPU block copier
512K #5&6 = 1024K Sample memory dedicated to sound system
512K #7 = Multiplication and Division lookup tables for dedicated ALU

Not sure what to do with SRAM #8 yet, but no doubt it will find a home.

Hope everyone likes photos, I take a lot!

Image
SRAMs, sockets, and a bunch of wires.

Image
Bending the GND and VCC pins for direct connection.

Image
Ready for mounting to the sockets.

Image
Solder balls to accept the wires.

Image
SRAMs mounted to the sockets by 4 bent pins.

Image
Decoupling caps added for good measure.

Image
Adding wires to the pins and socket.

Image
Quality control using a magnifier.

Image
One SRAM done, only 7 more to go!

Image
4 Megs of 10ns SRAM ready for the breadboard!

Ok, that's it for now. I only do this on rainy days, so not sure when the next post is coming.
Will be adding ports to the monster breadboard next and then the layout of chips shall begin!

Besides the SRAM and 65C02, every other IC will only be 74HC logic.
Going to be fun to see how far this can go!

Cheers,
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Mon Jun 15, 2015 4:49 am 
Offline
User avatar

Joined: Sun Jun 30, 2013 10:26 pm
Posts: 1949
Location: Sacramento, CA, USA
Quote:
For me, the enthusiasm begins when I hear... "that ain't gonna work, dude!".

Umm ... "that ain't gonna work, dude!". :wink:

Just thought I'd stir the pot, for good luck. Although it seems that you have made most of your own luck in the past, through careful analysis and preparation. I guess it's the equivalent to the old actor's saying "Break a leg!"

Mike B.


Top
 Profile  
Reply with quote  
PostPosted: Mon Jun 15, 2015 11:18 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Just need to tie all the VCC and GND connections on the breadboard strips together and then a duplicate video system will be layed out on the new board.
I will have to take my time and make an actual schematic in case anyone else out there is crazy enough to want to build such a thing.
For the most part, I just winged this all together based on ideas that caused many nights of insomnia.

Never though that my old "Cookie Sheet BreadBoard" would look small!...

Image

I still may run out of real estate after the GPU and sound system are also included. The smaller breadboard contains only the basic 400x300 VGA dual buffer system and an AVR/6502 image loader.
The GPU logic will probably have more chips, and I know the 4 channel digital sound system will have at least 70 chips.

Ironically, at 25 cents per logic chip, the cost won't be all that much more than large FPGA and support circuitry that would be needed to condense all of this.
Last time I made a crude Spartan-6 proto board, I was about fifty bucks into it, and that cost would fetch 150 logic gates!

Brad


Top
 Profile  
Reply with quote  
PostPosted: Tue Jun 16, 2015 10:55 am 
Offline

Joined: Fri Jan 17, 2014 6:39 pm
Posts: 47
Location: Poland
It is I, too praise.
This is an example of animation on the hardware c64 (1 MHz).
I added only 16 MB of RAM (Years 90 ') on the SIMM72 and control for systems 74HC .LS, HCT :)

https://www.youtube.com/watch?v=yxZ7Idi2Bi4&feature=youtu.be


Top
 Profile  
Reply with quote  
PostPosted: Tue Jun 16, 2015 7:58 pm 
Offline
User avatar

Joined: Sun Sep 08, 2013 10:24 am
Posts: 740
Location: A missile silo somewhere under southern England
I was wondering how you managed to go for 10ns SRAMs as the best I could find is 15ns Cypress CY7C199CN in DIP. I like your solution, although it looks a bit fiddly/time consuming!


Top
 Profile  
Reply with quote  
PostPosted: Tue Jun 16, 2015 9:12 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8543
Location: Southern California
banedon wrote:
I was wondering how you managed to go for 10ns SRAMs as the best I could find is 15ns Cypress CY7C199CN in DIP. I like your solution, although it looks a bit fiddly/time consuming!

He has the Cypress CY7C1049D which I use in the hobbyist-friendly 4Mx8 10ns 5V SRAM modules I make and sell. I know I've seen 8ns and 6ns SRAMs in lower densities.

Quote:
but my downfall isn't my lack of understanding of ringing, ground bounce, propagation, cross-talk, and capacitance. My downfall has been overwhelming success!!

You forgot inductance which is a big killer. If your new project covers the whole set of breadboards pictured, your wires will be twice as long as the cookie-sheet set. Running something like SPI or even memory at 25 or 57 or 80MHz is not like trying to run a 6502 at those speeds. I want you to be successful, and I want to spare you the frustration I think you'll have with the current plan. I think you're much more likely to be successful if you use wire-wrap and get the whole thing in a more compact layout, and use perfboard with a ground plane and solder each ground pin directly to the plane around it and put a bypass capacitor from each Vcc pin to the ground plane around it. The bigger the layout, the more important this becomes. Regardless, the most important part to keep clean is the clock distribution system. We had another member a few years ago who ran into clock problems with his '816 computer built on a breadboard layout that was much smaller than yours. It will also help to keep the processor's own buses in close, and not run them all over the layout, if it's possible to interface the farther stuff through I/O instead.

The Cray-1 ran at 80MHz with long connections, but they were twisted pairs, with each signal wire being twisted with its own ground wire grounded at both ends, so each one was a legitimate transmission line.

_________________
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: Wed Jun 17, 2015 12:23 am 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Thanks for the info, Garth. I certainly agree that I will have more than a few ghosts in my new machine!

On this one, my max speed is 20MHz through the VGA system and GPU. How I made this work in my current (smaller) breadboard setup is to add clock synced 74HC574 registers after any pathway exceeding 30ns. Much like doing it in HDL, this has worked remarkable well on my breadboard designs.

Just from the output of the video buffer SRAM to the R2R DAC for instance, I have 3 registers in the pathway!
This way, I have accounted for not only all of the issues with breading, but also the worst case propagation of all of my components and then some.
It takes only a small level of support logic to deal with delayed clock arrivals.

Hell, my original circuit even used 15ns SRAMS and a 138 decoder, and it was pulling 640x480 at 25.175MHz.
I only lowered the clock to satisfy the 800x600 (divided in half) VGA standard.

So I absolutely and completely agree with everything you said, and have found a way around these issues thanks to many, many late nights of trial, error, smoke, and mirrors.

I also lay out my boards in such a segregated way so that no high speed path exceeds 8 inches. Video, GPU, Sound, and Control systems are all self contained, having their own bus systems.

In this system, the 6502 does not have any access to any other bus besides it's own 64K 10ns SRAM, which is preloaded via support logic on power up. Because of the blazing fast design of my GPU, the 6502 need only issue a few bytes in order to toss a dozen or more multi-sized 256 color sprites around the screen at 60 frames per second, complete with alpha (transparent) pixel control. This is why I am doing sneaky illegal op tricks to listen to the 6502.

I have no doubt that I will meet or exceed every single one of my design goals here, and look forward to detailing how I pulled it all off.
As you can probably guess, I love doing things the most difficult way possible, and have no fear of pushing to the absolute edge of limitations (and sanity).

In one FPGA project, I pushed a 10ns SRAM up to the "impossible" speed of 100MHz to get 1024x768 video by having what I call "2 in the barrel", which means that 2 clock pulses are still propagating through a bus before reaching an IO port. Imagine the coding and hardware required for that kind of high speed GPU! Oh the fun of it all.

I enjoyed the sticky thread on high speed design and think it should be required reading just to enter this forum!
The only thing I would add at the end would be...

... but there are ways around every single limitation you have just been taught!

Anyhow, thanks for your logical and sound speed limit advice, I will keep it in mind as I pass the next minivan in a no passing zone, doing 50 over the limit!

Hopefully this weekend will offer a rainy day so I can start putting some black magic into the immortal 6502!!

Cheers,
Radical Brad


GARTHWILSON wrote:
banedon wrote:
I was wondering how you managed to go for 10ns SRAMs as the best I could find is 15ns Cypress CY7C199CN in DIP. I like your solution, although it looks a bit fiddly/time consuming!

He has the Cypress CY7C1049D which I use in the hobbyist-friendly 4Mx8 10ns 5V SRAM modules I make and sell. I know I've seen 8ns and 6ns SRAMs in lower densities.

Quote:
but my downfall isn't my lack of understanding of ringing, ground bounce, propagation, cross-talk, and capacitance. My downfall has been overwhelming success!!

You forgot inductance which is a big killer. If your new project covers the whole set of breadboards pictured, your wires will be twice as long as the cookie-sheet set. Running something like SPI or even memory at 25 or 57 or 80MHz is not like trying to run a 6502 at those speeds. I want you to be successful, and I want to spare you the frustration I think you'll have with the current plan. I think you're much more likely to be successful if you use wire-wrap and get the whole thing in a more compact layout, and use perfboard with a ground plane and solder each ground pin directly to the plane around it and put a bypass capacitor from each Vcc pin to the ground plane around it. The bigger the layout, the more important this becomes. Regardless, the most important part to keep clean is the clock distribution system. We had another member a few years ago who ran into clock problems with his '816 computer built on a breadboard layout that was much smaller than yours. It will also help to keep the processor's own buses in close, and not run them all over the layout, if it's possible to interface the farther stuff through I/O instead.

The Cray-1 ran at 80MHz with long connections, but they were twisted pairs, with each signal wire being twisted with its own ground wire grounded at both ends, so each one was a legitimate transmission line.


Top
 Profile  
Reply with quote  
PostPosted: Thu Jun 18, 2015 2:19 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Had an hour of free time last night, so I added all the connecting wires and decoupling caps to the breadboard and then layed down the video driver section.
It's cool that the entire video section only took up one column out of the 4 available on the massive board.

This small bit of circuity is a complete 400x300 VGA driver that includes a seamless double buffer, offering synced frame switching of fully bitmapped displays so that the CPU or GPU can have complete independent access to one video memory while the other is being hurled out to the monitor. Both SRAMs are 512K, but I am only using 120K of each. Addresses are mapped as 9X and 9Y so that dealing with the 9th bit is only a single compare / branch in code.

The VGA circuit is clocked at 20MHz by the can at the center, and drives the 800x600 VGA standard, following timing to the EXACT cycle. Video is divided in half both horizontally and vertically so that banding is kept to a minimum. As it stands, this video system could accept addressing from any microprocessor capable of handing 18 address lines and 8 data lines. Any 32 pin uC can plug right into this system.

I am not planning to let the 6502 talk directly to the video memory, because it wouldn't be able to do much. Trying to spew out bytes at 16-20MHz and draw something more complex than Space Invaders would make the 6502 cry, so the next column of the board will be a logic based ultra fast GPU system, capable of block transferring variable sized bitmaps from a dedicated 1024K memory to the back buffer via commands send by the 6502. The GPU will be capable of sending 20 million pixels per second back and forth, including a selected transparent "Alpha" color, that will allow overlapping sprites without having to resort to "standard" gaming tricks like xor copies to maintain the background, as these are horrifically slow.

I think the GPU may take more than one column on the board, so it will be getting tight to squeeze the 4 channel sound system in there!

Here is my video layout so far (based on the other breadboard mess that works perfectly)...

Image

If I get my shed built this weekend, or if I get rained out, I will stuff the board full of wires and then get the video system up and running. Video tests are done using an AVR with graphics libraries I did way back on my Lazarus-64 retro game system...

Image
http://lucidscience.com/pro-lazarus-64%20prototype-1.aspx

I can't wait to try some interesting ultra-speed IO decoding tricks on my 65C02!
The GPU has to get built before I start working on the 6502, though.

Cheers,
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Thu Jun 18, 2015 7:12 pm 
Offline
User avatar

Joined: Thu Jun 23, 2011 2:12 am
Posts: 229
Location: Rancho Cucamonga, California
This is a great project and I'll follow it closely!

But aren't you cheating just a little bit if you say you only want to use 1980s technology but you use 10ns RAM? I remember in the 1980s the fastest RAM you could get was probably 70ns DRAM, and that was when home computers were getting pretty popular.

By the way, Alliance sells a 512KB SRAM chip (AS6C4008) that works at 55ns and is available in a DIP. They have faster chips too but not only in SMD. Of course those didn't exist in the 1980s either but anyway, just thought you'd like to know, if you didn't already.

===Jac


Top
 Profile  
Reply with quote  
PostPosted: Thu Jun 18, 2015 7:29 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Thanks!

Well, in my rules, I did allow for current variants of classic technology. So HC replaces LS, VGA LCD replaces NTSC CRT, and SRAM can be as fast as I want.
I will avoid all moden parts such as CPLD, FPGA, and any other non 74 logic parts.
Keeping it all DIP as well, with the minor exception of the dead-bugged SOJ parts.

I want this thing to look cool when it is put into the glass front wood cabinet, complete with a 360 degree view of the board and back-lighting!

In this day and age of bloated drop-in code and 400MHz proto-boards that monkeys could program, I simply want to make a thing of beauty and decent function with my bare hands. Moving ahead by traveling in reverse!

I have a few of the 4008 DIPs in my collection, they worked well on a 256x240 VGA project.

Brad

jac_goudsmit wrote:
This is a great project and I'll follow it closely!

But aren't you cheating just a little bit if you say you only want to use 1980s technology but you use 10ns RAM? I remember in the 1980s the fastest RAM you could get was probably 70ns DRAM, and that was when home computers were getting pretty popular.

By the way, Alliance sells a 512KB SRAM chip (AS6C4008) that works at 55ns and is available in a DIP. They have faster chips too but not only in SMD. Of course those didn't exist in the 1980s either but anyway, just thought you'd like to know, if you didn't already.

===Jac


Top
 Profile  
Reply with quote  
PostPosted: Sat Jun 20, 2015 12:46 am 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Had an hour to spare tonight, so I threw on some era-appropriate music (Judas Priest), and added a few things to the Vulcan board.

Image
After cutting a few holes with a boring mill, I added ports for VGA, Audio, Power, and a Switch.

Image
Wired up the R2R DAC and tossed in a 574 register so I could test the VGA port wiring.
Notice the color of the wires, which correspond to the color space of RRR-GGG-BB.

Image
This quick and ugly code hack tosses 50 sprites around the screen over the bitmap.
Sprites are 256 colors, have transparency, priority, and can be any size.
These sprites are 32x32. In reality, the aren't really "sprites", I just like the name!

To get VGA to the new board, I stuck 12 inch long wires from the other board out to the new 74HC574!
The 400x300 VGA image looked just as clean!
Isn't it amazing what you can get away with when you should know better but try anyway!!

Ok, that's all for now, going to hit the Tequila and relax!
If it rains tomorrow, I will try to get some time and defend the faith a little more.

Radical Brad


Last edited by Oneironaut on Sat Jun 20, 2015 3:08 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Sat Jun 20, 2015 1:51 pm 
Offline
User avatar

Joined: Sun Oct 13, 2013 2:58 pm
Posts: 491
Location: Switzerland
I have one questions, as you say you only use devices available in the 1980's then shouldn't you also allow PALs and their derivates, at least GALs? PALs have been developped and produced by MMI since 1978.


Top
 Profile  
Reply with quote  
PostPosted: Sat Jun 20, 2015 3:00 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Good point, but that might violate the rule... "parts must still be produced, easy to get, and available at Digikey".

Brad

cbscpe wrote:
I have one questions, as you say you only use devices available in the 1980's then shouldn't you also allow PALs and their derivates, at least GALs? PALs have been developped and produced by MMI since 1978.


Top
 Profile  
Reply with quote  
PostPosted: Sat Jun 20, 2015 8:39 pm 
Offline
User avatar

Joined: Sun Oct 13, 2013 2:58 pm
Posts: 491
Location: Switzerland
http://www.digikey.com/product-detail/en/ATF22V10C-15PU/ATF22V10C-15PU-ND/1008580


Top
 Profile  
Reply with quote  
PostPosted: Sat Jun 20, 2015 8:44 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Nice!
Didn't know you could get them in small footprint DIP.
Might be using these on a future project.

cbscpe wrote:


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

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 33 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: