Use new API for par hooks | fix typo
This commit is contained in:
@@ -26,7 +26,7 @@ include $(base_dir)/common.mk
|
|||||||
#sim_name is unused, but GenerateSimFiles expects it
|
#sim_name is unused, but GenerateSimFiles expects it
|
||||||
sim_name ?= vcs
|
sim_name ?= vcs
|
||||||
tech_name ?=
|
tech_name ?=
|
||||||
tech_dir ?= $(vlsi_dir)/hammer-$(tech_nam)-plugin/$(tech_name)
|
tech_dir ?= $(vlsi_dir)/hammer-$(tech_name)-plugin/$(tech_name)
|
||||||
SMEMS_COMP ?= $(tech_dir)/sram-compiler.json
|
SMEMS_COMP ?= $(tech_dir)/sram-compiler.json
|
||||||
SMEMS_HAMMER ?= $(build_dir)/$(long_name).mems.hammer.json
|
SMEMS_HAMMER ?= $(build_dir)/$(long_name).mems.hammer.json
|
||||||
MACROCOMPILER_MODE ?= -l $(SMEMS_COMP) --use-compiler -hir $(SMEMS_HAMMER)
|
MACROCOMPILER_MODE ?= -l $(SMEMS_COMP) --use-compiler -hir $(SMEMS_HAMMER)
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import hammer_vlsi
|
import hammer_vlsi
|
||||||
from hammer_vlsi import CLIDriver
|
from hammer_vlsi import CLIDriver, HammerToolHookAction
|
||||||
|
|
||||||
from typing import Dict, Callable, Optional
|
from typing import Dict, Callable, Optional, List
|
||||||
|
|
||||||
def example_place_tap_cells(x: hammer_vlsi.HammerTool) -> bool:
|
def example_place_tap_cells(x: hammer_vlsi.HammerTool) -> bool:
|
||||||
x.append('''
|
x.append('''
|
||||||
@@ -12,25 +12,8 @@ def example_place_tap_cells(x: hammer_vlsi.HammerTool) -> bool:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
class ExampleDriver(CLIDriver):
|
class ExampleDriver(CLIDriver):
|
||||||
|
def get_extra_par_hooks(self) -> List[HammerToolHookAction]:
|
||||||
def action_map(self) -> Dict[str, Callable[[hammer_vlsi.HammerDriver, Callable[[str], None]], Optional[dict]]]:
|
return [hammer_vlsi.HammerTool.make_replacement_hook("place_tap_cells", example_place_tap_cells)]
|
||||||
par_action = self.create_par_action(custom_hooks=[
|
|
||||||
hammer_vlsi.HammerTool.make_replacement_hook("place_tap_cells", example_place_tap_cells)
|
|
||||||
])
|
|
||||||
|
|
||||||
new_dict = dict(super().action_map())
|
|
||||||
new_dict.update({
|
|
||||||
"par": par_action
|
|
||||||
})
|
|
||||||
return new_dict
|
|
||||||
|
|
||||||
def par_action(self, driver: hammer_vlsi.HammerDriver, append_error_func: Callable[[str], None]) -> Optional[dict]:
|
|
||||||
if not driver.load_par_tool():
|
|
||||||
return None
|
|
||||||
success, par_output = driver.run_par(hook_actions=[
|
|
||||||
hammer_vlsi.HammerTool.make_replacement_hook("place_tap_cells", example_place_tap_cells)
|
|
||||||
])
|
|
||||||
return par_output
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
ExampleDriver().main()
|
ExampleDriver().main()
|
||||||
|
|||||||
Reference in New Issue
Block a user