Improved assertion on signal arrays.

Use ivl_expr_file() information to improve a signal assert message.
This commit is contained in:
Stephen Williams 2008-01-09 14:24:30 -08:00
parent 6cc8d0e536
commit f944d31353
2 changed files with 8 additions and 0 deletions

View File

@ -407,6 +407,8 @@ void dll_target::expr_signal(const NetESignal*net)
expr_->type_ = IVL_EX_SIGNAL;
expr_->value_= net->expr_type();
expr_->file = net->get_file();
expr_->lineno= net->get_lineno();
expr_->width_= net->expr_width();
expr_->signed_ = net->has_sign()? 1 : 0;
expr_->u_.signal_.word = word_expr;

View File

@ -1739,6 +1739,12 @@ static void draw_signal_dest(ivl_expr_t exp, struct vector_info res,
if (ivl_signal_array_count(sig) > 1) {
ivl_expr_t ix = ivl_expr_oper1(exp);
if (!number_is_immediate(ix, 8*sizeof(unsigned long))) {
if (add_index >= 0) {
fprintf(stderr, "%s:%u: vvp-tgt error: "
"add_index=%d at %s:%d\n",
ivl_expr_file(exp), ivl_expr_lineno(exp),
add_index, __FILE__, __LINE__);
}
assert(add_index < 0);
draw_eval_expr_into_integer(ix, 3);
fprintf(vvp_out, " %%load/av %u, v%p, %u;\n",