1 |
15 |
dinesha |
|
2 |
|
|
/*-----------------------------------------------------------------\
|
3 |
|
|
| DESCRIPTION: |
|
4 |
|
|
| tb_defs.v: Definitions of symbolic constants |
|
5 |
|
|
| used as task arguments in user-callable |
|
6 |
|
|
| tasks |
|
7 |
|
|
| |
|
8 |
|
|
| Instantiated modules: none |
|
9 |
|
|
| Included files: none |
|
10 |
|
|
\-----------------------------------------------------------------*/
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
// Global defines useful for setting arguments
|
15 |
|
|
// of testbench tasks
|
16 |
|
|
|
17 |
|
|
/*******************************************************************/
|
18 |
|
|
|
19 |
|
|
// Parameters in port initialization task
|
20 |
|
|
// MII types
|
21 |
|
|
`define RMII 0 // Reduced MII
|
22 |
|
|
`define FULL_MII 1 // Full MII
|
23 |
|
|
`define GMII 2 // Gigabit MII
|
24 |
|
|
`define SMII 3 // serial MII
|
25 |
|
|
`define CUSTOM 4 // custom parallel interface
|
26 |
|
|
`define SERDES 5 // Gigabit Ethernet SERDES interface
|
27 |
|
|
|
28 |
|
|
// duplex status
|
29 |
|
|
`define HALF_DUPLEX 0
|
30 |
|
|
`define FULL_DUPLEX 1
|
31 |
|
|
// Port speed
|
32 |
|
|
`define SPEED_10 0 // 10 Mb/s
|
33 |
|
|
`define SPEED_100 1 // 100 Mb/s
|
34 |
|
|
`define SPEED_1000 2 // 1000 Mb/s
|
35 |
|
|
|
36 |
|
|
// Options in handling received PAUSE frames
|
37 |
|
|
// (used as arguments in task "set_pause_options")
|
38 |
|
|
`define NORMAL_PAUSE_HANDLING 0
|
39 |
|
|
`define ADD_TO_PAUSE_INTERVAL 1
|
40 |
|
|
`define IGNORE_RECEIVED_PAUSE 2
|
41 |
|
|
|
42 |
|
|
// Flow types in task "set_flow_type"
|
43 |
|
|
`define L2_UNICAST 0 // Layer-2 unicast flow
|
44 |
|
|
`define L2_BROADCAST 1 // Layer-2 broadcast
|
45 |
|
|
`define L2_MULTICAST 2 // Layer-2 multicast
|
46 |
|
|
`define L3_UNICAST 3 // Layer-3 unicast flow
|
47 |
|
|
`define L3_MULTICAST 4 // Layer-3 multicast flow
|
48 |
|
|
`define L4_UNICAST 5 // Layer-4 unicast flow
|
49 |
|
|
`define L4_MULTICAST 6 // Layer-4 multicast flow
|
50 |
|
|
|
51 |
|
|
// L2 protocol choices
|
52 |
|
|
// used as argument in task "set_L2_protocol"
|
53 |
|
|
`define UNTAGGED_ETHERNET 0 // Ethernet frames without tagging
|
54 |
|
|
`define TAGGED_ETHERNET 1 // Ethernet frames with tagging
|
55 |
|
|
`define UNTAGGED_802 2 // 802.3 frames without tagging
|
56 |
|
|
`define TAGGED_802 3 // 802.3 frames with tagging
|
57 |
|
|
`define BPDU 4 // 802.1d Bridge Protocol Data Units
|
58 |
|
|
|
59 |
|
|
// Options for generation of MAC addresses, VLAN TCI,
|
60 |
|
|
// and packet size in packet sequences
|
61 |
|
|
`define CONSTANT_VALUE 0 // constant value in all packets
|
62 |
|
|
`define INCREMENTAL_PATTERN 1 // increasing or decreasing pattern
|
63 |
|
|
`define RANDOM_PATTERN 2 // randomly generated value
|
64 |
|
|
|
65 |
|
|
// L3 protocol choices
|
66 |
|
|
// used as argument in task "set_L3_protocol"
|
67 |
|
|
`define IGMP_v1 1 // IGMP Version 1
|
68 |
|
|
`define IGMP_v2 2 // IGMP Version 2
|
69 |
|
|
`define IP_v4 4 // IP Version 4
|
70 |
|
|
`define IP_v6 6 // IP Version 6
|
71 |
|
|
`define ICMP_v4 7 // ICMP on IP Version 4
|
72 |
|
|
`define ARP 8 // TCP/IP ARP
|
73 |
|
|
`define IPX 9 // IPX
|
74 |
|
|
|
75 |
|
|
// L4 protocol choices
|
76 |
|
|
// used as argument in task "set_L4_protocol"
|
77 |
|
|
`define TCP 0
|
78 |
|
|
`define UDP 1
|
79 |
|
|
|
80 |
|
|
// Options for setting paylod of transmitted packets
|
81 |
|
|
// used in task "set_payload_type"
|
82 |
|
|
`define INCREASING_PAYLOAD 0 // increasing sequence of bytes (default)
|
83 |
|
|
`define DECREASING_PAYLOAD 1 // decreasing sequence of bytes
|
84 |
|
|
`define RANDOM_PAYLOAD 2 // Randomly generated payload
|
85 |
|
|
`define USER_PAYLOAD 3 // user-supplied payload
|
86 |
|
|
|
87 |
|
|
// Options for CRC generation
|
88 |
|
|
// used in task "set_crc_option"
|
89 |
|
|
`define GOOD_CRC 0 // good CRC
|
90 |
|
|
`define BAD_CRC 1 // transmit bad CRC
|
91 |
|
|
`define NO_CRC 2 // do not insert CRC
|
92 |
|
|
`define USER_DEFINED_CRC 3 // user-defined value
|
93 |
|
|
|
94 |
|
|
// options for L3 and L4 cheksum generation
|
95 |
|
|
// used in tasks "set_L3_checksum_option" and
|
96 |
|
|
// "set_L4_checksum_option
|
97 |
|
|
`define GOOD_CHECKSUM 0 // insert good checksum
|
98 |
|
|
`define BAD_CHECKSUM 1 // insert bad checksum
|
99 |
|
|
`define NO_CHECKSUM 2 // transmit checksum of all zeroes
|
100 |
|
|
`define USER_DEFINED_CHECKSUM 3 // user-defined value
|
101 |
|
|
|
102 |
|
|
// blocking/non-blocking option in transmit tasks
|
103 |
|
|
`define BLOCKING 1 // task blocks until end of transmission
|
104 |
|
|
`define NON_BLOCKING 0 // task returns immediately
|
105 |
|
|
|
106 |
|
|
// Transmit states returned by task "get_transmit_state"
|
107 |
|
|
`define TRANSMIT_FRAME 1 // port currently transmitting a frame
|
108 |
|
|
`define COLLISION_STATE 2 // port resolving a collision
|
109 |
|
|
`define TRANSMIT_SEQUENCE 3 // Transmission of packet sequence in progress
|
110 |
|
|
`define IDLE_STATE 0 // idle
|
111 |
|
|
|
112 |
|
|
//States returned by task "get_receive_state"
|
113 |
|
|
`define RECEIVE_FRAME 1 // Port receiving a frame
|
114 |
|
|
|
115 |
|
|
// event types in task "wait_for_event"
|
116 |
|
|
`define START_OF_XMIT_FRAME 1 // start of transmission of next frame
|
117 |
|
|
`define END_OF_XMIT_SEQUENCE 2 // end of packet sequence in progress
|
118 |
|
|
`define END_OF_XMIT_FRAME 3 // end of current frame in progress
|
119 |
|
|
`define START_OF_RCV_FRAME 4 // start of frame reception
|
120 |
|
|
`define END_OF_RCV_FRAME 5 // end of frame reception
|
121 |
|
|
`define COLLISION_EVENT 6 // collision event
|
122 |
|
|
`define REPEATED_COLLISION_EVENT 7 // repeated collisions
|
123 |
|
|
|
124 |
|
|
`define DUMMY 0 // Dummy argument for tasks
|
125 |
|
|
//
|
126 |
|
|
|
127 |
|
|
|
128 |
|
|
|
129 |
|
|
|
130 |
|
|
|
131 |
|
|
|
132 |
|
|
|
133 |
|
|
|
134 |
|
|
|
135 |
|
|
|
136 |
|
|
|
137 |
|
|
|
138 |
|
|
|
139 |
|
|
|
140 |
|
|
|
141 |
|
|
|
142 |
|
|
|
143 |
|
|
|
144 |
|
|
|
145 |
|
|
|
146 |
|
|
|