UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 21586

LogiCORE Ethernet Statistics v1.1 Core - Some transmitter statistics for the Virtex-4 Embedded Tri-mode Ethernet MAC do not increment

Description

General Description: 

A problem exists with the LogiCORE Ethernet Statistics v1.1 Core's design example (VHDL and Verilog) for the Virtex-4 Embedded Tri-mode Ethernet MAC. The LogiCORE Gigabit Ethernet MAC and LogiCORE Tri-mode Ethernet MAC soft cores are not affected by this. 

 

The issue is that the following transmitter counters never increment: 

 

Address Name 

------------ ---------------------- 

33............................Pause Frames Transmitted OK 

34............................Single Collision Frames 

35............................Multiple Collision Frames 

36............................Frames with Deferred Transmissions 

37............................Late Collisions 

38............................Frames Aborted due to Excess collisions 

39............................Single Collision Frames 

40............................Frames with Excess deferral

Solution

This is due to errors in the vector_decode.v(vhd) example design file. There is no problem in the netlist. 

 

There is a patch available to fix this issue with these transmitter statistics not incrementing. To obtain this fix, please install the patch that is available in the LogiCORE Ethernet Statistics v1.1 Core Release Notes and Known Issues Answer Record (Xilinx Answer 21055) and then regenerate the core. 

 

Alternatively, this issue can be worked around by modifying the existing /example_design/vector_decode.v(vhd) example design file as follows: 

 

VHDL: 

Add the following assignments to the architecture of the /example_design/vector_decode.vhd file: 

 

tx_pause_frame <= tx_statistics_vector(31); 

tx_attemps <= tx_statistics_vector(28 downto 25); 

tx_excessive_collision <= tx_statistics_vector(23); 

tx_late_collision <= tx_statistics_vector(22); 

tx_excessive_deferral <= tx_statistics_vector(21); 

tx_deferred <= tx_statistics_vector(20);  

 

Verilog: 

Add the following assignments to the /example_design/vector_decode.v file: 

 

assign tx_pause_frame = tx_statistics_vector[31]; 

assign tx_attemps = tx_statistics_vector[28:25]; 

assign tx_excessive_collision = tx_statistics_vector[23]; 

assign tx_late_collision = tx_statistics_vector[22]; 

assign tx_excessive_deferral = tx_statistics_vector[21]; 

assign tx_deferred = tx_statistics_vector[20];

AR# 21586
Date Created 09/04/2007
Last Updated 05/19/2014
Status Archive
Type General Article