OVP Peripheral Model: CadenceGem

Model Specific Information

This page provides introductory usage information for an Imperas OVP peripheral behavioral model. The page is split into sections providing specific information for this peripheral, including any ports for connecting into a platform, registers, other component parts, and configuration options and general information for peripheral modeling with Imperas OVP.


Model of Cadence Gigabit Ethernet Controller (GEM). For further details please consult README-EMAC.txt

This model is based upon the data and use in the Xilinx Zynq

Basic network Tx/Rx functionality tested using Xilinx Linux Kernel using wget and other similar tools

Tested with Xilinx SDK Example driver.


Open Source Apache 2.0


This model is based upon the data from the Xilinx Zynq platform, other registers may not be included.

Does not implement: VLAN, pause frames, filtering or timestamps.


Zynq-7000 TRM (


The gem peripheral model is located in an Imperas/OVP installation at the VLNV: / peripheral / gem / 1.0.

Peripheral Instance Parameters

This model accepts the following parameters:

Table : Peripheral Parameters

pollDelayuns32Read pollDelay
outfilestringWireshark capture file
recordstringRecord external events into this file
replaystringReplay external events from this file
tapDevicestringThe name of the TAP device
redirstringUser mode redirection of host port to virtual port (using SLiRP), command format <protocol>:<host port>:<ip address>:<virtual port>
tftpPrefixstringPath to the root of the tftp directory. To use tftp, fetch from the host (gw) IP address.
macaddressuns64The MAC address (hex number)
macprefixuns32The first two bytes of MAC addresses (hex number) on the VLAN
networkstringThe (v4) IP address of the local network device.
logfilestringThe file to which Ethernet frames should be logged. Uses pcap file format, viewable by Wireshark and other programs. Do not use if this device is connected to a packetnet

Net Ports

This model has the following net ports:

Table 1: Net Ports

NameTypeMust Be ConnectedDescription
irqoutputF (False)IRQ Pin

Bus Master Ports

This model has the following bus master ports:

Bus Master Port: bport2

Table 2: bport2

NameAddress Width (bits)Description
bport232DMA Master Port

Bus Slave Ports

This model has the following bus slave ports:

Bus Slave Port: bport1

Table 3: Bus Slave Port: bport1

NameSize (bytes)Must Be ConnectedDescription
bport10x1000T (True)

Table 4: Bus Slave Port: bport1 Registers:

NameOffsetWidth (bits)DescriptionR/Wis Volatile
ab_net_ctrl0x032Network Control
ab_net_cfg0x432Network Configuration
ab_net_status0x832Network Status
ab_user_io0xc32User IO (Not in TRM)
ab_dma_cfg0x1032DMA Configuration
ab_tx_status0x1432Transmit Status
ab_rx_qbar0x1832Receive Buffer Queue Base Address
ab_tx_qbar0x1c32Transmit Buffer Queue Base Address
ab_rx_status0x2032Receive Status
ab_intr_status0x2432Interrupt Status
ab_intr_en0x2832Interrupt Enable
ab_intr_dis0x2c32Interrupt Disable
ab_intr_mask0x3032Interrupt Mask Status
ab_phy_maint0x3432PHY Maintenance
ab_rx_pauseq0x3832Received Pause Quantum
ab_tx_pauseq0x3c32Transmit Pause Quantum
ab_gem_jml0x4832GEM Jumbo Max Length
ab_hash_bot0x8032Hash Register Bottom [31:0]
ab_hash_top0x8432Hash Register Top [63:32]
ab_spec_addr1_bot0x8832Specific Address 1 Bottom [31:0]
ab_spec_addr1_top0x8c32Specific Address 1 Top [47:32]
ab_spec_addr2_bot0x9032Specific Address 2 Bottom [31:0]
ab_spec_addr2_top0x9432Specific Address 2 Top [47:32]
ab_spec_addr3_bot0x9832Specific Address 3 Bottom [31:0]
ab_spec_addr3_top0x9c32Specific Address 3 Top [47:32]
ab_spec_addr4_bot0xa032Specific Address 4 Bottom [31:0]
ab_spec_addr4_top0xa432Specific Address 4 Top [47:32]
ab_type_id_match10xa832Type ID Match 1
ab_type_id_match20xac32Type ID Match 2
ab_type_id_match30xb032Type ID Match 3
ab_type_id_match40xb432Type ID Match 4
ab_wake_on_lan0xb832Wake on LAN Register
ab_ipg_stretch0xbc32IPG stretch register
ab_stacked_vlan0xc032Stacked VLAN Register
ab_tx_pfc_pause0xc432Transmit PFC Pause Register
ab_spec_addr1_mask_bot0xc832Specific Address Mask 1 Bottom [31:0]
ab_spec_addr1_mask_top0xcc32Specific Address Mask 1 Top [47:32]
ab_rx_ptp_uni0xd432PTP RX Unicast address (Not in TRM)
ab_tx_ptp_uni0xd832PTP TX Unicast address (Not in TRM)
ab_module_id0xfc32Module ID
ab_octets_tx_bot0x10032Octets transmitted [31:0] (in frames without error)
ab_octets_tx_top0x10432Octets transmitted [47:32] (in frames without error)
ab_frames_tx0x10832Frames Transmitted
ab_broadcast_frames_tx0x10c32Broadcast frames Tx
ab_multi_frames_tx0x11032Multicast frames Tx
ab_pause_frames_tx0x11432Pause frames Tx
ab_frames_64b_tx0x11832Frames Tx, 64-byte length
ab_frames_65to127b_tx0x11c32Frames Tx, 65 to 127-byte length
ab_frames_128to255b_tx0x12032Frames Tx, 128 to 255-byte length
ab_frames_256to511b_tx0x12432Frames Tx, 256 to 511-byte length
ab_frames_512to1023b_tx0x12832Frames Tx, 512 to 1023-byte length
ab_frames_1024to1518b_tx0x12c32Frame Tx, 1024 to 1518-byte length
ab_frames_1519bplus_tx0x13032Frame Tx, 1519+byte length (Not in TRM)
ab_tx_under_runs0x13432Transmit under runs
ab_single_collisn_frames0x13832Single Collision Frames
ab_multi_collisn_frames0x13c32Multiple Collision Frames
ab_excessive_collisns0x14032Excessive Collisions
ab_late_collisns0x14432Late Collisions
ab_deferred_tx_frames0x14832Deferred Transmission Frames
ab_carrier_sense_errs0x14c32Carrier Sense Errors.
ab_octets_rx_bot0x15032Octets Received [31:0]
ab_octets_rx_top0x15432Octets Received [47:32]
ab_frames_rx0x15832Frames Received
ab_bdcast_frames_rx0x15c32Broadcast Frames Rx
ab_multi_frames_rx0x16032Multicast Frames Rx
ab_pause_rx0x16432Pause Frames Rx
ab_frames_64b_rx0x16832Frames Rx, 64-byte length
ab_frames_65to127b_rx0x16c32Frames Rx, 65 to 127-byte length
ab_frames_128to255b_rx0x17032Frames Rx, 128 to 255-byte length
ab_frames_256to511b_rx0x17432Frames Rx, 256 to 511-byte length
ab_frames_512to1023b_rx0x17832Frames Rx, 512 to 1023-byte length
ab_frames_1024to1518b_rx0x17c32Frames Rx, 1024 to 1518-byte length
ab_frames_1519bplus_rx0x18032Frames Rx, 1519+byte length (Not in TRM)
ab_undersz_rx0x18432Undersize frames received
ab_oversz_rx0x18832Oversize frames received
ab_jab_rx0x18c32Jabbers received
ab_fcs_errors0x19032Frame check sequence errors
ab_length_field_errors0x19432Length field frame errors
ab_rx_symbol_errors0x19832Receive symbol errors
ab_align_errors0x19c32Alignment errors
ab_rx_resource_errors0x1a032Receive resource errors
ab_rx_overrun_errors0x1a432Receive overrun errors
ab_ip_hdr_csum_errors0x1a832IP header checksum errors
ab_tcp_csum_errors0x1ac32TCP checksum errors
ab_udp_csum_errors0x1b032UDP checksum error
ab_timer_strobe_s0x1c8321588 timer sync strobe seconds
ab_timer_strobe_ns0x1cc321588 timer sync strobe nanoseconds
ab_timer_s0x1d0321588 timer seconds
ab_timer_ns0x1d4321588 timer nanoseconds
ab_timer_adjust0x1d8321588 timer adjust
ab_timer_incr0x1dc321588 timer increment
ab_ptp_tx_s0x1e032PTP event frame transmitted seconds
ab_ptp_tx_ns0x1e432PTP event frame transmitted nanoseconds
ab_ptp_rx_s0x1e832PTP event frame received seconds
ab_ptp_rx_ns0x1ec32PTP event frame received nanoseconds.
ab_ptp_peer_tx_s0x1f032PTP peer event frame transmitted seconds
ab_ptp_peer_tx_ns0x1f432PTP peer event frame transmitted nanoseconds
ab_ptp_peer_rx_s0x1f832PTP peer event frame received seconds
ab_ptp_peer_rx_ns0x1fc32PTP peer event frame received nanoseconds.
ab_design_cfg10x28032Design Configuration 1 (Not in TRM)
ab_design_cfg20x28432Design Configuration 2
ab_design_cfg30x28832Design Configuration 3
ab_design_cfg40x28c32Design Configuration 4
ab_design_cfg50x29032Design Configuration 5
ab_design_cfg60x29432Design Configuration 6 (Not in TRM)
ab_tx_bd_cntrl0x4cc32TX descriptor control (Not in TRM)
ab_rx_bd_cntrl0x4d032RX descriptor control (Not in TRM)

Bus Slave Port: phyport

Table 5: Bus Slave Port: phyport

NameSize (bytes)Must Be ConnectedDescription
phyport0x100F (False)

Table 6: Bus Slave Port: phyport Registers:

NameOffsetWidth (bits)DescriptionR/Wis Volatile
ab_MII_BMCR0x016Basic mode control register
ab_MII_BMSR0x216Basic mode status register
ab_MII_ADVERTISE0x816Advertisement control reg
ab_MII_LPA0xa16Link partner ability reg
ab_MII_EXPANSION0xc16Expansion register
ab_MII_CTRL10000x12161000BASE-T control
ab_MII_STAT10000x14161000BASE-T status
ab_MII_MMD_CTRL0x1a16MMD Access Control Register
ab_MII_MMD_DATA0x1c16MMD Access Data Register
ab_MII_ESTATUS0x1e16Extended Status
ab_MII_DCOUNTER0x2416Disconnect counter
ab_MII_FCSCOUNTER0x2616False carrier counter
ab_MII_NWAYTEST0x2816N-way auto-neg test reg
ab_MII_RERRCOUNTER0x2a16Receive error counter
ab_MII_SREVISION0x2c16Silicon revision
ab_MII_LBRERROR0x3016Lpback, rx, bypass error
ab_MII_PHYADDR0x3216PHY address
ab_MII_TPISTATUS0x3616TPI status for 10mbps
ab_MII_NCONFIG0x3816Network interface config

Packetnet Ports

This model has the following packetnet ports:

Packetnet Port: phy

Table 7: phy

NameMaximum Packet Size (bytes)Must Be ConnectedDescription
phy1524F (False)The port to connect the packetnet virtual network

Platforms that use this peripheral component

Peripheral components can be used in many different platforms, including those developed by Imperas or by other users of OVP. You can use this peripheral in your own platforms.

Table 8: Publicly available platforms using peripheral 'gem'

Platform NameVendor

Page was generated in 0.1385 seconds