Verilog models of the 1980 catalog of Fairchild FAST (Advanced Schottky TTL) logic, with the data sheet transcription each one was written from.
The models carry data sheet propagation delays in specify blocks, so a design built out of them simulates with something close to the timing of the real parts. Each device below has its data sheet transcribed from the 1980 Fairchild FAST Data Book (supplemented by the 1981 and 1985 books), and most have a matching Verilog module and test bench. Ports are scalar and named after the data sheet pin names, because Icarus Verilog does not fully support multi-bit specify path connections.
74 devices, 58 with models.
mgpr832 — an 8 x 32-bit register file, one write port and two read ports, 119 packages of 74F. The whole card is simulated with data sheet timing, out of a model generated from its KiCad netlist.
| Device | Function | Model |
|---|---|---|
| 74F00 | QUAD 2-INPUT NAND GATE | f00.v |
| 74F02 | QUAD 2-INPUT NOR GATE | f02.v |
| 74F04 | HEX INVERTER | f04.v |
| 74F08 | QUAD 2-INPUT AND GATE | f08.v |
| 74F10 | TRIPLE 3-INPUT NAND GATE | f10.v |
| 74F11 | TRIPLE 3-INPUT AND GATE | f11.v |
| 74F20 | DUAL 4-INPUT NAND GATE | f20.v |
| 74F32 | QUAD 2-INPUT OR GATE | f32.v |
| 74F64 | 4-2-3-2-INPUT AND-OR-INVERT GATE | f64.v |
| 74F74 | DUAL D-TYPE POSITIVE EDGE-TRIGGERED FLIP-FLOP | f74.v |
| 74F86 | QUAD 2-INPUT EXCLUSIVE-OR GATE | f86.v |
| 74F109 | DUAL J/K POSITIVE EDGE-TRIGGERED FLIP-FLOP | f109.v |
| 74F112 | DUAL JK NEGATIVE EDGE-TRIGGERED FLIP-FLOP | — |
| 74F138 | 1-OF-8 DECODER/DEMULTIPLEXER | f138.v |
| 74F139 | DUAL 1-OF-4 DECODER | f139.v |
| 74F151 | 8-INPUT MULTIPLEXER | f151.v |
| 74F153 | DUAL 4-INPUT MULTIPLEXER | f153.v |
| 74F157 | QUAD 2-INPUT MULTIPLEXER | f157.v |
| 74F158 | QUAD 2-INPUT MULTIPLEXER | f158.v |
| 74F160 | SYNCHRONOUS PRESETTABLE BCD DECADE COUNTER | f160.v |
| 74F161 | SYNCHRONOUS PRESETTABLE BINARY COUNTER | f161.v |
| 74F162 | SYNCHRONOUS PRESETTABLE BCD DECADE COUNTER | f162.v |
| 74F163 | SYNCHRONOUS PRESETTABLE BINARY COUNTER | f163.v |
| 74F168 | 4-STAGE SYNCHRONOUS BIDIRECTIONAL COUNTER | — |
| 74F169 | 4-STAGE SYNCHRONOUS BIDIRECTIONAL COUNTER | — |
| 74F175 | QUAD D FLIP-FLOP | f175.v |
| 74F181 | 4-BIT ARITHMETIC LOGIC UNIT | f181.v |
| 74F182 | CARRY LOOKAHEAD GENERATOR | f182.v |
| 74F189 | 64-BIT RANDOM ACCESS MEMORY (WITH 3-STATE OUTPUTS) | f189.v |
| 74F190 | UP/DOWN DECADE COUNTER (WITH PRESET AND RIPPLE CLOCK) | f190.v |
| 74F191 | UP/DOWN BINARY COUNTER (WITH PRESET AND RIPPLE CLOCK) | f191.v |
| 74F192 | UP/DOWN DECADE COUNTER (WITH SEPARATE UP/DOWN CLOCKS) | f192.v |
| 74F193 | UP/DOWN BINARY COUNTER (WITH SEPARATE UP/DOWN CLOCKS) | f193.v |
| 74F194 | 4-BIT BIDIRECTIONAL UNIVERSAL SHIFT REGISTER | f194.v |
| 74F240 | OCTAL BUFFER/LINE DRIVER, INVERTING (WITH 3-STATE OUTPUTS) | f240.v |
| 74F241 | OCTAL BUFFER/LINE DRIVER (WITH 3-STATE OUTPUTS) | f241.v |
| 74F242 | QUAD BUS TRANSCEIVER, INVERTING (WITH 3-STATE OUTPUTS) | f242.v |
| 74F243 | QUAD BUS TRANSCEIVER (WITH 3-STATE OUTPUTS) | f243.v |
| 74F244 | OCTAL BUFFER/LINE DRIVER (WITH 3-STATE OUTPUTS) | f244.v |
| 74F245 | OCTAL BIDIRECTIONAL TRANSCEIVER | f245.v |
| 74F251 | 8-INPUT MULTIPLEXER (WITH 3-STATE OUTPUTS) | f251.v |
| 74F253 | DUAL 4-INPUT MULTIPLEXER (WITH 3-STATE OUTPUTS) | f253.v |
| 74F257 | QUAD 2-INPUT MULTIPLEXER (WITH 3-STATE OUTPUTS) | f257.v |
| 74F258 | QUAD 2-INPUT MULTIPLEXER (WITH 3-STATE OUTPUTS) | f258.v |
| 74F280 | 9-BIT PARITY GENERATOR/CHECKER | f280.v |
| 74F283 | 4-BIT BINARY FULL ADDER (WITH FAST CARRY) | f283.v |
| 74F289 | 64-BIT RANDOM ACCESS MEMORY (WITH OPEN-COLLECTOR OUTPUTS) | f289.v |
| 74F299 | 8-INPUT UNIVERSAL SHIFT/STORAGE REGISTER | — |
| 74F322 | 8-BIT SERIAL/PARALLEL REGISTER WITH SIGN EXTEND | — |
| 74F323 | 8-BIT UNIVERSAL SHIFT/STORAGE REGISTER | — |
| 74F350 | 4-BIT SHIFTER WITH 3-STATE OUTPUTS | — |
| 74F352 | DUAL 4-INPUT MULTIPLEXER (INVERTING) | f352.v |
| 74F353 | DUAL 4-INPUT MULTIPLEXER, INVERTING | f353.v |
| 74F373 | OCTAL TRANSPARENT LATCH (WITH 3-STATE OUTPUTS) | f373.v |
| 74F374 | OCTAL D-TYPE FLIP-FLOP (WITH 3-STATE OUTPUTS) | f374.v |
| 74F379 | QUAD PARALLEL REGISTER (WITH ENABLE) | f379.v |
| 74F381 | 4-BIT ARITHMETIC LOGIC UNIT | — |
| 74F382 | 4-BIT ARITHMETIC LOGIC UNIT | — |
| 74F398 | QUAD 2-PORT REGISTER | — |
| 74F399 | QUAD 2-PORT REGISTER | — |
| 74F500 | 6-BIT ANALOG-TO-DIGITAL FLASH CONVERTER | f500.v |
| 74F521 | 8-BIT IDENTITY COMPARATOR | f521.v |
| 74F524 | 8-BIT REGISTERED COMPARATOR | — |
| 74F533 | OCTAL TRANSPARENT LATCH (3-STATE OUTPUTS) | f533.v |
| 74F534 | OCTAL D-TYPE FLIP-FLOP (3-STATE OUTPUTS) | f534.v |
| 74F537 | 1-OF-10 DECODER (3-STATE OUTPUTS) | f537.v |
| 74F538 | 1-OF-8 DECODER (3-STATE OUTPUTS) | f538.v |
| 74F539 | DUAL 1-OF-4 DECODER (3-STATE OUTPUTS) | f539.v |
| 74F545 | OCTAL BIDIRECTIONAL TRANSCEIVER | f545.v |
| 74F557 | 8-BIT BY 8-BIT MULTIPLIER WITH LATCH | — |
| 74F558 | 8-BIT BY 8-BIT MULTIPLIER | — |
| 74F568 | 4-BIT BIDIRECTIONAL COUNTER WITH 3-STATE OUTPUTS | — |
| 74F569 | 4-BIT BIDIRECTIONAL COUNTER WITH 3-STATE OUTPUTS | — |
| 74F588 | OCTAL BIDIRECTIONAL TRANSCEIVER | f588.v |
Building and testing uses Icarus Verilog, driven by a Makefile:
make build and run every testbench make f00 build and run a single device's testbench make list list the known devices make clean remove build output
A testbench passes by printing TEST PASSED. The Makefile derives the device list from src/*.v, so adding a device needs no edit to it — just the src/<part>.v and tb/<part>_tb.v pair.