MEM11 Update

Guy Sotomayor ggs at
Tue Jul 21 11:32:17 CDT 2015

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

More information about the cctalk mailing list