Hokay people,
Here is one that I'm sure that has come up *way* more often than it probably should have but I'm going to put it out there to see if anyone has got some better suggestions and ideas (yes, I've trolled the inter*not* and generally got more conflicting information than a group of lawyers at a truth conference .... but I digress)
What I want to do is interface a 5v CPU, memory, etc to a 3.3v FPGA (specifically, the processor is a WDC65C02SP which can work at 3.3v but there is other stuff on the bus which can't).
To quantify frequency that I want (vs what I'm happy to start with), I'm trying to work this up to 20MHz eventually - right now, I'm happy with 1Mhz (if I can initially get it play nicely) ... and *before* anyone asks *why* a 6502, lets just say "because" and leave it at that ... (I may post the entire back story if anyone really wants a giggle)...
The parts that are really important is the handling of the data bus (bidirectional) and to a lesser degree the address bus (unidirectional - always *from* the CPU, though I would like to actually try to implement a MMU for the 6502 in the FPGA which is where this is heading and if I can get that to work correctly, I would actually like to implement memory block copy, move, switch etc via a DMA so that would mean that the FPGA would then take over the bus and the address bus would then become bi-direcitonal).
No ... I do *not* want to the implement the 6502 *in* the FPGA ... (I'll pre-empt that question right up front as well) ....
There are a bunch of logic level translators on the market (e.g. TXB0108, 74LVC4245, etc) and here is where my questions start ...
1. Has anyone actually had much experience with actually using these things and how effective are they and what problems have people run into when using them?
2. From my reading of the data books ... err .... data sheets (yeah, really showing my age here), how effective is the automatic direction sensing of say the TXB0108 and how effective is it in determining which direction it *should* be translating from. Is it best to 'trust' these chips to identify the correct direction or is it better to work with those convertors which actually require you to *specify* the conversion direction?
In my example above, I can probably do both, as a the CS (chip-select) line could be used to indicate when the FPGA needs to sit up an pay attention and therefore in that case, when the convertor needs to be pulled from a high-impedence state (i.e. off the relevant busses) by enabling the !OE! line. For directional control, the R/!W! line is probably a good source when logically 'or'd' with the FPGA control lines and that would allow explicit direction control for the data and address busses.
3. Any other 'gotchas' regarding using these things for young (*cough* ... ok that is stretching the truth a bit) players?
Finally, yes, I did see Dave's video on his experience with using them but that may have been implementation specific (my take on it was that he doubled up to increase drive).
4. I've just mentioned the two above. There appears to be quite a few on the market. Any found to be better/worse than the others?
/BGM
OFI