Dummy code for handling function scopes
This commit is contained in:
parent
899a70908e
commit
c01c2bd742
|
|
@ -366,6 +366,21 @@ static int draw_module(ivl_scope_t scope, ivl_scope_t parent)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create a VHDL function from a Verilog function definition.
|
||||||
|
*/
|
||||||
|
int draw_function(ivl_scope_t scope, ivl_scope_t parent)
|
||||||
|
{
|
||||||
|
assert(ivl_scope_type(scope) == IVL_SCT_FUNCTION);
|
||||||
|
|
||||||
|
// Find the containing entity
|
||||||
|
vhdl_entity *ent = find_entity(ivl_scope_tname(parent));
|
||||||
|
assert(ent);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int draw_scope(ivl_scope_t scope, void *_parent)
|
int draw_scope(ivl_scope_t scope, void *_parent)
|
||||||
{
|
{
|
||||||
ivl_scope_t parent = static_cast<ivl_scope_t>(_parent);
|
ivl_scope_t parent = static_cast<ivl_scope_t>(_parent);
|
||||||
|
|
@ -376,6 +391,9 @@ int draw_scope(ivl_scope_t scope, void *_parent)
|
||||||
case IVL_SCT_MODULE:
|
case IVL_SCT_MODULE:
|
||||||
rc = draw_module(scope, parent);
|
rc = draw_module(scope, parent);
|
||||||
break;
|
break;
|
||||||
|
case IVL_SCT_FUNCTION:
|
||||||
|
rc = draw_function(scope, parent);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
error("No VHDL conversion for %s (at %s)",
|
error("No VHDL conversion for %s (at %s)",
|
||||||
ivl_scope_tname(scope),
|
ivl_scope_tname(scope),
|
||||||
|
|
|
||||||
|
|
@ -543,6 +543,12 @@ private:
|
||||||
bool init_;
|
bool init_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Any sort of procedural element: process, function, or
|
||||||
|
* procedure. Roughly these map onto Verilog's processes,
|
||||||
|
* functions, and tasks.
|
||||||
|
*/
|
||||||
class vhdl_procedural {
|
class vhdl_procedural {
|
||||||
public:
|
public:
|
||||||
virtual ~vhdl_procedural() {}
|
virtual ~vhdl_procedural() {}
|
||||||
|
|
@ -554,6 +560,17 @@ protected:
|
||||||
vhdl_scope scope_;
|
vhdl_scope scope_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class vhdl_function : public vhdl_decl, public vhdl_procedural {
|
||||||
|
public:
|
||||||
|
vhdl_function(const char *name, vhdl_type *ret_type)
|
||||||
|
: vhdl_decl(name, ret_type) {}
|
||||||
|
|
||||||
|
void emit(std::ofstream &of, int level) const;
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class vhdl_process : public vhdl_conc_stmt, public vhdl_procedural {
|
class vhdl_process : public vhdl_conc_stmt, public vhdl_procedural {
|
||||||
public:
|
public:
|
||||||
vhdl_process(const char *name = "") : name_(name) {}
|
vhdl_process(const char *name = "") : name_(name) {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue