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

Subversion Repositories spacewiresystemc

[/] [spacewiresystemc/] [trunk/] [vpi/] [vpi_test_stress/] [run_sim.h] - Blame information for rev 40

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 redbear
static int run_sim_calltf(char*user_data)
2
{
3 40 redbear
        #ifndef LOOPBACK_VLOG
4
        #define LOOPBACK_VLOG
5
                vpiHandle DOUT         = vpi_handle_by_name("module_tb.TOP_DOUT", NULL);
6
                vpiHandle SOUT         = vpi_handle_by_name("module_tb.TOP_SOUT", NULL);
7
                vpiHandle DIN          = vpi_handle_by_name("module_tb.TOP_DIN", NULL);
8
                vpiHandle SIN          = vpi_handle_by_name("module_tb.TOP_SIN", NULL);
9
        #endif
10 12 redbear
        vpiHandle DTA        = vpi_handle_by_name("module_tb.SPW_SC_FSM", NULL);
11 5 redbear
        //vpiHandle TX_CLOCK_OUT        = vpi_handle_by_name("module_tb.TX_CLOCK_OUT", NULL);
12
 
13
        vpiHandle i          = vpi_handle_by_name("module_tb.i", NULL);
14 12 redbear
        vpiHandle tx_clock   = vpi_handle_by_name("module_tb.time_clk_ns", NULL);
15 5 redbear
 
16 12 redbear
 
17 5 redbear
        dout_value.format    = vpiIntVal;
18
        sout_value.format    = vpiIntVal;
19
 
20
        din_value.format     = vpiIntVal;
21
        sin_value.format     = vpiIntVal;
22
 
23
        fsm_value.format     = vpiIntVal;
24
 
25
        v_generate.format=vpiIntVal;
26 12 redbear
        fsm_value.format     = vpiIntVal;
27 5 redbear
        //message_value.format = vpiIntVal;
28
 
29
        if(SC_TOP->finish_simulation() == 1)
30
        {
31
                v_generate.value.integer = 1;
32
                vpi_put_value(i, &v_generate, NULL, vpiNoDelay);
33
                SC_TOP->stop_sim();
34
                destroy(SC_TOP);
35
        }
36
        else
37
        {
38 40 redbear
 
39
 
40 5 redbear
                SC_TOP->run_sim();
41
 
42 40 redbear
                if(LOOPBACK_VLOG_EN == 0)
43
                {
44
                        sin_value.value.integer = SC_TOP->get_value_sout();
45
                        din_value.value.integer = SC_TOP->get_value_dout();
46
                        vpi_put_value(DIN, &din_value, NULL, vpiNoDelay);
47
                        vpi_put_value(SIN, &sin_value, NULL, vpiNoDelay);
48 5 redbear
 
49 40 redbear
                        vpi_get_value(SOUT, &sout_value);
50
                        vpi_get_value(DOUT, &dout_value);
51 5 redbear
 
52 40 redbear
                        SC_TOP->set_rx_sin(sout_value.value.integer);
53
                        SC_TOP->set_rx_din(dout_value.value.integer);
54 5 redbear
 
55 40 redbear
                        fsm_value.value.integer = SC_TOP->get_spw_fsm();
56
                        vpi_put_value(DTA, &fsm_value, NULL, vpiNoDelay);
57 12 redbear
 
58 40 redbear
                        vpi_get_value(tx_clock, &sout_value);
59
 
60
                }
61
 
62 12 redbear
                if(sout_value.value.integer != SC_TOP->verilog_frequency())
63
                {
64
                        sin_value.value.integer = SC_TOP->verilog_frequency();
65
                        vpi_put_value(tx_clock, &sin_value, NULL, vpiNoDelay);
66
                }
67 40 redbear
 
68 5 redbear
                //fsm_value.value.integer = SC_TOP->clock_tx();
69
                //vpi_put_value(TX_CLOCK_OUT, &fsm_value, NULL, vpiNoDelay);
70
 
71
        }
72
 
73
 
74
        return 0;
75
}

powered by: WebSVN 2.1.0

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