original link

The seven-segment decoder

Regular readers will recall that I challenged you to develop the logic equations for a binary-to-seven-segment decoder. At this writing, no one has submitted their solutions, so I guess I'd better show you my own. The truth table is shown in Table 2.

Table 2: Seven-segment decoder

A  B  C  D  a  b  c  d  e  f  g

0  0  0  0  1  1  1  1  1  1  0
0  0  0  1  0  1  1  0  0  0  0
0  0  1  0  1  1  0  1  1  0  1
0  0  1  1  1  1  1  1  0  0  1
0  1  0  0  0  1  1  0  0  1  1
0  1  0  1  1  0  1  1  0  1  1
0  1  1  0  1  0  1  1  1  1  1
0  1  1  1  1  1  1  0  0  0  0
1  0  0  0  1  1  1  1  1  1  1
1  0  0  1  1  1  1  1  0  1  1

Figure 6A-G: Karnaugh maps for seven segments

My Karnaugh maps are shown in Figures 6A through 6G. Notice the heavy use of don't-care states to minimize the equations. Any time we can let the selected regions overlap the don't-care regions, we simplify the equations. None of the equations are trivially simple; when the Arabs invented the symbols for our decimal digits, they didn't plan ahead to computer implementations, so we have to use the symbols we're given. Even so, some patterns emerge, and we do spot certain terms, such as , which recur in multiple segments. My best attempt at implementing the equations goes like this:

How does that compare with your own solutions?

Jack Crenshaw is a senior software engineer at Spectrum-Astro and the author of Math Toolkit for Real-Time Programming, from CMP Books. He holds a PhD in physics from Auburn University. E-mail him at jcrens@earthlink.net. Read more about Jack W. Crenshaw