Author Topic: Apollo Guidance Computer based in NOR gates  (Read 1910 times)

0 Members and 2 Guests are viewing this topic.

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Apollo Guidance Computer based in NOR gates
« on: February 20, 2026, 03:05:50 pm »
According to Wikipedia, the Apollo capsule's on-board computer was built with approximately 2800 integrated circuits of (mostly dual) three-input NOR gates using RTL technology.

Does anyone know how a CPU could be built using only three-input NOR gates?

https://en.wikipedia.org/wiki/Apollo_Guidance_Computer
https://en.wikipedia.org/wiki/Resistor%E2%80%93transistor_logic
« Last Edit: February 20, 2026, 03:10:40 pm by Picuino »
 

Online TimFox

  • Super Contributor
  • ***
  • Posts: 11867
  • Country: us
  • Retired, now restoring antique test equipment
Re: Apollo Guidance Computer based in NOR gates
« Reply #1 on: February 20, 2026, 03:31:25 pm »
Simple-minded answer:
Any logic function can be made from only NOR gates (or only NAND gates).
The inversion is necessary for either case to make all binary functions.
 

Offline iMo

  • Super Contributor
  • ***
  • Posts: 6883
  • Country: li
Re: Apollo Guidance Computer based in NOR gates
« Reply #2 on: February 20, 2026, 03:53:12 pm »
The guys at CuriousMarc mess with it for 7 years already.. :)
In the Part #23 they were already flying it..

« Last Edit: February 20, 2026, 04:01:38 pm by iMo »
Readers discretion is advised..
 

Offline UnijunctionTransistor

  • Frequent Contributor
  • **
  • Posts: 471
  • Country: us
  • Ohms Law: Resistance is futile.
Re: Apollo Guidance Computer based in NOR gates
« Reply #3 on: February 20, 2026, 05:19:20 pm »
Perhaps 15 years ago, I found a website which actually had some AGC schematics.
Really fascinating and artistic looking stuff. I even had one displayed as the wallpaper on my personal computer.

Let me see if I can find them again.

EDIT: found the web page. Study them and you'll appreciate the engineering tour de force that the Apollo program was.

https://klabs.org/history/ech/agc_schematics/
« Last Edit: February 20, 2026, 05:26:31 pm by UnijunctionTransistor »
 
The following users thanked this post: I wanted a rude username, Picuino

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #4 on: February 20, 2026, 07:07:48 pm »
What a mess of wires and logic gates!
I can see several feedback NOR gates, which form flip-flops and, I imagine, latches from them.

I seem to recall that the 8008 microprocessor had only 3500 transistors, another small miracle of technology: https://en.wikipedia.org/wiki/Intel_8008

I will have to read a book on microprocessor architecture to get an idea of how to build a CPU from logic gates, latches, and so on.
« Last Edit: February 20, 2026, 07:19:29 pm by Picuino »
 

Offline cfbsoftware

  • Regular Contributor
  • *
  • Posts: 172
  • Country: au
    • Astrobe: Oberon IDE for Cortex-M and FPGA Development
Re: Apollo Guidance Computer based in NOR gates
« Reply #5 on: February 21, 2026, 12:20:01 am »
I will have to read a book on microprocessor architecture to get an idea of how to build a CPU from logic gates, latches, and so on.
I recommend the book "Digital Circuit Design" by Niklaus Wirth. You can download the table of contents from:

https://link.springer.com/book/10.1007/978-3-642-57780-2
Chris Burrows
CFB Software
https://www.astrobe.com
 
The following users thanked this post: Picuino

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #6 on: February 21, 2026, 08:21:55 pm »
Digital Circuit Design for Computer Science Students - Niklaus Wirth

Perfect book! The book is short and introduces all types of circuits gradually, building up to explaining how to make a elementary computer with them all in chapter 8.

1. Transistors and Gates
1.1. Gates with Bipolar Transistors ............................................ 1
1.2. Gates with Field Effect Transistors ...................................... 5
1.3. Electrical Characteristics of Gates ....................................... 8

2. Combinational Circuits
2.1. Boolean Algebra .................................................................. 13
2.2. Graphical Notations ........................................................... 15
2.3. Circuit Simplification ......................................................... 15
2.4. The Decoder or Demultiplexer .......................................... 19
2.5. The Multiplexer ................................................................... 21
2.6. The Adder ............................................................................ 21
2.7. The Adder with Fast Carry Generation ............................. 25
2.8. The Multiplier ..................................................................... 27
2.9. The Read-Only Memory (ROM) ........................................ 28
2.10. The Combinational PLD .................................................... 31
2.11. The Programmable Gate Array ......................................... 34
2.12. Dynamic Behaviour of Combinational Circuits ............... 36

