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 16

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 12 redbear
 
12 10 redbear
                if(SC_TOP->start_tx_test())
13
                {
14
                        switch(state_test)
15
                        {
16
                                case SEND_DATA:
17
 
18
                                        value_to_tx.value.integer = 0;
19
                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
20
                                        state_test = 59;
21
                                break;
22
                                case 59:
23 12 redbear
 
24
                                        value_to_tx.value.integer = SC_TOP->take_data(position);
25
                                        vpi_put_value(TX_DATA, &value_to_tx, NULL, vpiNoDelay);
26
 
27 10 redbear
                                        vpi_get_value(TX_READY, &value_to_tx);
28
 
29
                                        if(value_to_tx.value.integer == 0)
30
                                        {
31 12 redbear
                                                value_to_tx.value.integer =1;
32 10 redbear
                                                vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
33
                                                state_test = WAIT_DATA;
34
                                        }
35
 
36
                                break;
37
                                case WAIT_DATA:
38
 
39
                                        vpi_get_value(TX_READY, &value_to_tx);
40
 
41
                                        if(value_to_tx.value.integer == 1)
42
                                        {
43
                                                state_test = SEND_DATA;
44
                                                position = position + 1;
45
 
46
                                                if(position > SC_TOP->size_data_test())
47
                                                {
48
                                                        value_to_tx.value.integer = 0;
49
                                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
50
                                                        state_test = 60;
51 16 redbear
                                                }
52
                                                else
53
                                                {
54
                                                        value_to_tx.value.integer = 0;
55
                                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
56 10 redbear
                                                }
57
                                        }
58
                                        else
59
                                        {
60
                                        }
61
                                break;
62
                                case 60:
63
                                        SC_TOP->end_tx_test();
64
                                        counter = position = state_test = 0;
65
                                break;
66
                        }
67
                }
68
                else
69
                {
70
                        position = 0;
71
                }
72
        }
73
 
74 5 redbear
        return 0;
75
}

powered by: WebSVN 2.1.0

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