#!/usr/bin/env python3 import os import hammer_vlsi from hammer_vlsi import CLIDriver, HammerToolHookAction from typing import Dict, Callable, Optional, List def example_place_tap_cells(x: hammer_vlsi.HammerTool) -> bool: x.append("") return True def example_add_fillers(x: hammer_vlsi.HammerTool) -> bool: x.append("") return True class ExampleDriver(CLIDriver): def get_extra_par_hooks(self) -> List[HammerToolHookAction]: extra_hooks = [ # make_pre_insertion_hook will execute the custom hook before the specified step hammer_vlsi.HammerTool.make_pre_insertion_hook("route_design", example_add_fillers), # make_replacement_hook will replace the specified step with a custom hook hammer_vlsi.HammerTool.make_replacement_hook("place_tap_cells", example_place_tap_cells), ] return extra_hooks if __name__ == '__main__': ExampleDriver().main()