#include "mti.h"

/*                             Interface utilisee depuis le VHDL*/
struct VHDL_interface{
    signalID    patt_clk;
    signalID    cnt_reset;
    signalID    exit_c;
    signalID    data;
};

/*                            Interface utilisee depuis le C */
struct C_interface {
    long    patt_clk;
    long    cnt_reset;
    long    exit_c;
    long    data;
};

/* =================================================================== */
/*           Prototype de fonctions appelees par la partie C           */
/* =================================================================== */
void Init_C_model PROTO((struct C_interface *C_IF));
void Exec_C_model PROTO((struct C_interface *C_IF));


/* =================================================================== */
/*          Prototype de fonctions appelees par la partie VHDL         */
/* =================================================================== */
/*                    std_logic values */
#define STD_U  0
#define STD_X  1
#define STD_0  2
#define STD_1  3
#define STD_Z  4


void VHDL_IF_init PROTO((regionID region, char *param,
        interface_list *generics, interface_list *ports));
void VHDL_IF_exec PROTO((struct VHDL_interface *VHDL_IF));
void VHDL_print PROTO((char *txt));


long ArrayStd2Long PROTO((char *table, long nbrbit));
void Long2ArrayStd PROTO((char *table, long value, long nbrbit));
long Std2Long PROTO((long std));
long Long2Std PROTO((long value));