I'm adding a bit about k-maps to my processors course, but being unfamiliar with them until now, I want to check that I am covering the correct things. Here is what I am currently covering:
- How k-maps can be created and read (up through 4 variables -- I have decided to skip the 5th variable for now)
- The importance of the funny ordering in the axis ($00$, $01$, $11$, $10$) as a way to ensure that only one bit must be transformed to arrive at any neighboring position
- To derive expressions from k-maps, rectangles of 1s can be of size 1, 2, 4, or 8 only.
- How to actually derive an expression from a k-map
- How to derive expressions from k-maps when there are undefined regions within the k-map.
- Using k-maps to derive a Sum of Products (a.k.a. Disjunctive Normal Form) and a Product of Sums (Conjunctive Normal Form)
- The inverse relationship between the size of a rectangle and the number of variables that define it.
- Spotting xor values (perhaps I don't need this? It doesn't seem much emphasized in materials I've found, since they mostly focus on finding SoP and PoS)
- k-maps wrap around, so you can make a rectangle that starts on the left edge and wraps leftwards to the right edge, or from the top and wrap upwards to the bottom.
So, should I skip xor? Is there something I should add? Am I covering the right things?
and
gate before. The idea of a manageable set of steps to find a minimum number of terms is the important part here, and this one is simple enough to cover in about 35 minutes. I mean, I could do Quine–McCluskey, but I would have to dramatically increase the time I provide to delve into it, and then it becomes more of a course focus and less of a side idea to whet the appetite. Plus, the processor that we will be designing is simple and small enough that k-maps are certainly useful here. $\endgroup$