Remove redundant lpm_output
This commit is contained in:
parent
680c6f0503
commit
d94dac28a8
|
|
@ -40,36 +40,6 @@ static vhdl_expr *part_select_base(vhdl_scope *scope, ivl_lpm_t lpm)
|
|||
return off->cast(&integer);
|
||||
}
|
||||
|
||||
vhdl_var_ref *lpm_output(vhdl_scope *scope, ivl_lpm_t lpm)
|
||||
{
|
||||
vhdl_var_ref *out = nexus_to_var_ref(scope, ivl_lpm_q(lpm, 0));
|
||||
if (NULL == out) {
|
||||
vhdl_type *type =
|
||||
vhdl_type::type_for(ivl_lpm_width(lpm),
|
||||
ivl_lpm_signed(lpm) != 0);
|
||||
string name("LPM");
|
||||
name += ivl_lpm_basename(lpm);
|
||||
name += "_Out";
|
||||
|
||||
if (!scope->have_declared(name)) {
|
||||
scope->add_decl
|
||||
(new vhdl_signal_decl(name.c_str(), new vhdl_type(*type)));
|
||||
}
|
||||
|
||||
out = new vhdl_var_ref(name.c_str(), type);
|
||||
}
|
||||
|
||||
if (ivl_lpm_type(lpm) == IVL_LPM_PART_PV) {
|
||||
vhdl_expr *off = part_select_base(scope, lpm);
|
||||
assert(off);
|
||||
|
||||
out->set_slice(off, ivl_lpm_width(lpm) - 1);
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
static vhdl_expr *concat_lpm_to_expr(vhdl_scope *scope, ivl_lpm_t lpm)
|
||||
{
|
||||
vhdl_type *result_type =
|
||||
|
|
@ -295,7 +265,14 @@ int draw_lpm(vhdl_arch *arch, ivl_lpm_t lpm)
|
|||
if (NULL == f)
|
||||
return 0;
|
||||
|
||||
vhdl_var_ref *out = lpm_output(arch->get_scope(), lpm);
|
||||
vhdl_var_ref *out = nexus_to_var_ref(arch->get_scope(), ivl_lpm_q(lpm, 0));
|
||||
if (ivl_lpm_type(lpm) == IVL_LPM_PART_PV) {
|
||||
vhdl_expr *off = part_select_base(arch->get_scope(), lpm);
|
||||
assert(off);
|
||||
|
||||
out->set_slice(off, ivl_lpm_width(lpm) - 1);
|
||||
}
|
||||
|
||||
arch->add_stmt(new vhdl_cassign_stmt(out, f));
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ int draw_lpm(vhdl_arch *arch, ivl_lpm_t lpm);
|
|||
|
||||
vhdl_expr *translate_expr(ivl_expr_t e);
|
||||
vhdl_expr *translate_time_expr(ivl_expr_t e);
|
||||
vhdl_var_ref *lpm_output(vhdl_scope *scope, ivl_lpm_t lpm);
|
||||
|
||||
void remember_entity(vhdl_entity *ent);
|
||||
vhdl_entity *find_entity(const string &tname);
|
||||
|
|
|
|||
Loading…
Reference in New Issue