RAM_SRAM.nsl


/* ************************************************************ */
declare RAM_SRAM {

    input       AD_i[2] ;       // Address (in)
    input       DB_i[8] ;       // Write Data (in)
    output      DB_o[8] ;       // Read Data (out)

    input       CS_i ;          // Chip select (in)
    input       WEN_i ;         // Write enable (in)
    input       REN_i ;         // Read enable (in)
}

/* ************************************************************ */
// Declare module
module RAM_SRAM {

/* ************************************************************ */
// Internal operation signals
    mem     mem_array [4][8] ;

/* ************************************************************ */
// Equation
{
    if ( CS_i & WEN_i ) {
        mem_array[AD_i] := DB_i ;
    }

    if ( CS_i & REN_i ) {
        DB_o = mem_array[AD_i] ;
    } else {
        DB_o = 8'h00 ;
    }
}

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