A project I have been working on for a bit; an ISA bus compatible system. The CPU card is basically an '816 with a couple of FPGAs in parallel surrounded by buffers to connect to the ISA bus. I hope to be able to use some of the simpler ISA cards. One FPGA is used as a powerful DMA controller supporting blitter operations, the other FPGA is used as an interrupt controller.
The clock trickery and Video Cards mentioned previously may be part of the project.
Project files are in my Github account (robfinch) under Cores/ISA/ISA65816
ISA65816
Re: ISA65816
I decided to use yet another FPGA module rather than a 6522 to interface to the clock circuit. This gives a couple of serial ports as well and replaces about five chips.
So, I am working on the FPGA circuit for the clock generator, serial keyboard and programmable sound generator. It turns out with two uarts, two parallel ports and a SID-like PSG the FPGA module is only 25% full (2500 LUTs used). It seems like the expensive solution to me. This is for a small FPGA, xc7a15t.
I revised the schematics for the card.
So, I am working on the FPGA circuit for the clock generator, serial keyboard and programmable sound generator. It turns out with two uarts, two parallel ports and a SID-like PSG the FPGA module is only 25% full (2500 LUTs used). It seems like the expensive solution to me. This is for a small FPGA, xc7a15t.
I revised the schematics for the card.
Re: ISA65816
Well, the FPGA module I was planning on using is no longer available. But the next up model is. So the FPGA's are only about 25% utilized. The main issue is there are not enough I/Os on the modules meaning multiple modules are needed.
I developed a PCB for the project which is a 4-layer PCB. I hope it is okay as it has 3 signals layers and a ground plane. I made the power signals double-wide. There was some trouble getting the design to auto-route and I had to route some of it by hand. Routing around the clock synthesizer was nasty as this was a SMT chip. To place the chips the auto-placer was used, then the result was modified. The I/O components needed to be moved to the edge of the board. The whole circuit fits into a medium length ISA card format.
I developed a PCB for the project which is a 4-layer PCB. I hope it is okay as it has 3 signals layers and a ground plane. I made the power signals double-wide. There was some trouble getting the design to auto-route and I had to route some of it by hand. Routing around the clock synthesizer was nasty as this was a SMT chip. To place the chips the auto-placer was used, then the result was modified. The I/O components needed to be moved to the edge of the board. The whole circuit fits into a medium length ISA card format.
Re: ISA65816
Not yet. I am redoing the PCB as a two layer PCB. A four layer board with internal signals has a higher engineering cost. Auto-router has been running about 8 hours now. It is into optimizing the number of vias and trace length, and has managed to route everything using two layers.
In the meantime I developed a graphics adapter for the ISA65816 system. It uses only the eight-bit XT bus signals and responds to the address range $080000 to $0FFFFF. The address range $000000 to $07FFFF is on the CPU card. I am pondering making the adapter compatible so that it could be plugged into an XT system, but some of the color resolution would have to go (to get more pins available).
Schematics for the adapter:
In the meantime I developed a graphics adapter for the ISA65816 system. It uses only the eight-bit XT bus signals and responds to the address range $080000 to $0FFFFF. The address range $000000 to $07FFFF is on the CPU card. I am pondering making the adapter compatible so that it could be plugged into an XT system, but some of the color resolution would have to go (to get more pins available).
Schematics for the adapter:
- GARTHWILSON
- Forum Moderator
- Posts: 8775
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: ISA65816
Rob Finch wrote:
Not yet. I am redoing the PCB as a two layer PCB. A four layer board with internal signals has a higher engineering cost. Auto-router has been running about 8 hours now. It is into optimizing the number of vias and trace length, and has managed to route everything using two layers.
Quote:
I made the power signals double-wide.
The following is from the AC-performance construction page of the 6502 primer:
- For cost-sensitive situations where someone feels limited to a 2-layer board, I frequently see recommendations to make the power traces super wide. This has been very much overemphasized and misunderstood. It's hard to get the myths to die though. Resistance is not the problem, and an .008"-wide (0.2mm) trace can handle 500mA with ease. The real enemy is inductance, and making a trace wider on a 2-layer board with no ground plane has very little effect on its inductance. Doubling the width of a 2"-long trace on 1oz copper, from .010" to .020", only brings the inductance down about 10%, according to this flat-wire (trace) inductance calculator. IOW, it has almost no effect. Wanna go wider? If we widen it from .010" to .050", ie, multiplying the width by five, the reduction in inductance is not even 25%. [...]
So if you're limited to two layers, route a fine grid of ground connections, so there's the least impedance from the ground pin of any one IC to the ground pin of another IC, then get the bypass capacitors connected with the shortest practicable connections from each IC's VDD pin to its ground pin (which might mean putting them on the back of the board, under the IC). Then route all the signals, and then sew-in a VDD grid with the room that's left. An autorouter won't have the intelligence to do a very good job at that; so I would do the ground and VDD connections by hand.
Making the power and ground traces the same width as your signal traces will probably allow you to get a finer grid of them in.
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?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: ISA65816
Got what I was after with this version; an estimate of the cost which turns out to be about 1/3 that of the first version. Still some work to do taking Garth’s excellent advice and laying out the power and ground signaling before auto-routing. One thing I may drop is the frequency synthesizer. I do not think I can solder it and the ‘163 used to control the wait state can be used to divide the clock frequency down too.
Used a trick of making the power signals wider so they can be seen on the PCB viewer. I was curious how well the auto-router could route the power signals.
I may leave the heftier power/ground as I am not sure what the draw of the FPGA modules is. I think they can use up to about 1W depending on the circuit which is 300 mA each at 3.3V. A more realistic estimate may be 200 mW or 60 mA.
Used a trick of making the power signals wider so they can be seen on the PCB viewer. I was curious how well the auto-router could route the power signals.
I may leave the heftier power/ground as I am not sure what the draw of the FPGA modules is. I think they can use up to about 1W depending on the circuit which is 300 mA each at 3.3V. A more realistic estimate may be 200 mW or 60 mA.
Re: ISA65816
Re-designed the VGA graphics adapter card for the ISA65816 computer; schematics shown below.
It should be able to function in an ISA PC system provided the FPGA is appropriately programmed. But its intended purpose to provide video for the ISA65816 computer. I have no intention of working out the hardware for VGA compatibility, but the compatibility is there outside of the FPGA.
The card has almost no glue logic on it, the glue logic and I/O registers are expected to be contained in the FPGA. Enough address lines along with I/O read and write signals are fed to the FPGA to be able to decode the appropriate I/O registers. The adapter may respond to the memory range $0A0000 to $0BFFFF. Output is 11-bit RGB443. There were not quite enough pins for RGB444 output.
An interrupt request output is provided via a single transistor inverter; I did not want to include another chip just for one open-collector inverter. Interrupt may be jumpered to any of the six available interrupt lines.
It should be able to function in an ISA PC system provided the FPGA is appropriately programmed. But its intended purpose to provide video for the ISA65816 computer. I have no intention of working out the hardware for VGA compatibility, but the compatibility is there outside of the FPGA.
The card has almost no glue logic on it, the glue logic and I/O registers are expected to be contained in the FPGA. Enough address lines along with I/O read and write signals are fed to the FPGA to be able to decode the appropriate I/O registers. The adapter may respond to the memory range $0A0000 to $0BFFFF. Output is 11-bit RGB443. There were not quite enough pins for RGB444 output.
An interrupt request output is provided via a single transistor inverter; I did not want to include another chip just for one open-collector inverter. Interrupt may be jumpered to any of the six available interrupt lines.
Re: ISA65816
so to be clear, you are developing a computer, that uses a 65816 as its MPU and has other expansion cards such as video cards etc that use the ISA bus system?
I am also interested in this, in traditional ISA format, as well as through it's derivatives PC/104 and PCMCIA.
Any caveats you are running into?
I am just going for the 8-bit ISA on a 6502 for now.
I have some pics Ill post in another thread, if you have any documentation or references you could share it would be greatly appreciated.
Work in getting 65xx ICs and peripherals to work in ISA, means they (should) work in PC/104 and PCMCIA.
As a PC tech, its something I understand and used frequently, if these chips will work on those busses, Im all for it.
This is really cool Mr Finch, I hope to see more of it and am trying to do the same. Using off the shelf cases and parts simplifies a lot of things.
I am also interested in this, in traditional ISA format, as well as through it's derivatives PC/104 and PCMCIA.
Any caveats you are running into?
I am just going for the 8-bit ISA on a 6502 for now.
I have some pics Ill post in another thread, if you have any documentation or references you could share it would be greatly appreciated.
Work in getting 65xx ICs and peripherals to work in ISA, means they (should) work in PC/104 and PCMCIA.
As a PC tech, its something I understand and used frequently, if these chips will work on those busses, Im all for it.
This is really cool Mr Finch, I hope to see more of it and am trying to do the same. Using off the shelf cases and parts simplifies a lot of things.
Re: ISA65816
ISA on a 65c02 is gonna be a bit difficult. as ISA requires 1MB of Address space, while the 65c02 can only handle 64kB. so you some hardware to bank the ISA bus into a smaller section (like 4kB or 8kB), which of course also makes it much slower.
meanwhile the 65816 can easily handle the whole bus with it's 16MB of Address space.
meanwhile the 65816 can easily handle the whole bus with it's 16MB of Address space.
Re: ISA65816
@Proxy I dont want to derail Mr Finch's thread too much, I made another one here for 6502 ISA considerations.
viewtopic.php?f=4&t=7577
viewtopic.php?f=4&t=7577