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] - Diff between revs 16 and 40

Show entire file | Details | Blame | View Log

Rev 16 Rev 40
Line 1... Line 1...
static int write_tx_data_spw_ultra_light_calltf(char*user_data)
static int write_tx_data_spw_ultra_light_calltf(char*user_data)
{
{
        vpiHandle TX_DATA      = vpi_handle_by_name("module_tb.TOP_TX_DATA",NULL);
        vpiHandle TX_DATA      = vpi_handle_by_name("module_tb.TOP_TX_DATA",NULL);
        vpiHandle TX_WRITE     = vpi_handle_by_name("module_tb.TOP_TX_WRITE",NULL);
        vpiHandle TX_WRITE     = vpi_handle_by_name("module_tb.TOP_TX_WRITE",NULL);
        vpiHandle TX_READY     = vpi_handle_by_name("module_tb.TOP_TX_READY",NULL);
        vpiHandle F_FULL       = vpi_handle_by_name("module_tb.F_FULL",NULL);
 
        vpiHandle F_EMPTY      = vpi_handle_by_name("module_tb.F_EMPTY",NULL);
 
        vpiHandle COUNTER_FIFO_TX      = vpi_handle_by_name("module_tb.COUNTER_FIFO_TX",NULL);
 
 
        value_to_tx.format = vpiIntVal;
        value_to_tx.format = vpiIntVal;
 
 
        if(SC_TOP->reset_set())
        if(SC_TOP->reset_set())
        {
        {
 
 
                if(SC_TOP->start_tx_test())
                if(SC_TOP->start_tx_test())
                {
                {
 
 
 
                        //printf("state: %d\n",state_test);
 
 
                        switch(state_test)
                        switch(state_test)
                        {
                        {
                                case SEND_DATA:
                                case SEND_DATA:
 
 
                                        value_to_tx.value.integer = 0;
                                        value_to_tx.value.integer = 0;
                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
                                        state_test = 59;
 
                                break;
 
                                case 59:
 
 
 
                                        value_to_tx.value.integer = SC_TOP->take_data(position);
                                        value_to_tx.value.integer = SC_TOP->take_data(position);
                                        vpi_put_value(TX_DATA, &value_to_tx, NULL, vpiNoDelay);
                                        vpi_put_value(TX_DATA, &value_to_tx, NULL, vpiNoDelay);
 
 
                                        vpi_get_value(TX_READY, &value_to_tx);
                                        state_test = 59;
 
                                break;
 
                                case 59:
 
 
                                        if(value_to_tx.value.integer == 0)
                                        vpi_get_value(COUNTER_FIFO_TX, &value_to_tx);
 
 
 
                                        if(value_to_tx.value.integer < 63 )
                                        {
                                        {
                                                value_to_tx.value.integer =1;
                                                value_to_tx.value.integer =1;
                                                vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
                                                vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
                                                state_test = WAIT_DATA;
                                                state_test = WAIT_DATA;
 
                                                position = position + 1;
 
                                        }
 
                                        else
 
                                        {
 
 
 
 
                                        }
                                        }
 
 
                                break;
                                break;
                                case WAIT_DATA:
                                case WAIT_DATA:
 
 
                                        vpi_get_value(TX_READY, &value_to_tx);
                                        value_to_tx.value.integer = 0;
 
                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
 
 
 
                                        //vpi_get_value(F_FULL, &value_to_tx);
 
 
                                        if(value_to_tx.value.integer == 1)
 
                                        {
 
                                                state_test = SEND_DATA;
                                                state_test = SEND_DATA;
                                                position = position + 1;
 
 
 
                                                if(position > SC_TOP->size_data_test())
                                        if(position < SC_TOP->size_data_test_vlog())
                                                {
                                                {
                                                        value_to_tx.value.integer = 0;
                                                //value_to_tx.value.integer = 0;
                                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
                                                //vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
                                                        state_test = 60;
                                                state_test = SEND_DATA;
                                                }
 
                                                else
 
                                                {
 
                                                        value_to_tx.value.integer = 0;
 
                                                        vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
 
                                                }
 
                                        }
                                        }
                                        else
                                        else
                                        {
                                        {
 
                                                //value_to_tx.value.integer = 0;
 
                                                //vpi_put_value(TX_WRITE, &value_to_tx, NULL, vpiNoDelay);
 
                                                state_test = 60;
 
                                                printf("value is %d\n",position);
                                        }
                                        }
 
 
                                break;
                                break;
                                case 60:
                                case 60:
                                        SC_TOP->end_tx_test();
                                        SC_TOP->end_tx_test();
                                        counter = position = state_test = 0;
                                        counter = position = state_test = 0;
                                break;
                                break;
Line 67... Line 77...
                }
                }
                else
                else
                {
                {
                        position = 0;
                        position = 0;
                }
                }
 
 
        }
        }
 
 
        return 0;
        return 0;
}
}
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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