Skip to content

glennswest/vax

Folders and files

NameName
Last commit message
Last commit date

Latest commit

00b2546 · Oct 25, 2025

History

29 Commits
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025
Oct 25, 2025

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

6 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

No packages published

Languages