On 7/21/15 6:25 AM, Noel Chiappa wrote:
It was interesting to re-read your original message; I
and a couple of other
people are looking into doing a QBUS card to provide access to modern
non-volatile storage (SD cards, USB thumb drives), and in discussing the
internal design, we'd planned on an FPGA, and a separate micro-controller.
Your concept to have the 'micro-controller' _in_ the FPGA is interesting! The
only problem, from our point of view, is the 'limited' number of FPGA pins
(the QBUS interface alone is ~50 pins) - at least, without going to a BGA
part, which we view as undesirable.
The Xylinx Spartan 3E in a TQFP package has 144
pins and it's *just*
enough for the Unibus
and talking to the other peripherals. I haven't looked, but I think the
Unibus and QBus are
comparable in terms of pin count. I *did* have to make some compromises
(ie the DUART
is connected through SPI...couldn't afford the pins for the modem
controls unless I did that).
Everything
related to the basic simulator also seems to be functional.
I'm curious as to your reasoning in doing a custom simulator (OK, it's all
fun :-). I do understand having _a_ simulator (writing all the software
involved on the card will be much easier if you don't have to deal with a
flaky/new hardware), but since the J1 is in the FPGA, couldn't you just use
the FPGA simulator? Or is it too slow to emulate a good-sized J1 program?
The J1
doesn't have any exceptions or other debugging aids. I wrote the
simulator to be
timing accurate from the J1's perspective (so that I could check timings
and such) and that I
could single step the J1, set breakpoints, examine memory and do
instruction tracing.
It's also my behavioral model for the Verilog code in the FPGA. So
before I commit to a lot
of Verilog code, I know how it will behave and how hard it is to write
the firmware. The
approach that I'm taking is that as much as possible is being written in
forth. It's only if it
will be too slow or too much code to implement a function, will I put it
into Verilog. For example,
unless I find some egregious timing problem, most of the Unibus
transactions are written
in F/W. I'm leaving the Verilog for handling the lowest level details.
TTFN - Guy