From 801486dc146e1ac8b622c602cd689cc8d3c64abe Mon Sep 17 00:00:00 2001 From: Villyam Date: Wed, 10 Jul 2024 10:48:07 +0300 Subject: [PATCH 1/6] projects/scripts/adi_project_lattice_pb.tcl: Fixed adi_ip_update. Updates in projects/common/lfcpnx/lfcpnx_system_pb.tcl: - Updated the project script with fixed usage of adi_ip_update. - Updated IP versions to the latest. Signed-off-by: Villyam --- projects/common/lfcpnx/lfcpnx_system_pb.tcl | 10 +++++----- projects/scripts/adi_project_lattice_pb.tcl | 4 +--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/projects/common/lfcpnx/lfcpnx_system_pb.tcl b/projects/common/lfcpnx/lfcpnx_system_pb.tcl index 8e72f67573a..67c1f5fef5f 100644 --- a/projects/common/lfcpnx/lfcpnx_system_pb.tcl +++ b/projects/common/lfcpnx/lfcpnx_system_pb.tcl @@ -260,7 +260,7 @@ sbp_assign_addr_seg -offset 'h00000000 "$project_name/cpu0_inst/LOCAL_BUS_M_INST "$project_name/tcm0_inst/LOCAL_BUS_IF_S1" if {$timer_en == 1} { - adi_ip_update -vlnv {latticesemi.com:ip:axi_interc0:1.2.2} \ + adi_ip_update $project_name -vlnv {latticesemi.com:ip:axi_interc0:1.2.2} \ -meta_vlnv {latticesemi.com:ip:axi_interconnect:1.2.2} \ -cfg_value { TOTAL_EXTMAS_CNT: 1, @@ -270,13 +270,13 @@ if {$timer_en == 1} { } \ -ip_iname "axi_interc0_inst" - adi_ip_instance -vlnv {latticesemi.com:ip:axi_apb3:1.1.0} \ - -meta_vlnv {latticesemi.com:ip:axi2apb_bridge:1.1.0} \ + adi_ip_instance -vlnv {latticesemi.com:ip:axi_apb3:1.1.1} \ + -meta_vlnv {latticesemi.com:ip:axi2apb_bridge:1.1.1} \ -cfg_value {} \ -ip_iname "axi_apb3_inst" - adi_ip_instance -vlnv {latticesemi.com:ip:timer0:1.3.0} \ - -meta_vlnv {latticesemi.com:ip:gp_timer:1.3.0} \ + adi_ip_instance -vlnv {latticesemi.com:ip:timer0:1.3.1} \ + -meta_vlnv {latticesemi.com:ip:gp_timer:1.3.1} \ -cfg_value { t1_cnt_up: count-up, T1_PERIOD_WIDTH: 32, diff --git a/projects/scripts/adi_project_lattice_pb.tcl b/projects/scripts/adi_project_lattice_pb.tcl index 5b838aa4f0a..5d6f1b5f96d 100644 --- a/projects/scripts/adi_project_lattice_pb.tcl +++ b/projects/scripts/adi_project_lattice_pb.tcl @@ -335,7 +335,7 @@ proc adi_ip_instance {args} { # \opt[ip_iname] -ip_iname cpu0_inst # \opt[ip_niname] -ip_niname new_name_inst ############################################################################### -proc adi_ip_update {args} { +proc adi_ip_update {project_name args} { array set opt [list -cfg_path "./ipcfg" \ -vlnv "" \ -ip_path "" \ @@ -354,8 +354,6 @@ proc adi_ip_update {args} { adi_ip_config {*}$args - global project_name - if {$ip_niname == ""} { sbp_replace -vlnv $vlnv -name $ip_iname -component $project_name/$ip_iname } else { From 9a7a120cce09289a3f6adc0cd56cb8b57653ce5e Mon Sep 17 00:00:00 2001 From: Villyam Date: Wed, 10 Jul 2024 11:54:39 +0300 Subject: [PATCH 2/6] docs/user_guide/build_hdl.rst: Updated Timer-Counter IP version. Signed-off-by: Villyam --- docs/user_guide/build_hdl.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user_guide/build_hdl.rst b/docs/user_guide/build_hdl.rst index 4a0ceda4b85..d565a05a945 100644 --- a/docs/user_guide/build_hdl.rst +++ b/docs/user_guide/build_hdl.rst @@ -751,7 +751,7 @@ i2c_controller I2C Controller 2.0.1 axi_interconnect AXI4 Interconnect 1.2.2 axi2ahb_bridge AXI4 to AHB-Lite Bridge 1.1.1 axi2apb_bridge AXI4 to APB Bridge 1.1.1 -gp_timer Timer-Counter 1.3.0 +gp_timer Timer-Counter 1.3.1 ==================== ============================= ======= .. shell:: bash From 8d8f4384537ef658eefecb82d6e195e7d6d7ff20 Mon Sep 17 00:00:00 2001 From: Villyam Date: Wed, 10 Jul 2024 13:56:49 +0300 Subject: [PATCH 3/6] scripts/adi_project_lattice_pb.tcl: Fixing project creation. Using the official project creation with template project. Adding a workaround fix to template project for Linux. Signed-off-by: Villyam --- projects/scripts/adi_project_lattice_pb.tcl | 113 ++++++++++++-------- 1 file changed, 66 insertions(+), 47 deletions(-) diff --git a/projects/scripts/adi_project_lattice_pb.tcl b/projects/scripts/adi_project_lattice_pb.tcl index 5d6f1b5f96d..149d2227c92 100644 --- a/projects/scripts/adi_project_lattice_pb.tcl +++ b/projects/scripts/adi_project_lattice_pb.tcl @@ -48,7 +48,7 @@ proc adi_project_pb {project_name args} { -board "" \ -speed "" \ -language "verilog" \ - -psc "" \ + -psc "${env(TOOLRTF)}/../../templates/MachXO3D_Template01/MachXO3D_Template01.psc" \ -cmd_list {{source ./system_pb.tcl}} \ {*}$args] @@ -58,6 +58,11 @@ proc adi_project_pb {project_name args} { set cmd_list $opt(-cmd_list) set psc $opt(-psc) + if {$psc == "${env(TOOLRTF)}/../../templates/MachXO3D_Template01/MachXO3D_Template01.psc"} { + update_template + set psc ./MachXO3D_Template01/MachXO3D_Template01.psc + } + global ad_hdl_dir if { [string match "auto" $dev_select] } { @@ -156,37 +161,15 @@ proc adi_project_create_pb {project_name args} { set preinst_ip_mod_dir ${env(TOOLRTF)} set propel_builder_project_dir "$ppath/$project_name/$project_name" - if {$psc == ""} { - file mkdir $propel_builder_project_dir - - # Creating the necessary .socproject file for being able to open the Radiant - # and Propel SDK from Propel Builder if needed. - set file [open "$ppath/$project_name/.socproject" w] - puts $file [format { - - - - -} $project_name $project_name] - close $file + sbp_create_project -name "$project_name" \ + -path $ppath \ + -device $device \ + -speed $speed \ + -language $language \ + -psc $psc - sbp_design new -name $project_name \ - -path $propel_builder_project_dir/$project_name.sbx \ - -device $device \ - -speed $speed \ - -language $language \ - -board $board - } else { - sbp_create_project -name "$project_name" \ - -path $ppath \ - -device $device \ - -speed $speed \ - -language $language \ - -psc $psc - - foreach port [sbp_get_ports *] { - sbp_delete $port -type port - } + foreach port [sbp_get_ports *] { + sbp_delete $port -type port } sbp_design save @@ -197,25 +180,9 @@ proc adi_project_create_pb {project_name args} { eval $cmd } -# Workaround for keeping the configured IP folders in Propel Builder 2023.2 -# command line version. -# The 'sbp_design save' doesn't saves the temporary .lib folder to lib folder, -# instead deletes if there is anything in lib folder. -# I am copying the content of .lib (the configured IP cores) to lib after save -# to keep the configured IP cores for the Radiant project. -# Also generating the bsp after copying the configured IP cores to lib folder -# because that's also based on the content of lib folder. -# -# Update: - If the psc default template file exists then the save works fine -# and we do not need to generate the bsp separately also. sbp_design save sbp_design generate - if {$psc == ""} { - file copy "$propel_builder_project_dir/.lib/latticesemi.com" \ - "$propel_builder_project_dir/lib" - } - # Generating the bsp. sbp_design pge sge \ -i "$propel_builder_project_dir/$project_name.sbx" \ @@ -360,3 +327,55 @@ proc adi_ip_update {project_name args} { sbp_replace -vlnv $vlnv -name $ip_niname -component $project_name/$ip_iname } } + +proc update_template {args} { + global env + array set opt [list -dpath "./" \ + -template "${env(TOOLRTF)}/../../templates/MachXO3D_Template01" \ + ] + + set dpath $opt(-dpath) + set template $opt(-template) + + if {[file exist $dpath] != 1} { + file mkdir $dpath + } + if {[file exist $dpath/MachXO3D_Template01] == 1} { + exec rm -r $dpath/MachXO3D_Template01 + } + file copy -force "${env(TOOLRTF)}/../../templates/MachXO3D_Template01" $dpath + + set regx {\s+file\s+copy\s+} + + puts [pwd] + if {[file exist $dpath/MachXO3D_Template01/MachXO3D_Template01.tcl] == 1} { + set file [open $dpath/MachXO3D_Template01/MachXO3D_Template01.tcl r] + set fdata [read $file] + close $file + set file [open $dpath/MachXO3D_Template01/MachXO3D_Template01.tcl w] + foreach line [split $fdata "\n"] { + if {[regexp $regx $line]} { + puts $file { if {[file exist $targetDir] != 1} {file mkdir $targetDir}} + puts { if {[file exist $targetDir] != 1} {file mkdir $targetDir}} + } + puts $file $line + puts $line + } + close $file + } + if {[file exist $dpath/MachXO3D_Template01/verification/MachXO3D_Template01_v.tcl] == 1} { + set file [open $dpath/MachXO3D_Template01/verification/MachXO3D_Template01_v.tcl r] + set fdata [read $file] + close $file + set file [open $dpath/MachXO3D_Template01/verification/MachXO3D_Template01_v.tcl w] + foreach line [split $fdata "\n"] { + if {[regexp $regx $line]} { + puts $file { if {[file exist $targetDir] != 1} {file mkdir $targetDir}} + puts { if {[file exist $targetDir] != 1} {file mkdir $targetDir}} + } + puts $file $line + puts $line + } + close $file + } +} From 10427d6ed4387ec1804c0838626bd733cb473cd6 Mon Sep 17 00:00:00 2001 From: Villyam Date: Fri, 13 Dec 2024 13:27:27 +0200 Subject: [PATCH 4/6] projects/scripts: Updating project and make scripts. Updating .gitignore Signed-off-by: Villyam --- .gitignore | 5 ++ projects/scripts/adi_project_lattice.tcl | 20 ++--- projects/scripts/adi_project_lattice_pb.tcl | 8 +- projects/scripts/project-lattice.mk | 81 ++++++++------------- 4 files changed, 51 insertions(+), 63 deletions(-) diff --git a/.gitignore b/.gitignore index de327179875..5229e4aba36 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,8 @@ _build library/**/.lock library/**/interfaces/*.sv .backstage_yaml +.setting.ini +MachXO3D_Template01 +ipcfg +_bld +radiantc.* diff --git a/projects/scripts/adi_project_lattice.tcl b/projects/scripts/adi_project_lattice.tcl index 345ff639955..7fca312d9a5 100644 --- a/projects/scripts/adi_project_lattice.tcl +++ b/projects/scripts/adi_project_lattice.tcl @@ -44,7 +44,7 @@ proc adi_project {project_name args} { puts "\nadi_project:\n" array set opt [list -dev_select "auto" \ - -ppath "./$project_name" \ + -ppath "./_bld/$project_name" \ -device "" \ -speed "" \ -board "" \ @@ -94,7 +94,7 @@ proc adi_project {project_name args} { proc adi_project_create {project_name args} { puts "\nadi_project_create:\n" - array set opt [list -ppath "./$project_name" \ + array set opt [list -ppath "./_bld/$project_name" \ -device "" \ -performance "" \ -board "" \ @@ -195,8 +195,8 @@ proc adi_project_files_auto {project_name args} { puts "\nadi_project_files_auto:\n" array set opt [list -exts {*.ipx} \ - -spath ./$project_name/$project_name/lib \ - -ppath "./$project_name" \ + -spath ./_bld/$project_name/$project_name/lib \ + -ppath "./_bld/$project_name" \ -sdepth "6" \ -opt_args "" \ {*}$args] @@ -287,7 +287,7 @@ proc adi_project_files_auto {project_name args} { proc adi_project_files {project_name args} { puts "\nadi_project_files:\n" - array set opt [list -ppath "./$project_name" \ + array set opt [list -ppath "./_bld/$project_name" \ -flist "" \ -opt_args "" \ {*}$args] @@ -374,11 +374,11 @@ proc add_update_constraint_file {pfile project_dir ext radiant_project opt_args} # Adds the default project files to the Radiant project ($project_name.rdf) proc adi_project_files_default {project_name} { adi_project_files_auto $project_name -exts {*.ipx} \ - -spath "./$project_name/$project_name/lib" \ - -ppath "./$project_name" \ + -spath "./_bld/$project_name/$project_name/lib" \ + -ppath "./_bld/$project_name" \ -sdepth "6" adi_project_files $project_name \ - -flist [list ./$project_name/$project_name/$project_name.v] + -flist [list ./_bld/$project_name/$project_name/$project_name.v] } ############################################################################### @@ -447,7 +447,7 @@ proc adopt_path {full_path_flist base_to_cut {base_to_add ""}} { proc adi_project_run {project_name args} { puts "\nadi_project_run:\n" - array set opt [list -ppath "./$project_name" \ + array set opt [list -ppath "./_bld/$project_name" \ -mode "export" \ -impl "impl_1" \ -top "system_top" \ @@ -516,7 +516,7 @@ proc adi_project_run_cmd {project_name args} { puts "\nadi_project_run_cmd:\n" set dir [pwd] - array set opt [list -ppath "./$project_name" -cmd_list "" {*}$args] + array set opt [list -ppath "./_bld/$project_name" -cmd_list "" {*}$args] set ppath $opt(-ppath) set cmd_list $opt(-cmd_list) diff --git a/projects/scripts/adi_project_lattice_pb.tcl b/projects/scripts/adi_project_lattice_pb.tcl index 149d2227c92..1737929c4be 100644 --- a/projects/scripts/adi_project_lattice_pb.tcl +++ b/projects/scripts/adi_project_lattice_pb.tcl @@ -43,7 +43,7 @@ proc adi_project_pb {project_name args} { set preinst_ip_mod_dir ${env(TOOLRTF)} array set opt [list -dev_select "auto" \ - -ppath "." \ + -ppath "./_bld" \ -device "" \ -board "" \ -speed "" \ @@ -98,7 +98,7 @@ proc adi_project_pb {project_name args} { proc adi_project_create_pb {project_name args} { puts "\nadi_project_create_pb:\n" - array set opt [list -ppath "." \ + array set opt [list -ppath "./_bld" \ -device "" \ -board "" \ -speed "" \ @@ -161,6 +161,10 @@ proc adi_project_create_pb {project_name args} { set preinst_ip_mod_dir ${env(TOOLRTF)} set propel_builder_project_dir "$ppath/$project_name/$project_name" + if {[file exists $ppath] != 1} { + file mkdir $ppath + } + sbp_create_project -name "$project_name" \ -path $ppath \ -device $device \ diff --git a/projects/scripts/project-lattice.mk b/projects/scripts/project-lattice.mk index 619c916b84c..2bb8660a699 100644 --- a/projects/scripts/project-lattice.mk +++ b/projects/scripts/project-lattice.mk @@ -6,29 +6,18 @@ ################################################################################ ## Make script for building Lattice projects. ################################## # -# * Make commands: all pb rd rd-force pb-force clean clean-all clean-pb clean-rd. +# * Make commands: all pb rd rd-force pb-force clean clean-all. # # * pb: checks if dependencies exist and builds the Propel Builder project. # (block design) # * rd: checks for dependencies and builds the Radiant Project # based on Propel Builder Project. +# * force: you can build the whole project without +# checking for dependencies. # * pb-force and rd-force: you can build the respective projects without # checking for dependencies. # * clean: deletes the whole project and log files. # * clean-all: deletes all the generated files during build. -# * clean-pb: deletes the Propel Builder project files and directories. -# After this you can rebuild the Propel Builder project separately by -# 'make pb' but only if you created the project without using the '-sbc' -# template file option wich is used in official project creation command, -# because if you create with '-sbc' option the command will not create -# the project becouse the first folder from -# // is not deleted, -# becouse that contains the Radiant project files. Also deletes the log -# file for Propel Builder project. -# * clean-rd: cleans the content of // -# folder ralated to Radiant project except the -# // folder. -# Also deletes the log file for Radiant project. # # * Note: The limitation for Propel Builder project is that it does not exit # with error code no matter if the design was built or failed to, @@ -58,7 +47,7 @@ M_DEPS += $(HDL_PROJECT_PATH)scripts/adi_project_lattice_pb.tcl M_DEPS += $(HDL_PROJECT_PATH)scripts/adi_project_lattice.tcl M_DEPS += $(HDL_PROJECT_PATH)../scripts/adi_env.tcl M_DEPS += system_top.v -M_DEPS += $(PROJECT_NAME)/$(PROJECT_NAME)/$(PROJECT_NAME).v +M_DEPS += _bld/$(PROJECT_NAME)/$(PROJECT_NAME)/$(PROJECT_NAME).v M_DEPS += $(wildcard *system_constr.pdc) M_DEPS += $(wildcard *system_constr.sdc) @@ -77,13 +66,18 @@ R_DEPS_FILTER += %adi_env.tcl R_DEPS_FILTER += %adi_project_lattice.tcl R_DEPS_FILTER += %system_project.tcl -PB_TARGETS += $(PROJECT_NAME)/$(PROJECT_NAME)/$(PROJECT_NAME).sbx -PB_TARGETS += $(PROJECT_NAME)/$(PROJECT_NAME)/$(PROJECT_NAME).v +PB_TARGETS += _bld/$(PROJECT_NAME)/$(PROJECT_NAME)/$(PROJECT_NAME).sbx +PB_TARGETS += _bld/$(PROJECT_NAME)/$(PROJECT_NAME)/$(PROJECT_NAME).v + +R_TARGETS += _bld/$(PROJECT_NAME)/$(PROJECT_NAME).rdf +R_TARGETS += _bld/$(PROJECT_NAME)/impl_1/$(PROJECT_NAME)_impl_1.bit -R_TARGETS += $(PROJECT_NAME)/$(PROJECT_NAME).rdf -R_TARGETS += $(PROJECT_NAME)/impl_1/$(PROJECT_NAME)_impl_1.bit +CLEAN_TARGET += $(wildcard ./*/) +CLEAN_TARGET += $(wildcard *.log) +CLEAN_TARGET += $(wildcard ./radiantc.*) +CLEAN_TARGET += $(filter-out . .. ./. ./.., $(wildcard .*)) -.PHONY: all pb rd rd-force pb-force clean clean-all clean-pb clean-rd +.PHONY: all pb rd force rd-force pb-force clean clean-all all: pb rd @@ -92,41 +86,25 @@ pb: $(PB_TARGETS) rd: $(R_TARGETS) clean: - -rm -Rf ${PROJECT_NAME} - -rm -f $(wildcard *.log) - -rm -Rf ./ipcfg - -rm -Rf ./sge + $(call clean, \ + $(CLEAN_TARGET), \ + $(HL)$(PROJECT_NAME)$(NC) project) clean-all: - -rm -Rf ${PROJECT_NAME} - -rm -f $(wildcard *.log) - -rm -Rf ./ipcfg - -rm -Rf $(filter-out . .. ./. ./.., $(wildcard .*)) - -rm -Rf ./sge - -clean-pb: - -rm -Rf $(wildcard $(PROJECT_NAME)/$(PROJECT_NAME)/*) - -rm -f $(PROJECT_NAME)/.socproject - -rm -Rf ./ipcfg - -rm -f $(PROJECT_NAME)_propel_builder.log - -rm -Rf ./sge - -clean-rd: - -rm -Rf $(filter-out $(PROJECT_NAME)/$(PROJECT_NAME) \ - $(PROJECT_NAME)/.socproject, \ - $(wildcard $(PROJECT_NAME)/*)) - -rm -Rf $(filter-out $(PROJECT_NAME)/$(PROJECT_NAME) \ - $(PROJECT_NAME)/.socproject \ - $(PROJECT_NAME)/. \ - $(PROJECT_NAME)/.., $(wildcard $(PROJECT_NAME)/.*)) - -rm -f $(PROJECT_NAME)_radiant.log + $(call clean, \ + $(CLEAN_TARGET), \ + $(HL)$(PROJECT_NAME)$(NC) project) $(PB_TARGETS): $(filter-out $(PB_DEPS_FILTER_OUT),$(filter $(PB_DEPS_FILTER), $(M_DEPS))) - -rm -f $(PROJECT_NAME)_propel_builder.log + $(call skip_if_missing, \ + Project, \ + $(PROJECT_NAME), \ + true, \ + rm -Rf $(CLEAN_TARGET) ; \ $(call build, \ $(PROPEL_BUILDER) system_project_pb.tcl, \ $(PROJECT_NAME)_propel_builder.log, \ - $(HL)$(PROJECT_NAME)$(NC) project) + $(HL)$(PROJECT_NAME)$(NC) project)) @for file in $(filter $(R_DEPS_FILTER), $(M_DEPS)); do \ if [ ! -f $$file ]; then \ echo "No [$(HL)$$file$(NC)] found. ... $(RED)FAILED$(NC)"; \ @@ -137,13 +115,15 @@ $(PB_TARGETS): $(filter-out $(PB_DEPS_FILTER_OUT),$(filter $(PB_DEPS_FILTER), $( $(R_TARGETS): $(filter $(R_DEPS_FILTER), $(M_DEPS)) -rm -f $(PROJECT_NAME)_radiant.log - -rm -f $(PROJECT_NAME)/system_constr.pdc - -rm -f $(PROJECT_NAME)/system_constr.sdc + -rm -f _bld/$(PROJECT_NAME)/system_constr.pdc + -rm -f _bld/$(PROJECT_NAME)/system_constr.sdc $(call build, \ $(RADIANT) system_project.tcl, \ $(PROJECT_NAME)_radiant.log, \ $(HL)$(PROJECT_NAME)$(NC) project) +force: pb-force rd-force + pb-force: $(call build, \ $(PROPEL_BUILDER) system_project_pb.tcl, \ @@ -155,4 +135,3 @@ rd-force: $(RADIANT) system_project.tcl, \ $(PROJECT_NAME)_radiant.log, \ $(HL)$(PROJECT_NAME)$(NC) project) - From 0be7679a0a542e03bc144b7ccacddeebf3ef619c Mon Sep 17 00:00:00 2001 From: Villyam Date: Fri, 13 Dec 2024 14:54:55 +0200 Subject: [PATCH 5/6] docs/user_guide/build_hdl.rst: Updating paths in descriptions. Signed-off-by: Villyam --- docs/user_guide/build_hdl.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/user_guide/build_hdl.rst b/docs/user_guide/build_hdl.rst index d565a05a945..24464504d7d 100644 --- a/docs/user_guide/build_hdl.rst +++ b/docs/user_guide/build_hdl.rst @@ -788,17 +788,17 @@ This contains the most relevant information that you need to provide. ~/hdl $ls -ltr - $ls -ltr / - $ls -ltr // - $tail /_propel_builder.log - $tail /_radiant.log + $ls -ltr /_bld/ + $ls -ltr /_bld// + $tail /_bld/_propel_builder.log + $tail /_bld/_radiant.log Note that if the **Propel Builder** project fails to build, the **$(PROJECT_NAME)_radiant.log** may not exist. If the Propel Builder project was built successfully, the **sge** folder should appear in the **/** or in the -**/**. +**/_bld/**. The **sge** folder contains the **bsp** folder (Base Support Package) and the SoC configuration files. @@ -826,15 +826,15 @@ The **system_pb.tcl** is sourced in **adi_project_pb** procedure. The **system_project.tcl** runs second. This file is used to create and build the **HDL project** (Radiant). Here we use the output of the Propel Builder project as the **configured IPs** that can be found in the -*///lib* folder and the +*/_bld///lib* folder and the **default block design wrapper** that is the -*///.v*. +*/_bld///.v*. We add them to the Radiant project, then add our **system_top.v** wrapper, the **constraint files** and build the project. The output is a **.bit** file that by default will appear in the -**//impl_1** folder if the project was +**/_bld//impl_1** folder if the project was successfully built. Supported targets of ``make`` command From 1929fca5ef461a68e24da3105029f4c751e41b8d Mon Sep 17 00:00:00 2001 From: Villyam Date: Tue, 17 Dec 2024 15:00:44 +0200 Subject: [PATCH 6/6] projects/common/lfcpnx: Fixing clock uncertainty critical warning. Signed-off-by: Villyam --- projects/common/lfcpnx/lfcpnx_system_constr.pdc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/common/lfcpnx/lfcpnx_system_constr.pdc b/projects/common/lfcpnx/lfcpnx_system_constr.pdc index e2cd5bd88c6..7431c482f8a 100644 --- a/projects/common/lfcpnx/lfcpnx_system_constr.pdc +++ b/projects/common/lfcpnx/lfcpnx_system_constr.pdc @@ -5,6 +5,8 @@ ldc_set_sysconfig {JTAG_PORT=ENABLE MASTER_SPI_PORT=SERIAL DONE_PORT=ENABLE INITN_PORT=ENABLE PROGRAMN_PORT=ENABLE MCCLK_FREQ=112.5 CONFIG_IOSLEW=FAST BOOTMODE=SINGLE CONFIGIO_VOLTAGE_BANK0=1.8 CONFIGIO_VOLTAGE_BANK1=3.3} +set_clock_uncertainty 0.002 [all_clocks] + #gpio LEDs 0-7 ldc_set_location -site {N5} [get_ports {leds_0_to_23[0]}] ldc_set_location -site {N6} [get_ports {leds_0_to_23[1]}]