3. Latches and Registers
3.1. The SR-Latch ....................................................................... 39
3.2. The D-Latch ......................................................................... 41
3.3. The D-Register .................................................................... 43
3.4. The JK Register ................................................................... 46

4. Synchronous, Sequential Circuits
4.1. The State Machine .............................................................. 50
4.2. The Shift Register ................................................................ 52
4.3. The Synchronous Binary Counter ..................................... 53
4.4. A Design Methodology for State Machines ...................... 55
4.5. The PLD and the FPGA with Registers ............................. 60
4.6. Timing and Practical Considerations ............................... 62

5. Bus Systems
5.1. The Concept of a Bus .......................................................... 65
5.2. The Open-Collector Circuit ............................................... 66
5.3. The Tri-state Gate ............................................................... 68

6. Memories
6.1. Static Memories .................................................................. 71
6.2. Dynamic Memories ............................................................ 74
6.3. Dual-Port Memories ........................................................... 76

7. Formal Description of Synchronous Circuits
7.1. Motivation ........................................................................... 79
7.2. Lola: A Formal Notation for Synchronous Circuits ......... 81
7.3. Examples of Textual Circuit Descriptions ........................ 90

8. Design of an Elementary Computer
8.1. The Design of von Neumann ............................................. 95
8.2. Choice of a Specific Architecture ...................................... 98
8.3. The Arithmetic-Logic Unit (ALU) ................................... 100
8.4. The Control Unit ............................................................... 102
8.5. Phase Control and Instruction Decoding ....................... 104
8.6. An Implementation Using Standard Parts ..................... 107
8.7. Interrupts ........................................................................... 112

9. Multiplication and Division
9.1. Multiplication of Natural Numbers ................................ 118
9.2. Division of Natural Numbers .......................................... 122
9.3. Extending the ALU by a Multiplier-Quotient Register .. 126

10. Design of a Computer Based on a Microprocessor

11. Interfaces Between Asynchronous Units
11.1. The Handshake Protocol.................................................. 139
11.2. Processor-Bus Interfaces .................................................. 142
11.3. Adding an I/O Interface to the Hercules Computer ...... 144

12. Serial Data Transmission
12.1. Introduction ...................................................................... 147
12.2. Synchronous Transmission ............................................. 148
12.3. Asynchronous Transmission ........................................... 154
12.4. A Buffered Transmitter and Receiver ............................. 164
« Last Edit: February 21, 2026, 08:28:27 pm by Picuino »
 

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #7 on: February 21, 2026, 08:25:48 pm »
But how on earth could they make a bus (with tri-state outputs) using only NOR gates?
 

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #8 on: February 21, 2026, 08:46:28 pm »
Interesting project:

Build an 8-bit computer from scratch
https://eater.net/8bit

 

Offline pqass

  • Super Contributor
  • ***
  • Posts: 1161
  • Country: ca
Re: Apollo Guidance Computer based in NOR gates
« Reply #9 on: February 21, 2026, 09:27:07 pm »
But how on earth could they make a bus (with tri-state outputs) using only NOR gates?

They probably use open collectors; ie. not connecting the pullup resistor to Vcc on the NOR chip (see dark-tipped NORs in the schematic).
« Last Edit: February 21, 2026, 09:30:53 pm by pqass »
 

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #10 on: February 21, 2026, 09:39:42 pm »
That's right! RTL logic is based on a pull-up resistor that can be left unconnected to Vcc if you want.

All of this is quite handcrafted.
« Last Edit: February 21, 2026, 09:43:45 pm by Picuino »
 

Offline pqass

  • Super Contributor
  • ***
  • Posts: 1161
  • Country: ca
Re: Apollo Guidance Computer based in NOR gates
« Reply #11 on: February 22, 2026, 04:33:22 am »
Quote
What a mess of wires and logic gates!

Zoom out, way out.
First understand the high-level architecture. See attached for an example.

