diff --git a/tgt-vlog95/logic_lpm.c b/tgt-vlog95/logic_lpm.c index 9b13abe3f..9a7c41473 100644 --- a/tgt-vlog95/logic_lpm.c +++ b/tgt-vlog95/logic_lpm.c @@ -213,6 +213,7 @@ static ivl_nexus_t get_lpm_output(ivl_scope_t scope, ivl_lpm_t lpm) case IVL_LPM_MUX: case IVL_LPM_PART_PV: case IVL_LPM_PART_VP: + case IVL_LPM_POW: case IVL_LPM_RE_AND: case IVL_LPM_RE_NAND: case IVL_LPM_RE_NOR: @@ -877,6 +878,17 @@ static void emit_lpm_as_ca(ivl_scope_t scope, ivl_lpm_t lpm) case IVL_LPM_PART_VP: emit_lpm_part_select(scope, lpm); break; + case IVL_LPM_POW: + fprintf(vlog_out, "("); + emit_nexus_as_ca(scope, ivl_lpm_data(lpm, 0), 0); + fprintf(vlog_out, " ** "); + emit_nexus_as_ca(scope, ivl_lpm_data(lpm, 1), 0); + fprintf(vlog_out, ")"); + fprintf(stderr, "%s:%u: vlog95 error: Power operator is not " + "supported.\n", + ivl_lpm_file(lpm), ivl_lpm_lineno(lpm)); + vlog_errors += 1; + break; case IVL_LPM_RE_AND: fprintf(vlog_out, "(&"); emit_nexus_as_ca(scope, ivl_lpm_data(lpm, 0), 0);