1 // -*- mode: c++ -*-
2 #ifndef INC_VHDL_TARGET_H
3 #define INC_VHDL_TARGET_H
4 
5 #include "vhdl_config.h"
6 #include "ivl_target.h"
7 
8 #include "support.hh"
9 #include "vhdl_syntax.hh"
10 
11 #include <string>
12 
13 using namespace std;
14 
15 void error(const char *fmt, ...);
16 void debug_msg(const char *fmt, ...);
17 
18 int draw_scope(ivl_scope_t scope, void *_parent);
19 extern "C" int draw_process(ivl_process_t net, void *cd);
20 int draw_stmt(vhdl_procedural *proc, stmt_container *container,
21               ivl_statement_t stmt, bool is_last = false);
22 int draw_lpm(vhdl_arch *arch, ivl_lpm_t lpm);
23 void draw_logic(vhdl_arch *arch, ivl_net_logic_t log);
24 
25 vhdl_expr *translate_expr(ivl_expr_t e);
26 vhdl_expr *translate_time_expr(ivl_expr_t e);
27 
28 ivl_design_t get_vhdl_design();
29 vhdl_var_ref *nexus_to_var_ref(vhdl_scope *arch_scope, ivl_nexus_t nexus);
30 vhdl_var_ref* readable_ref(vhdl_scope* scope, ivl_nexus_t nex);
31 string make_safe_name(ivl_signal_t sig);
32 void require_support_function(support_function_t f);
33 
34 #endif /* #ifndef INC_VHDL_TARGET_H */
35