Code Browser Pages:
Files in
vmm_eth.tar



call_back.sv
cfg_intf.sv
cfg_xtor.sv
chan.sv
cov.sv
env.sv
file_list
host_driver.sv
host_intf.sv
host_xtor_rx.sv
host_xtor.sv
Current file: phy_driver.sv
phy_intf.sv
phy_xtor_rx.sv
phy_xtor.sv
pkt_generator_rx.sv
pkt_generator.sv
pkt.sv
pro.sv
run
rx_pkt.sv
sb.sv
tb_top.v
timescale.v
top.sv
verilog_top.v



`include "vmm.sv"

`ifndef PHY_DRIVER_CLASS
`define PHY_DRIVER_CLASS

class phy_driver extends vmm_xactor ;

   virtual phy_intf  p_if;

   extern function new(string name,virtual phy_intf  p_if);

   extern function bit [2:0] read_Speed ();
   extern function bit       read_Tx_er ();
   extern function bit       read_Tx_en ();
   extern function bit [7:0] read_Txd   ();

   extern task drive_Rx_er (bit       Rx_er ) ;
   extern task drive_Rx_dv (bit       Rx_dv ) ;
   extern task drive_Rxd   (bit  [7:0]Rxd   ) ;
   extern task drive_Crs   (bit       Crs   ) ;
   extern task drive_Col   (bit       Col   ) ;
   extern task posedge_clk();

endclass


function phy_driver::new(string name,virtual phy_intf  p_if) ;
  super.new("PHY_DRVR",name);
  log = new("PHY_DRVR",name);
  this.p_if = p_if;
endfunction

function bit [2:0] phy_driver::read_Speed ()  ; read_Speed  = p_if.Speed ;endfunction
function bit       phy_driver::read_Tx_er ()  ; read_Tx_er  = p_if.Tx_er ;endfunction
function bit       phy_driver::read_Tx_en ()  ; read_Tx_en  = p_if.Tx_en ;endfunction
function bit [7:0] phy_driver::read_Txd   ()  ; read_Txd    = p_if.Txd   ;endfunction

task phy_driver::drive_Rx_er (bit       Rx_er )  ; p_if.Rx_er  = Rx_er ; endtask
task phy_driver::drive_Rx_dv (bit       Rx_dv )  ; p_if.Rx_dv  = Rx_dv ; endtask
task phy_driver::drive_Rxd   (bit  [7:0]Rxd   )  ; p_if.Rxd    = Rxd   ; endtask
task phy_driver::drive_Crs   (bit       Crs   )  ; p_if.Crs    = Crs   ; endtask
task phy_driver::drive_Col   (bit       Col   )  ; p_if.Col    = Col   ; endtask
task phy_driver::posedge_clk ()                  ; @(posedge p_if.clk) ; endtask

`endif