TBSMDFLQRSBX1.v 6.67 KB
// VERSION:4.00 DATE:00/02/15 OPENCAD Verilog LIBRARY
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
    `suppress_faults
    `enable_portfaults
`endif
module TBSMDFLQRSBX1 ( N01, H01, H02, H03, H04, H05, H06 );
    input H01;
    input H02;
    input H03;
    input H04;
    input H05;
    input H06;
    output N01;
    reg notifier;
    reg docheck1;
    reg docheck2;
    reg docheck3;
    reg docheck4;
    reg docheck5;
    reg docheck6;
    reg docheck7;
    reg docheck8;
    reg docheck9;
    reg docheck10;
    reg docheck11;

    buf ( _H01, H01 );
    not ( _G001, _H01 );
    buf ( _H02, H02 );
    not ( _G009, _H02 );
    buf ( _H03, H03 );
    buf ( _H04, H04 );
    buf ( _H05, H05 );
    not ( _G002, _H05 );
    buf ( _H06, H06 );
    not ( _G003, _H06 );
    and ( _G004A, _G001, _G002 );
    and ( _G004B, _G001, _G003 );
    and ( _G004C, _G002, _H06 );
    nor ( _G005, _G004A, _G004B, _G004C );
    buf ( N01, _G006 );
    DESFQ ( _G006, _G005, _G009, _H03, _H04, notifier );
    buf #1 ( _G099, _G006 );

`ifdef  INCA
        buf #1 ( _docheck1, docheck1 );
        buf #1 ( _docheck2, docheck2 );
        buf #1 ( _docheck3, docheck3 );
        buf #1 ( _docheck4, docheck4 );
        buf #1 ( _docheck5, docheck5 );
        buf #1 ( _docheck6, docheck6 );
        buf #1 ( _docheck7, docheck7 );
        buf #1 ( _docheck8, docheck8 );
        buf #1 ( _docheck9, docheck9 );
        buf #1 ( _docheck10, docheck10 );
        buf #1 ( _docheck11, docheck11 );
`else
`ifdef VCS
        buf #1 ( _docheck1, docheck1 );
        buf #1 ( _docheck2, docheck2 );
        buf #1 ( _docheck3, docheck3 );
        buf #1 ( _docheck4, docheck4 );
        buf #1 ( _docheck5, docheck5 );
        buf #1 ( _docheck6, docheck6 );
        buf #1 ( _docheck7, docheck7 );
        buf #1 ( _docheck8, docheck8 );
        buf #1 ( _docheck9, docheck9 );
        buf #1 ( _docheck10, docheck10 );
        buf #1 ( _docheck11, docheck11 );
