don't care conditions

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

Reply to
Mike
Loading thread data ...

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.

Reply to
John Popelish

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

Reply to
John Larkin

I guess those were serious smoke test results :)

Mike

Reply to
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
Reply to
Rich Webb

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

John

Reply to
John Larkin

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.
Reply to
Rich Grise, PLainclothes Hippi

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

Reply to
Rich Grise

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

Reply to
John Larkin

Thanks, Rich.

Mike

Reply to
Mike

combination

my

EPI (Execute Programmer Immediate)

--
  Keith
Reply to
Keith Williams

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
Reply to
Keith Williams

combination

my

One of my favorite PDP-11 opcodes was

MOV -(PC), -(PC)

which was known and the Landmine instruction.

John

Reply to
John Larkin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.