⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acc_user.h

📁 你自己漫漫理解吧
💻 H
📖 第 1 页 / 共 2 页
字号:
*/

typedef struct t_setval_delay { 
    s_acc_time time;
    int model;     
        /* accNoDelay */ 
        /* accInertialDelay */
        /* accTransportDelay */
        /* accPureTransportDelay */
        /* accForceFlag */
        /* accReleaseFlag */
        /* accAssignFlag */
        /* accDeassignFlag */
} s_setval_delay, *p_setval_delay; 
    

/* t_setval_delay types */
#define accNoDelay               0
#define accInertialDelay         1
#define accTransportDelay        2
#define accPureTransportDelay    3
/* Added 10/96 from IEEE 1364 pp C-4 */
#define accForceFlag		 4
#define accReleaseFlag		 5
#define accAssignFlag		 6
#define accDeassignFlag		 7
 
 
/*
 * Added 1/2/96 from p19-71 IEEE P1364 Apr. 1995.
 * Encoding:
 *	aval bval value
 *	   0    0     0
 *	   1    0     1
 *	   0    1     Z
 *	   1    1     X
 */
typedef struct t_acc_vecval
{
    int	aval;	/* bit-coding for each bit of vector: */
    int	bval;	/* ab: 00=3D0, 10=3D1, 11=3DX, 01=3DZ */
} s_acc_vecval, *p_acc_vecval;


typedef struct t_setval_value {
  int format; /* acc[[Bin,Oct,Dec,Hex]Str,Scalar,Int,Real]Val */
  union {
    char *str;
    int scalar; /* acc[0,1,X,Z] */
    int integer;
    double real;
    /*
     * Added 1/2/96 from p19-71 IEEE P1364 Apr. 1995.
     */
    p_acc_vecval vector;
  } value;
} s_setval_value, *p_setval_value,
  s_acc_value, *p_acc_value;
 
/* t_setval_value formats */
#define accBinStrVal             1
#define accOctStrVal             2
#define accDecStrVal             3
#define accHexStrVal             4
#define accScalarVal             5
#define accIntVal                6
#define accRealVal               7
#define accStringVal             8
#define accCompactVal            9
/*
 * Added 1/2/96 from pC-4 IEEE P1364 Apr. 1995.
 */
#define accVectorVal            10
#define accTimeVal		11  

/* scalar values */
#define acc0    0
#define acc1    1
#define accX    2
#define accZ    3


/**********************************************************************/
/*
 * includes for Value Change Link
 */

#define logic_value_change       1
#define strength_value_change    2
#define real_value_change        3
#define vector_value_change      4
#define event_value_change       5
#define integer_value_change     6
#define time_value_change        7
#define sregister_value_change   8
#define vregister_value_change   9 
#define realtime_value_change   10
#define compact_value_change    11


typedef void (*consumer_function) ();

/* structure that stores strengths */
typedef struct t_strengths {
    unsigned char    logic_value;
    unsigned char    strength1;
    unsigned char    strength2;
} s_strengths, *p_strengths;


typedef struct t_vc_record{
    unsigned int                  vc_reason;
    unsigned int                  vc_hightime;
    int                           vc_lowtime;
    char                          *user_data;
    union  {
        unsigned char      logic_value;
        double             real_value;
        handle             vector_handle;
        s_strengths        strengths_s;
    } out_value;
} s_vc_record, *p_vc_record;

/* logic values */
#define vcl0    acc0
#define vcl1    acc1
#define vclX    accX
#define vclZ    accZ

/* VCL strength values */
#define vclSupply            7
#define vclStrong            6
#define vclPull              5
#define vclLarge             4
#define vclWeak              3
#define vclMedium            2
#define vclSmall             1
#define vclHighZ             0

/* vcl bit flag definitions */
#define vcl_strength_flag    1
#define vcl_verilog_flag     2
#define vcl_veritime_flag    4
#define vcl_compact_flag     8


