So.. I know how to build a BCD to 7-segment using 3x8 decoder but the question provides 4-digit binaries and asks to only input 3 of those.. my question is that won't two different digits be regarded as one.. If that's confusing, here's the question:

Consider a BCD digit \$X_3X_2X_1X_0\$ with \$X_3\$ being the MSB. Design a BCD to 7-segment converter using two 3x8 decoders and minimum number of gates, such that \$X_3\$, \$X_2\$ and \$X_0\$ are applied at the inputs of the decoders. The converter should be compatible with a common cathode display.

So.. in this case 0 is 0000 and 2 is 0010 but if we don't input \$X_1\$, we're only giving out 0000 in both cases.. so how would the decoder know which is 0 and which is 2? Do I use \$X_1\$ as enabler? And we're not supposed to use anything other than 3x8 decoder, a 7 segment and minimal gates. I'm really confused here. Please help!


2 Answers 2


By my logic, \$X_{1}\$ must be used as an enable on the decoders, directly to one and through a not gate to the other. This is because without using it as an enable, both decoders will have the same inputs and thus the same outputs, which is redundant.

I think the trick to this question is the realization that since \$X_{3}\$ is NOT the enable (A more common case), then every two decimal digits will produce a high output on a different decoder. Below are two images showing the decimal BCD codes that will produce a high value on each output.

BCD codes for "normal" orderBCD codes for your question

  • 2
    \$\begingroup\$ Please don't turn this into a homework solution service. We try to encourage people to try to solve their own problems and only give hints along the way. \$\endgroup\$ Commented Feb 10, 2019 at 16:58
  • \$\begingroup\$ @ElliotAlderson Could you clarify exactly what a "hint" constitutes? I thought I did a fairly good job of clarifying the problem given by answering the OP's specific confusion ("how would the decoder know which is 0 and which is 2? Do I use X1 as enabler?"), while avoiding providing a full worked solution. There is a lot left to the full problem solution. \$\endgroup\$ Commented Feb 10, 2019 at 18:24
  • 1
    \$\begingroup\$ I would have stopped at the first paragraph. \$\endgroup\$ Commented Feb 10, 2019 at 19:38

Correct, You'll need to use X1 in combination with the 3x8 decoder output to generate some of the 7 segment display outputs.

  • \$\begingroup\$ Remember any decoder output could be combined with X1 so that an output from the 3-8 decoder that indicates the input is either a 2 or a 0 (let's call it the Op0 line) When you make this combination you then have Op0&X1 indicates we should display a 2 while Op0&~X1 indicates we should display a 0. This removes the need for an enable or multiple decoders. \$\endgroup\$ Commented Feb 10, 2019 at 8:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.