I have been trying to find the time to start a project with an FPGA for a while and I think I've finally found one. I've messed around with my Digilent FPGA development board but I have never created a full featured standalone application.
I want to take a modern FDC I/O controller and connect it to my Altair with an 8080 processor. I understand the S-100 connections and the operation/connections of the FDC controller. The thing I need advice on is the FPGA in the middle.
I have not completed my research, but I don't think the 8080 is fast enough to keep up with a 1.4MB disk. This is one reason I would need the FPGA, to buffer one sector of data and then handle transmission to the FDC IC.
Another reason I will need an intermediate device (the FDC is 8 bit) is because I want the controller to be compatible with all MITS software. To do this I will need to emulate the simple MITS hard sector disk controller. Understanding the controller is not a problem for me. We have 77 tracks of 32 sectors of 136 bytes (or 138, can't remember off hand). I want to use the disk drive's 80x36x512 and just insert nulls to fill up the unused parts of the sectors. This way the disks can be read/written with a PC. I currently have the Altair booting CP/M off of a 3.5" disk connected to a vintage tarbell board, but its 70k formatted capacity isn't exactly standard (controller thinks its a SS SD 5.25"). ; )
I imagine the best way to handle this is to have an FPGA like the XC3S100E with some VHDL and a micro core??? I want the FPGA to be TQFP at the most for easy at home soldering.
I imagine the micro core would handle initializing and error checking of floppy disk operations. The FPGA or possibly the FPGA and micro would emulate the "fake" disk I/O status bits.
What would the suggested core be for a project like this? If I have a
100,000 gate FPGA running with a 50MHz oscillator, how fast should an average risc core run?I'm trying to figure out what kind of performance I could get out of an FPGA. After describing the project I'm wondering if it would be better to use a hardware micro and a CPLD???
Any tips or pointers to get me start would be appreciated. : )
Thanks, Grant