CNT8_instance.nsl


/* ************************************************************ */
#include    "CNT4.nsl"      // Instanciate lower module

/* ************************************************************ */
declare CNT8_instanciate {

    input       PARAM_in[8] ;   // Initial parameter.
    input       LOAD_in ;       // Synchronous PARAM_in load request.
    input       ENB_in ;        // Count enable

    output      Q_out[8] ;      // Flip-Flop data output
    func_out    CARRY_out() ;   // Carry-output at internal counter is all-H.

}

/* ************************************************************ */
// Declare module
module CNT8_instanciate {

/* ************************************************************ */
// Instanciate lower-module
    CNT4    lower_CNT4 ;            // Instanciate CNT[3:0]
    CNT4    upper_CNT4 ;            // Instanciate CNT[7:4]

/* ************************************************************ */
// Internal operation signals

/* ************************************************************ */
// Pallarel operation equation

    {
    // Lower 4bit counter
        lower_CNT4.PARAM_in     = PARAM_in[3:0] ;
        lower_CNT4.LOAD_in      = LOAD_in ;
        lower_CNT4.ENB_in       = ENB_in ;

        lower_CNT4.CARRY_in() ;
                    // -> Call lower 4bit counter carry-in() procedure.

    // Upper 4bit counter
        upper_CNT4.PARAM_in     = PARAM_in[7:4] ;
        upper_CNT4.LOAD_in      = LOAD_in ;
        upper_CNT4.ENB_in       = ENB_in ;

        if ( lower_CNT4.CARRY_out ) {
                    // Check lower 4bit counter value is %1111 ( Carry-up )
            upper_CNT4.CARRY_in() ;
                    // -> Call upper 4bit counter carry-in() procedure.
        }

    // Output signals
        Q_out   = { upper_CNT4.Q_out , lower_CNT4.Q_out } ;
                                    // 4bit + 4bit => 8bit bus width.

    // Generate CARRY-OUT to more higher counter.
        if ( upper_CNT4.CARRY_out & lower_CNT4.CARRY_out ) {
            CARRY_out() ;
        }

    }

}
/* ************************************************************ */
PAGE TOP