From 06b423ebabfef1dfddf62f59e9ba50cb0bd36e22 Mon Sep 17 00:00:00 2001 From: rolf widenfelt Date: Wed, 23 Nov 2022 01:42:20 -0800 Subject: [PATCH] add project description --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index 2677610c..bed07e19 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,28 @@ ![](../../workflows/gds/badge.svg) ![](../../workflows/docs/badge.svg) ![](../../workflows/test/badge.svg) +# Project Description +This project is a rather simplified 4-bit ALU inspired by the 2022 Supercon Badge. +The challenge was to do this within the constraints of the Tiny Tapeout submission. + +A typical 4-bit ALU needs 12 pins just to handle the two input ports and an output port. +Additional pins would be needed for control. It might also have outputs for a carry-out +and a zero-detect. So it's easy to imagine a need for at least 10 inputs (assuming 2 input pins to control the ALU mode) +and 6 outputs (assuming an ALU result, carry-out, and a zero-detect). + +Tiny Tapeout (TT02) is limited to 8 inputs and 8 outputs! + +To work around these constraints, we surround the ALU with some registers. +There is an A register and a B register for the A and B inputs of the ALU. +There is also a Mode register to set the ALU mode (i.e. add or subtract). +We then add a state machine to allow selectively loading those registers. +However, the output of the ALU goes directly to the chip-designated outputs. + +Currently, only two ALU operations are supported, ADD and SUB. + +That's it! + +===== + # What is Tiny Tapeout? TinyTapeout is an educational project that aims to make it easier and cheaper than ever to get your digital designs manufactured on a real chip!