blob: ae1736b04c2147b05be6ccd3a37a7b1c7a0c6374 [file] [log] [blame]
primitive U_DF_P_SLEEPB_pg (Q, D, CP , SLEEPB, KAPWR, VGND, VPWR);
output Q;
input D, CP, SLEEPB, KAPWR, VGND, VPWR;
reg Q;
// FUNCTION : POSITIVE EDGE TRIGGERED D FLIP-FLOP ( Q OUTPUT UDP ).
table
// D CP SLEEPB KAPWR VGND VPWR : Qt : Qt+1
? ? 0 1 0 * : ? : -; // Retain state during sleep
? 0 f 1 0 1 : ? : -; // Retain state during sleep
? 0 r 1 0 1 : ? : -; // Retain state during sleep
? 1 * 1 0 1 : ? : x; // SLEEPB cannot change unless CLK is low
? x * 1 0 1 : ? : x; // SLEEPB cannot change unless CLK is low
? ? * 1 0 x : ? : x; // SLEEPB cannot change unless VPWR is high
? ? * 1 0 0 : ? : x; // SLEEPB cannot change unless VPWR is high
1 r 1 1 0 1 : ? : 1; // clocked data
0 r 1 1 0 1 : ? : 0;
1 (x1) 1 1 0 1 : 1 : 1; // reducing pessimism
0 (x1) 1 1 0 1 : 0 : 0;
1 (0x) 1 1 0 1 : 1 : 1;
0 (0x) 1 1 0 1 : 0 : 0;
? n 1 1 0 1 : ? : -; // no change on falling edge of CLK
* ? ? 1 0 1 : ? : -; // ignore edges on data
? ? ? * ? 1 : ? : x; // unknown if kapwr changes
? ? ? ? * 1 : ? : x; // unknown if vgnd changes
endtable
endprimitive