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

Subversion Repositories spacewiresystemc

[/] [spacewiresystemc/] [trunk/] [vpi/] [vpi_test_stress/] [write_tx_data_spw_ultra_light.h] - Blame information for rev 10

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 redbear
static int write_tx_data_spw_ultra_light_calltf(char*user_data)
2
{
3
        vpiHandle TX_DATA      = vpi_handle_by_name("module_tb.TOP_TX_DATA",NULL);
4
        vpiHandle TX_WRITE     = vpi_handle_by_name("module_tb.TOP_TX_WRITE",NULL);
5 10 redbear
        vpiHandle TX_READY     = vpi_handle_by_name("module_tb.TOP_TX_READY",NULL);
6 5 redbear
 
7 10 redbear
        value_to_tx.format = vpiIntVal;
8 5 redbear
 
9 10 redbear
        if(SC_TOP->reset_set())
10
        {
11
                if(SC_TOP->start_tx_test())
12
                {
13
                        switch(state_test)
14
                        {
15
                                case SEND_DATA:
16
 
17
                                        value_to_tx.value.integer = 0;
18
                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
19
 
20
                                        value_to_tx.value.integer = SC_TOP->take_data(position);
21
                                        vpi_put_value(TX_DATA, &value_to_tx, NULL, vpiNoDelay);
22
                                        state_test = 59;
23
                                break;
24
                                case 59:
25
                                        vpi_get_value(TX_READY, &value_to_tx);
26
 
27
                                        if(value_to_tx.value.integer == 0)
28
                                        {
29
                                                value_to_tx.value.integer = 1;
30
                                                vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
31
                                                state_test = WAIT_DATA;
32
                                        }
33
 
34
                                break;
35
                                case WAIT_DATA:
36
 
37
                                        vpi_get_value(TX_READY, &value_to_tx);
38
 
39
                                        if(value_to_tx.value.integer == 1)
40
                                        {
41
                                                state_test = SEND_DATA;
42
                                                position = position + 1;
43
 
44
                                                if(position > SC_TOP->size_data_test())
45
                                                {
46
                                                        value_to_tx.value.integer = 0;
47
                                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
48
                                                        state_test = 60;
49
                                                }
50
                                        }
51
                                        else
52
                                        {
53
                                        }
54
                                break;
55
                                case 60:
56
                                        SC_TOP->end_tx_test();
57
                                        counter = position = state_test = 0;
58
                                break;
59
                        }
60
                }
61
                else
62
                {
63
                        position = 0;
64
                }
65
        }
66
 
67 5 redbear
        return 0;
68
}

powered by: WebSVN 2.1.0

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