to be debugged - EDA Playground
Warning! This exercise has been opened in another tab; autosave has been disabled. Close this tab or refresh to reactivate.

 Languages & Libraries

 Tools & Simulators

 Examples

206


48
 
1
// Code your testbench here
2
// or browse Examples
3
4
typedef enum { L2_PKT, L3_PKT, JUMBO_PKT } pkt_type_t;
5
6
class gen_pkt;
7
  int cell_size = 128;
8
  int pkt_len;
9
  rand pkt_type_t pkt_type;
10
  int pattern;
11
  rand int num_pkts, pkt_len_mode;
12
  pkt_type_t list_of_pkts[];
13
    
14
  constraint c1 { pattern dist {
15
    1 := 20, 2 := 50, 3 := 30 }; 
16
                };
17
  
18
  constraint c2 { 
19
    pkt_len_mode dist {
20
      1 := 10, 2 := 10, 3 := 10, 4 := 20, 5 := 10, 6 := 10, 7 := 30 };
21
    pkt_len_mode == 1 -> pkt_len == 64;
22
    pkt_len_mode == 2 -> pkt_len == (pkt_type == L2_PKT) ? 1518 : (pkt_type == L3_PKT) ? 4096 : 9216;
23
    pkt_len_mode == 3 -> pkt_len == pkt_len%cell_size;
24
    pkt_len_mode == 4 -> pkt_len inside {[pkt_len%cell_size-4:pkt_len%cell_size+4]};
25
    //pkt_len_mode == 5 -> pkt_len += 1;
26
    //pkt_len_mode == 6 -> pkt_len -= 1;
27
    pkt_len_mode == 7 -> pkt_len inside {[64:9216]};
28
  };
29
endclass
30
31
module top;
32
  reg clk;
33
  
34
  gen_pkt A;
35
  
36
  initial begin
37
    clk <= 0;
38
    A = new();
39
    $display("[%t]", $time);
40
  end
41
  
42
  always begin
43
    #10 clk <= clk;
44
  end
45
  
46
  //task gen_pkt() begin
47
  //end
48
endmodule 
2
 
1
// Code your design here
2
31 views and 0 likes     
A short description will be helpful for you to remember your playground's details
 
100:0