You will see that there is a common bus with latch or buffer blocks taking a snapshot of the bus or placing a byte on it, respectively.
Each block has a control pin for LOAD and/or OE (like a '373 or a '244) and sometimes CLEAR.
The ALU is just combinational logic (gates like a '181; no clocked flip flops) with additional pins to select function (add, shift, neg, etc) and OE.
All of these control pins terminate at the wide data bus of the microcode ROM inside the Control Unit (however many data pins as latch+buffer control pins plus additionals).
The instruction register (IR) supplies the most significant address bits of the microcode ROM. 
The clock sequentially steps through the microcode ROM addresses however many steps to advance a finite state machine ({en|dis}abling latches and/or buffers to affect data movement). 

For example, see below for an implementation of:
  opcode = 0, no operation/fetch next instruction, and
  opcode = 16, move C into the accumulator and add 1
(IR+SUBADDR is the full address of the microcode ROM, the rest of the line are the data bits affected at that address)
Code: [Select]
IR=0 SUBADDR=0: PC.OE=T, MAR.LOAD=T, MAR.OE=T, MEM.CE=T, MEM.RD=T; all other data bits=F    // tee-up a MEM address to fetch MEM data
IR=0 SUBADDR=1: MEM.OE=T, IR.LOAD=T; all other data bits=F                                  // after MEM data returns one clock later, put it in IR
IR=0 SUBADDR=2: PC+1.OE=T, PC.LOAD=T; all other data bits=F                                 // update PC with the PC+1 register; latter is updated whenver PC.LOAD=T
IR=0 SUBADDR=3: IR.OE=T; all other data bits=F                                              // execute the new opcode in IR by jumping into the new IR+SUBADDR=0 in the microcode ROM
...
IR=16 SUBADDR=0: C.OE=T, Acc.LOAD=T, ALU.func=1111 (A+1 function); all other data bits=F    // move C to Acc and add 1
IR=16 SUBADDR=1: ALU.func=1111 (A+1 function), ALU.OE=T, Acc=LOAD; all other data bits=F    // move the ALU output (Acc+1) back into Acc
IR=16 SUBADDR=2: IR.CLEAR=T, IR.OE=T; all other data bits=F                                 // execute IR=0 which fetches new instruction byte from memory
...

I hope you get the gist.
Now translate all the latches, buffers, counters, gates into NOR logic, then into RTL!
 
The following users thanked this post: Picuino

Offline pqass

  • Super Contributor
  • ***
  • Posts: 1161
  • Country: ca
Re: Apollo Guidance Computer based in NOR gates
« Reply #12 on: February 22, 2026, 07:32:28 am »
For the AGC specifically, see this slide presentation for a good summary.
The detailed info can be found in this book. But a PDF can be found in the wild.

The closest to the AGC CPU achitecture diagram I've found is "Logical overview" on page 15 of the presentation above.
The CPU is a bit of a dogs breakfast; memory bank switching, one's complement, no stack (not sure), etc.
« Last Edit: February 22, 2026, 08:16:38 am by pqass »
 
The following users thanked this post: Picuino

Offline cruff

  • Regular Contributor
  • *
  • Posts: 116
  • Country: us
Re: Apollo Guidance Computer based in NOR gates
« Reply #13 on: March 04, 2026, 12:21:06 am »
I highly recommend this book about the AGC development (both hardware and software): Journey to the Moon: The History of the Apollo Guidance Computer by Eldon C. Hall. (https://www.amazon.com/Journey-Moon-History-Guidance-Computer/dp/156347185X)
 
The following users thanked this post: Picuino

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 6395
  • Country: nz
Re: Apollo Guidance Computer based in NOR gates
« Reply #14 on: March 04, 2026, 03:45:56 am »
According to Wikipedia, the Apollo capsule's on-board computer was built with approximately 2800 integrated circuits of (mostly dual) three-input NOR gates using RTL technology.

Does anyone know how a CPU could be built using only three-input NOR gates?

Note that the Cray 1 used only logic chips with two NOR gates, one with 5 inputs and one with 4 inputs. And two different kinds of SRAM chips, one for registers and one for main memory.

It's kind of interesting that textbooks concentrate more on NAND gates.
 

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #15 on: March 04, 2026, 08:35:58 am »
« Last Edit: March 04, 2026, 08:39:14 am by Picuino »
 

Offline harerod

  • Frequent Contributor
  • **
  • Posts: 553
  • Country: de
  • ee - digital & analog
    • My services:
Re: Apollo Guidance Computer based in NOR gates
« Reply #16 on: March 21, 2026, 06:59:41 pm »
But how on earth could they make a bus (with tri-state outputs) using only NOR gates?
The AGC may not be the best system to get started with tricky designs. Sir Clive also showed a tricky/cheap way to glue devices together in the ZX Spectrum. 
. . . At any rate, looking at those AGC schematics makes the reason why NASA had to put Clint Eastwood's gang of oldtimers into orbit outright plausible. ("Space Cowboys", one of my guilty pleasures)
 

Offline amyk

  • Super Contributor
  • ***
  • Posts: 9164
Re: Apollo Guidance Computer based in NOR gates
« Reply #17 on: March 24, 2026, 04:05:08 am »
It's kind of interesting that textbooks concentrate more on NAND gates.
That's because NAND is preferred in CMOS designs: https://electronics.stackexchange.com/questions/110649/why-is-nand-gate-preferred-over-nor-gate-in-industry
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 6395
  • Country: nz
Re: Apollo Guidance Computer based in NOR gates
« Reply #18 on: March 24, 2026, 04:47:31 am »
It's kind of interesting that textbooks concentrate more on NAND gates.
That's because NAND is preferred in CMOS designs: https://electronics.stackexchange.com/questions/110649/why-is-nand-gate-preferred-over-nor-gate-in-industry

My textbooks (and university digital logic study) are from a time when CMOS existed but no one used it because 4000 series was WAY slower than 74LS.

And, as mentioned, both Apollo GC and Cray 1 used exclusively NOR gates.

Something that always makes sense, in a lesson/textbook environment is that it is conventional to design a lot of kinds of non minimised logic as a "sum of products" with a set of AND gates followed by a single OR gate to work with all the cases where the output is 1, and you can just replace them all with NAND and it works. If you wanted to use NOR gates then you'd be working with minterms (times when the output is low) not maxterms, and this seems less common.
« Last Edit: March 24, 2026, 05:02:16 am by brucehoult »
 

Online TimFox

  • Super Contributor
  • ***
  • Posts: 11867
  • Country: us
  • Retired, now restoring antique test equipment
Re: Apollo Guidance Computer based in NOR gates
« Reply #19 on: March 24, 2026, 03:02:56 pm »
Original TTL and older DTL NAND structures were perhaps simpler to fabricate than NOR.
AOI (and-or-invert) TTL was also common.
 

Offline radiogeek381

  • Regular Contributor
  • *
  • Posts: 140
  • Country: us
    • SoDaRadio
Re: Apollo Guidance Computer based in NOR gates
« Reply #20 on: May 16, 2026, 06:18:39 pm »
I know, I'm reviving this well after its "best if used by" date.   

Quote
Something that always makes sense, in a lesson/textbook environment is that it is conventional to design a lot of kinds of non minimised logic as a "sum of products" with a set of AND gates followed by a single OR gate to work with all the cases where the output is 1, and you can just replace them all with NAND and it works. If you wanted to use NOR gates then you'd be working with minterms (times when the output is low) not maxterms, and this seems less common.

That's likely true, but it isn't wasn't necessary.  I worked for a very long time in a design environment where mixed level logic was the standard practice. In that case, the circuit that is in the data book as a 2 input NOR functions as an OR gate with active high inputs and an active low output, or an AND gate with active low inputs and active high output.  (The idea is to make the mapping from T,F onto voltage levels a matter of choice. We indicated which representation was used by a _H suffix (T = H, F = L) or a _L suffix (T = L, F = H) on the signal name. )  Logical complement doesn't use any transistors - if an active high signal is connected to a bubble, then the logic sense is inverted.

I started designing this way in 1983 and haven't had to think about DeMorgan since then. It also made schematics much easier to understand and review: the pointy-boats and dull-boats actually say what they mean. (In full-custom, no synthesis design, schematic reviews were really important. Just because the simulator says it works doesn't mean it will.)

https://peer.asee.org/a-case-for-teaching-mixed-logic-in-digital-design.pdf is a very brief treatment, not as clean as I'd like, but serviceable. I taught from William Fletcher's text.

So, in the end, hardware components need not influence the choice of sum-of-products vs. product-of-sums.

But this is largely irrelevant in today's world of "write the verilog/vhdl and let cacence/synopsis/whoever sort it out."  Probably for the better.
 
The following users thanked this post: UnijunctionTransistor

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1458
  • Country: es
    • Picuino
Re: Apollo Guidance Computer based in NOR gates
« Reply #21 on: May 23, 2026, 02:30:53 pm »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf