vvp: Don't schedule initial value propagation for net array ports

An initial value propagation should only be scheduled for variable array
ports, but not for net array port since those do not contain any values.

This got accidentally broken when fixing support for 2-state variable
array ports.

Add a check that only does the initial value propagation if the port is for
a variable array.

Fixes: 0eb01fff1e ("vvp: Fix initial value propagation for 2-state non-automatic arrays")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2023-10-20 08:04:42 -07:00
parent b4b8006460
commit 90880e86ad
1 changed files with 2 additions and 1 deletions

View File

@ -1259,7 +1259,8 @@ static void array_attach_port(vvp_array_t array, vvp_fun_arrayport*fun)
assert(fun->next_ == 0);
fun->next_ = array->ports_;
array->ports_ = fun;
if (!array->get_scope()->is_automatic()) {
if (!array->get_scope()->is_automatic() &&
(array->vals4 || array->vals)) {
/* propagate initial values for variable arrays */
if (!vpi_array_is_real(array)) {
vvp_bit4_t init;