Hit Count

Tuesday, August 17, 2010

GLS simulation X propogation by MUX

I faced this issues while debugging GLS simulation.
Mux is having input A,B,S(sel), Z(output)

B=0 (always)
A= 0(20ns),1(20ns),0(20ns)
S = X throughout simulation

What should be output here? (This sounds very simple right, Think you may be correct or may not be)

I will post answer for this soon.


  1. Since the select line is X ,Will output will be X ?

  2. As per me output should be
    0 for A = 0 & B = 0 at 0ns
    x for A = 1 & B = 0 at 20ns
    0 for A = 0 & B = 0 at 40ns

    It is because of Mux boolean logic
    OUT = A&~S | B&S.
    Which indicates that if A=B then OUT is always equals to A(=B) in case of S = X.
    However in GLS there can be permanent X if foundry Mux model is written in UDP and UDP behavior is defined such as output is always assigned X if S is X.

  3. Option 1 :
    Output should be X since S = x and eqation OUT = A& ~S | B & S

    This complete option1 is based on assumption there is OR in the mux and which propogates X at output.

    Mux can be created without using OR, This will ensure that X is not propogated

    I mean assume X = (A & ~S) , Y = (B & S)

    O = X + Y
    ~O = ~(X+Y)
    ~O = ~X & ~Y

    So effectively my mux library was not relying on OR gate and hence I did not see continuous X throughtout simulation.

    1>since A= 0 from (ons to20ns) ,Output O = 0 here

    2> During time (20ns to 40s) Output O = x since A=1 and S = X effectivel A & ~s = X, and henace 0 =X

    3> During 40ns to 60 ns 0 = 0 again.