TBSEDFLQX4.v 2.4 KB
// VERSION:4.00 DATE:2001/05/14 OPENCAD Verilog LIBRARY
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
    `suppress_faults
    `enable_portfaults
`endif
module TBSEDFLQX4 ( N01, N02, H01, H02, H03, H04, H05 );
    input H01;
    input H02;
    input H03;
    input H04;
    input H05;
    output N01;
    output N02;
    reg notifier_din;
    reg notifier_sin;
    // reg notifier_out;

    buf ( _H01, H01 );
    buf ( _H02, H02 );
    buf ( _H03, H03 );
    buf ( _H04, H04 );
    buf ( _H05, H05 );

    not ( _SIN01, _H03 );
    nor ( _C003, _H02, _H05 );

    LSSD opc_lssd ( _C002, _D001, _H01, _SIN01, _H02, _H04, 
                    notifier_din, 1'b1 );

    DLSFQ_LSSD2 opc_dlsf_lssd ( _D002, 1'b1, 1'b1, _C002, _D001, 
                    notifier_din, 1'b1 );

    DLSFQ ( _G001, _D002, _C003, 1'b1, 1'b1, notifier_sin );
    DLSFQB ( _G001N, _D002, _C003, 1'b1, 1'b1, notifier_sin );

    buf (N01, _G001);
    buf (N02, _G001N);

    // timing check flag
    wire docheck1 = ( _H02 !== 1 );
    wire docheck2 = ( _H04 !== 1 );

    specify
        specparam DMY_SPC=1:1:1;


        $setup ( posedge H01, negedge H02 &&& docheck2, DMY_SPC, notifier_din );
        $setup ( negedge H01, negedge H02 &&& docheck2, DMY_SPC, notifier_din );
        $hold ( negedge H02, posedge H01 &&& docheck2, DMY_SPC, notifier_din );
        $hold ( negedge H02, negedge H01 &&& docheck2, DMY_SPC, notifier_din );

        $setup ( posedge H03, negedge H04 &&& docheck1, DMY_SPC, notifier_din );
        $setup ( negedge H03, negedge H04 &&& docheck1, DMY_SPC, notifier_din );
        $hold ( negedge H04, posedge H03 &&& docheck1, DMY_SPC, notifier_din );
        $hold ( negedge H04, negedge H03 &&& docheck1, DMY_SPC, notifier_din );

        $width ( negedge H02, DMY_SPC, 0, notifier_sin );
        $width ( posedge H02, DMY_SPC, 0, notifier_din );
        $width ( posedge H04, DMY_SPC, 0, notifier_din );
        $width ( negedge H05 &&& docheck1, DMY_SPC, 0, notifier_sin );

        ( H02 => N01 ) = ( DMY_SPC, DMY_SPC );
        ( H02 => N02 ) = ( DMY_SPC, DMY_SPC );
        ( H03 => N01 ) = ( 1:1:1, 1:1:1 );
        ( H03 => N02 ) = ( 1:1:1, 1:1:1 );
        ( H04 => N01 ) = ( 1:1:1, 1:1:1 );
        ( H04 => N02 ) = ( 1:1:1, 1:1:1 );
        ( H05 => N01 ) = ( DMY_SPC, DMY_SPC );
        ( H05 => N02 ) = ( DMY_SPC, DMY_SPC );
    endspecify

endmodule
`ifdef verifault
    `nosuppress_faults
    `disable_portfaults
`endif
`endcelldefine