1 |
15 |
dinesha |
|
2 |
|
|
/*-----------------------------------------------------------------\
|
3 |
|
|
| DESCRIPTION: |
|
4 |
|
|
| tb_conf.v: Global constant definitions |
|
5 |
|
|
| |
|
6 |
|
|
| Instantiated modules: none |
|
7 |
|
|
| Included files: none |
|
8 |
|
|
\-----------------------------------------------------------------*/
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
`define TESTBENCH tb_top.u_tb_eth // hierarchical name of testbench instance
|
12 |
|
|
|
13 |
|
|
`define MAX_STR_LENGTH 100 // max length for character strings
|
14 |
|
|
|
15 |
|
|
`define MAX_PKT_SIZE 8000 // Max packet size in bytes
|
16 |
|
|
|
17 |
|
|
`define MAX_HEADER_SIZE 32 // Max size of user-defined packet headers
|
18 |
|
|
// (in bytes)
|
19 |
|
|
`define IP_EXTENSION_HEADER_SIZE 256 // Max size of IP Extension Header
|
20 |
|
|
|
21 |
|
|
`define MIN_IFG 96 // Minimum permitted IFG on receive side
|
22 |
|
|
// for signalling error
|
23 |
|
|
|
24 |
|
|
`define EVENT_LOG_FILENAME "stargate_events.log" // file to log events
|
25 |
|
|
|
26 |
|
|
`define PARAM_LOG_FILENAME "stargate_log_files/tb_param.log" // file for logging packet parameters
|
27 |
|
|
// from print_packet_parameters task
|
28 |
|
|
|
29 |
|
|
/*******************Default values of packet fields ***********************/
|
30 |
|
|
`define DEFAULT_VLAN_TPID 16'h8100 // VLAN Tag Protocol ID in IEEE 802.1Q
|
31 |
|
|
`define DEFAULT_L2_TYPE 16'h0700 // Default type field for Ethernet frames
|
32 |
|
|
// set to an unassigned value
|
33 |
|
|
`define PAUSE_DEST_MAC 48'h0180c2000001 // Destination MAC address for PAUSE frames
|
34 |
|
|
`define PAUSE_TYPE 16'h8808 // type/length value defined for PAUSE frames
|
35 |
|
|
`define PAUSE_OPCODE 16'h0001 // Opcode for PAUSE frame
|
36 |
|
|
/********************************************************************************/
|
37 |
|
|
|
38 |
|
|
/************************* MII parameters ***************************************/
|
39 |
|
|
`define MII_WIDTH 4 // Width of MII interface
|
40 |
|
|
`define RMII_WIDTH 2 // Width of Reduced MII interface
|
41 |
|
|
`define GMII_WIDTH 8 // Width of Gigabit MII interface
|
42 |
|
|
`define SERDES_WIDTH 10 // Width of SERDES interface
|
43 |
|
|
`define SFD 8'b11010101 // Start-of-frame delimiter
|
44 |
|
|
`define MAX_COLLISIONS 16 // Collision limit
|
45 |
|
|
`define BACKOFF_LIMIT 1024 // Maximum backoff in slots
|
46 |
|
|
`define MIN_FRAME_SIZE 64 // Minimum size of a valid frame, in bytes
|
47 |
|
|
/********************************************************************************/
|
48 |
|
|
|
49 |
|
|
/*************** Options for logging frames into events.log file*****************/
|
50 |
|
|
`define LOG_TRANSMITTED_FRAMES 1 // log all frames on transmission
|
51 |
|
|
|
52 |
|
|
`define LOG_RECEIVED_FRAMES 1 // log all frames on reception
|
53 |
|
|
|
54 |
|
|
`define LOG_FRAMES_WITH_ERRORS 1 // log frames received with errors
|
55 |
|
|
/********************************************************************************/
|
56 |
|
|
|
57 |
|
|
/****************Options for terminating simulation on error conditions*********/
|
58 |
|
|
`define TERMINATE_ON_TASK_ERRORS 1 // Terminate when a task is called illegally
|
59 |
|
|
`define TERMINATE_ON_PARAM_ERRORS 1 // Terminate when a parameter to a task
|
60 |
|
|
// is out of range
|
61 |
|
|
`define TERMINATE_ON_TRANSMIT_ERRORS 1 // Terminate on transmit errors, such as
|
62 |
|
|
// when transmit_packet_sequence
|
63 |
|
|
// finds the port busy
|
64 |
|
|
|
65 |
|
|
`define TERMINATE_ON_TRANSMIT_TIMEOUT 1 // Terminate when transmit timer
|
66 |
|
|
// times out
|
67 |
|
|
`define TERMINATE_ON_IFG_VIOLATION 0 // Terminate when IFG on receive
|
68 |
|
|
// less than MIN_IFG
|
69 |
|
|
`define TERMINATE_ON_CRC_ERROR 0 // Terminate when received frame has
|
70 |
|
|
// CRC error
|
71 |
|
|
`define TERMINATE_ON_UNDERSIZE_FRAME 0 // Terminate when size of received frame
|
72 |
|
|
// is less than the defined minimum
|
73 |
|
|
`define TERMINATE_ON_OVERSIZE_FRAME 0 // Terminate when size of received frame
|
74 |
|
|
// is larger than the defined minimum
|
75 |
|
|
`define TERMINATE_ON_ALIGNMENT_ERROR 0 // Terminate when received frame has
|
76 |
|
|
// an alignment error
|
77 |
|
|
/********************************************************************************/
|
78 |
|
|
|
79 |
|
|
/******** The following are debug switches ***********/
|
80 |
|
|
`define DEBUG_MII 0 // Debug MII interfaces
|
81 |
|
|
/********************************************************************************/
|
82 |
|
|
|
83 |
|
|
|