sub trace_sig_down_hier { my $vdb=shift; my $module=shift; my $signal=shift; my $instance=shift; my $level=shift; print "DEBUG: $module:$module:$signal:$instance:$level\n"; my($imod,$iname,$port,$l,@connections); SIG:foreach my $sig (sort &rvp::get_modules_signals($vdb,$module)) { next SIG if ($sig ne $signal); for (($imod,$iname,$port,$l) = &rvp::get_first_signal_port_con($vdb,$module,$sig ); $imod; ($imod,$iname,$port,$l) = &rvp::get_next_signal_port_con($vdb)) { print "DC:$imod,$iname,$port,\n"; if(&rvp::module_exists($vdb,$module)) { my $full_path = $instance . "/" . $iname; $level++; my @sub_conns = &trace_sig_down_hier($vdb,$imod,$port,$full_path,$level); push @connections,@sub_conns; } my $sig_path; if ($instance) { $sig_path = $instance . "/" . $port; }else{ $sig_path = $module . "/" . $port; } push @connections, $sig_path; #print "SUB : $sig_path\n"; } } return @connections; }