đź“… Friday, April 19th, 2024

Friendship is the marriage of the soul, and this marriage is liable to divorce.

— Voltaire

ECS154A Lecture: K-maps cont’d, bubble pushing, 2-bit multiplier

Maurice Karnaugh came up with K-map. in th 50s.

Here’s an or gate.

Y\X01
001
111

There are two groups, but what if we take the zeros instead of ones? We can take the zero, and use De Morgan’s theorem to simplify it.

Does this process work? Yes, but this defeats the purpose of K-map, since its goal is to arrive at the simplest circuit without having to do much boolean algebra.

We can also use product of sums, which only looks at when things are zero. The only zero we have is when & , so we have:

It follows that:

Use sum of products or product of sums, whichever is shorter. This course uses sum of products.


Here’s an nor gate.

Y\X01
010
100
Looking at the zeros, we can derive and use De Morgan’s law to simplify again.
  • The vertical group is 0 when , so we invert it:
  • The horizontal group is 0 when , so we invert it:

When applied to digital logic, this simplification technique is aptly called bubble pushing:

And, or, nand, nor, & not all have a unit delay (propagation delay of 1), but they aren’t necessarily the same cost in production (NAND and NOR are preferred over AND and OR in CMOS; @harrisDigitalDesignComputer2016 p. 68).


Design and build a circuit that multiplies two 2-bit unsigned numbers, and minimize the curcuit.

Again, don’t worry about “but we haven’t been taught multiplers;” just come up with the truth table first. It’s hard to do binary multiplication in our heads, so we convert and to decimal (), do the multiplication , and convert the result back to binary.

00000000000
00010100000
00100200000
00110300000
01001000000
01011110001
01101220010
01111330011
10002000000
10012120010
10102240100
10112360110
11003000000
11013130011
11103260110
11113391000

Note how product of sums doesn’t work here, because there are too many zeros in the output.

We don’t really need K-maps for this, but here’s one anyways:

\ 00011110
000000000000000000
010000000100110010
110000001110000110
100000001001100100

ECS154A Discussion: FISC schematics

  • register file
  • WE: write-enable, i.e., only use the input if WE is 1. For example, on a bnz instruction, the target address will still be fed into the ALU. Since we don’t want the output of ALU to put garbage into the z register, we set zf’s write-enable bit to false whenever it’s a branch. We also pass this to the register file’s WE under the same reasoning.
  • Note the the entire circuit is controlled by the clock in the bottom left corner.

Schematics will also be availble in Logisim on Canvas.

SOC001 Discussion: social construction, performance

  • SOC001 2024-04-19 discussion
  • Under a social constructionism lens, people form policies / institutions / social constructs on how things are over time (over many social interactions). Such agreements form the truths and reality around us.
  • Everyone is an audience member (we watch how others perform as feedback of our performance) and performer (we perform for others, adjusting it according to others’ feedback) at the same time.
  • SOC001 2024-04-19 participation assignment

Blog post 2 due Sunday!

MGT011A Discussion: no notes