don't care conditions

Feb 25, 2006 12 Replies

The concept of don't care conditions is pretty simple, but don't care conditions are based on the assumption that a particular minterm combination doesn't matter (as long as it's not used). For example, BCD has 6 unused minterms, so don't cares come into play here to simplify the circuit. So, my question is: what if we violate that assumption externally and pass, say, minterm 10 to the circuit? Does the logic blow up (of course, if it's not handled in the circuit, which I imagine most circuits do this)?



Thanks, Mike


If certain states are "don't care" because they can't normally happen, then if you force one of them to happen, and logical output is acceptable. For instance, if the logic is a BCD to 7 segment decoder with 6 don't care states, then any combination of segments lit, is an acceptable response if one of the 6 don't care states occur.

Yes. Scores of engineers have been horribly maimed, and several killed, by feeding 1101 into a 7442 decoder. Even an FPGA lut can explode when it sees unexpected input states.

John

I guess those were serious smoke test results :)

Mike

Dang, you hardware guys have it tough. Writing an undefined expression in C usually just results in the PC playing William Shatner's cover of "Lucy in the Sky with Diamonds."

Come to think of it, being maimed by an exploding LUT might be preferable ...

Rich Webb Norfolk, VA

Didn't the S/360 have the LCF opcode, "link and catch fire"?

John

One of the early micros had one, HCF, "Halt and Catch Fire", which was allegedly a "valid" opcode for testing stuff - it essentially turned the address bus into a free-running counter. I'm almost sure it was the 6800 or 6809. I had an opportunity once to dick around with a 6809, but I was awash in Z80s and 6502s and 6845s and 8255s at the time, so never got a round tuit. )-;

Thanks! Rich

Elect Me President in 2008! I will: A. Fire the IRS, and abolish the income tax B. Legalize drugs C. Stand down all military actions by the US that don\'t involve actual military aggression against US territory D. Declare World Peace I.

OK, here's a serious answer. "Don't care" literally means that it makes absolutely no difference what that input is in a given set of conditions. "undefined", on the other hand, is the one that can get you into trouble, because that means that for a certain input state, it's impossible to predict the output state at that moment - this is a condition that is to be avoided, like for example, both the "Reset" and "Set" inputs of an R-S flip-flop being active at the same time - the outputs are "undefined". But, by the same token, while either the Set or Reset is being held active, the rest of the inputs, like "clock" and "data", are "don't care", because the "reset" (or "set") overrides them.

Hope This Helps! Rich

combination

my

The 6800 had a test opcode that did that. The only way out was a reset.

I once wrote an RTOS for the 6800, with a bunch of reentrant utilities, including a set of floating-point routines. It wasn't too bad.

John

combination

my

EPI (Execute Programmer Immediate)

Keith

No, the outputs of a SR flipflop _are_ defined when both the set and reset are asserted (set-dominant or reset-dominant). The output is undefined if both the set and reset are *released* at the same time. One will win, but we don't know which (and when ;).

Keith

combination

my

One of my favorite PDP-11 opcodes was

MOV -(PC), -(PC)

which was known and the Landmine instruction.

John

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required