`else
        buf ( _docheck1, docheck1 );
        buf ( _docheck2, docheck2 );
        buf ( _docheck3, docheck3 );
        buf ( _docheck4, docheck4 );
        buf ( _docheck5, docheck5 );
        buf ( _docheck6, docheck6 );
        buf ( _docheck7, docheck7 );
        buf ( _docheck8, docheck8 );
        buf ( _docheck9, docheck9 );
        buf ( _docheck10, docheck10 );
        buf ( _docheck11, docheck11 );
`endif
`endif

    initial      //initialize data flags
        begin
            docheck1 = 0;
            docheck2 = 0;
            docheck3 = 0;
            docheck4 = 0;
            docheck5 = 0;
            docheck6 = 0;
            docheck7 = 0;
            docheck8 = 0;
            docheck9 = 0;
            docheck10 = 0;
            docheck11 = 0;
        end

    always @( _H01 or _H05 or _H03 or _H04 or _H06 or _G005 )
        begin
            docheck1 = ( (_H06 !== 1'b1) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            docheck2 = ( (_H06 !== 1'b0) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            docheck3 = ( (_H01 !== _H05) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            if ( (_H02 === 1'b1) && (_H03 !== 1'b0) && (_H04 !== 1'b0) )
                docheck8 = ( _G099 !== _G005 );
            if ( (_H02 === 1'b0) && (_H03 !== 1'b0) && (_H04 !== 1'b0) )
                docheck9 = ( _G099 !== _G005 );
        end

    always @( negedge _H02 )
        begin
            docheck1 = ( (_H06 !== 1'b1) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            docheck2 = ( (_H06 !== 1'b0) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            docheck5 = ( (_G005 !== 1'b0)  && (_H04 !== 1'b0) );
            docheck7 = ( (_G005 !== 1'b1)  && (_H03 !== 1'b0) );
            docheck8 = ( (_G099 !== _G005) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            docheck9 = 1;
        end

    always @( posedge _H02 )
        begin
            docheck8 = ( (_G099 !== _G005) && (_H03 !== 1'b0) && (_H04 !== 1'b0) );
            docheck9 = ( (_H03 !== 1'b0) && (_H04 !== 1'b0) );
        end

    always @( posedge _H03 )
        begin
            docheck4 = ( (_G005 !== 1'b0) && (_H04 !== 1'b0) );
            docheck10 = ( (_G006 !== 1'b0) && (_H04 !== 1'b0) );
        end

    always @( negedge _H03 )
        begin
            docheck10 = ( _H04 !== 1'b0 );
        end

    always @( _G006 )
        begin
            if ( (_H03 === 1'b1) && (_H04 !== 1'b0) )
                docheck10 = ( _G006 !== 1'b0 );
            if ( (_H04 === 1'b1) && (_H03 !== 1'b0) )
                docheck11 = ( _G006 !== 1'b1 );
        end

    always @( posedge _H04 )
        begin
            docheck6 = ( (_G005 !== 1'b1) && (_H03 !== 1'b0) );
            docheck11 = ( (_G006 !== 1'b1) && (_H03 !== 1'b0) );
        end

    always @( negedge _H04 )
        begin
            docheck11 = ( _H03 !== 1'b0 );
        end

    specify
        specparam DMY_SPC=1;


        $setup ( posedge H01, negedge H02 &&& _docheck1, DMY_SPC, notifier );
        $setup ( negedge H01, negedge H02 &&& _docheck1, DMY_SPC, notifier );
        $hold ( negedge H02, posedge H01 &&& _docheck1, DMY_SPC, notifier );
        $hold ( negedge H02, negedge H01 &&& _docheck1, DMY_SPC, notifier );
        $setup ( posedge H05, negedge H02 &&& _docheck2, DMY_SPC, notifier );
        $setup ( negedge H05, negedge H02 &&& _docheck2, DMY_SPC, notifier );
        $hold ( negedge H02, posedge H05 &&& _docheck2, DMY_SPC, notifier );
        $hold ( negedge H02, negedge H05 &&& _docheck2, DMY_SPC, notifier );
        $setup ( posedge H06, negedge H02 &&& _docheck3, DMY_SPC, notifier );
        $setup ( negedge H06, negedge H02 &&& _docheck3, DMY_SPC, notifier );
        $hold ( negedge H02, posedge H06 &&& _docheck3, DMY_SPC, notifier );
        $hold ( negedge H02, negedge H06 &&& _docheck3, DMY_SPC, notifier );
        $setup ( posedge H03, negedge H02 &&& _docheck4, DMY_SPC, notifier );
        $hold ( negedge H02, posedge H03 &&& _docheck5, DMY_SPC, notifier );
        $setup ( posedge H04, negedge H02 &&& _docheck6, DMY_SPC, notifier );
        $hold ( negedge H02, posedge H04 &&& _docheck7, DMY_SPC, notifier );

        $width ( negedge H02 &&& _docheck8, DMY_SPC, 0, notifier );
        $width ( posedge H02 &&& _docheck9, DMY_SPC, 0, notifier );
        $width ( negedge H03 &&& _docheck10, DMY_SPC, 0, notifier );
        $width ( negedge H04 &&& _docheck11, DMY_SPC, 0, notifier );

        if ( H04 )
            ( negedge H03 => ( N01 +: 1'b0 )) = ( 0:0:0, DMY_SPC );
        if ( H03 )
            ( negedge H04 => ( N01 +: 1'b0 )) = ( DMY_SPC, 0:0:0 );
    if ( !H06 && H03 && H04 )
      ( negedge H02 => ( N01 +: H01 )) = ( DMY_SPC, DMY_SPC );
    if ( H06 && H03 && H04 )
      ( negedge H02 => ( N01 +: H05 )) = ( DMY_SPC, DMY_SPC );
    endspecify
endmodule
`ifdef verifault
    `nosuppress_faults
    `disable_portfaults
`endif
`endcelldefine