00001 #ifndef __VSIGNAL_H__
00002 #define __VSIGNAL_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #include <stdio.h>
00027
00028 #include "defines.h"
00029
00030
00032 vsignal* vsignal_create(
00033 const char* name,
00034 unsigned int type,
00035 unsigned int width,
00036 unsigned int line,
00037 unsigned int col
00038 );
00039
00041 void vsignal_create_vec( vsignal* sig );
00042
00044 vsignal* vsignal_duplicate( vsignal* sig );
00045
00047 void vsignal_db_write( vsignal* sig, FILE* file );
00048
00050 void vsignal_db_read( char** line, func_unit* curr_funit );
00051
00053 void vsignal_db_merge( vsignal* base, char** line, bool same );
00054
00056 void vsignal_merge(
00057 vsignal* base,
00058 vsignal* other
00059 );
00060
00062 void vsignal_propagate(
00063 vsignal* sig,
00064 const sim_time* time
00065 );
00066
00068 void vsignal_vcd_assign(
00069 vsignal* sig,
00070 const char* value,
00071 unsigned int msb,
00072 unsigned int lsb,
00073 const sim_time* time
00074 );
00075
00077 void vsignal_add_expression( vsignal* sig, expression* expr );
00078
00080 void vsignal_display( vsignal* sig );
00081
00083 vsignal* vsignal_from_string( char** str );
00084
00086 int vsignal_calc_width_for_expr( expression* expr, vsignal* sig );
00087
00089 int vsignal_calc_lsb_for_expr( expression* expr, vsignal* sig, int lsb_val );
00090
00092 void vsignal_dealloc( vsignal* sig );
00093
00094 #endif
00095