Amiga.org
Amiga computer related discussion => Amiga Hardware Issues and discussion => Topic started by: rkauer on November 15, 2007, 04:11:09 AM
-
Can someone create a replacement chip who eliminates the need for scavenge other Amiga motherboard in order to replace a dead custom chip?
Give the thread a focus: a verilog (or other FPGA chip) to replace a dead Paula (or Gayle, or Buster, etc) in order to fix a decayed motherboard?
-
Clone-A project from Jens Schonfeld is doing exactly what you're asking for. It's definitely possible, but I guess it will cost much more than a replacement Paula or whatever yo ucan get from ebay. In time things could change though.
-
Jens has also stated that those FPGA:s was only deveploped to verify compatibility between Clona-A and a real Amiga 500.
They will never be released as stand alone components but will be integrated into a single FPGA on the Clone-A computer.
-
btw, do some of the custom chips feature mixed analogue and digital circuitry, like audio line drivers? I guess some solutions may require FPGA + opamp etc. Any ideas?
-
Can someone create a replacement chip who eliminates the need for scavenge other Amiga motherboard in order to replace a dead custom chip?
The Minimig source is broken down into its individual chips, so if you wanted to remake an Agnus you would select the agnus.v and it would load in any required modules.
I had a play with this to see if they would fit in CPLD's...
The answer was no :) (a single CIA took up 500 microcells, and that was the smallest chip!)
One interesting thing is there is the design for a scan doubler in the minimig code too, it seems to use internal sram found on the fpga (or makes a fifo buffer) but using external fifo memory its a good start for someone who is interested in making it. (The code uses a second 31khz clock if I remember correctly so you may need a PLL too)
Oh and the Paula on the minimig is a lot more basic than the real paula, so thats the one chip I wouldnt recommend replacing, the minimig code doesnt support the potgo inputs from the two mouse/joystick ports. (and as such would mean the Elbox PS2 mouse adaptor wouldnt work) Also I doubt it has the floppy drive control lines working as they should as he runs that off to a PIC.
Anyway its easy to do, just download the Webpack from Xilinx and the minimig code, select the chip you want to make and press compile.
You may have to do a little bit of mucking around but its easy.
As for making an adaptor board for each Amiga socket and soldering an fpga to it.. that may take longer. :)
-
I believe that the verilog files within MiniMig are only name and function compatible. They are not pin compatible with the real things.
It would have been a bit of a pain to make them pin compatible (Eurgh, TriStates!) and considering they were going inside a single FPGA it was the right call.
Also MiniMig doesnt have the same clock/bus structure as a real Amiga. It merges the fast and chip RAM buses and doubles the clock rate of almost every sub-block.
It will be cheaper and easier to scavenge parts for some time I think.
-
I did some tinkering with this in mind. While if you wanted, you *could* modify the MiniMig's sources to work, it would be a large effort, and a very high cost, as the MiniMig is not identical just "similar enough to work". Huge effort to get it to work.
-
One could possible use an older FPGA like the XC4000 series. That are 5V compatible to replace or at least exploit as a realtime comparision to the real chip for development purposes.
However XC4000 and similar FPGAs are no longer sold. So it's to scavenge old graphics cards :-)
Btw, ATI CrossFire graphics card includes a XC3S400....
http://tinyurl.com/26empk
http://www.tomshardware.tw/940,review-940-9.html
-
I am a little sceptical about this 5v FPGA compatibility issue. I think it is a non-issue. I've seen it quoted in in many MiniMig posts, but if the chip the FPGA is connecting to is TTL 5v (which I think Amiga chips are?) then 3.3v FPGA's will be fine.
I use them in this way at work all the time.
However that is the least of your problems, the functionality of the MiniMig source (to be used for chip replacements) is more of an issue.
-
@alexh:
I/O inputs with a (5-3.3)/.010 = >170 ohm resistor in series?
The absolute maximum rating for any I/O is specified to 4.4 for Spartan-3. So your hack would likely rely on that 5V output is 0.6 volt lower than it's Vcc :-D
I'm going to read floppy discs with fpga (catweasel style) and need to interface the 5V Read-Data signal into the 3.3V FPGA. So I'm open for tips. The current solutions are:
1) Resistor with 2,7V zener in series. 3,3V output over the zener.
2) 74LV logics (or 74HC if I have to). Which is 5V tolerant but will happily deliver 3.3V compatible out.
Part of the problem is that the 1/0 threesholds for 5V and 3,3V are the same. But 5V have another 1,7V "ontop" that needs to be chopped away.
(Maximum for "0" is 0,8V ; Minimum for "1" is 2,0V)
-
All the FPGA inputs I've used have what is described as 5v tolerant I/O and so you can just wire in 5v inputs as normal.
The same applies for 3.3v outputs.
A TTL signal is defined as "low" or L when between 0v and 0.8v with respect to the ground terminal, and "high" or H when between 2v and 5v.
This means that a 3.3v FPGA output should fall within the TTL high voltage range and should just work?
I dont see any need for any extra electronics, but I am not a PCB designer. Our PCB designers here make 3.3v FPGA designs which are just "wired" to 5v TTL chips.
-
Looking at the spartan 3 datasheet, it doesnt have any 5v tolerant I/O like the virtex FPGA's we use. However there is an APPNOTE on how to make them 5v tolerant with a series resistor.
http://www.xilinx.com/support/answers/19146.htm
Outputs should be fine I think as they are between 2v and 5v for TTL, but dont quote me as I'm not a PCB designer.