Start using vhdl_procedural instead of vhdl_process
This commit is contained in:
parent
f2aca68b82
commit
db992e808f
|
|
@ -112,7 +112,7 @@ static void flush_string(std::ostringstream &ss, stmt_container *container)
|
||||||
* name collision with an existing variable called
|
* name collision with an existing variable called
|
||||||
* `Verilog_Display_Line' -- do something about this?
|
* `Verilog_Display_Line' -- do something about this?
|
||||||
*/
|
*/
|
||||||
int draw_stask_display(vhdl_process *proc, stmt_container *container,
|
int draw_stask_display(vhdl_procedural *proc, stmt_container *container,
|
||||||
ivl_statement_t stmt, bool newline)
|
ivl_statement_t stmt, bool newline)
|
||||||
{
|
{
|
||||||
if (!proc->get_scope()->have_declared(DISPLAY_LINE)) {
|
if (!proc->get_scope()->have_declared(DISPLAY_LINE)) {
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ static var_temp_set_t g_assign_vars;
|
||||||
/*
|
/*
|
||||||
* Called whenever a blocking assignment is made to sig.
|
* Called whenever a blocking assignment is made to sig.
|
||||||
*/
|
*/
|
||||||
void blocking_assign_to(vhdl_process *proc, ivl_signal_t sig)
|
void blocking_assign_to(vhdl_procedural *proc, ivl_signal_t sig)
|
||||||
{
|
{
|
||||||
std::string var(get_renamed_signal(sig));
|
std::string var(get_renamed_signal(sig));
|
||||||
std::string tmpname(var + "_Var");
|
std::string tmpname(var + "_Var");
|
||||||
|
|
@ -104,7 +104,7 @@ void blocking_assign_to(vhdl_process *proc, ivl_signal_t sig)
|
||||||
* the new values visible outside the current process. This should be
|
* the new values visible outside the current process. This should be
|
||||||
* called before any `wait' statement or the end of the process.
|
* called before any `wait' statement or the end of the process.
|
||||||
*/
|
*/
|
||||||
void draw_blocking_assigns(vhdl_process *proc, stmt_container *container)
|
void draw_blocking_assigns(vhdl_procedural *proc, stmt_container *container)
|
||||||
{
|
{
|
||||||
var_temp_set_t::const_iterator it;
|
var_temp_set_t::const_iterator it;
|
||||||
for (it = g_assign_vars.begin(); it != g_assign_vars.end(); ++it) {
|
for (it = g_assign_vars.begin(); it != g_assign_vars.end(); ++it) {
|
||||||
|
|
|
||||||
|
|
@ -545,8 +545,10 @@ private:
|
||||||
class vhdl_procedural {
|
class vhdl_procedural {
|
||||||
public:
|
public:
|
||||||
stmt_container *get_container() { return &stmts_; }
|
stmt_container *get_container() { return &stmts_; }
|
||||||
|
vhdl_scope *get_scope() { return &scope_; }
|
||||||
protected:
|
protected:
|
||||||
stmt_container stmts_;
|
stmt_container stmts_;
|
||||||
|
vhdl_scope scope_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class vhdl_process : public vhdl_conc_stmt, public vhdl_procedural {
|
class vhdl_process : public vhdl_conc_stmt, public vhdl_procedural {
|
||||||
|
|
@ -555,9 +557,7 @@ public:
|
||||||
|
|
||||||
void emit(std::ofstream &of, int level) const;
|
void emit(std::ofstream &of, int level) const;
|
||||||
void add_sensitivity(const char *name);
|
void add_sensitivity(const char *name);
|
||||||
vhdl_scope *get_scope() { return &scope_; }
|
|
||||||
private:
|
private:
|
||||||
vhdl_scope scope_;
|
|
||||||
std::string name_;
|
std::string name_;
|
||||||
string_list_t sens_;
|
string_list_t sens_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -32,11 +32,11 @@ void rename_signal(ivl_signal_t sig, const std::string &renamed);
|
||||||
const vhdl_entity *find_entity_for_signal(ivl_signal_t sig);
|
const vhdl_entity *find_entity_for_signal(ivl_signal_t sig);
|
||||||
const std::string &get_renamed_signal(ivl_signal_t sig);
|
const std::string &get_renamed_signal(ivl_signal_t sig);
|
||||||
|
|
||||||
void blocking_assign_to(vhdl_process *proc, ivl_signal_t sig);
|
void blocking_assign_to(vhdl_procedural *proc, ivl_signal_t sig);
|
||||||
std::string strip_var(const std::string &str);
|
std::string strip_var(const std::string &str);
|
||||||
void draw_blocking_assigns(vhdl_process *proc, stmt_container *container);
|
void draw_blocking_assigns(vhdl_procedural *proc, stmt_container *container);
|
||||||
|
|
||||||
int draw_stask_display(vhdl_process *proc, stmt_container *container,
|
int draw_stask_display(vhdl_procedural *proc, stmt_container *container,
|
||||||
ivl_statement_t stmt, bool newline = true);
|
ivl_statement_t stmt, bool newline = true);
|
||||||
|
|
||||||
#endif /* #ifndef INC_VHDL_TARGET_H */
|
#endif /* #ifndef INC_VHDL_TARGET_H */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue