Skip to content

glennswest/vax

Repository files navigation

VAX-11/780 FPGA Implementation

Overview

This project implements a VAX-11/780 processor in VHDL for FPGA deployment, capable of running OpenVMS.

Current Status: Version 0.2.0 - Instruction Decoder Expansion Complete

  • ✅ 75+ instructions implemented (37% of VAX ISA)
  • ✅ All 16 addressing modes implemented
  • ✅ Comprehensive decoder architecture
  • ⚠️ 60% ready for OpenVMS boot (operand fetching integration pending)

Architecture

CPU Core

  • Full VAX-11/780 instruction set
  • 32-bit architecture with 16 general purpose registers (R0-R15)
  • PC (R15), SP (R14), FP (R13), AP (R12)
  • PSL (Processor Status Longword) for condition codes and processor state

Memory System

  • Memory Management Unit (MMU) with virtual memory support
  • Page-based translation (512-byte pages)
  • Separate System and Process page tables
  • DDR4/DDR5 interface via Xilinx MIG

I/O System

  • PCIe interface for additional devices (Ethernet, GPU, storage)
  • MASSBUS controller for virtual disk devices
  • UNIBUS controller for peripherals
  • Virtual TTY devices for console

Directory Structure

rtl/
  cpu/           - CPU core (ALU, decoder, execution units)
  mmu/           - Memory Management Unit
  memory/        - Memory controller interfaces
  io/            - I/O controllers and devices
  bus/           - MASSBUS, UNIBUS implementations
sim/
  tb/            - Testbenches
  models/        - Simulation models
doc/             - Architecture documentation
constraints/     - Xilinx constraints files
scripts/         - Build and synthesis scripts

Target Platform

  • Xilinx FPGA (Kintex-7, UltraScale+)
  • DDR4/DDR5 memory
  • PCIe Gen3/Gen4

Development Status

Recently Completed (Version 0.2.0)

  • Instruction decoder expanded from 5 to 75+ instructions (1500% increase!)
  • All 16 VAX addressing modes implemented in vax_addr_mode.vhd
  • Comprehensive opcode decoder in vax_decoder.vhd
  • Improved CPU (vax_cpu_v2.vhd) with proper pipeline
  • All branch instructions (15 conditional branches)
  • Privileged instructions (MTPR/MFPR working)
  • Complete documentation (instruction reference, decoder status, boot ROM design)

Current Priorities

  1. Operand fetching integration - Connect addressing mode decoder to CPU (CRITICAL)
  2. CALLS/CALLG/RET completion - Finish procedure call implementation
  3. Exception handling - SCB lookup and dispatch
  4. Boot ROM implementation - Create initial boot code

See doc/SUMMARY.md for complete status and CHANGELOG.md for detailed changes.

About

See what a modern vax can do with pcie and ddr4. Using fpga and vhdl.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages