Skip to content

Verilog code for CPU BOARD 3202D

Verilog file per schematic sheet

circuit/ holds one Verilog file per sheet. Testbenches are in circuit/sim/ (<file>_tb.v) or in a per-sheet folder (circuit/<SHEET>/); the ones that check themselves are registered in Verilog/tests/run_all_tests.sh.

Page name Sheet Area Verilog Notes
Main PCB
DELILAH TOP LEVEL BLOCK DIAGRAM 1 D3202 ND3202D.v Test
DELILAH TOP LEVEL A PLUG 2 D3202
DELILAH TOP LEVEL B PLUG 3 D3202
DELILAH TOP LEVEL C PLUG 4 D3202
Bus interface
BIF BUS IF 5 BIF BIF_5.v
BIF/BCTL BIF CONTROL 6 BIF BIF_BCTL_6.v
BIF/BCTL/BDRV BUS DRIVERS 7 BIF BIF_BCTL_BDRV_7.v
BIF/DPATH BIF SYNC 8 BIF BIF_BCTL_SYNC_8.v sim/BIF_BCTL_SYNC_8_tb.v
BIF DATA PATH BIF SYNC 9 BIF BIF_DPATH_9.v
BIF/DPATH/BDLBD BIF BD TO LBD 10 BIF BIF_DPATH_BDLBD_10.v sim/BIF_DPATH_BDLBD_10_tb.v
BIF/DPATH/CDLBD BIF CD TO LBD 11 BIF BIF_DPATH_CDLBD_11.v sim/BIF_DPATH_CDLBD_11_tb.v
BIF/DPATH/LBCTL LBD CONTROL 12 BIF BIF_DPATH_LDBCTL_12.v sim/BIF_DPATH_LDBCTL_12_tb.v
BIF/DPATH/PESPEA BIF PES & PEA 13 BIF BIF_DPATH_PESPEA_13.v sim/BIF_DPATH_PESPEA_13_tb.v
BIF/DPATH/PPNLBD BIF PPN to LBD 14 BIF BIF_DPATH_PPNLBD_14.v
CPU
CPU TOP LEVEL 15 CPU CPU_15.v Test
CPU/CS CONTROL STORE 16 CPU CPU_CS_16.v Test
CPU/CS/ACAL MICRO ADDR CALC 17 CPU CPU_CS_ACAL_17.v Test
CPU/CS/CTL CS CONTROL 18 CPU CPU_CS_CTL_18.v Test
CPU/CS/PROM CS PROMS 19 CPU CPU_CS_PROM_19.v Test. CPU_CS_PROM_19_ORG.v is the original Logisim-generated version.
CPU/CS/TCV CS TRANSCIEVERS 20 CPU CPU_CS_TCV_20.v Test
CPU/CS/WCS WRITABLE CTRL STORE 21-22 CPU CPU_CS_WCS_21_22.v Test
CPU/LAPA LA TO PPN BUFF 23 CPU none One line of code in CPU_15.v
CPU/MMU MMU TOP LEVEL 24 CPU CPU_MMU_24.v sim/CPU_MMU_24_*_tb.v
CPU/MMU/CACHE CACHE 25 CPU CPU_MMU_CACHE_25.v sim/CPU_MMU_CACHE_25*_tb.v
CPU/MMU/CSR CACHE STATUS REG 26 CPU CPU_MMU_CSR_26.v Test
CPU/MMU/HIT HIT DETECTION 27 CPU CPU_MMU_HIT_27.v
CPU/MMU/PPNX PPN TO IDB 28 CPU CPU_MMU_PPNX_28.v Test
CPU/MMU/PT PAGE TABLES 29 CPU CPU_MMU_PT_29.v Test, sim/CPU_MMU_PT_29*_tb.v
CPU/MMU/PTIDB PT TO IDB 30 CPU CPU_MMU_PTIDB_30.v Test (2024 note, not re-checked: bidirectional bus not working correctly in Verilator)
CPU/MMU/WCA PPN TO CPN 31 CPU CPU_MMU_WCA_31.v Test
CPU/PROC PROCESSOR TOP LEVEL 32 CPU CPU_PROC_32.v Test
CPU/PROC/CGA CPU GATE ARRAY 33 CPU CPU_PROC_CGA_33.v Test
CPU/PROC/CMDDEC COMMANDS & IDB DECODE 34 CPU CPU_PROC_CMDDEC_34.v Test
CPU/STOC IDB TO CD 35 CPU CPU_STOC_35.v Not used by the board: CPU_15.v does it in one line. The file and sim/CPU_STOC_35_tb.v remain.
Cycle control
CYC CYCLE CONTROL 36 CYC CYC_36.v Test. CYC_CC_D.v and CYC_TERM_D.v copy the next-state logic of PAL_44601B so CYC_36 can make sysclk clock enables.
IO
IO IO TOP LEVEL 37 IO IO_37.v Test
IO/DCD IO DECODING 38 IO IO_DCD_38.v Test. Connects the DGA.
IO/DCD/DGA DECODE GATE ARRAY 39 IO none Directly integrated in sheet 38.
IO/PANCAL PANEL PROC & CALENDAR 40 IO IO_PANCAL_40.v sim/IO_PANCAL_40*_tb.v. PANCAL_68705_CLOCK.v stands in for the MC68705U3 + MM58274 clock path (Verilog/docs/panel-clock-68705.md).
IO/REG IOC, ALD & INR REGS 41 IO IO_REG_41.v Test
IO/UART UART AND IOR REG 42 IO IO_UART_42.v Test
Memory
MEM MEMORY TOP LEVEL 43 MEM MEM_43.v sim/MEM_CHAIN*_tb.v
MEM/ADDR MEM ADDR MUX 44 MEM MEM_ADDR_44.v sim/MEM_ADDR_44_tb.v
MEM/ADEC ADDRESS DECODER 45 MEM MEM_ADEC_45.v sim/MEM_ADEC_45_tb.v
MEM/DATA DATA & PARITY TCV 46 MEM MEM_DATA_46.v sim/MEM_DATA_46_tb.v
MEM/ERROR LOCAL PES & PEA 47 MEM MEM_ERROR_47.v sim/MEM_ERROR_47_tb.v
MEM/LBDIF LOCAL BD CONTROL 48 MEM MEM_LBDIF_48.v sim/MEM_LBDIF_48_tb.v
MEM/RAM LOCAL RAM 49 MEM MEM_RAM_49.v Back ends: MEM_RAM_49_SIM.v (Verilator), MEM_RAM_49_BLOCKRAM.v (FPGA block RAM). sim/MEM_RAM_49_*_tb.v
MEM/RAMC LOCAL RAM CONTROL 50 MEM MEM_RAMC_50.v sim/MEM_RAMC_50_tb.v

PAL_44445B_D.v and PAL_44446B_D.v are sysclk-domain copies of the PALs 44445B (UCADEC) and 44446B (UBADEC): same equations, registers sampled on sysclk with an enable instead of the original clock net.

Test program verification

Screenshot from GTKWave