03-04-2014, 08:38 PM
(This post was last modified: 03-04-2014, 09:43 PM by scrounchtike.)
Minecraft name: Scrounchtike
What do you like the most about redstone?:
I like a lot of things about redstone, but the main thing is probably the phenomenal amount of things we can make, like computers, games or ALUs! I also like the fact that with redstone, things can get very complicated, like CLE or line drawers.
What's a thing you have made which demonstrates redstone knowledge?:
I have made a lot of things in redstone which I am proud of, like BIN to BCD decoders or BCD to BIN decoders!(I like BCD ) But, what I choose is an ALU using ICA.
What does the thing do?:
It's an ALU with an ICA adder, which means instant carry adder, therefore the carry is a bit different from RCA. It can add and do all basics functions like !A and !B(therefore i can subtract), OR, AND, NOR, NAND, XOR, XNOR.
It works very similarly to a RCA adder, but, instead of XORs, we use XNORs. That doesn't affect the final output because 2 not are canceling each others.
Now about the carry: in a normal adder, the COUT is the OR of the AND of the first XOR and the AND of the second XOR. Therefore, it carries when both inputs are on, or when 1 input is on with a CIN.
In ICA, it's almost the same thing; first we AND the two bits of the full adder, if both are on, then we carry.
The second part is a bit weird… First, its important to know that, in ICA, the CIN of the first full-adder, is the same wire as the last full-adder… It means that, if i would to input a CIN in the first full-adder, it would also do CIN for all the other bits. BUT, what keeps the first CIN to do that, (because we obviously don't want that) is pistons blocking the wire. Let me explain, when I input CIN in the first full-adder, it won't carry to all the other bits because there's pistons blocking the wire. Now, that piston can let the signal flow sometimes: All the pistons(each bit has a piston) are powered by the propagate of the first XNOR of the bits. Because it's a XNOR, the propagate is on by default(no inputs on) meaning that the piston cuts the CIN from carrying. But when theres one input on in the XNOR, the propagate is off, so that the piston isn't blocking the CIN from carrying anymore…
Now what does that do in the end? Lets see: if I input 1+1, easy, the AND carries to the next bit… But now, what if I input 1+0+CIN? First, the AND of the first XNOR isn't going to carry, so the propagate of the first XNOR is going to be off(because only one input on). Because the propagate is off, the piston isn't blocking the CIN, which means that we have a carry: the CIN of this full-adder, is also the COUT! And finally, because the last XNOR has only one input on(the CIN), its propagate is off. The answer of 1+0+CIN = 10.
I hope that you understand this big explanation…
Image from imgur.com:
I'm not sure if the link is going to work, also, the first 3 pictures are the same, sorry about that.
http://imgur.com/0KvPpcA,P6Dx1sB,Xy4t69T...,WhQhEMx#2
Do you agree with the rules?: I do
What do you like the most about redstone?:
I like a lot of things about redstone, but the main thing is probably the phenomenal amount of things we can make, like computers, games or ALUs! I also like the fact that with redstone, things can get very complicated, like CLE or line drawers.
What's a thing you have made which demonstrates redstone knowledge?:
I have made a lot of things in redstone which I am proud of, like BIN to BCD decoders or BCD to BIN decoders!(I like BCD ) But, what I choose is an ALU using ICA.
What does the thing do?:
It's an ALU with an ICA adder, which means instant carry adder, therefore the carry is a bit different from RCA. It can add and do all basics functions like !A and !B(therefore i can subtract), OR, AND, NOR, NAND, XOR, XNOR.
It works very similarly to a RCA adder, but, instead of XORs, we use XNORs. That doesn't affect the final output because 2 not are canceling each others.
Now about the carry: in a normal adder, the COUT is the OR of the AND of the first XOR and the AND of the second XOR. Therefore, it carries when both inputs are on, or when 1 input is on with a CIN.
In ICA, it's almost the same thing; first we AND the two bits of the full adder, if both are on, then we carry.
The second part is a bit weird… First, its important to know that, in ICA, the CIN of the first full-adder, is the same wire as the last full-adder… It means that, if i would to input a CIN in the first full-adder, it would also do CIN for all the other bits. BUT, what keeps the first CIN to do that, (because we obviously don't want that) is pistons blocking the wire. Let me explain, when I input CIN in the first full-adder, it won't carry to all the other bits because there's pistons blocking the wire. Now, that piston can let the signal flow sometimes: All the pistons(each bit has a piston) are powered by the propagate of the first XNOR of the bits. Because it's a XNOR, the propagate is on by default(no inputs on) meaning that the piston cuts the CIN from carrying. But when theres one input on in the XNOR, the propagate is off, so that the piston isn't blocking the CIN from carrying anymore…
Now what does that do in the end? Lets see: if I input 1+1, easy, the AND carries to the next bit… But now, what if I input 1+0+CIN? First, the AND of the first XNOR isn't going to carry, so the propagate of the first XNOR is going to be off(because only one input on). Because the propagate is off, the piston isn't blocking the CIN, which means that we have a carry: the CIN of this full-adder, is also the COUT! And finally, because the last XNOR has only one input on(the CIN), its propagate is off. The answer of 1+0+CIN = 10.
I hope that you understand this big explanation…
Image from imgur.com:
I'm not sure if the link is going to work, also, the first 3 pictures are the same, sorry about that.
http://imgur.com/0KvPpcA,P6Dx1sB,Xy4t69T...,WhQhEMx#2
Do you agree with the rules?: I do