📄 acc_user.h
字号:
*/
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 + -