08-15-2013, 01:55 PM
(This post was last modified: 08-15-2013, 01:56 PM by Cutlassw30.)
For a while I have been needing a 16 bit adder for a von neumann CPU I will be making. One issue, I hate pistons. So I needed some type of solid state 16 bit adder. Ripple carry was out of the question (even at 1 tick per bit). Block ripple carry look ahead and Carry block look ahead are good ideas but are also a tad too slow for my tastes (around 8-10 ticks). So CLE right? well turns out 16 bit CLE is not fun at all and also CLE is a completely difference form factor than im used to working in. So I said ok I will make CLA, LFA to be exact. Well that too was too slow as LFA has 2 tick BK cells (2 ticks is as fast as you can get a pure BK cell). So I started looking at PLA (Proper Lookahead Adder, named by properenglish as he published it first on youtube). Now I knew it was 4 ticks for 8 bits but I got worried about about 16 bits. So I researched it a bit (started messing around on my plot) And I figured it would only be 1 more tick for 16 bits. That's 5 ticks in total so I started out on a adder adventure. And this is the result.
Size:
per bit size: 2 wide per bit.
L*W*H: 32*36*13
Specs:
Type: Parallel prefix binary addition module.
Speed: 1/2 second (5 ticks).
Throughput: 3 hz (3 ticks).
Word size: 16 bits
Cin and cout?: Yes
Clock type: Asynchronous
Output noise: Mid zero
Sync execution: Yes
One thing to note this adder has a noisy output, that means that will give 4 output states. zero, High, low, mid zero.
Mid zero just means that the output signal is slightly on, this is no issue as its only 3 blocks. These blocks are taken into account in the Length
measurement.
But anyways who am I stalling? pictures!
-Cutters
Size:
per bit size: 2 wide per bit.
L*W*H: 32*36*13
Specs:
Type: Parallel prefix binary addition module.
Speed: 1/2 second (5 ticks).
Throughput: 3 hz (3 ticks).
Word size: 16 bits
Cin and cout?: Yes
Clock type: Asynchronous
Output noise: Mid zero
Sync execution: Yes
One thing to note this adder has a noisy output, that means that will give 4 output states. zero, High, low, mid zero.
Mid zero just means that the output signal is slightly on, this is no issue as its only 3 blocks. These blocks are taken into account in the Length
measurement.
But anyways who am I stalling? pictures!
-Cutters