summaryrefslogtreecommitdiff
path: root/mk/peakrdl.mk
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-04-27 11:30:47 -0600
committerAlejandro Soto <alejandro@34project.org>2024-04-27 11:30:47 -0600
commita4b94d40e61e634aa8e970af3911a7671e7d8d50 (patch)
treee7fc9b2b9d84a32aa9f01aa744008d3308feac92 /mk/peakrdl.mk
parentd5dd7bf1879c2a99779b70b8f063f3f16d8b2df8 (diff)
mk: implement peakrdl support
Diffstat (limited to 'mk/peakrdl.mk')
-rw-r--r--mk/peakrdl.mk20
1 files changed, 20 insertions, 0 deletions
diff --git a/mk/peakrdl.mk b/mk/peakrdl.mk
new file mode 100644
index 0000000..8e39634
--- /dev/null
+++ b/mk/peakrdl.mk
@@ -0,0 +1,20 @@
+regblock_out = $(obj)/regblock/$(regblock_core)
+regblock_rdl = $(call require_core_paths,$(regblock_core),regblock_rdl)
+regblock_top = $(call require_core_var,$(regblock_core),regblock_top)
+regblock_cpuif = $(call require_core_var,$(regblock_core),regblock_cpuif)
+
+define hooks/regblock
+ regblock_core := $(1)
+ regblock_rtl := $$(addprefix $$(regblock_out)/,$$(regblock_top)_pkg.sv $$(regblock_top).sv)
+
+ core_info/$(1)/deps += peakrdl_intfs
+ $$(eval $$(call add_core_dyn,$(1),rtl_files,$$(addprefix /,$$(regblock_rtl))))
+
+ $$(regblock_rtl) &: $$(top_stamp) $$(regblock_rdl)
+ $$(eval regblock_core := $(1))
+ $$(call run,REGBLOCK,$$(core_info/$(1)/path)) $$(PEAKRDL) regblock $$(regblock_rdl) \
+ -o $$(regblock_out) --cpuif=$$(regblock_cpuif) --rename=$$(regblock_top) \
+ $$(core_info/$(1)/regblock_args)
+
+ $(call target_entrypoint,$$(regblock_rtl))
+endef