summaryrefslogtreecommitdiff
path: root/mk/verilator.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/verilator.mk')
-rw-r--r--mk/verilator.mk12
1 files changed, 4 insertions, 8 deletions
diff --git a/mk/verilator.mk b/mk/verilator.mk
index 56d8783..2692863 100644
--- a/mk/verilator.mk
+++ b/mk/verilator.mk
@@ -17,10 +17,7 @@ endef
define target/sim/setup
$(setup_verilator_target)
- $$(call target_var,vl_main) := $$(strip $$(call core_paths,$$(rule_top),vl_main))
- ifeq (,$$(vl_main))
- $$(error core '$$(rule_top)' does not define vl_main)
- endif
+ $$(call target_var,vl_main) := $$(strip $$(call require_core_paths,$$(rule_top),vl_main))
endef
define target/sim/rules
@@ -123,8 +120,8 @@ endef
verilator_src_args = \
$(strip \
- $(let rtl_top,$(core_info/$(rule_top)/rtl_top), \
- $(if $(rtl_top),--top $(rtl_top),$(error core '$(rule_top)' must define rtl_top)) \
+ $(let rtl_top,$(call require_core_var,$(rule_top),rtl_top), \
+ --top $(rtl_top) \
$(foreach dep,$(dep_tree/$(rule_top)), \
$(let prefix,$(core_info/$(dep)/workdir)/, \
$(foreach rtl_dir,$(call core_paths,$(dep),rtl_dirs), \
@@ -132,6 +129,5 @@ verilator_src_args = \
$(foreach include_dir,$(call core_paths,$(dep),rtl_include_dirs), \
-I$(include_dir)) \
$(foreach src_file,$(call core_paths,$(dep),rtl_files) $(call core_paths,$(dep),vl_files), \
- $(src_file)))) \
- $(if $(core_info/$(rule_top)/rtl_files),,$(rtl_top))) \
+ $(src_file))))) \
$(if $(vl_main),$(vl_main),$(error $$(vl_main) not defined by target '$(rule_target)')))