6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 16, 2024 12:16 pm

All times are UTC




Post new topic Reply to topic  [ 26 posts ]  Go to page Previous  1, 2
Author Message
 Post subject:
PostPosted: Tue Dec 15, 2009 2:34 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8541
Location: Southern California
Quote:
Just about all of those SRAMs go into a very low power state when not selected. That does a lot toward keeping bus loading to an acceptable level.

That does not affect their input capacitance though. It remains at 6pF max per pin regardless of low-power state, according to the data sheet. Input leakage current similarly stays below a couple of microamps. What does change when it goes in and out of low-power state is the power consumption, and having a stack of them should not present any heating problems since no more than one at a time will be selected.

Quote:
Funny, I've been thinking about whether Garth could keep his I/O in Bank 0 by choosing to map all his RAM only into the top half of every bank. It seems natural to place RAM at the top of the bank, to hold the vectors, and easy enough to locate Direct Page and the Stack up there, so I/O can happily live near the bottom.

But, the decoding would be slightly harder, the memory would be non-contiguous, each bank is only half-populated - and you've shown that there's barely a speed penalty to using long absolute addressing.

Yeah, for what I plan to do, I do need the memory contiguous. I guess I'm looking for the best-performing 14 (or so) input OR/NOR gate I can get rather easily. Using a couple of 74AC521's (for 16 bits' input) looks like it could take about 11ns typ, 17ns max, which is faster than some programmable logic, but I'd sure like to do better. The idea now is to use the lowest four pages (or so) of bank 0 for I/O and have the rest as contiguous RAM. I didn't like the thought of all the long addressing for I/O taking more program memory, more run time, and forfeiting TSB, TRB, BIT, INC, and DEC.

_________________
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  
 Post subject:
PostPosted: Tue Dec 15, 2009 3:19 am 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1007
Location: Canada
What kind of speed are you looking for?

You could use 14 1N4009 diodes and an FMMT2369 transistor to build a 3ns-4ns 14 input NOR gate. Should be dead easy to source these

You get it down to under 2ns if you used MAU2D3000B schottky diodes or even quicker if you wanted to look hard. But I get the impression most of the 6502.org folks are not much into experimentation of any kind.

_________________
Bill


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Dec 15, 2009 6:31 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8541
Location: Southern California
Quote:
What kind of speed are you looking for?

Keeping the max prop. delay under 7ns would be nice.
Quote:
You could use 14 1N4009 diodes and an FMMT2369 transistor to build a 3ns-4ns 14 input NOR gate.

You got me excited there for a minute. But looking at the data sheet, the FMMT2369's turn-on and -off times are specified to be 12 and 18ns max, and then there are a couple more ns for the diodes. A passive pull-up at the output would be the real speed killer. If the load were, let's say, 20pF total, a 4.7K pullup would make for a time constant of 94ns. Even a 1K (taking 5mA when pulled to ground) would give a time constant of 20ns (after the transistor goes off, which is after the last input diode goes off). I have scores of breadboards and modules I've made; but even with a different approach, I really don't think I could construct anything that would compete with 74AC's speed. I'll still be glad to hear more ideas though.

_________________
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  
 Post subject:
PostPosted: Tue Dec 15, 2009 6:12 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10980
Location: England
GARTHWILSON wrote:
Keeping the max prop. delay under 7ns would be nice.

Any reason not to use a CPLD? Seems to me an ideal solution for glue logic, unless cost is an overriding concern, or you want to use up stocks of 74-series.

(I was briefly excited by the diodes idea too! From diode logic to CPLD - that's a journey of more than half a century.)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Dec 15, 2009 7:10 pm 
Offline

Joined: Tue May 05, 2009 2:49 pm
Posts: 113
If you really need a huge IO space, then skip the rest of the response, but if there are a bank of IO locations that would be heavily used, it seems easy enough to allow the top of lower half of the 64kB bank (or some smaller chunk to "bleed" into each bank. Flip a bit for bleeding, use the IO, and then flip it out.

Jim


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Dec 15, 2009 9:32 pm 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1007
Location: Canada
GARTHWILSON wrote:
... the FMMT2369's turn-on and -off times are specified to be 12 and 18ns max ...


They are maximums when driven deep into saturation at 3V. With proper bias you should be able to achieve substantially better response as well as using a totem pole output to deal with driving the capacitance, but I see where you're going.

Even with a couple of ACT gates in line you're looking at 9 or more ns.

What about a combination of Schottky diodes and one ACT gate? You might get close to 6ns.

You might also be able to alleviate some of the capacitive load on the data and address busses by using BS62LV1605 2Mx8 sram. They are a 5v version of the 3.6v part I’ve used before.

7ns. You’re pushing this technology pretty far. I think you are running this architecture to its limit. Next step for you will be a two-stage memory architecture using a small synchronous block of memory at the processor speed then a larger asynchronous store for ROM, the rest of RAM and I/O. That might be a complicated proposition with the 65Cxxx family though.

_________________
Bill


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Dec 16, 2009 1:50 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8541
Location: Southern California
Quote:
Any reason not to use a CPLD? Seems to me an ideal solution for glue logic, unless cost is an overriding concern, or you want to use up stocks of 74-series.

As I said just above the middle of the first page:
Quote:
I should look around for programmable logic software and a device programmer. I guess the main thing keeping me away is that I don't think I would use it enough to justify the cost in dollars and the time to learn to use it. I also want something that's supported in Linux, or even something old-fashioned that runs under DOS. I won't use Windows again even so save my job. I'm through with it. It's not worth my health. When I was still using Windows, I was angry with the computer all the time. Then I met Linux, and more than 90% of my computer problems evaporated.

but I'll expand on it here. This is really only PAL/GAL territory. A CPLD would of course work, but would be overkill. I got started with Cypress's 370i CPLD family and VHDL and their Warp software over 10 years ago for a project at work, then the project got cancelled. I got far enough that my designs would synthesize and simulate fine, but I never actually programmed a part. At this point I would nearly have to start over. Somewhere I have a booklet, kind of a primer, from one of the programmable-logic companies, giving the basics for getting started. I looked briefly yesterday but haven't found it yet. It's probably outdated, but maybe there's a newer one, at least online. Any suggestions? For something as simple as a 14-input NOR gate, it seems like you shouldn't even have to learn an HDL, being able to just write up the fuse map by hand, similar to the fact that you could type up a Gerber file for an extremely simple PC board by hand in a text editor. And how about programming? Is it practical to make your own programmer instead of spending hundreds of dollars on something you won't use much?

Another possibility would be if someone here who's already into programmable logic would program a few parts for me.

Quote:
If you really need a huge IO space, then skip the rest of the response, but if there are a bank of IO locations that would be heavily used, it seems easy enough to allow the top of [or?] lower half of the 64kB bank (or some smaller chunk to "bleed" into each bank. Flip a bit for bleeding, use the IO, and then flip it out.

I'm not sure I'm totally following you, but I do want the RAM to be contiguous without having to constantly be switch any banking bits for I/O or whatever.

Quote:
You might also be able to alleviate some of the capacitive load on the data and address busses by using BS62LV1605 2Mx8 sram. They are a 5v version of the 3.6v part I’ve used before.

Thanks for the part number. I had never found a 5V 2Mx8 before. It's 55ns though, whereas the 512Kx8's I was looking at are 10ns.

Quote:
With proper bias you should be able to achieve substantially better response as well as using a totem pole output to deal with driving the capacitance

There might be a way to do it with a tiny PC board on a DIP header and using UHF MOSFETs in SOT-23 or similar package. That's going a little further than I think I'm willing to.

Quote:
7ns. You’re pushing this technology pretty far. I think you are running this architecture to its limit.

That's kind of the point, to get as much performance as I can without violating the 6502/816's simplicity. :) There's no particular threshold that's fast enough or not fast enough overall for my use; but the faster I can make it work, the more possibilities it opens up. We know from others having done it that the '816 can work dependably at 20MHz if the glue logic and memory are fast enough and timings such as the '573 latch-enable skew are controlled properly. (I might use a programmable delay line to optimize the 573's LE timing.)

Quote:
Next step for you will be a two-stage memory architecture using a small synchronous block of memory at the processor speed then a larger asynchronous store for ROM, the rest of RAM and I/O. That might be a complicated proposition with the 65Cxxx family though.

One attraction of the 65 family is the level of performance you can get from it without being a computer engineer. I really don't want to fool with memory caches and so on, and I doubt that such a scheme would be compatible with the real-time work I use my workbench computer for.

_________________
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  
 Post subject:
PostPosted: Wed Dec 16, 2009 2:13 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1747
Location: Sacramento, CA
For 16V8 and 22V10 GAL's, the cost would be about $ 45-75 for a programmer from my favorite store (Ebay). You can download WINCUPL from Atmel for free (registration required IIRC).

The download includes some sample logic and it was easy to pick up. I designed a decoder for a Commdore PET using one 16V8. A few years back, I designed a simple SBC aimed at beginners (6502-32k ram - 32k rom - 65c22 - 65c51) using one 22v10. I did not complete the project but do have the CUPL files that I would be glad to share.

For the Xilinx XC9572 (65SPI) and XC95108 (SBC-3) CPLD's, I got lucky on Ebay and got a parallel port JTAG programmer for $25. Xilinx also has free software to compile your logic into the necessary JED files and the programming software is built-in.

Now that I am where I am with these, I cannot imagine going back to 74 series for address decoding. I can point you in the right direction for the programming hardware if you are interested.

Daryl


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Dec 16, 2009 9:14 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10980
Location: England
Sorry for missing (or forgetting) your earlier position statement.

We're using xilinx xc9572 at 5v. The plcc44 10ns part is $7.50 at digikey, or an xc9536 at 7.5ns is $5. The Xilinx software is zero cost and runs fine on linux, optionally from command line.

Describing a combinational circuit in verilog isn't so different from writing equations.

I think a parallel-port programming cable can be made up from spare parts although we got one thrown in with a breakout board from MCUMall (presently out of stock)

Yes, it's overkill for a single gate - although that isn't in itself a disqualifier - but if you can also include the address latch and some other glue, it looks better value. We went for a plcc84 part to be sure to have the pin count to soak up all the glue.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Dec 16, 2009 10:28 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8491
Location: Midwestern USA
BillO wrote:
You might also be able to alleviate some of the capacitive load on the data and address busses by using BS62LV1605 2Mx8 sram. They are a 5v version of the 3.6v part I’ve used before.

They are also relatively slow: 55ns being typical. I think the SRAMs that Garth is planning on using are in the 10-15ns range. Complicating matters is the BS62LV1605 is available in TSOP2 or BGA packages, but not something more hobby-friendly like SOJ.

Quote:
7ns. You’re pushing this technology pretty far. I think you are running this architecture to its limit.

It may be. However, I'm surmising Garth is probably looking at the cumulative gate delay that will sabotage timing when he cranks up the MPU clock. As the '816 can run at 20 MHz (Vcc = 5), that leaves less than 25ns for memory decoding and selection to stabilize. So his desire to get into the single digit nanosecond range is completely understandable. I'm trying to head in that direction as well in a design i am concocting, although I think I'll turn to a CPLD when I get to that point. 74AC' logic can only go so fast...

BTW, who sells a 1N4009? I couldn't find it on any of my usual sources.

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


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Dec 18, 2009 11:08 pm 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1007
Location: Canada
BigDumbDinosaur wrote:
BTW, who sells a 1N4009? I couldn't find it on any of my usual sources.


Don't know off hand. I've got a couple still lying around along with other 1N400x diodes. I usually buy stuff from Actvie Components, Future Electronics or Sayal if I can't get it on eBay. Could have been from any of them.

_________________
Bill


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

All times are UTC


Who is online

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