/*
 *  Copyright 2011 OpenSourceStewardshipFoundation.org
 *  Licensed under BSD
 *
 * author seanhalle@yahoo.com
 */

#include <malloc.h>
#include <stdlib.h>

#include "SimParams.h"
#include "HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h"
#include "ParamHelper/Param.h"

#include "HWSim_impl/HWSim_tests.h"



/*
 *
 * 
 */

int main(int argc, char **argv) {
    ParamBag *simParams;
    HWSimNetlist *netlist;
    HWSimResults *simResults;
    int result;

#ifdef FAKE
    simParams = NULL;
    printf("param file name: %s\n", argv[1]);
    printf("Paraver trace file %s\n", argv[2]);

#else
   simParams = makeParamBag();
   readParamFileIntoBag( argv[1], simParams );
#endif

    netlist = createPingPongNetlist();

#ifdef FAKE
    simResults = create_simulation_results__fake(simParams, netlist);
#else
    simResults = HWSim__run_simulation( simParams, netlist );
    //HWSim_test__run();
#endif

    //HWSim 
    //HWSim__generate_paraver_output(argv[2], simResults, netlist); //Stefan: my version
    //HWSim__generate_paraver_output(simResults);
    //HWSim__generate_vcd_output( simResults );

    exit(0); //cleans up
}

