Open dearmrlv opened 10 months ago
@liangrj2014 Looking forward to your help
Thanks for pointing out the issue! We will address it soon
Could you please check whether adding "flag[zh][xl][yl] = net->idx()" below line 524 in the evaluator.cpp resolve this issue? Thanks in advance!
Thanks! The added line works.
In
evaluator.cpp
, the functionNVR_DB::read_gr_solution
maintains a vectorflag
to record the routing guides of a net. The valid guides are categorized towire
andvia
types. And during reading guides,flag
can only be updated bywire
type guides and functionNVR_DB::update_nonstack_via_counter
.Here is my case: Access Points of a pin:
[(3, 0, 396), (3, 1, 396)]
I try to meet the pin by point(3, 0, 396)
by a via from layer2 (metal3) to layer3 (metal4), and my guide is0 396 2 0 396 3
. The only entrance to setflag
is in functionNVR_DB::update_nonstack_via_counter
, whereflag[2][0][396]
is set. Since nowire
type guide is passing through the point(3, 0, 396)
and no via starts from point(3, 0, 396)
, the variableflag[3][0][396]
is not set and my guide for this net is judged to be open byevaluator.cpp
.My question is: Is it admissable to link the pin access point by a via like this? Or does the evaluator.cpp miss such case?
Looking forward to your help!