2008-05-28 18:17:39 +02:00
|
|
|
#ifndef INC_VHDL_TARGET_H
|
|
|
|
|
#define INC_VHDL_TARGET_H
|
|
|
|
|
|
|
|
|
|
#include "vhdl_config.h"
|
|
|
|
|
#include "ivl_target.h"
|
|
|
|
|
|
2008-06-08 14:27:48 +02:00
|
|
|
#include "vhdl_syntax.hh"
|
|
|
|
|
#include "vhdl_type.hh"
|
2008-05-31 16:28:25 +02:00
|
|
|
|
2008-06-02 17:17:01 +02:00
|
|
|
#include <string>
|
|
|
|
|
|
2008-07-14 12:53:38 +02:00
|
|
|
using namespace std;
|
|
|
|
|
|
2008-05-29 17:24:16 +02:00
|
|
|
void error(const char *fmt, ...);
|
|
|
|
|
|
2008-05-31 16:28:25 +02:00
|
|
|
int draw_scope(ivl_scope_t scope, void *_parent);
|
|
|
|
|
int draw_process(ivl_process_t net, void *cd);
|
2008-06-24 21:01:06 +02:00
|
|
|
int draw_stmt(vhdl_procedural *proc, stmt_container *container,
|
2008-06-11 15:11:37 +02:00
|
|
|
ivl_statement_t stmt);
|
2008-06-16 20:41:01 +02:00
|
|
|
int draw_lpm(vhdl_arch *arch, ivl_lpm_t lpm);
|
2008-05-31 16:28:25 +02:00
|
|
|
|
2008-07-07 21:41:29 +02:00
|
|
|
vhdl_expr *lpm_to_expr(vhdl_scope *scope, ivl_lpm_t lpm);
|
2008-06-04 15:59:04 +02:00
|
|
|
vhdl_expr *translate_expr(ivl_expr_t e);
|
|
|
|
|
|
2008-05-31 16:28:25 +02:00
|
|
|
void remember_entity(vhdl_entity *ent);
|
2008-06-02 17:17:01 +02:00
|
|
|
vhdl_entity *find_entity(const std::string &tname);
|
2008-05-31 16:28:25 +02:00
|
|
|
|
2008-06-17 21:16:16 +02:00
|
|
|
ivl_design_t get_vhdl_design();
|
2008-06-24 19:52:25 +02:00
|
|
|
vhdl_entity *get_active_entity();
|
2008-06-17 21:16:16 +02:00
|
|
|
|
2008-06-24 19:52:25 +02:00
|
|
|
vhdl_var_ref *nexus_to_var_ref(vhdl_scope *arch_scope, ivl_nexus_t nexus);
|
2008-06-12 21:26:23 +02:00
|
|
|
|
2008-06-30 18:47:45 +02:00
|
|
|
bool seen_signal_before(ivl_signal_t sig);
|
2008-06-25 19:12:57 +02:00
|
|
|
void remember_signal(ivl_signal_t sig, const vhdl_scope *scope);
|
2008-06-12 21:26:23 +02:00
|
|
|
void rename_signal(ivl_signal_t sig, const std::string &renamed);
|
2008-06-25 19:12:57 +02:00
|
|
|
const vhdl_scope *find_scope_for_signal(ivl_signal_t sig);
|
2008-06-12 21:26:23 +02:00
|
|
|
const std::string &get_renamed_signal(ivl_signal_t sig);
|
2008-07-13 13:41:02 +02:00
|
|
|
ivl_signal_t find_signal_named(const std::string &name, const vhdl_scope *scope);
|
2008-06-12 21:26:23 +02:00
|
|
|
|
2008-06-24 20:54:22 +02:00
|
|
|
void blocking_assign_to(vhdl_procedural *proc, ivl_signal_t sig);
|
2008-06-18 14:30:19 +02:00
|
|
|
std::string strip_var(const std::string &str);
|
2008-06-24 20:54:22 +02:00
|
|
|
void draw_blocking_assigns(vhdl_procedural *proc, stmt_container *container);
|
2008-06-12 21:26:23 +02:00
|
|
|
|
2008-06-24 20:54:22 +02:00
|
|
|
int draw_stask_display(vhdl_procedural *proc, stmt_container *container,
|
2008-06-20 12:51:13 +02:00
|
|
|
ivl_statement_t stmt, bool newline = true);
|
|
|
|
|
|
2008-05-28 18:17:39 +02:00
|
|
|
#endif /* #ifndef INC_VHDL_TARGET_H */
|
|
|
|
|
|