Tuesday, April 26, 2011

Why GLS

Uses of GLS
1) GLS is used for checking some of the functionality before reset like POR sequence, bootup etc.


Issues in GLS
1) In the gates X propagation can happen because of
a) unintialized inputs - We can intialize the inputs.
b) unintialized outputs - This has to be root caused and corrected.
c) non resetable flops - The problem can be identified by forcing
a known value to this flop and checking that the logic is working.

2) In the testbench there might be few internal signals that might be
forced from the tests bench. In GLS these signals are flattened or the
signal name gets changed. So the testcase start failing that the path
does not exists.

3) If Q of the flop is connected to D as a loop via a combinational logic and
the flop is not a resetable flop. For example lets take the combo logic as
a simple and gate. If any of the input is x then the out of the combo logic
and the input to the flop will be x. In this way the output of this flop
will be "X".

4) If Q of the flop is connected to D as a loop via a combo logic and the flop
is a resetable flop. For example take the combo logic time delay is more than
a clock pulse. In between the posedge of clocks if reset is given, Q becomes
a know value and before this known value comes to input of the flop if another
clock comes and the previous X is getting propagated through the flop then this
X will override the reset value.