Code Browser Pages:
Files in
rvm_eth.tar



call_back.vr
Current file: cfg_intf.vr
cfg_xtor.vr
chan.vr
cov.vr
defines.vr
env.vr
host_driver.vr
host_intf.vr
host_xtor_rx.vr
host_xtor.vr
phy_driver.vr
phy_intf.vr
phy_xtor_rx.vr
phy_xtor.vr
pkt.vr
pro.vr
run
rx_pkt.vr
sb.vr
timescale.v
top.v



#ifndef CFG_INTF_CLASS
#define CFG_INTF_CLASS

#ifndef INPUT_EDGE
#define INPUT_EDGE   PSAMPLE #-1
#endif
#ifndef OUTPUT_EDGE
#define OUTPUT_EDGE  PHOLD  #1
#endif


interface cfg_intf {

  input        clk           CLOCK ;

  input   [15:0]   CD_out        INPUT_EDGE ;
  output           CSB           OUTPUT_EDGE;
  output           WRB           OUTPUT_EDGE;
  output           CPU_init_end  OUTPUT_EDGE;
  output  [15:0]   CD_in         OUTPUT_EDGE;
  output  [7:0]    CA            OUTPUT_EDGE;


}


class cfg_driver {
  string name ;

  task new(string name);
  function  bit [15:0]   read_CD_out  ();
  task drive_CSB          (bit          CSB          );
  task drive_WRB          (bit          WRB          );
  task drive_CPU_init_end (bit          CPU_init_end );
  task drive_CD_in        (bit [15:0]   CD_in        );
  task drive_CA           (bit [7:0]    CA           );
  task posedge_clk        (                          );
}

task cfg_driver::new(string name){
  this.name = name;
}

function  bit [15:0]  cfg_driver::read_CD_out  (){read_CD_out  = cfg_intf.CD_out ;  }
task cfg_driver::drive_CSB          (bit          CSB          ){cfg_intf.CSB          = CSB         ; }
task cfg_driver::drive_WRB          (bit          WRB          ){cfg_intf.WRB          = WRB         ; }
task cfg_driver::drive_CPU_init_end (bit          CPU_init_end ){cfg_intf.CPU_init_end = CPU_init_end; }
task cfg_driver::drive_CD_in        (bit [15:0]   CD_in        ){cfg_intf.CD_in        = CD_in       ; }
task cfg_driver::drive_CA           (bit [7:0]    CA           ){cfg_intf.CA           = CA          ; }
task cfg_driver::posedge_clk        (                          ) { @(posedge cfg_intf.clk);             }


#endif