Replies: 3 comments 3 replies
-
@osamahammad21 please respond |
Beta Was this translation helpful? Give feedback.
-
Yes it has been tested and should be working. If you encounter an issue, please file a github issue with more details so that we could work on it.
Yes this is the expected behavior for this case. As a rule, DRT only routes/reroutes unrouted nets. It doesn't touch already routed nets. So on the second call of detailed_route, DRT detects all nets as already routed so it does nothing. To let DRT reroute the desired net "net1231", you need to clear the net routing by uncommenting the commented lines. |
Beta Was this translation helpful? Give feedback.
-
Thanks. As far as antenna fixing does, it's good to know it should work. So I have a better place to work on, what's the recommended flow sequence? Eventually I got it to work with the following changes to diff --git a/test/flow.tcl b/test/flow.tcl
index a9bcb2717..f6a31b144 100644
--- a/test/flow.tcl
+++ b/test/flow.tcl
@@ -208,7 +208,7 @@ write_verilog -remove_cells $filler_cells $verilog_file
################################################################
# Antenna repair
-repair_antennas -iterations 5
+# repair_antennas -iterations 5
check_antennas
utl::metric "GRT::ANT::errors" [ant::antenna_violation_count]
@@ -251,6 +251,36 @@ write_db $routed_db
set routed_def [make_result_file ${design}_${platform}_route.def]
write_def $routed_def
+## ****
+
+remove_fillers
+
+global_route -start_incremental -allow_congestion
+repair_antennas
+global_route -end_incremental -allow_congestion
+
+filler_placement $filler_cells
+
+set drt_ant_repair_db [make_result_file ${design}_${platform}_drt_ant_repair.db]
+write_db $drt_ant_repair_db
+
+# Run pin access again after inserting diodes and moving cells
+pin_access -bottom_routing_layer $min_routing_layer \
+ -top_routing_layer $max_routing_layer
+
+detailed_route -output_drc [make_result_file "${design}_${platform}_ant_fix_route_drc.rpt"] \
+ -output_maze [make_result_file "${design}_${platform}_ant_fix_maze.log"] \
+ -no_pin_access \
+ -save_guide_updates \
+ -bottom_routing_layer $min_routing_layer \
+ -top_routing_layer $max_routing_layer \
+ -verbose 0
+
+set repaired_db [make_result_file ${design}_${platform}_repaired_drt.db]
+write_db $repaired_db
+
+## ****
+
################################################################
# Extraction But if there's a more recommended way of doing things, I'd be interested to know. |
Beta Was this translation helpful? Give feedback.
-
I'm trying to work out the current state of post-DRT antenna fixups. When just trying a remove_fillers, repair_antennas, filler_placement, detailed_route sequence after detailed routing, I get a bunch of failures around pin access issues, so I thought I'd look at a more minimal example of DRT after placement changes ignoring the antenna fixer per se.
If I modify the existing incremental drt regression test thus:
Then DRT (perhaps understandably, I don't know what the contract should be here?) doesn't notice the placement change and leaves the net as-is, now wrongly routed. If I uncomment the code that also unroutes the relevant net, then it is correctly re-routed based on the new placement as you'd expect.
I guess I have two questions here:
Beta Was this translation helpful? Give feedback.
All reactions