January 05, 2016

Puzzle: Logical Restructuring

Can you comment on the functionality of the below circuit?


Using the concept of bubble shifting, can you optimize the above circuit to reduce its area? Consider all gates to be implemented in standard CMOS technology, and assume that area is directly proportional to the number of transistors used.

You may also compute the percentage area reduction as a result of bubble shifting by counting the number of transistors in the optimized circuit.


7 comments:

  1. The above logic checks whether any corresponding bit of buses a[7:0] and b[7:0] is logic one. It has 80 transistors(8*6 + 4*6 + 8).

    If we remove the 2-input OR gates and merge their function with 4-input OR gate, we will have 8-input OR gate. Now by bubble shifting, the 2-input AND gates will become 2-input NAND gate and 8-input OR gate will become 8-input NAND gate.
    So the number of transistors in this optimized logic will be 48 (4*8 + 16).

    %area reduction = 32/80 = 40%

    ReplyDelete
    Replies
    1. Hello Kalpana Singla.

      Sorry for my nescience.

      Could you please explane why 4OR element has only 8 transistors not 10? If understand correctly your calculation (8*6 + 4*6 + 8) 6 is 4NOR(NAND) + 2NOT. But what about 8 here?
      Thank you in advance.

      Delete
    2. Hi Kalpana & Alexanser,

      Let's forget about the minor oversight of the 4-input OR gate using 10 transistors instead of 8, as Kalpana mentioned..

      That's a fantastic solution! You used the correct approach and satisfied all the constraints I had placed in the problem.

      However, I'd just like to mention one small point: Typically, standard cell libraries don't have any gate with a fan-in of more than 4! So, typically, all you'd find is perhaps a 4-input NAND gate, or for that matter, a 4-input OR gate. Can you please modify your solution a bit?

      Thanks again for posting the answer!

      Regards,
      Naman

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  3. Replace all the gates with NAND gate. Since it is CMOS logic.It would take 2tx/gate. In total 26tx are reduced.

    ReplyDelete
  4. Replace the AND-OR with AOI22 gates and the last 4 ip bubbled OR with a 4 ip NAND.
    Transistors required = 4x8(AOI) + 1x8(4ip NAND). Don't recollect how bubble shifting is defined.

    ReplyDelete