diff --git a/sm_soc_devkit_ghrd/Makefile.new b/sm_soc_devkit_ghrd/Makefile.new index 44170b9..eb1c602 100755 --- a/sm_soc_devkit_ghrd/Makefile.new +++ b/sm_soc_devkit_ghrd/Makefile.new @@ -568,7 +568,7 @@ QUARTUS_QSF_QPF_GEN := $(firstword $(wildcard create_*_quartus.tcl)) ifneq ($(QUARTUS_QSF_QPF_GEN),) quartus_generate_qsf_qpf: $(QUARTUS_QSF_QPF_GEN) @$(RM) $(QUARTUS_QSF) $(QUARTUS_QPF) - quartus_sh --script=$< $(QUARTUS_TCL_ARGS) + quartus_sh --script=$< $(QUARTUS_TCL_ARGS) prjroot $(PROJECT_ROOT) else quartus_generate_qsf_qpf: @$(ECHO) "Make target '$@' is not supported for this design" @@ -580,7 +580,7 @@ QUARTUS_TCL_ARGS += qsys_name $(patsubst %.qsys,%,$(QSYS_FILE_TOP)) ifneq ($(QUARTUS_TOP_GEN),) quartus_generate_top: $(QUARTUS_TOP_GEN) @$(RM) *_top.v - quartus_sh --script=$< $(QUARTUS_TCL_ARGS) + quartus_sh --script=$< $(QUARTUS_TCL_ARGS) prjroot $(PROJECT_ROOT) else quartus_generate_top: @$(ECHO) "Make target '$@' is not supported for this design" diff --git a/sm_soc_devkit_ghrd/agilex_hps_pinmux_solver.tcl b/sm_soc_devkit_ghrd/agilex_hps_pinmux_solver.tcl index 30d91c6..5712bd0 100755 --- a/sm_soc_devkit_ghrd/agilex_hps_pinmux_solver.tcl +++ b/sm_soc_devkit_ghrd/agilex_hps_pinmux_solver.tcl @@ -135,7 +135,8 @@ for {set i 0} {$i < 12} {incr i} { lappend io48_q4_assignment NONE } -source ./agilex_io48.tcl +puts "prjroot = ${prjroot} " +source ${prjroot}/agilex_io48.tcl # Assigning individual IO48 peripherals if {$hps_jtag_en == 1} { diff --git a/sm_soc_devkit_ghrd/arguments_solver.tcl b/sm_soc_devkit_ghrd/arguments_solver.tcl index c4346b2..b4f3a2d 100755 --- a/sm_soc_devkit_ghrd/arguments_solver.tcl +++ b/sm_soc_devkit_ghrd/arguments_solver.tcl @@ -102,8 +102,8 @@ # #**************************************************************************** -source ./design_config.tcl - +puts "prjroot = ${prjroot} " +source ${prjroot}/design_config.tcl proc check_then_accept { param } { if {$param == device_family || device || qsys_name || project_name} { @@ -167,7 +167,7 @@ if { ![ info exists board_pwrmgt ] } { } # Loading Board default configuration settings -set board_config_file "./board/board_${board}_config.tcl" +set board_config_file "${prjroot}/board/board_${board}_config.tcl" if {[file exist $board_config_file]} { source $board_config_file } else { @@ -709,9 +709,10 @@ if {$f2s_address_width > 32 && $f2sdram_width > 0} { set cct_en 0 } -source ./agilex_hps_pinmux_solver.tcl -source ./agilex_hps_parameter_solver.tcl -source ./agilex_hps_io48_delay_chain_solver.tcl + +source ${prjroot}/agilex_hps_pinmux_solver.tcl +source ${prjroot}/agilex_hps_parameter_solver.tcl +source ${prjroot}/agilex_hps_io48_delay_chain_solver.tcl # Was thinking to enable single TCL entry for flow of TOP RTL, qsys, quartus generation. Ideal still pending implementation # exec quartus_sh --script=create_ghrd_quartus.tcl $top_quartus_arg diff --git a/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl b/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl index 5f15d3e..03f2e97 100755 --- a/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl +++ b/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl @@ -20,8 +20,9 @@ # #**************************************************************************** -source ./arguments_solver.tcl -source ./utils.tcl +puts "prjroot = ${prjroot} " +source ${prjroot}/arguments_solver.tcl +source ${prjroot}/utils.tcl package require -exact qsys 19.1 diff --git a/sm_soc_devkit_ghrd/create_ghrd_quartus.tcl b/sm_soc_devkit_ghrd/create_ghrd_quartus.tcl index ce6593a..33d37ba 100755 --- a/sm_soc_devkit_ghrd/create_ghrd_quartus.tcl +++ b/sm_soc_devkit_ghrd/create_ghrd_quartus.tcl @@ -15,9 +15,10 @@ foreach {key value} $quartus(args) { set ${key} $value } -source ./arguments_solver.tcl +puts "prjroot = ${prjroot} " +source ${prjroot}/arguments_solver.tcl -source ./board/board_${board}_pin_assignment_table.tcl +source ${prjroot}/board/board_${board}_pin_assignment_table.tcl global pin_assignment_table set hdlfiles "${top_name}.v,custom_ip/debounce/debounce.v" diff --git a/sm_soc_devkit_ghrd/create_ghrd_top.tcl b/sm_soc_devkit_ghrd/create_ghrd_top.tcl index 090d2b6..5b23019 100755 --- a/sm_soc_devkit_ghrd/create_ghrd_top.tcl +++ b/sm_soc_devkit_ghrd/create_ghrd_top.tcl @@ -23,7 +23,9 @@ source $::env(QUARTUS_ROOTDIR)/../ip/altera/common/hw_tcl_packages/altera_terp.t foreach {key val} $::argv { set ${key} $val } -source ./arguments_solver.tcl + +puts "prjroot = ${prjroot}" +source ${prjroot}/arguments_solver.tcl # construct parameters value used in / affect terp file set param(top_name) $top_name diff --git a/sm_soc_devkit_ghrd/hps_subsys/Makefile b/sm_soc_devkit_ghrd/hps_subsys/Makefile index 4cffa24..02e7896 100755 --- a/sm_soc_devkit_ghrd/hps_subsys/Makefile +++ b/sm_soc_devkit_ghrd/hps_subsys/Makefile @@ -41,7 +41,8 @@ GHRD_SCRIPT_FILE := $(PROJECT_ROOT)/scripts/config_parzer.awk .PHONY: generate_from_tcl generate_from_tcl: ifeq ($(HPS_EN), $(ENABLE)) - @qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_hps.tcl $(QSYS_TCL_ARGS) + @qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_hps.tcl \ + $(shell echo "" | awk -v qsys_tcl_args=$(QSYS_TCL_ARGS) -v prjroot=$(PROJECT_ROOT) '{split(qsys_tcl_args, a, "=");printf("%s=\"%s;set prjroot %s\"", a[1], a[2], prjroot)}') else @echo "hps_subsys does not be enabled, skip." endif diff --git a/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl b/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl index d7a854f..dd0daec 100755 --- a/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl +++ b/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl @@ -11,9 +11,9 @@ # #**************************************************************************** -source ./arguments_solver.tcl -source ./utils.tcl - +puts "prjroot = ${prjroot} " +source ${prjroot}/arguments_solver.tcl +source ${prjroot}/utils.tcl set subsys_name subsys_hps diff --git a/sm_soc_devkit_ghrd/jtag_subsys/Makefile b/sm_soc_devkit_ghrd/jtag_subsys/Makefile index fa06f30..0111b5f 100755 --- a/sm_soc_devkit_ghrd/jtag_subsys/Makefile +++ b/sm_soc_devkit_ghrd/jtag_subsys/Makefile @@ -31,7 +31,8 @@ GHRD_SCRIPT_FILE := $(PROJECT_ROOT)/scripts/config_parzer.awk .PHONY: generate_from_tcl generate_from_tcl: ifeq ($(JTAG_EN), $(ENABLE)) - @qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_jtag_master.tcl $(QSYS_TCL_ARGS) + @qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_jtag_master.tcl \ + $(shell echo "" | awk -v qsys_tcl_args=$(QSYS_TCL_ARGS) -v prjroot=$(PROJECT_ROOT) '{split(qsys_tcl_args, a, "=");printf("%s=\"%s;set prjroot %s\"", a[1], a[2], prjroot)}') else @echo "jtag_subsys does not be enabled, skip." endif diff --git a/sm_soc_devkit_ghrd/jtag_subsys/construct_subsys_jtag_master.tcl b/sm_soc_devkit_ghrd/jtag_subsys/construct_subsys_jtag_master.tcl index b4b5442..62674b8 100755 --- a/sm_soc_devkit_ghrd/jtag_subsys/construct_subsys_jtag_master.tcl +++ b/sm_soc_devkit_ghrd/jtag_subsys/construct_subsys_jtag_master.tcl @@ -11,8 +11,10 @@ # #**************************************************************************** -source ./arguments_solver.tcl -source ./utils.tcl +puts "prjroot = ${prjroot} " +source ${prjroot}/arguments_solver.tcl +source ${prjroot}/utils.tcl + set sub_qsys_jtag subsys_jtg_mst package require -exact qsys 19.1 diff --git a/sm_soc_devkit_ghrd/peripheral_subsys/Makefile b/sm_soc_devkit_ghrd/peripheral_subsys/Makefile index 6da3a61..88deb2a 100755 --- a/sm_soc_devkit_ghrd/peripheral_subsys/Makefile +++ b/sm_soc_devkit_ghrd/peripheral_subsys/Makefile @@ -31,7 +31,8 @@ GHRD_SCRIPT_FILE := $(PROJECT_ROOT)/scripts/config_parzer.awk .PHONY: generate_from_tcl generate_from_tcl: ifeq ($(SUB_PERI_EN), $(ENABLE)) - @qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_peripheral.tcl $(QSYS_TCL_ARGS) + @qsys-script $(shell echo $(QSYS_ARGS) | sed 's/quartus-project=/quartus-project=..\//g') --script=./construct_subsys_peripheral.tcl \ + $(shell echo "" | awk -v qsys_tcl_args=$(QSYS_TCL_ARGS) -v prjroot=$(PROJECT_ROOT) '{split(qsys_tcl_args, a, "=");printf("%s=\"%s;set prjroot %s\"", a[1], a[2], prjroot)}') else @echo "peripheral_subsys does not be enabled, skip." endif diff --git a/sm_soc_devkit_ghrd/peripheral_subsys/construct_subsys_peripheral.tcl b/sm_soc_devkit_ghrd/peripheral_subsys/construct_subsys_peripheral.tcl index 802cb28..c9d4973 100755 --- a/sm_soc_devkit_ghrd/peripheral_subsys/construct_subsys_peripheral.tcl +++ b/sm_soc_devkit_ghrd/peripheral_subsys/construct_subsys_peripheral.tcl @@ -11,8 +11,11 @@ # #**************************************************************************** -source ./arguments_solver.tcl -source ./utils.tcl +puts "prjroot = ${prjroot} " +source ${prjroot}/arguments_solver.tcl +source ${prjroot}/utils.tcl +source ${prjroot}/board/board_hidden_config.tcl + set sub_qsys_periph subsys_periph package require -exact qsys 19.1 @@ -40,7 +43,7 @@ add_component_param "altera_reset_bridge periph_rst_in " add_component_param "altera_avalon_sysid_qsys sysid - IP_FILE_PATH ip/$qsys_name/sysid.ip + IP_FILE_PATH ip/$sub_qsys_periph/sysid.ip id $SYSID "