/* Copyright (c) 1992, 1993 Regents of the University of California All rights reserved. Use and copying of this software and preparation of derivative works based upon this software are permitted. However, any distribution of this software or derivative works must include the above copyright notice. This software is made available AS IS, and neither the Electronics Research Laboratory or the Universify of California make any warranty about the software, its performance or its conformity to any specification. Author: Szu-Tsung Cheng, stcheng@ic.Berkeley.EDU 10/92 10/93 $Header: /projects/development/hsv/CVSRepository/vl2mv/src/parser/vl_write_util.h,v 1.2 2009/03/09 20:25:58 fabio Exp $ */ EXTERN void vl_mv_to_bin ARGS((vl_term *)); EXTERN void vl_bin_to_mv ARGS((vl_term *)); EXTERN void vl_write_mv_comp ARGS((FILE *, short, vl_term *, vl_term *, vl_term *)); EXTERN void vl_write_bin_comp ARGS((FILE *, short, vl_term *, vl_term *, vl_term *)); EXTERN void vl_write_mv_connect ARGS((FILE *, vl_term *, vl_term *)); EXTERN void vl_write_bin_connect ARGS((FILE *, vl_term *, vl_term *, int)); EXTERN void vl_write_const ARGS((FILE *, vl_expr *, vl_term *)); EXTERN void vl_write_consts ARGS((FILE *)); EXTERN void write_int_connect ARGS((FILE*, int, vl_term*)); EXTERN vl_term *write_local_control ARGS((FILE*, vl_term*, lsList, int)); EXTERN char *new_termname ARGS(()); EXTERN char *new_instname ARGS(()); EXTERN vl_range *get_decl_range ARGS((void *)); EXTERN vl_expr *get_decl_range_left ARGS((void *)); EXTERN vl_expr *get_decl_range_right ARGS((void *)); EXTERN short get_decl_flags ARGS((void *)); EXTERN void get_hilo ARGS((vl_id_range *, int *, int *)); EXTERN void insert_control_list ARGS((var_info*, vl_term*)); EXTERN void print_control_var_pair ARGS((FILE *, char *, char *)); EXTERN vl_term *write_multi_in_or ARGS((FILE *, lsList)); EXTERN vl_term *syndrome_to_control ARGS((FILE*, char*, st_table*)); EXTERN lsList put_guard_zero ARGS((FILE *, lsList)); EXTERN lsList get_transition ARGS((FILE *)); EXTERN vl_term *write_array_access ARGS((FILE *, vl_id_range *, vl_term *, vl_expr *)); EXTERN char *sel_var ARGS((char *)); EXTERN char *check_dc ARGS((lsList)); EXTERN char *write_red_op ARGS((FILE*, short, vl_term*, vl_term*, vl_term*)); EXTERN char *write_op_vector_bop ARGS((FILE *, short, vl_term*, vl_term*, vl_term*)); EXTERN char *write_rel_vector_bop ARGS((FILE *, short, vl_term*, vl_term*, vl_term*)); EXTERN void put_nblock_transition ARGS((FILE *, int, int, vl_id_range *, int, int, int, char *, lsList)); EXTERN vl_port *search_match_port ARGS((char *, lsList)); EXTERN vl_port_connect *search_inst_port ARGS((char *, lsList)); EXTERN char *vl_translated_prim_symbol ARGS((unsigned char)); EXTERN char *vl_translate_prim_symbol ARGS((unsigned char)); EXTERN vl_term *array_or ARGS((FILE *, array_t *)); EXTERN vl_term *vl_write_nond_wire ARGS((FILE*, vl_term*, lsList, vl_term*)); EXTERN vl_term *concate_assigns ARGS((array_t *)); EXTERN char *descape ARGS((char*, char, char)); EXTERN char *triPort ARGS((char*)); EXTERN void *chng_decl_range ARGS((void *decl, vl_range *new_range)); EXTERN void to_upper ARGS((char*)); EXTERN char *shift_mv_vars ARGS((char *inputs, int nval)); EXTERN void declare_mvar_io ARGS((FILE *file, char *dir, vl_id_range *id_sym)); EXTERN void declare_bin_scalar_io ARGS((FILE *file, char *dir, vl_id_range *id_sym)); EXTERN void declare_bin_vector_io ARGS((FILE *file, char *dir, vl_id_range *id_sym)); EXTERN int vector_width ARGS((int lo, int hi)); EXTERN int need_edge_detector ARGS((lsList table_entries, int ith_port)); EXTERN int put_entry ARGS((FILE *file, char *str, char *dc, int need_leading_and)); EXTERN void chkUndefPorts ARGS((vl_expr *expr, st_table *sig_st)); EXTERN void write_out_port ARGS((FILE *file, vl_id_range *id_sym, int m_hi, int m_lo, vl_expr *inst_expr, st_table *auxSigST)); EXTERN void put_const_port_connect ARGS((FILE *file, char *outstr, vl_id_range *master, vl_port_connect *instance, lsList input_consts, vl_term *term_out)); EXTERN void put_mvar_port_connect ARGS((FILE *file, char *outstr, vl_id_range *master, vl_port_connect *instance)); EXTERN void put_bin_scalar_port_connect ARGS((FILE *file, char *outstr, vl_id_range *master, vl_port_connect *instance)); EXTERN void put_bin_vector_port_connect ARGS((FILE *file, char *outstr, vl_id_range *master, vl_port_connect *instance)); EXTERN void vl_write_outport_connect ARGS((FILE *file, vl_expr *inst_expr)); EXTERN int isOutPort ARGS((short unsigned flag)); EXTERN void record_pseudo_cntxt ARGS((FILE *file, int fg_id, st_table *pre_cond, char *ctrl_syndrome, char *rst_ctrl_syndrome, st_table *vars)); EXTERN void check_assign ARGS((vl_bassign_stmt *assign, int procedural)); EXTERN void write_switch ARGS((FILE *file, vl_id_range *id_sym, vl_term *sel, vl_expr *sel_expr, vl_term *orig, vl_term *new, vl_term *out_term)); EXTERN void dump_debug_information ARGS((FILE *file, vl_id_range *id_var, vl_term *current_term, int lineno, lsList ctrl_list, char *ctrl_syndrome)); EXTERN void patch_unaffected_term ARGS((FILE *file, vl_id_range *id_sym, vl_term *orig_term, vl_term *out_term)); EXTERN void connect_concat ARGS((FILE *file, vl_term *assign_term, array_t *lhs_array)); EXTERN void write_const_param ARGS((FILE *file, vl_expr *expr, vl_id_range *ival)); EXTERN void subrange_term ARGS((FILE *file, vl_term *in, vl_term *out)); EXTERN void expand_term ARGS((FILE *file, vl_term *in, vl_term *out)); EXTERN void shrink_term ARGS((FILE *file, vl_term *in, vl_term *out)); EXTERN void width_unknown ARGS(()); EXTERN void write_case_tag_const ARGS((FILE *file, vl_term *selector, vl_expr *tag_expr, st_table *vars)); EXTERN void put_bin_scalar_func_connect ARGS((FILE *file, vl_id_range *master, vl_term *instance)); EXTERN void put_bin_vector_func_connect ARGS((FILE *file, vl_id_range *master, vl_term *instance)); EXTERN void put_quasi_table ARGS((FILE *file, char *dc, char *quasi_name, char *sync_name, vl_id_range *id_sym, vl_term *out_term, int lo, int hi, int n_entries)); EXTERN void instantiate_reset_mux ARGS((FILE *file, vl_id_range *id_sym, int lo, int hi, var_info *var, var_info *lvar)); EXTERN void instantiate_input_latch ARGS((FILE *file, vl_id_range *id_sym)); EXTERN void instantiate_hidden_latch ARGS((FILE *file, vl_id_range *id_sym)); EXTERN void create_wire_nondeterminism ARGS((FILE *file, char * var_name, vl_id_range *id_sym, array_t *vars_array)); EXTERN void put_nblock_mout_transition ARGS((FILE *file, int non_block_wire, int n_entries, vl_id_range *id_sym, int idx_lo, int idx_hi, int cur, char *dc, char *latch_name));