Code Browser Pages:
| `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 |