Analog Computing Module (ACM)

MTM Scientific, Inc

The MAX Hardware Forth Computer

Figure 1: The MAX Hardware Forth Engine Computer


The Analog Computing Module (ACM) is an analog based computational unit designed to provide mathematical support (similar to an Arithmetic Logic Unit) for a TTL-based 8-bit Forth hardware engine computer.

The homebrew Forth computer is named MAX. This computer consists of a passive backplane with insertable cards for various purposes, such as: Data Stack, ROM Stack, Return Stack, Memory Stack, Clock, Controller, NAND ALU, ACM, Counter, Input, and Output. The MAX Computer is programmed using 32 Forth primitives as machine opcodes. Here is a link to a forum thread with additional information about MAX: ANYCPU.ORG Forum

Our interest in the MAX Computer design was initially focused on the Forth hardware aspects, such as the stacks. The first Arithmetic Logic Unit we incorporated was a simple NAND function using 74LS00 integrated circuits. Later, we added a parallel ALU with FULL ADDER function using 74LS283 integrated circuits. Both ALU designs work well for their purposes. Our original thought was to eventually incorporate a Look-Up ALU, similar to our LALU Single Board Computer Design.

It was around this time that we began to consider the possibility of incorporating ALU functionality using analog circuitry. (We had seen some of the classic analog benchtop computers during our time as an engineering student at the University of Michigan.) Our research returned numerous design resources for analog computing, with much of it from the 1950's and 1960's. For example "Electronic Analog Computers" by Korn, 1956 and "Basic Analog Computation" by Peterson, 1967.   Computers which combine digital and analog computing elements are called Hybrids. There is a modern book on this topic "Analog and Hybrid Computer Programming" by Ulmann, 2023.

Analog Computer Books

Figure 2: Analog Computer Books

Classic analog computing circuits generally use operational ampfliers for integrators, summers, differentiators, etc. Operational amplifiers classically use a split power supply with positive and negative rails. (e.g. +/- 15 V) Our first experiments have focused on identifying useful single-supply integrated circuits. For example, we found the AD557 to be useful as an 8-bit digital to analog converter. The ADC0820 was likewise found to be useful as an 8-bit analog to digital converter. Both of these devices work well from a single +5VDC supply, and they are TTL compatible. We found that switching can be accomplished using the 74HCT4066, a 4-Channel Analog Switch. (Essentially performing the function of 'patch cords' in a classic analog computer.) We designed and tested several PCB cards using these devices separately.

Eventually, we decided to design and build the first prototype of an Analog Computing Module (ACM) for our MAX Computer. The MAX computer is an 8 bit hardware forth engine, constructed using TTL logic, operating at 1 MHZ. The MAX computer does not use a standard CPU. The Controller for MAX consists of 3 custom programmed 27C256 ROMs. This arrangement gives us complete control over the hardware control signals. The Forth primitives are coded into the ROMs as a sequence of hardware operations during a cycle. A cycle consists of 6 rings from a ring counter. The first 2 rings are used for instruction fetch and stack indexing, leaving 4 rings for instruction synthesis.

Analog computers excel at solving Ordinary Differential Equations (ODE), typically involving R/C integrators. For our proof of principle ACM we started with a simple combinatorial analog function which does not involve time. We chose to use an AD633 Multiplier chip to perform high-byte multiplication. (Multiplication of two 8-bit bytes results in a 16-bit word result. High byte multiplication is an approximation, sometimes used in video games. Only the high byte of the product is returned.) The conceptual layout of our ACM Multiplier is shown in Figure 3.  

Multiplier ACM Diagram

Figure 3: Multiplier Analog Computing Module for MAX