Skip to content

Commit

Permalink
add project description
Browse files Browse the repository at this point in the history
  • Loading branch information
rolfmobile99 committed Nov 23, 2022
1 parent e67cdef commit 06b423e
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -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!
Expand Down

0 comments on commit 06b423e

Please sign in to comment.