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

Subversion Repositories uart8systemc

[/] [uart8systemc/] [trunk/] [vpi/] [global_init.h] - Diff between revs 6 and 7

Only display areas with differences | Details | Blame | View Log

Rev 6 Rev 7
static int global_init_calltf(char*user_data)
static int global_init_calltf(char*user_data)
{
{
 
 
        vpiHandle RESET     = vpi_handle_by_name("module_tb.RESET", NULL);
        vpiHandle RESET     = vpi_handle_by_name("module_tb.RESET", NULL);
        vpiHandle START     = vpi_handle_by_name("module_tb.START", NULL);
        vpiHandle START     = vpi_handle_by_name("module_tb.START", NULL);
        vpiHandle WORK_FR   = vpi_handle_by_name("module_tb.WORK_FR", NULL);
        vpiHandle WORK_FR   = vpi_handle_by_name("module_tb.WORK_FR", NULL);
        vpiHandle RX        = vpi_handle_by_name("module_tb.RX", NULL);
        vpiHandle RX        = vpi_handle_by_name("module_tb.RX", NULL);
        vpiHandle TX        = vpi_handle_by_name("module_tb.TX", NULL);
        vpiHandle TX        = vpi_handle_by_name("module_tb.TX", NULL);
 
 
        reset.format=vpiIntVal;
        reset.format=vpiIntVal;
        rx_value.format = vpiIntVal;
        rx_value.format = vpiIntVal;
        tx_value.format = vpiIntVal;
        tx_value.format = vpiIntVal;
 
 
        reset.value.integer = 1;
 
        vpi_put_value(RESET, &reset, NULL, vpiNoDelay);
 
        reset.value.integer = 0;
        reset.value.integer = 0;
        vpi_put_value(START, &reset, NULL, vpiNoDelay);
        vpi_put_value(START, &reset, NULL, vpiNoDelay);
 
        vpi_put_value(RESET, &reset, NULL, vpiNoDelay);
 
 
        counter = 0;
        counter = 0;
        counter_reset = 0;
        counter_reset = 0;
 
 
        lib_handle = dlopen("./sc_uart.so", RTLD_LAZY);
        lib_handle = dlopen("./sc_uart.so", RTLD_LAZY);
 
 
        if(!lib_handle)
        if(!lib_handle)
        {
        {
                fprintf(stderr, "%s\n", dlerror());
                fprintf(stderr, "%s\n", dlerror());
        }
        }
 
 
        create = (Control_SC* (*)())dlsym(lib_handle, "create_object");
        create = (Control_SC* (*)())dlsym(lib_handle, "create_object");
        destroy = (void (*)(Control_SC*))dlsym(lib_handle, "destroy_object");
        destroy = (void (*)(Control_SC*))dlsym(lib_handle, "destroy_object");
 
        //ThreadSC  = (ThreadSCRun_dl) dlsym(lib_handle, "ThreadSCRun");
 
 
        SC_UART = (Control_SC*)create();
        SC_UART = (Control_SC*)create();
        SC_UART->set_baud_rate(115200,50);
        //SC_UART->set_baud_rate(115200,50);
        SC_UART->init();
        //SC_UART->init();
        SC_UART->set_period_clock_sc(20);
        //SC_UART->set_period_clock_sc(20);
 
 
        reset.value.integer = SC_UART->get_baud_rate();
        reset.value.integer = SC_UART->get_baud_rate();
        vpi_put_value(WORK_FR, &reset, NULL, vpiNoDelay);
        vpi_put_value(WORK_FR, &reset, NULL, vpiNoDelay);
 
 
        SC_UART->reset_set_high();
 
 
 
        tx_value.value.integer = SC_UART->read_tx();
        tx_value.value.integer = SC_UART->read_tx();
        vpi_put_value(RX, &tx_value, NULL, vpiNoDelay);
        vpi_put_value(RX, &tx_value, NULL, vpiNoDelay);
 
 
        vpi_get_value(TX, &rx_value);
        vpi_get_value(TX, &rx_value);
        SC_UART->write_rx(rx_value.value.integer);
        SC_UART->write_rx(rx_value.value.integer);
 
 
        SC_UART->run_sim();
 
 
 
        return 0;
        return 0;
}
}
 
 

powered by: WebSVN 2.1.0

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