Fig F-1: A KB11-C processor without FPP and one Massbus interface, build around 1976 in SN74Sxx Schottky TTL technology. The w11a core has a similar feature set. See also hi-res jpg, and view on backplane in wire wrap technology. Picture courtesy of Dave McGuire, see also Dave's PDP-11/70 site.
Fig F-2: PDP-11/70 Console with 2 RK05 drives with a UNIX 7th edition system (see disk labels in high resolution jpg). The current w11a systems emulate a similar configuration. Picture courtesy of John Holden. See also John's PDP-11 Site.
Fig F-3: w11a running on a Digilent Nexys2 board. The board is powered over USB. FPGA configuration as well as the rlink connection can be done via the Cypress FX2 USB controller available on the Nexys2. Alternatively, the rlink connection can be done via the RS232 port and a FTDI US232R-100 cable.

The w11a CPU core

The w11a CPU core has a functionality very close to a PDP-11/70 CPU (Model KB11-B or KB11-C) and supports with very few exceptions everything the PDP-11 architecture has to offer:

All fits today easily in a fraction of a modest size low cost FPGA. The original 11/70 CPU was implemented in TTL, see Figure F-1 for comparison.

The I/O System

Project goal was to create a retro-computing platform able to run the historical UNIX systems and other original software. The I/O system is therefore setup to have the same register model and semantics as the original DEC UNIBUS peripherals. To interface this to contemporary I/O hardware all I/O transactions are emulated by a backend server in the following way:

Currently available is a basic set of UNIBUS peripherals which is, apart from the IIST, quite similar to a full configuration of the early '80ties:

Complete Systems

The project holds all the sources to synthesize a complete system. The systems are comprised of

Complete configurations for nine boards are currently part of the project, seven are FPGA verified, two are only simulation verified:

  Name              Board       FPGA      Clk   Mem  --- Resource Usage --- Veri
                                          MHz    kB   flop  luts  slices
  sys_w11a_c7       Cmod A7     XC7A35T    80   672   3107  6216  1884(23%) FPGA
  sys_w11a_as7      Arty S7     XC7S50     75  3840   6585  9837  3250(40%) sim
  sys_w11a_arty     Arty A7     XC7A35T    80  3840   6575  9798  3182(39%) FPGA
  sys_w11a_b3       Basys3      XC7A35T    80   176   2698  5836  1728(21%) FPGA
  sys_w11a_n4d      Nexys4 DDR  XC7A100T   80  3840   6538  9496  3308(21%) sim
  sys_w11a_n4       Nexys4      XC7A100T   80  3840   3148  6227  1982(12%) FPGA
  sys_w11a_n3       Nexys3      XC6SLX16   64  3840   2979  5542  2018(88%) FPGA
  sys_w11a_n2       Nexys2      XC3S1200E  52  3840   2976  8101  5201(59%) FPGA
  sys_w11a_s3       S3board     XC3S1000   50  1024   2782  7873  4942(64%) FPGA

  legacy BRAM only versions
  sys_w11a_br_as7   Arty S7     XC7S50     80   256   2556  5503  1666(20%) sim
  sys_w11a_br_arty  Arty A7     XC7A35T    80   176   2560  5496  1722(21%) FPGA
  sys_w11a_br_n4d   Nexys4 DDR  XC7A100T   80   512   2825  5843  1824(12%) sim

The Digilent Nexys2, Nexys3 and Nexys4 boards have 16 MByte PSRAM (mt45w8mw16b) of which only 4 MByte, the maximum a PDP-11 can address, are used. The Digilent Cmod A7 has a 512 kByte SRAM (is61lv25616), which is extended by 160 kByte from BRAM. The Digilent S3board has 1 MByte SRAM (is61lv2561). The Digilent Basys3 has no memory external to the FPGA. The memory seen by the w11a core is build from BRAMs, with a total size of 176 kB. The DDR memory on the Digilent Arty A7, Arty S7, and Nexys4 DDR is now supported. In addition, designs which use only the BRAMs are provided and offer limited memory visible to the w11a core.

System Configuration

All systems have the following configuration for the UNIBUS peripherals:

  Controller Name                    CSR  VEC PRI    Device Names
                                                     BSD     DEC
  IIST    MP interrupt/timer      177500  260  6     -       -         optional
  KW11-P  programmable clock      172540  104  6     -       -
  KW11-L  line frequency clock    177546  100  6     -       -
  RL11    disk controller         174400  160  5     rlxh    DLx:      (x=0..3)
  RK11    disk controller         177400  220  5     rkxh    DKx:      (x=0..7)
  RH/RP   disk controller         176700  254  5     xpxa    DBx:,DRx: (x=0..3)
  TM11    tape controller         172520  224  5     mt      MTx:      (x=0..3)
  DEUNA   ethernet interface      174510  120  5     de 0    XE0:
  DL11    console                 177560  060  4     cn 0    YL0:
  DL11    2nd console             176500  300  4     ttyl 1  YL1:
  PC11    papertape read/punch    177550  070  4     -       PP:,PR:
  LP11    line printer            177514  200  4     lp 0    LP:

  devices yet to be implemented:
  DZ11    terminal interface      160130  330  5     tty *   YZx:      (x=0..7)
  CR11    card reader             177160  230  6     -       CR:
  DU11    synchronous interface   160040  310  5     -       XU:
  DMC11   interprocessor link     160110  320  5     dmc     XM: