Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
First new vax in ...30 years? :-)
Hi,
some time ago I ended up in an architectural discussion (risc vs cisc
etc...) and started to think about vax.
Even though the vax is considered the "ultimate cisc" I wondered if its
cleanliness and nice instruction set still could be implemented
efficient enough.
Well, the only way to know would be to try to implement it :-) I had an
15-year-old demo board with a small low-end FPGA (Xilinx XC3S400), so I
just had to learn Verilog and try to implement something. And it just
passed EVKAA.EXE:
>FR00000000 200
>G
EVKAA V10.4 Hardcore Instruction Test
Hit any key to continue
EVKAA V10.4 pass # 1(X) done!
EVKAA V10.4 pass # 19(X) done!
EVKAA V10.4 pass # 32(X) done!
EVKAA V10.4 pass # 4B(X) done!
EVKAA V10.4 pass # 64(X) done!
EVKAA V10.4 pass # 7D(X) done!
EVKAA V10.4 pass # 96(X) done!
EVKAA V10.4 pass # AF(X) done!
EVKAA V10.4 pass # C8(X) done!
EVKAA V10.4 pass # E1(X) done!^C
Input breakpoint: 000000001
>
(the microcode console works like the Nova4 microcode console - simpler
to implement than the VAX style...)
It runs at 50MHz, but could easily be increased to about 80, just to
program DCM.
Photo of the "vax": https://www.ludd.ltu.se/~ragge/pics/IMG_0837.jpg
I had to get a new FPGA board, since I started to get bit errors on the
old one, so I bought a chinese board with essentially the same FPGA
(XC3S500E):
I have implemented all addressing modes, the interrupt hierarchy,
timers, and 151 instructions.
No memory management yet though, but that should be quite straight-forward.
Currently it uses about 70% of available FPGA resources, which is around
6000 LUTs (which is quite inefficient implemented, since I have learned
how to do verilog programming while writing the code...)
I'll follow up this mail with two more, one about the implementation and
one about how to go forward with the vax architecture :-)
-- R
Home |
Main Index |
Thread Index |
Old Index