I’m sorry about the title of this blog, but I’m feeling a little wackadoodle at the moment. I think the problem is that I’m giddy with excitement at the thought of the forthcoming Thanksgiving holiday.
So, here’s the deal. Starting sometime in 2021, I’m going to be writing a series of columns for

*Practical Electronics*magazine in the UK teaching digital logic fundamentals to absolute beginners. This will have a hands-on component with an accompanying circuit board. We’re going to start by constructing some simple logic gates at the transistor level, then use primitive logic gates in 7400-series ICs to construct more sophisticated functions, and work our way up to… but I fear I can say no more at the moment. After we’ve created some really simple combinatorial functions — like a 2:1 multiplexer — by hand, we’re going to introduce things like Boolean algebra, DeMorgan transforms, and Karnaugh maps, and then we are going to use what we’ve learned to implement more complex combinatorial functions, cumulating in a BCD to 7-segment decoder, before we progress to sequential circuits. I was sketching out some notes this past weekend. Prior to the BCD to 7-segment decoder, we’ll already have tackled a BCD to decimal decoder, so a lot of the groundwork will have been laid. We’ll start by explaining how the segments in the 7-segment display are identified using the letters ‘a’ through ‘g’ and showing the combinations of segments we use to create the decimal digits 0 through 9. Next, we will create the truth table. We’ll be using a common cathode 7-segment display, which means active-high outputs from our decoder because this is easier for newbies to wrap their brains around. Observe the input combinations shown in red in the truth table. We’ll point out that, in our case, we aren’t planning on using these input combinations, which means we don’t care what the corresponding outputs are because we will never actually see them (we’re using ‘X’ characters to represent the “don’t care” values). In turn, this means we can use these don’t care values in our Karnaugh maps to aid us in our logic minimization and optimization. The funny thing is that it’s been a long time since I performed Karnaugh map minimizations by hand. As a result, on my first pass, I missed a couple of obvious optimizations. Just for giggles and grins, I’ve shown the populated maps below. Before you look at my solutions, why don’t you take a couple of minutes to perform your own minimizations to see how much*you*remember? I should point out that I’m a bit rusty at this sort of thing, so you might want to check that I’ve correctly captured the truth table and accurately populated these maps before you leap into the fray with gusto and abandon. Remember that we’re dealing with absolute beginners here, so — even though I will have recently introduced them to Karnaugh map techniques, I think it would be a good idea to commence this portion of the discussions by walking them through the process for segment ‘a’ step-by-step as illustrated below. OK, below we see what I came up with for all of the segments. As I mentioned above, I missed a couple of obvious optimizations on my first pass. I think I’ve got them all now, but I’d be interested to hear if you think I missed anything or messed anything up, or if you would have done anything a different way. Next, I extracted the Boolean equations corresponding to the Karnaugh map minimizations. As shown below, I’ve color-coded any product terms that appear multiple times. I don’t recall seeing this done before, but I think it could be a useful aid for beginners. Once again, I’d be interested to hear your thoughts about this. Actually, I’d love to hear your thoughts on anything I’ve shown here. Do you think the way I’ve drawn the diagrams is conducive to beginners understanding what’s going on? Can you spot anything I’ve missed or could do better? I can’t wait for you to see what we have planned with regards to the circuit board and the “hands-on” part of this forthcoming series (I will, of course, be reporting back further in the future). Until then, as always, I welcome your comments, questions, and suggestions.
Klive, I did not analyze your truth table,. I just looked at the map. On a Karnaugh map, terms on opposite ends of rows are adjacent, since only one variable changes. Similarly terms on opposite ends of columns are adjacent. Visualize the rows being written on a cylinder with a horizontal axis. This makes the top and bottom rows adjacent. Consequently you can draw a loop around 0000 and 0010. Otherwise the map looks OK.

Hi Jon, as you say, the fact that the rows and columns in a K-map are presented using a Gray code means the sides wrap around — I’m just amazed that Karnaugh came up with such a simple and elegant way to perform logic minimization and optimization.

The color coding of the product terms would be even better if you added the same color coding to the Karnaugh maps.

My experience with teaching this to college freshmen was that they were really happy to learn Karnaugh maps after their homework assignment in boolean algebra.

I had thought about using the same color coding in the product terms and K-maps — but I’m worries that we will end up with too many colors and it will be hard to distinguish them — I’ll have to look into that further.

It was the ’70s when I learned this. Not sure what years I forgot most of it.

?