Hot answers tagged

4

So I looked up what constitutes a full adder and found its truth table. Taken from wikipedia: So you can see that if the adder has the correct output, your sum and carry bits are simply the 2 bit number you want. So I guess all the full adder really does is add up to 3 binaries at a time instead of 2.


3

With the exception of your "NOT" gates, none of your gates have any voltage gain. They all use transistors wired as emitter followers, which means that the voltage offsets from base to emitter accumulate until your signal levels are useless. See my answer to Why are NAND gates used to make AND gates in computers? for a more thorough discussion of ...


3

This is from chapter 14, where it introduces the 8 bit ripple counter: You'll notice that it refers to this circuit as a frequency divider. It then goes on to point out, via the timing diagram, that this makes up a sort of binary counter: 0000 0001 0010 0011 So, as a counter, it works! But we can't use this counter with other logic blocks, because they can ...


2

No, these are rising-edge triggered flip-flops. Nothing happens to the outputs when the clock falls from 1 to 0. The text is a bit confusing because most authors use the word "latch" to refer to a level-sensitive bistable element and use the word "flip-flop" to refer to an edge-triggered bistable element. The little triangle shape at the ...


2

if you wanted to do 64-bit addition, would you need to have 64 full adders together? Yes. I'm also curious how many adder circuits a typical modern desktop would have Broadly this is the number of "execution units", plus however many for the "vector units", plus a whole load more for the graphics card. Very roughly I'd say 10,000 to 1,...


2

Perhaps you were confused about the switches you set up. I'm not sure. But I think you actually got everything right. Here's a re-drawing that mirrors your own example: I've also added a test process to validate the results, as you can see on the right side there. So I believe you did everything correctly, except that you got mixed up on which switch ...


1

The boolean equation for \$C_o\$ in Full Adder is: $$C_o = A.B + C_i(A+B)$$ Implementing above expression in CMOS logic will give you its complementary version at the output of Full Adder cell: $$\overline{C_o} = \overline{A.B + C_i(A+B)} \tag{1}$$ So you have to add an inverter at output stage to get \$C_o\$: $$\overline{C_o} \rightarrow \fbox{INVERTER}\...


1

If you drew up a truth table for the expression you found, you'd realise that it would exactly the same as the one for the expression they've given you (so you're not wrong). Since you would already have circuitry to find A XOR B (to find S), however, the output of the same circuitry should be re-used to find Cout as shown in the diagram below in order to ...


1

You could feed the carry bit to another full adder that has zeroes on its other two inputs, but that seems kind of pointless because it will just get you a copy of the carry bit. The carry bit is the second bit. If you don't need a carry input you can just use a half adder.


1

Using an adder makes it easier than using a subtractor, less logic, easier to understand, etc. In grade school we learned a - b = a + (-b). And our first computer class we learned about this thing called twos complement and that to get the "twos complement" you invert and add one. So a - b = a + (-b) = a + (~b) + 1 1 plus one 1011 a +1010 ...


1

Just skip the issue completely by using higher abstraction data types. type data_array is array (integer range 0 to yourlength) of integer range 0 to whatever; signal data: data_array := (others => 0); Which can be accumulated in any other integer for i in 0 to yourlength loop sum <= sum + data(i); end loop; without superfluous casting and ...


1

You can use resize command. Here an example on a std_logic_vector signal which has signed represented values inside data_out_32b <= std_logic_vector(resize(signed(data_in_16b),32));


1

You are underestimating the number of bits when you ignore the fractional part of the log2 function. What you really want is ceiling(log2()), sometimes called clog2() because it is so commonly used in this type of situation. So: clog2(10) = 4 (not 3) clog2(7) = 3 (not 2) clog2(69) = 7 (not 6) Since 4 + 3 = 7, now the results are self-consistent.


1

The circuit you showed us here is not a logic gate. It's something that creates light (or not) depending on the positions of switches. In other words, your circuit converts certain combinations of finger actions into some light level. A logic gate takes potentials (voltage levels) as its inputs, and creates a potential as its output. It converts voltages to ...


1

You can retrace C(n-1) from P, G and S If you use: X = XOR( P, G) or you can also use XOR( !P, !G); P=Propagate, G=Generate Ci(n-1) = XOR( X, S) ; S = sum result of highest bit Now you have Ci(n-1) and Ci(n) V = XOR ( Ci(n-1), Ci(n) ) ; see other theories above G= P= X= Ci= Ci AxB =Y xCi =S A&B A+B GxP XxS check 00 0 0 0 0 0 0 0 ok 11 0 1 1 1 1 0 1 ...


Only top voted, non community-wiki answers of a minimum length are eligible