Evaluate non-immediate signal selection.

This patch adds code to treat non-immediate signal selection the
same as the default logic evaluation
This commit is contained in:
Cary R 2008-01-14 15:57:01 -08:00 committed by Stephen Williams
parent 7ff342f4da
commit e46f8220f3
1 changed files with 14 additions and 6 deletions

View File

@ -141,8 +141,16 @@ static void eval_logic_into_integer(ivl_expr_t expr, unsigned ix)
unsigned word = 0;
if (ivl_signal_array_count(sig) > 1) {
ivl_expr_t ixe = ivl_expr_oper1(expr);
assert(number_is_immediate(ixe, 8*sizeof(unsigned long)));
if (number_is_immediate(ixe, 8*sizeof(unsigned long)))
word = get_number_immediate(ixe);
else {
struct vector_info rv;
rv = draw_eval_expr(expr, 0);
fprintf(vvp_out, " %%ix/get %u, %u, %u;\n",
ix, rv.base, rv.wid);
clr_vector(rv);
break;
}
}
fprintf(vvp_out, " %%ix/getv %u, v%p_%u;\n", ix, sig, word);
break;