/* flags used with acc_vcl_add */
#define vcl_verilog_logic           (vcl_verilog_flag)
#define VCL_VERILOG_LOGIC           (vcl_verilog_flag)
 
#define vcl_verilog_strength        (vcl_verilog_flag + vcl_strength_flag)
#define VCL_VERILOG_STRENGTH        (vcl_verilog_flag + vcl_strength_flag)
 
/* flags used with acc_vcl_delete */
#define vcl_verilog             (vcl_verilog_flag)
#define VCL_VERILOG             (vcl_verilog_flag)

/* test whether strength information is requested for vcl */
#define vcl_setstr_m(flags_) ( flags_ |= vcl_strength_flag )
#define vcl_clearstr_m(flags_) ( flags_ &= ~vcl_strength_flag )
#define vcl_isstr_m(flags_) ( flags_ & vcl_strength_flag )

/* test whether Verilog information is requested for vcl */
#define vcl_setvl_m(flags_) ( flags_ |= vcl_verilog_flag )
#define vcl_clearvl_m(flags_) ( flags_ &= ~vcl_verilog_flag )
#define vcl_isvl_m(flags_) ( flags_ & vcl_verilog_flag )

/* test whether Veritime information is requested for vcl */
#define vcl_setvt_m(flags_) ( flags_ |= vcl_veritime_flag )
#define vcl_clearvt_m(flags_) ( flags_ &= ~vcl_veritime_flag )
#define vcl_isvt_m(flags_) ( flags_ & vcl_veritime_flag )

/* test whether vcl trigger is compact or normal */
#define vcl_setcompact_m(flags_) ( flags_ |= vcl_compact_flag )
#define vcl_clearcompact_m(flags_) ( flags_ &= ~vcl_compact_flag )
#define vcl_iscompact_m(flags_) ( flags_ & vcl_compact_flag )

/**********************************************************************/
/*** includes for acc_xlp_status ***/

#define MAX_NUMBER_OF_XLP  5

#define xlp_status_RUNNING    0
#define xlp_status_NO_XLP     1
#define xlp_status_IN_USE     2
#define xlp_status_AVAILABLE  3

/* structure that stores xlp status information */
typedef struct t_xlp_info {
    int  xlp_unit_number;
    int  xlp_memory_used;
    long xlp_transaction_count;
    long xlp_event_count;
    int  xlp_status[MAX_NUMBER_OF_XLP];
    int  xlp_owner [MAX_NUMBER_OF_XLP];
} s_xlp_info, *p_xlp_info;

/**********************************************************************/
/*** includes for the location structure ***/
/* structure that stores location */
typedef struct t_location {
    int line_no;
    char *filename;
} s_location, *p_location;

/**********************************************************************/
/*** acc_fetch_timescale_info structure - Copied from IEEE C-7 12/19/96 */
/**********************************************************************/
typedef struct t_timescale_info
{
    short unit;
    short precision;
} s_timescale_info, *p_timescale_info;

/**********************************************************************/
/*** includes for the time callbacks ***/
#define reason_begin_of_simtime     1
#define reason_end_of_simtime       2

/**********************************************************************/
/*
 * include information for stability checks
 */
#define accTaskFuncStable       0x0001
#define accSystfStable          0x0002
#define accPrimStable           0x0004
#define accContAssignStable     0x0008
#define accBehavStable          0x0010
#define accNetRegVarStable      0x0020
#define acc_taskfunc_stable     accTaskFuncStable
#define acc_systf_stable        accSystfStable
#define acc_primitive_stable    accPrimStable
#define acc_contassign_stable   accContAssignStable
#define acc_behav_stable        accBehavStable
#define acc_netreg_stable       accNetRegVarStable
#define acc_setstabflags_m(_flags,_pos)   (_flags |= _pos)
#define acc_clearstabflags_m(_flags,_pos) (_flags &= ~_pos)
#define acc_isstabflags_m(_flags,_pos)    (_flags & _pos)


/**********************************************************************/
/*** Routine declarations ***/

#ifndef ACCH

