|
|
@@ -3,7 +3,7 @@
|
|
|
#
|
|
|
# recreate_vna_pcie.tcl: Tcl script for re-creating project 'VNA_PCIE_PROJ'
|
|
|
#
|
|
|
-# Generated by Vivado on Tue Oct 08 17:41:06 +0700 2024
|
|
|
+# Generated by Vivado on Wed Oct 09 10:32:15 +0700 2024
|
|
|
# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
|
|
|
#
|
|
|
# This file contains the Vivado Tcl commands for re-creating the project to the state*
|
|
|
@@ -23,9 +23,8 @@
|
|
|
# 2. The following source(s) files that were local or imported into the original project.
|
|
|
# (Please see the '$orig_proj_dir' and '$origin_dir' variable setting below at the start of the script)
|
|
|
#
|
|
|
-# "c:/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci"
|
|
|
-# "c:/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci"
|
|
|
-# "C:/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp"
|
|
|
+# "c:/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci"
|
|
|
+# "c:/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci"
|
|
|
#
|
|
|
# 3. The following remote source files that were added to the original project:-
|
|
|
#
|
|
|
@@ -115,9 +114,8 @@
|
|
|
proc checkRequiredFiles { origin_dir} {
|
|
|
set status true
|
|
|
set files [list \
|
|
|
- "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci"]"\
|
|
|
- "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci"]"\
|
|
|
- "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp"]"\
|
|
|
+ "[file normalize "$origin_dir/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci"]"\
|
|
|
+ "[file normalize "$origin_dir/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci"]"\
|
|
|
]
|
|
|
foreach ifile $files {
|
|
|
if { ![file isfile $ifile] } {
|
|
|
@@ -281,7 +279,7 @@ if { $::argc > 0 } {
|
|
|
}
|
|
|
|
|
|
# Set the directory path for the original project from where this script was exported
|
|
|
-set orig_proj_dir "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ"]"
|
|
|
+set orig_proj_dir "[file normalize "$origin_dir/VNA_PCIE_PROJ"]"
|
|
|
|
|
|
# Check for paths and files needed for project creation
|
|
|
set validate_required 0
|
|
|
@@ -407,6 +405,16 @@ set files [list \
|
|
|
]
|
|
|
add_files -norecurse -fileset $obj $files
|
|
|
|
|
|
+# Import local files from the original project
|
|
|
+set files [list \
|
|
|
+ [file normalize "${origin_dir}/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci" ]\
|
|
|
+ [file normalize "${origin_dir}/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci" ]\
|
|
|
+]
|
|
|
+set imported_files ""
|
|
|
+foreach f $files {
|
|
|
+ lappend imported_files [import_files -fileset sources_1 $f]
|
|
|
+}
|
|
|
+
|
|
|
# Set 'sources_1' fileset file properties for remote files
|
|
|
set file "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/board_common.vh"
|
|
|
set file [file normalize $file]
|
|
|
@@ -434,26 +442,6 @@ set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
|
|
|
set_property -name "file_type" -value "Verilog Header" -objects $file_obj
|
|
|
|
|
|
|
|
|
-# Set 'sources_1' fileset file properties for local files
|
|
|
-# None
|
|
|
-
|
|
|
-# Set 'sources_1' fileset properties
|
|
|
-set obj [get_filesets sources_1]
|
|
|
-set_property -name "dataflow_viewer_settings" -value "min_width=16" -objects $obj
|
|
|
-set_property -name "top" -value "PciVnaEmulTop" -objects $obj
|
|
|
-set_property -name "top_auto_set" -value "0" -objects $obj
|
|
|
-
|
|
|
-# Set 'sources_1' fileset object
|
|
|
-set obj [get_filesets sources_1]
|
|
|
-# Import local files from the original project
|
|
|
-set files [list \
|
|
|
- [file normalize "${origin_dir}/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci" ]\
|
|
|
-]
|
|
|
-set imported_files [import_files -fileset sources_1 $files]
|
|
|
-
|
|
|
-# Set 'sources_1' fileset file properties for remote files
|
|
|
-# None
|
|
|
-
|
|
|
# Set 'sources_1' fileset file properties for local files
|
|
|
set file "pcie1234/pcie1234.xci"
|
|
|
set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
|
|
|
@@ -463,19 +451,6 @@ if { ![get_property "is_locked" $file_obj] } {
|
|
|
set_property -name "synth_checkpoint_mode" -value "Singular" -objects $file_obj
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-# Set 'sources_1' fileset object
|
|
|
-set obj [get_filesets sources_1]
|
|
|
-# Import local files from the original project
|
|
|
-set files [list \
|
|
|
- [file normalize "${origin_dir}/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci" ]\
|
|
|
-]
|
|
|
-set imported_files [import_files -fileset sources_1 $files]
|
|
|
-
|
|
|
-# Set 'sources_1' fileset file properties for remote files
|
|
|
-# None
|
|
|
-
|
|
|
-# Set 'sources_1' fileset file properties for local files
|
|
|
set file "ClkPllSysTo125/ClkPllSysTo125.xci"
|
|
|
set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
|
|
|
set_property -name "generate_files_for_reference" -value "0" -objects $file_obj
|
|
|
@@ -485,6 +460,12 @@ if { ![get_property "is_locked" $file_obj] } {
|
|
|
}
|
|
|
|
|
|
|
|
|
+# Set 'sources_1' fileset properties
|
|
|
+set obj [get_filesets sources_1]
|
|
|
+set_property -name "dataflow_viewer_settings" -value "min_width=16" -objects $obj
|
|
|
+set_property -name "top" -value "PciVnaEmulTop" -objects $obj
|
|
|
+set_property -name "top_auto_set" -value "0" -objects $obj
|
|
|
+
|
|
|
# Create 'constrs_1' fileset (if not found)
|
|
|
if {[string equal [get_filesets -quiet constrs_1] ""]} {
|
|
|
create_fileset -constrset constrs_1
|
|
|
@@ -521,23 +502,7 @@ set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
|
|
|
|
|
|
# Set 'utils_1' fileset object
|
|
|
set obj [get_filesets utils_1]
|
|
|
-# Import local files from the original project
|
|
|
-set files [list \
|
|
|
- [file normalize "${origin_dir}/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp" ]\
|
|
|
-]
|
|
|
-set imported_files ""
|
|
|
-foreach f $files {
|
|
|
- lappend imported_files [import_files -fileset utils_1 $f]
|
|
|
-}
|
|
|
-
|
|
|
-# Set 'utils_1' fileset file properties for remote files
|
|
|
-# None
|
|
|
-
|
|
|
-# Set 'utils_1' fileset file properties for local files
|
|
|
-set file "synth_1/PciVnaEmulTop.dcp"
|
|
|
-set file_obj [get_files -of_objects [get_filesets utils_1] [list "*$file"]]
|
|
|
-set_property -name "netlist_only" -value "0" -objects $file_obj
|
|
|
-
|
|
|
+# Empty (no sources present)
|
|
|
|
|
|
# Set 'utils_1' fileset properties
|
|
|
set obj [get_filesets utils_1]
|
|
|
@@ -569,11 +534,8 @@ if { $obj != "" } {
|
|
|
}
|
|
|
set obj [get_runs synth_1]
|
|
|
set_property -name "part" -value "xc7a100tfgg484-2" -objects $obj
|
|
|
-set_property -name "incremental_checkpoint" -value "$proj_dir/${_xil_proj_name_}.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp" -objects $obj
|
|
|
set_property -name "auto_incremental_checkpoint" -value "1" -objects $obj
|
|
|
set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
|
|
|
-set_property -name "steps.synth_design.args.flatten_hierarchy" -value "none" -objects $obj
|
|
|
-set_property -name "steps.synth_design.args.gated_clock_conversion" -value "auto" -objects $obj
|
|
|
|
|
|
# set the current synth run
|
|
|
current_run -synthesis [get_runs synth_1]
|
|
|
@@ -858,3 +820,129 @@ move_dashboard_gadget -name {drc_1} -row 2 -col 0
|
|
|
move_dashboard_gadget -name {timing_1} -row 0 -col 1
|
|
|
move_dashboard_gadget -name {utilization_2} -row 1 -col 1
|
|
|
move_dashboard_gadget -name {methodology_1} -row 2 -col 1
|
|
|
+
|
|
|
+
|
|
|
+##################################################################
|
|
|
+# CHECK VIVADO VERSION
|
|
|
+##################################################################
|
|
|
+
|
|
|
+set scripts_vivado_version 2024.1
|
|
|
+set current_vivado_version [version -short]
|
|
|
+
|
|
|
+if { [string first $scripts_vivado_version $current_vivado_version] == -1 } {
|
|
|
+ catch {common::send_msg_id "IPS_TCL-100" "ERROR" "This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Please run the script in Vivado <$scripts_vivado_version> then open the design in Vivado <$current_vivado_version>. Upgrade the design by running \"Tools => Report => Report IP Status...\", then run write_ip_tcl to create an updated script."}
|
|
|
+ return 1
|
|
|
+}
|
|
|
+
|
|
|
+##################################################################
|
|
|
+# START
|
|
|
+##################################################################
|
|
|
+
|
|
|
+# To test this script, run the following commands from Vivado Tcl console:
|
|
|
+# source recreateIp.tcl
|
|
|
+# If there is no project opened, this script will create a
|
|
|
+# project, but make sure you do not have an existing project
|
|
|
+# in the current working folder.
|
|
|
+
|
|
|
+set list_projs [get_projects -quiet]
|
|
|
+if { $list_projs eq "" } {
|
|
|
+ create_project VNA_PCIE_PROJ VNA_PCIE_PROJ -part xc7a100tfgg484-2
|
|
|
+ set_property target_language Verilog [current_project]
|
|
|
+ set_property simulator_language Verilog [current_project]
|
|
|
+}
|
|
|
+
|
|
|
+##################################################################
|
|
|
+# CHECK IPs
|
|
|
+##################################################################
|
|
|
+
|
|
|
+set bCheckIPs 1
|
|
|
+set bCheckIPsPassed 1
|
|
|
+if { $bCheckIPs == 1 } {
|
|
|
+ set list_check_ips { xilinx.com:ip:clk_wiz:6.0 xilinx.com:ip:pcie_7x:3.3 }
|
|
|
+ set list_ips_missing ""
|
|
|
+ common::send_msg_id "IPS_TCL-1001" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
|
|
|
+
|
|
|
+ foreach ip_vlnv $list_check_ips {
|
|
|
+ set ip_obj [get_ipdefs -all $ip_vlnv]
|
|
|
+ if { $ip_obj eq "" } {
|
|
|
+ lappend list_ips_missing $ip_vlnv
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if { $list_ips_missing ne "" } {
|
|
|
+ catch {common::send_msg_id "IPS_TCL-105" "ERROR" "The following IPs are not found in the IP Catalog:\n $list_ips_missing\n\nResolution: Please add the repository containing the IP(s) to the project." }
|
|
|
+ set bCheckIPsPassed 0
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+if { $bCheckIPsPassed != 1 } {
|
|
|
+ common::send_msg_id "IPS_TCL-102" "WARNING" "Will not continue with creation of design due to the error(s) above."
|
|
|
+ return 1
|
|
|
+}
|
|
|
+
|
|
|
+##################################################################
|
|
|
+# CREATE IP ClkPllSysTo125
|
|
|
+##################################################################
|
|
|
+
|
|
|
+set ClkPllSysTo125 [create_ip -name clk_wiz -vendor xilinx.com -library ip -version 6.0 -module_name ClkPllSysTo125]
|
|
|
+
|
|
|
+# User Parameters
|
|
|
+set_property -dict [list \
|
|
|
+ CONFIG.CLKOUT1_DRIVES {BUFG} \
|
|
|
+ CONFIG.CLKOUT1_JITTER {203.457} \
|
|
|
+ CONFIG.CLKOUT1_PHASE_ERROR {155.540} \
|
|
|
+ CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {50.000} \
|
|
|
+ CONFIG.CLKOUT2_DRIVES {BUFG} \
|
|
|
+ CONFIG.CLKOUT3_DRIVES {BUFG} \
|
|
|
+ CONFIG.CLKOUT4_DRIVES {BUFG} \
|
|
|
+ CONFIG.CLKOUT5_DRIVES {BUFG} \
|
|
|
+ CONFIG.CLKOUT6_DRIVES {BUFG} \
|
|
|
+ CONFIG.CLKOUT7_DRIVES {BUFG} \
|
|
|
+ CONFIG.MMCM_BANDWIDTH {OPTIMIZED} \
|
|
|
+ CONFIG.MMCM_CLKFBOUT_MULT_F {17} \
|
|
|
+ CONFIG.MMCM_CLKOUT0_DIVIDE_F {17} \
|
|
|
+ CONFIG.MMCM_COMPENSATION {ZHOLD} \
|
|
|
+ CONFIG.MMCM_DIVCLK_DIVIDE {2} \
|
|
|
+ CONFIG.PRIMITIVE {PLL} \
|
|
|
+ CONFIG.PRIM_SOURCE {Single_ended_clock_capable_pin} \
|
|
|
+ CONFIG.SECONDARY_SOURCE {Single_ended_clock_capable_pin} \
|
|
|
+ CONFIG.USE_LOCKED {false} \
|
|
|
+ CONFIG.USE_PHASE_ALIGNMENT {false} \
|
|
|
+ CONFIG.USE_RESET {false} \
|
|
|
+] [get_ips ClkPllSysTo125]
|
|
|
+
|
|
|
+# Runtime Parameters
|
|
|
+set_property -dict {
|
|
|
+ GENERATE_SYNTH_CHECKPOINT {1}
|
|
|
+} $ClkPllSysTo125
|
|
|
+
|
|
|
+##################################################################
|
|
|
+
|
|
|
+##################################################################
|
|
|
+# CREATE IP pcie1234
|
|
|
+##################################################################
|
|
|
+
|
|
|
+set pcie1234 [create_ip -name pcie_7x -vendor xilinx.com -library ip -version 3.3 -module_name pcie1234]
|
|
|
+
|
|
|
+# User Parameters
|
|
|
+set_property -dict [list \
|
|
|
+ CONFIG.Device_ID {7012} \
|
|
|
+ CONFIG.Interface_Width {64_bit} \
|
|
|
+ CONFIG.Link_Speed {2.5_GT/s} \
|
|
|
+ CONFIG.Max_Payload_Size {512_bytes} \
|
|
|
+ CONFIG.Maximum_Link_Width {X2} \
|
|
|
+ CONFIG.PCIe_Blk_Locn {X0Y0} \
|
|
|
+ CONFIG.Trans_Buf_Pipeline {None} \
|
|
|
+ CONFIG.User_Clk_Freq {125} \
|
|
|
+ CONFIG.en_ext_pipe_interface {false} \
|
|
|
+ CONFIG.pipe_mode_sim {Enable_Pipe_Simulation} \
|
|
|
+ CONFIG.pipe_sim {true} \
|
|
|
+] [get_ips pcie1234]
|
|
|
+
|
|
|
+# Runtime Parameters
|
|
|
+set_property -dict {
|
|
|
+ GENERATE_SYNTH_CHECKPOINT {1}
|
|
|
+} $pcie1234
|
|
|
+
|
|
|
+##################################################################
|
|
|
+
|