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

Subversion Repositories oms8051mini

[/] [oms8051mini/] [trunk/] [verif/] [testcase/] [uart_lb.v] - Blame information for rev 32

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 32 dinesha
task uart_lb;
2 2 dinesha
 
3
reg [1:0] data_bit        ;
4
reg       stop_bits       ; // 0: 1 stop bit; 1: 2 stop bit;
5
reg       stick_parity    ; // 1: force even parity
6
reg       parity_en       ; // parity enable
7
reg       even_odd_parity ; // 0: odd parity; 1: even parity
8
 
9
reg [7:0] data;
10
reg [15:0] divisor        ;      // divided by n * 16
11
reg [15:0] timeout        ;// wait time limit
12
 
13
reg [15:0] rx_nu;
14
reg [15:0] tx_nu;
15
reg [7:0] write_data [0:39];
16
reg     fifo_enable       ;     // fifo mode disable
17
integer i,j;
18
begin
19
   data_bit           = 2'b11;
20
   stop_bits          = 0; // 0: 1 stop bit; 1: 2 stop bit;
21
   stick_parity       = 0; // 1: force even parity
22 7 dinesha
   parity_en          = 0; // parity enable
23 2 dinesha
   even_odd_parity    = 1; // 0: odd parity; 1: even parity
24 7 dinesha
   divisor            = 15;// divided by n * 16
25 2 dinesha
   timeout            = 500;// wait time limit
26
   fifo_enable        = 0;       // fifo mode disable
27
 
28 32 dinesha
   repeat (2000) @(posedge app_clk);  // wait for Processor Get Ready
29 2 dinesha
   tb_uart.uart_init;
30 32 dinesha
   //tb_top.cpu_byte_write(`ADDR_SPACE_UART,8'h0,{3'h0,2'b00,1'b1,1'b1,1'b1});  
31 2 dinesha
 
32
 
33
   for (i=0; i<40; i=i+1)
34
        write_data[i] = $random;
35
 
36
 
37
     tb_top.tb_uart.control_setup (data_bit, stop_bits, parity_en, even_odd_parity, stick_parity, timeout, divisor, fifo_enable);
38
 
39
 
40
      fork
41
      begin
42
         for (i=0; i<40; i=i+1)
43
         begin
44
           $display ("\n... Writing char %x ...", write_data[i]);
45
            tb_top.tb_uart.write_char (write_data[i]);
46
         end
47
      end
48
 
49
      begin
50
         for (j=0; j<40; j=j+1)
51
         begin
52
           tb_top.tb_uart.read_char_chk(write_data[j]);
53
         end
54
      end
55
      join
56
 
57
      #100
58
      tb_top.tb_uart.report_status(rx_nu, tx_nu);
59
 
60
end
61
endtask

powered by: WebSVN 2.1.0

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