DLSFQ.v 2.59 KB
// VERSION:3.01 DATE:1999/09/24 UDP
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
    `suppress_faults
`endif

primitive DLSFQ ( Q, D, C, R, S, notifier );
    output Q;
    reg  Q;
    input  D,C,R,S,notifier;

    table
    // D    C    R    S notifier  : Qtn    :  Qtn+1

     (?1)   1    1    1    ?     :  ?        :   1;
       1  (?1)   1    1    ?     :  ?        :   1;
       1    1  (?1)   1    ?     :  ?        :   1;
       1    1    1  (?1)   ?     :  ?        :   1;
     (?0)   1    1    1    ?     :  ?        :   0;
       0  (?1)   1    1    ?     :  ?        :   0;
       0    1  (?1)   1    ?     :  ?        :   0;
       0    1    1  (?1)   ?     :  ?        :   0;
       ?    0   (?1)  1    ?     :  ?        :   -;
       ?    0    1   (?1)  ?     :  ?        :   -;
       1  (?x)   1    1    ?     :  1        :   -;
       0  (?x)   1    1    ?     :  0        :   -;
      (?1)  x    1    1    ?     :  1        :   -;
      (?0)  x    1    1    ?     :  0        :   -;
       0    x   (?1)  1    ?     :  0        :   -; // added 9/22/94
       1    x    1   (?1)  ?     :  1        :   -; // added 9/22/94
       *    0    1    1    ?     :  ?        :   -;

       0    0    x    1    ?     :  0        :   -; // added 3/12/91
       1    0    x    1    ?     :  0        :   -; // added 9/28/94
       0    1    x    1    ?     :  ?        :   0;
       0    x    x    1    ?     :  0        :   -;
       x    0    x    1    ?     :  0        :   -;  
     
       1    0    1    x    ?     :  1        :   -; // added 4/12/95
       0    0    1    x    ?     :  1        :   -; // added 4/12/95
       1    1    1    x    ?     :  ?        :   1; // added 4/12/95
       1    x    1    x    ?     :  1        :   -; // added 4/12/95
       x    0    1    x    ?     :  1        :   -; // added 4/12/95
     
       ?    ?    1    0    ?     :  ?        :   1;
       ?    ?    0    1    ?     :  ?        :   0;

//       ?    ?    0    0    ?     :  ?        :   1; // set & reset
//       ?    ?    0    x    ?     :  ?        :   x; // set & reset
//       ?    ?    x    0    ?     :  ?        :   1; // set & reset
       ?    ?    0    0    ?     :  ?        :   x; // set & reset
       ?    ?    0    x    ?     :  ?        :   x; // set & reset
       ?    ?    x    0    ?     :  ?        :   x; // set & reset
      
       b  (?0)   1    1    ?     :  ?        :   -;
       ?    ?    ?    ?    *     :  ?        :   x; // Output an x if the
                                                    //notifier changes

    endtable
endprimitive

`ifdef verifault
	`nosuppress_faults
`endif
`endcelldefine