/* Handle routines */
handle  acc_handle_defn();
handle  acc_handle_object();
handle  acc_handle_port();
handle  acc_handle_terminal();
handle  acc_handle_parent();
handle  acc_handle_conn();
handle  acc_handle_tchk();
handle  acc_handle_pathout();
handle  acc_handle_pathin();
handle  acc_handle_tchkarg1();
handle  acc_handle_tchkarg2();
handle  acc_handle_modpath();
handle  acc_handle_path();
handle  acc_handle_simulated_net();
handle  acc_handle_loconn();
handle  acc_handle_hiconn();
handle  acc_handle_datapath();
handle  acc_handle_condition();
handle  acc_handle_by_name();
handle  acc_handle_by_location();
handle  acc_handle_scope();
handle  acc_handle_notifier();

/* Nexts routines */
handle  acc_next_terminal();
handle  acc_next_port();
handle  acc_next_child();
handle  acc_next_driver();
handle  acc_next_load();
handle  acc_next_primitive();
handle  acc_next_net();
handle  acc_next_topmod();
handle  acc_next_loconn();
handle  acc_next_hiconn();
handle  acc_next_modpath();
handle  acc_next_path(); /* alias for acc_next_modpath */
handle  acc_next_cell();
handle  acc_next_cell_load();
handle  acc_next_tchk();
handle  acc_next_parameter();
handle  acc_next_specparam();
handle  acc_next_portout();
handle  acc_next_bit();
handle  acc_next();
handle  acc_next_scope();
handle  acc_next_object();
handle  acc_next_input();
handle  acc_next_output();

/* Fetch routines */
/* As per IEEE1364 */
int	acc_fetch_argc();
char	**acc_fetch_argv();

char   *acc_fetch_value();
char   *acc_fetch_name();
char   *acc_fetch_fullname();
char   *acc_fetch_defname();
int     acc_fetch_type();
int     acc_fetch_fulltype();
char   *acc_fetch_type_str();
int     acc_fetch_index();
int     acc_fetch_direction();
bool    acc_fetch_delays();
bool    acc_fetch_pulsere();
double  acc_fetch_paramval();
double  acc_fetch_attribute();
int     acc_fetch_polarity();
int     acc_fetch_paramtype();
int     acc_fetch_delay_mode();
int     acc_fetch_size();
int     acc_fetch_range();
int     acc_fetch_edge();
void    acc_fetch_location();

/* Modify routines */
bool   acc_replace_delays();
bool   acc_append_delays();
bool   acc_set_pulsere();

/* Utility routines */
bool    acc_initialize();
void    acc_close();
void    acc_reset_buffer();
bool    acc_configure();
int     acc_count();
handle *acc_collect();
char   *acc_version();
char   *acc_product_version();
void    acc_free();
handle  acc_handle_tfinst();
handle  acc_handle_tfarg();
handle  acc_handle_itfarg();
double  acc_fetch_tfarg();
double  acc_fetch_itfarg();
int     acc_fetch_tfarg_int();
int     acc_fetch_itfarg_int();
char   *acc_fetch_tfarg_str();
char   *acc_fetch_itfarg_str();
char   *acc_set_scope(); 
int     acc_get_cputime();
bool    acc_compare_handles();
handle  acc_copy_handle();
int     acc_release_object();
bool    acc_object_of_type();
bool    acc_object_in_typelist();
handle  acc_handle_interactive_scope();
bool    acc_set_interactive_scope();
int     acc_set_value();


/* Value Change Link routines */
void acc_vcl_add();
void acc_vcl_delete();


/*
 * The below, original definition from Cadence, does not compile with ANSI
#define  acc_handle_calling_mod_m  acc_handle_parent(tf_getinstance())
 */
#define  acc_handle_calling_mod_m()  acc_handle_parent(tf_getinstance())

#ifdef __cplusplus
}
#endif /* cplusplus */

#endif
/**********************************************************************/
/* EOF /home1/verilog/Antarctic/source/SCCS/s.acc_user.h */


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -