ng_AGC FPGA Version of Apollo Guidance Computer

July 21, 2019 · View on GitHub

The AGC (Apollo Guidance Computer) was a very early computer, designed in 1964, it was the first to use Integrated Circuits and the first modern embedded processor. When I was growing up, about 11 years old, I remember the Apollo program was fascinating to me and I had my eyesglued to the TV for days on end. The Moon landing made such a lasting impression on me that it is why I decided to go to engineering school and get a degree in Electrical Engineering.

Recently I saw a link to John Pultorak’s replica computer he built in tribute to the AGC. I was incredibly impressed with his accomplishment. It is built completely out of discrete TTL IC’s, all in wire wrap, more advanced than what was available in the ‘60’s but old by today’s standards. I think it was a fantastic achievement on his part and I applaud what he did. I also think I understand the retro-tech thinking on his part of using the oldest technology possible. But another retro-tech perspective is to adapt the latest technology to the old (or vice versa). I know that there are a number of efforts around Virtual AGC’s, that is emulators that run on PC’s. These are also very cool. I think a few people have messed around with an FPGA version, but I did not see a lot of work on that front. Also, I just thought it would be a fun and interesting project that would also be a learning experience.

This GitHub repository contains a number of documents which are listed below. There is a project description file under doc.

Directory Tree

FolderDescription
docDocuments
designDesign and diagram files
rtlVerilog code
rtl\de0\agcThe Terasic DE0 version
rtl\de0\modulesThe DE0 version modules
rtl\ng\agcng_AGC Dedicated PCB version
rtl\ng\modulesng_AGC Dedicated PCB version modules
rtl\ng\dskyng_DSKY Dedicated PCB with LCD
srcsource code files
src\ideComplete IDE for the Block I (Borland C++)
src\vt_dskyVirtual DSKY for testing
src\asm\agcColussus code
src\asm\tecoTest and Check out code
pcbPrinted circuit board and schematic files
pcb\agcPCB and schematics for ng_AGC
pcd\dskyDSKY PCB and schematics

Verilog Module List

FileDescriptionFormat
agc.bdfAGC Top Level ModuleBDF
ng_MON.vMonitor ModuleVerilog
ng_CLG.vClock GenerationVerilog
ng_INP.vInput ModuleVerilog
ng_DSP.vDisplay ModuleVerilog
ng_OUT.vOutput ModuleVerilog
ng_SEQ.vSequencer ModuleVerilog
ng_SUB.vSub-sequence decoderVerilog
ng_CPM.vCode Pulse MatrixVerilog
ng_ADR.vAddress decoderVerilog
ng_MEB.vMemory and BufferVerilog
ng_CTR.vCounter ModuleVerilog
ng_INT.vInterrupt handlerVerilog
ng_CRG.vCentral RegistersVerilog
ng_ALU.vArithmetic Logic UnitVerilog
ng_PRM.vPriority Mux BusVerilog