OpenCores
URL https://opencores.org/ocsvn/turbo8051/turbo8051/trunk

Subversion Repositories turbo8051

[/] [turbo8051/] [trunk/] [verif/] [testcase/] [gmac_test2.v] - Blame information for rev 74

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 53 dinesha
task gmac_test2;
2
reg [31:0] read_data;
3
reg [3:0]  desc_ptr;
4
reg [9:0]  desc_rx_qbase;
5
reg [9:0]  desc_tx_qbase;
6
reg [7:0]  iFrmCnt;
7
 
8 74 dinesha
begin
9 53 dinesha
  //--------------------------
10
  // Data Memory MAP
11
  //-------------------------
12
  // 0x0000 to 0x0FFF - 4K - Processor Data Memory
13
  // 0x1000 to 0x1FFF - 4K - Gmac Rx Data Memory
14
  // 0x2000 to 0x2FFF - 4K - Reserved for Rx
15
  // 0x3000 to 0x3FFF - 4K - Gmac Tx Data Memory
16
  // 0x4000 to 0x4FFF - 4K - Reserved for Tx
17
  // 0x7000 to 0x703F - 64 - Rx Descriptor
18
  // 0x7040 to 0x707F - 64 - Tx Descripto
19
 
20
   events_log = $fopen("../test_log_files/test1_events.log");
21
   tb_top.u_tb_eth.event_file = events_log;
22
 
23
   $system("cp ../testcase/dat/gmac_loopback.dat ./dat/oc8051_xrom.in");
24
   // Enable the RISC booting + Internal ROM Mode
25
   tb_top.ea_in       = 1;
26
   tb_top.master_mode = 1;
27
 
28
   #1000 wait(reset_out_n == 1);
29
 
30
 
31
   desc_ptr = 0;
32
   desc_rx_qbase = 10'h1C0;
33
   desc_tx_qbase = 10'h1C1;
34
   iFrmCnt  = 0;
35
   tb_top.u_tb_eth.init_port(3'b1, 3'b1, 1'b1, 0);
36
 
37
   tb_top.cpu_write('h1,8'h0,{4'h1,4'h1,8'h45,8'h01});  // tx/rx-control
38
   tb_top.cpu_write('h1,8'h8,{16'h0,8'd22,8'd22}); // Tx/Rx IFG
39
   tb_top.cpu_write('h1,8'h24,{desc_tx_qbase,desc_ptr,2'b00,
40
                               desc_rx_qbase,desc_ptr,2'b00}); // Tx/Rx Descriptor
41
 
42
   tb_top.u_tb_eth.set_flow_type(0);//L2 unicast 
43
   tb_top.u_tb_eth.set_L2_frame_size(1, 64, 84, 1); //, 1, 17, 33, 49, 64
44
   tb_top.u_tb_eth.set_payload_type(2, 5000,0); //make sure frame size is honored
45
   tb_top.u_tb_eth.set_L2_protocol(0); // Untagged frame
46
   tb_top.u_tb_eth.set_L2_source_address(0, 48'h12_34_56_78_9a_bc, 0,0);
47
   tb_top.u_tb_eth.set_L2_destination_address(0, 48'h16_22_33_44_55_66, 0,0);
48
   tb_top.u_tb_eth.set_L3_protocol(4); // IPV4
49
   tb_top.u_tb_eth.set_crc_option(0,0);
50
 
51
   fork
52
     tb_top.u_tb_eth.transmit_packet_sequence(10, 96, 1, 500000);
53 56 dinesha
     $display("Status: End of Transmission Loop");
54 53 dinesha
     begin
55
         tb_top.u_tb_eth.wait_for_event(3, 0);
56
         tb_top.u_tb_eth.wait_for_event(3, 0);
57 56 dinesha
         $display("Status: End of Waiting Event Loop");
58 53 dinesha
     end
59
   join
60
 
61
  #100000;
62 56 dinesha
  $display("Status: End of Waiting Delay Loop");
63 53 dinesha
 
64
  `TB_AGENTS_GMAC.full_mii.status; // test status
65
 
66
  // Check the Transmitted & Received Frame cnt
67
  if(`TB_AGENTS_GMAC.full_mii.transmitted_packet_count != `TB_AGENTS_GMAC.full_mii.receive_packet_count)
68
       `TB_GLBL.test_err;
69
 
70
  // Check the Transmitted & Received Byte cnt
71
  if(`TB_AGENTS_GMAC.full_mii.transmitted_packet_byte_count != `TB_AGENTS_GMAC.full_mii.receive_packet_byte_count)
72
       `TB_GLBL.test_err;
73
 
74
  if(`TB_AGENTS_GMAC.full_mii.receive_crc_err_count)
75
       `TB_GLBL.test_err;
76
 
77 74 dinesha
end
78 53 dinesha
endtask
79
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.