Forums - Open Redstone Engineers
Decimal Multiplicative Adder - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: ORE General (https://forum.openredstone.org/forum-39.html)
+--- Forum: Projects & Inventions (https://forum.openredstone.org/forum-19.html)
+---- Forum: In Progress (https://forum.openredstone.org/forum-20.html)
+---- Thread: Decimal Multiplicative Adder (/thread-5539.html)

Pages: 1 2 3 4 5


Decimal Multiplicative Adder - Apocryphan - 01-11-2015

This can add a 2 tick signal with only 6 ticks between each addition, it would've been faster if it weren't for the rapid 5 addition slipping from it's proper carry into a 5,0 pattern. It stacks and chains easily to increase the digits you can multiply. I have a hex version also, but i'm not at home and don't have the new layout memorized like i did this one, the hex version is a little slower (2 ticks i think) but it can easily replace the decimal cell in this to multiply in hexadecimal. The hex version will be nicer for converting to and from binary for those looking to add a multiplication function to their calculator.

[Image: dXvIZAC.png]

Multiplier Clock

[Image: 6sKYnx4.png]

Hopper represents the Input Value, This is just a memory cell that will start subtracting 1 every 6 ticks after you input a value, and it will pulse every time the signal strength falls. I have an alternate version that pulses on the rising signal strength too, so that i can multiply by 16, although it's not necessary since that is more than any hex digit can hold.

The Decimal Adder cell

[Image: mWRgqlq.png]

[Image: rghUAKR.png]

Blue wire is the carry wire, the logic in this is such.

Right Blue: if x >= PLA then, Cancel white wire, subtract PLA from x and add.

Left Blue: if x >= PLA then Reset cell to 10(0 inverted), add one to the carry Ram, the carry ram can hold a full carry of 9 which won't ever happen because you can't fit 10 in a single digit. In hex the full carry happens when multiplied by 16.

[Image: bEJ6uR4.png]

If the input doesn't overtake the PLA then it is just straight up subtracted on the white wire and all is dandy.

[Image: 5YUsZo1.png]

each digit is shifted appropriately, and then I combine the 2 values per digit using the same comparator logic for the carry.

[Image: YrcIhKH.png]


[Image: C6NlNZJ.png]


RE: Decimal Multiplicative Adder - Apocryphan - 01-11-2015

I plan to make a Hex to decimal converter with this, won't be too hard if i use set values for each digit to reflect the value of each hex digit and have the multiplier equal the value of the digit, i'd just be multiplying each digit and then adding them.

edit: nvm just realized how tall that would have to be, the second digit would be as tall as the 2 multipliers and every digit after would need 2 multipliers as well, i may just work on a rollover carry for the carry ram and just setup a clock to input the current multiplier with the first value, followed by 16 x 2nd value, 256 x 3rd value, 4096 x 4th value, my only concern is surpassing the full carry when inputting, so it will take some playing around to make sure it has the capacity for it, or else i can maybe make it rollback and clear the carry before the next hex digit. Just wondering, but which way would you try for? Keep on adding rollover carries until it can keep adding multiplications without worry, or work on a roll back carry and clear after each digit to reset the carry ram.

Another Display of it

[Image: Bipx4WY.png]


RE: Decimal Multiplicative Adder - Phase - 01-11-2015

that's better than my multiplier...

but wait....

do you see it?....

you have a loop... ew....


RE: Decimal Multiplicative Adder - Apocryphan - 01-11-2015

loop? are you refering to the memory cells? or possibly the carry since it has 3 spots it can trigger? and thanks for the compliment.


RE: Decimal Multiplicative Adder - Magic :^) - 01-11-2015

lol i think its reference to how the multiplier is combinational. Cool multiplier btw ^u^


RE: Decimal Multiplicative Adder - Apocryphan - 01-12-2015

Thank you Big Grin the base can be adjusted using the hoppers, I haven't tested it but I'm sure this will go down as low as binary and up to base 15, hexadecimal needed some extra logic wires but i will add that to this post when i get home on an hour, might wait to post until tomorrow after i can wire up the carries so it's ready for copypasta!


RE: Decimal Multiplicative Adder - Apocryphan - 01-12-2015

1 interesting detail i failed to mention is that this can easily be changed to add/multiply in any counting base except hex (requires more logic to get an imaginary number 16 but ive got another design for hex) simply by changing the value in 2 of the hoppers for each adder digit. Base 2 (binary) up to base 15.



[Image: 4jFLvVZ.png]


And here is a Pic of the hex multiplier, not as sleek and compact, and it is actually around 18 ticks per add, so it's almost half the speed too but it can accurately multiply in hexadecimal


RE: Decimal Multiplicative Adder - Apocryphan - 01-15-2015

Got it down to a 4 tick gap without the carry slipping. Also made a subtractive by not inverting the output and disabling the output at 10 for 0

[Image: aZA2PFg.gif]


RE: Decimal Multiplicative Adder - Apocryphan - 01-18-2015

Cut it down to an add every 4 ticks, 2 on 2 off signal. Made an album with more details and extras.

http://imgur.com/a/DJe7o

If i can evenly split a solid signal i can double the input speed by using 2 of them, each taking half the input and combining them after calculated. which would drop it from 36 ticks to 18 ticks for when multiplying by 9.

[Image: lAInqEA.gif]


RE: Decimal Multiplicative Adder - Apocryphan - 01-19-2015

I can evenly split a solid signal into 4 different wires by adding a parallel signal with the wire number, it keeps the value even, going to work on adding the other 12 wires or just splitting the 2 wires and adjusting the wire # decoder for them.

[Image: OH4Lz8s.gif]

[Image: sMe0IzD.gif]

[Image: L4czapJ.gif]

[Image: pPpreYw.gif]