blob: 0d55733935f2fc9846e5b709d4c0f714d0f8059e [file] [log] [blame]
primitive U_DL_P_SB_SLEEPB_pg (Q, D, G, SB, SLEEPB, KAPWR, VGND, VPWR);
output Q;
reg Q;
input D, G, SB, SLEEPB, KAPWR, VGND, VPWR;
// FUNCTION : POSITIVE LEVEL SENSITIVE D-TYPE LATCH WITH ACTIVE LOW
// ASYNCHRONOUS SET ( Q OUTPUT UDP ).
table
// D G SB SLEEPB KAPWR VGND VPWR : Qt : Qt+1
? ? ? 0 1 0 ? : ? : - ; // Retain state during sleep
? 0 0 * 1 0 1 : ? : - ; // Retain state during sleep
? 0 1 * 1 0 1 : ? : - ; // Retain state during sleep
? 0 x * 1 0 1 : ? : x ; // SLEEPB cannot change if preset is unknown
? 1 ? * 1 0 1 : ? : x ; // SLEEPB cannot change unless GATE is low
? x ? * 1 0 1 : ? : x ; // SLEEPB cannot change unless GATE is low
? ? ? * 1 0 x : ? : x ; // SLEEPB cannot change unless VPWR is low
* 0 1 1 1 0 1 : ? : - ;
? ? 0 1 1 0 1 : ? : 1 ; // asynchro SET
? (?0) ? 1 1 0 1 : ? : - ; //AB
? (1X) ? 1 1 0 1 : ? : - ; //AB
0 (X1) 1 1 1 0 1 : ? : 0 ;
1 (X1) 1 1 1 0 1 : ? : 1 ;
0 (0X) 1 1 1 0 1 : 0 : 0 ;
1 (0X) 1 1 1 0 1 : 1 : 1 ;
(?0) 1 1 1 1 0 1 : ? : 0 ;
(?1) 1 1 1 1 0 1 : ? : 1 ;
0 (01) 1 1 1 0 1 : ? : 0 ;
1 (01) 1 1 1 0 1 : ? : 1 ;
? 0 (?x) 1 1 0 1 : 1 : 1 ; // Reducing pessimism.//AB
* 0 x 1 1 0 1 : 1 : 1 ; // Reducing pessimism//AB
(?1) x x 1 1 0 1 : 1 : 1 ; // Reducing pessimism.//AB
1 x * 1 1 0 1 : 1 : 1 ; // Reducing pessimism.//AB
1 (0x) x 1 1 0 1 : 1 : 1 ; // Reducing pessimism.//AB
1 (?1) x 1 1 0 1 : ? : 1 ; // Reducing pessimism.
(?1) 1 x 1 1 0 1 : ? : 1 ; // Reducing pessimism.
1 1 (?x) 1 1 0 1 : ? : 1 ; // Reducing pessimism.
? 0 (?1) 1 1 0 1 : ? : - ; // ignore edge on clear
0 1 (?1) 1 1 0 1 : ? : 0 ;
1 1 (?1) 1 1 0 1 : ? : 1 ;
(?1) x 1 1 1 0 1 : 1 : 1 ; // Reducing pessimism.
(?0) x 1 1 1 0 1 : 0 : 0 ; // Reducing pessimism.
? ? ? ? * ? 1 : ? : x ; // unknown if kapwr changes
? ? ? ? ? * 1 : ? : x ; // unknown if vgnd changes
endtable
endprimitive