recreate_vna_pcie.tcl 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. #*****************************************************************************************
  2. # Vivado (TM) v2024.1 (64-bit)
  3. #
  4. # recreate_vna_pcie.tcl: Tcl script for re-creating project 'VNA_PCIE_PROJ'
  5. #
  6. # Generated by Vivado on Tue Oct 08 17:41:06 +0700 2024
  7. # IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
  8. #
  9. # This file contains the Vivado Tcl commands for re-creating the project to the state*
  10. # when this script was generated. In order to re-create the project, please source this
  11. # file in the Vivado Tcl Shell.
  12. #
  13. # * Note that the runs in the created project will be configured the same way as the
  14. # original project, however they will not be launched automatically. To regenerate the
  15. # run results please launch the synthesis/implementation runs as needed.
  16. #
  17. #*****************************************************************************************
  18. # NOTE: In order to use this script for source control purposes, please make sure that the
  19. # following files are added to the source control system:-
  20. #
  21. # 1. This project restoration tcl script (recreate_vna_pcie.tcl) that was generated.
  22. #
  23. # 2. The following source(s) files that were local or imported into the original project.
  24. # (Please see the '$orig_proj_dir' and '$origin_dir' variable setting below at the start of the script)
  25. #
  26. # "c:/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci"
  27. # "c:/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci"
  28. # "C:/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp"
  29. #
  30. # 3. The following remote source files that were added to the original project:-
  31. #
  32. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/ActivePortSelector.v"
  33. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/AdcCalibration.v"
  34. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/ComplPrng.v"
  35. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/CordicNco.v"
  36. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/CordicRotation.v"
  37. # "C:/VNA_PCIE_REPO/src/src/DitherGen/DitherGenv2.v"
  38. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/DspPipeline.v"
  39. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/EP_MEM.v"
  40. # "C:/VNA_PCIE_REPO/src/src/Math/FpCustomMultiplier.v"
  41. # "C:/VNA_PCIE_REPO/src/src/GainOverloadControl/GainControl.v"
  42. # "C:/VNA_PCIE_REPO/src/src/GainOverloadControl/GainControlWrapper.v"
  43. # "C:/VNA_PCIE_REPO/src/src/InitRst/InitRst.v"
  44. # "C:/VNA_PCIE_REPO/src/src/Top/IntermediateLogic.v"
  45. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/InternalDsp.v"
  46. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/MeasCtrlModule.v"
  47. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/MeasStartEventGen.v"
  48. # "C:/VNA_PCIE_REPO/src/src/Math/MultModule.v"
  49. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/Mux.v"
  50. # "C:/VNA_PCIE_REPO/src/src/Math/MyIntToFp.v"
  51. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/NcoRstGen.v"
  52. # "C:/VNA_PCIE_REPO/src/src/GainOverloadControl/OverloadDetect.v"
  53. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/PGenRstGenerator.v"
  54. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/PIO.v"
  55. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/PIO_EP.v"
  56. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/PIO_EP_MEM_ACCESS.v"
  57. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/PIO_RX_ENGINE.v"
  58. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/PIO_TO_CTRL.v"
  59. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/PIO_TX_ENGINE.v"
  60. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/PulseGen.v"
  61. # "C:/VNA_PCIE_REPO/src/src/RegMap/RegMap.v"
  62. # "C:/VNA_PCIE_REPO/src/src/Top/S5443Top.v"
  63. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/SampleStrobeGenRstDemux.v"
  64. # "C:/VNA_PCIE_REPO/src/src/Math/SimpleMult.v"
  65. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/StartAfterGainSel.v"
  66. # "C:/VNA_PCIE_REPO/src/src/Math/SumAcc.v"
  67. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/TrigInt2Mux.v"
  68. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/WinParameters.v"
  69. # "C:/VNA_PCIE_REPO/src/src/InternalDsp/Win_calc.v"
  70. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_pipe_clock.v"
  71. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_support.v"
  72. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pcie_app_7x.v"
  73. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/xilinx_pcie_2_1_ep_7x.v"
  74. # "C:/VNA_PCIE_REPO/src/src/Top/PciVnaEmulTop.v"
  75. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/AdcSync.v"
  76. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/delay_controller_wrap.v"
  77. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/n_x_serdes_1_to_7_mmcm_idelay_sdr.v"
  78. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/serdes_1_to_7_mmcm_idelay_sdr.v"
  79. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/serdes_1_to_7_slave_idelay_sdr.v"
  80. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/top5x2_7to1_sdr_rx.v"
  81. # "C:/VNA_PCIE_REPO/src/src/AdcDataRx/AdcDataInterface.v"
  82. # "C:/VNA_PCIE_REPO/src/src/ClkGen/Clk200Gen.v"
  83. # "C:/VNA_PCIE_REPO/src/src/ExtDspInterface/DspInterface.v"
  84. # "C:/VNA_PCIE_REPO/src/src/ExtDspInterface/DspPpiOut.v"
  85. # "C:/VNA_PCIE_REPO/src/src/MeasDataFifo/FifoController.v"
  86. # "C:/VNA_PCIE_REPO/src/src/Top/IntermediateLogicTb.v"
  87. # "C:/VNA_PCIE_REPO/src/src/MeasDataFifo/MeasDataFifoWrapper.v"
  88. # "C:/VNA_PCIE_REPO/src/src/PulseMeas/PulseGenNew.v"
  89. # "C:/VNA_PCIE_REPO/src/src/Sim/S5443TopPulseProfileTb.v"
  90. # "C:/VNA_PCIE_REPO/src/src/Sim/S5443TopSimpleMeasTb.v"
  91. # "C:/VNA_PCIE_REPO/src/src/ExtDspInterface/SlaveSpi.v"
  92. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/board_common.vh"
  93. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pipe_interconnect.vh"
  94. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/board.v"
  95. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_cfg.v"
  96. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_expect_tasks.vh"
  97. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_com.v"
  98. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_pl.v"
  99. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_rx.v"
  100. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/tests.vh"
  101. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/sample_tests1.vh"
  102. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_tx.v"
  103. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_gt_top_pipe_mode.v"
  104. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pcie_2_1_rport_7x.v"
  105. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/pcie_axi_trn_bridge.v"
  106. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/sys_clk_gen.v"
  107. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/sys_clk_gen_ds.v"
  108. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/xil_sig2pipe.v"
  109. # "C:/VNA_PCIE_REPO/src/src/PCIeImports/xilinx_pcie_2_1_rport_7x.v"
  110. # "C:/VNA_PCIE_REPO/src/consrtrs/xilinx_pcie_7x_ep_x1g1.xdc"
  111. #
  112. #*****************************************************************************************
  113. # Check file required for this script exists
  114. proc checkRequiredFiles { origin_dir} {
  115. set status true
  116. set files [list \
  117. "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci"]"\
  118. "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci"]"\
  119. "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp"]"\
  120. ]
  121. foreach ifile $files {
  122. if { ![file isfile $ifile] } {
  123. puts " Could not find local file $ifile "
  124. set status false
  125. }
  126. }
  127. set files [list \
  128. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/ActivePortSelector.v"]"\
  129. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/AdcCalibration.v"]"\
  130. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/ComplPrng.v"]"\
  131. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/CordicNco.v"]"\
  132. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/CordicRotation.v"]"\
  133. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/DitherGen/DitherGenv2.v"]"\
  134. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/DspPipeline.v"]"\
  135. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/EP_MEM.v"]"\
  136. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Math/FpCustomMultiplier.v"]"\
  137. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/GainOverloadControl/GainControl.v"]"\
  138. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/GainOverloadControl/GainControlWrapper.v"]"\
  139. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InitRst/InitRst.v"]"\
  140. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Top/IntermediateLogic.v"]"\
  141. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/InternalDsp.v"]"\
  142. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/MeasCtrlModule.v"]"\
  143. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/MeasStartEventGen.v"]"\
  144. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Math/MultModule.v"]"\
  145. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/Mux.v"]"\
  146. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Math/MyIntToFp.v"]"\
  147. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/NcoRstGen.v"]"\
  148. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/GainOverloadControl/OverloadDetect.v"]"\
  149. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/PGenRstGenerator.v"]"\
  150. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/PIO.v"]"\
  151. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/PIO_EP.v"]"\
  152. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/PIO_EP_MEM_ACCESS.v"]"\
  153. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/PIO_RX_ENGINE.v"]"\
  154. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/PIO_TO_CTRL.v"]"\
  155. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/PIO_TX_ENGINE.v"]"\
  156. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/PulseGen.v"]"\
  157. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/RegMap/RegMap.v"]"\
  158. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Top/S5443Top.v"]"\
  159. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/SampleStrobeGenRstDemux.v"]"\
  160. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Math/SimpleMult.v"]"\
  161. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/StartAfterGainSel.v"]"\
  162. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Math/SumAcc.v"]"\
  163. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/TrigInt2Mux.v"]"\
  164. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/WinParameters.v"]"\
  165. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/InternalDsp/Win_calc.v"]"\
  166. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_pipe_clock.v"]"\
  167. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_support.v"]"\
  168. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pcie_app_7x.v"]"\
  169. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/xilinx_pcie_2_1_ep_7x.v"]"\
  170. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Top/PciVnaEmulTop.v"]"\
  171. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/AdcSync.v"]"\
  172. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/delay_controller_wrap.v"]"\
  173. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/n_x_serdes_1_to_7_mmcm_idelay_sdr.v"]"\
  174. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/serdes_1_to_7_mmcm_idelay_sdr.v"]"\
  175. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/serdes_1_to_7_slave_idelay_sdr.v"]"\
  176. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/top5x2_7to1_sdr_rx.v"]"\
  177. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/AdcDataRx/AdcDataInterface.v"]"\
  178. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/ClkGen/Clk200Gen.v"]"\
  179. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/ExtDspInterface/DspInterface.v"]"\
  180. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/ExtDspInterface/DspPpiOut.v"]"\
  181. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/MeasDataFifo/FifoController.v"]"\
  182. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Top/IntermediateLogicTb.v"]"\
  183. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/MeasDataFifo/MeasDataFifoWrapper.v"]"\
  184. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PulseMeas/PulseGenNew.v"]"\
  185. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Sim/S5443TopPulseProfileTb.v"]"\
  186. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/Sim/S5443TopSimpleMeasTb.v"]"\
  187. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/ExtDspInterface/SlaveSpi.v"]"\
  188. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/board_common.vh"]"\
  189. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pipe_interconnect.vh"]"\
  190. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/board.v"]"\
  191. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_cfg.v"]"\
  192. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_expect_tasks.vh"]"\
  193. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_com.v"]"\
  194. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_pl.v"]"\
  195. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_rx.v"]"\
  196. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/tests.vh"]"\
  197. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/sample_tests1.vh"]"\
  198. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_tx.v"]"\
  199. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_gt_top_pipe_mode.v"]"\
  200. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pcie_2_1_rport_7x.v"]"\
  201. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pcie_axi_trn_bridge.v"]"\
  202. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/sys_clk_gen.v"]"\
  203. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/sys_clk_gen_ds.v"]"\
  204. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/xil_sig2pipe.v"]"\
  205. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/xilinx_pcie_2_1_rport_7x.v"]"\
  206. "[file normalize "$origin_dir/VNA_PCIE_REPO/src/consrtrs/xilinx_pcie_7x_ep_x1g1.xdc"]"\
  207. ]
  208. foreach ifile $files {
  209. if { ![file isfile $ifile] } {
  210. puts " Could not find remote file $ifile "
  211. set status false
  212. }
  213. }
  214. return $status
  215. }
  216. # Set the reference directory for source file relative paths (by default the value is script directory path)
  217. set origin_dir "C:/"
  218. # Use origin directory path location variable, if specified in the tcl shell
  219. if { [info exists ::origin_dir_loc] } {
  220. set origin_dir $::origin_dir_loc
  221. }
  222. # Set the project name
  223. set _xil_proj_name_ "VNA_PCIE_PROJ"
  224. # Use project name variable, if specified in the tcl shell
  225. if { [info exists ::user_project_name] } {
  226. set _xil_proj_name_ $::user_project_name
  227. }
  228. variable script_file
  229. set script_file "recreate_vna_pcie.tcl"
  230. # Help information for this script
  231. proc print_help {} {
  232. variable script_file
  233. puts "\nDescription:"
  234. puts "Recreate a Vivado project from this script. The created project will be"
  235. puts "functionally equivalent to the original project for which this script was"
  236. puts "generated. The script contains commands for creating a project, filesets,"
  237. puts "runs, adding/importing sources and setting properties on various objects.\n"
  238. puts "Syntax:"
  239. puts "$script_file"
  240. puts "$script_file -tclargs \[--origin_dir <path>\]"
  241. puts "$script_file -tclargs \[--project_name <name>\]"
  242. puts "$script_file -tclargs \[--help\]\n"
  243. puts "Usage:"
  244. puts "Name Description"
  245. puts "-------------------------------------------------------------------------"
  246. puts "\[--origin_dir <path>\] Determine source file paths wrt this path. Default"
  247. puts " origin_dir path value is \".\", otherwise, the value"
  248. puts " that was set with the \"-paths_relative_to\" switch"
  249. puts " when this script was generated.\n"
  250. puts "\[--project_name <name>\] Create project with the specified name. Default"
  251. puts " name is the name of the project from where this"
  252. puts " script was generated.\n"
  253. puts "\[--help\] Print help information for this script"
  254. puts "-------------------------------------------------------------------------\n"
  255. exit 0
  256. }
  257. if { $::argc > 0 } {
  258. for {set i 0} {$i < $::argc} {incr i} {
  259. set option [string trim [lindex $::argv $i]]
  260. switch -regexp -- $option {
  261. "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] }
  262. "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] }
  263. "--help" { print_help }
  264. default {
  265. if { [regexp {^-} $option] } {
  266. puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n"
  267. return 1
  268. }
  269. }
  270. }
  271. }
  272. }
  273. # Set the directory path for the original project from where this script was exported
  274. set orig_proj_dir "[file normalize "$origin_dir/Projects/VNA_PCIE_PROJ"]"
  275. # Check for paths and files needed for project creation
  276. set validate_required 0
  277. if { $validate_required } {
  278. if { [checkRequiredFiles $origin_dir] } {
  279. puts "Tcl file $script_file is valid. All files required for project creation is accesable. "
  280. } else {
  281. puts "Tcl file $script_file is not valid. Not all files required for project creation is accesable. "
  282. return
  283. }
  284. }
  285. # Create project
  286. create_project ${_xil_proj_name_} ./${_xil_proj_name_} -part xc7a100tfgg484-2
  287. # Set the directory path for the new project
  288. set proj_dir [get_property directory [current_project]]
  289. # Reconstruct message rules
  290. # None
  291. # Set project properties
  292. set obj [current_project]
  293. set_property -name "default_lib" -value "xil_defaultlib" -objects $obj
  294. set_property -name "enable_resource_estimation" -value "0" -objects $obj
  295. set_property -name "enable_vhdl_2008" -value "1" -objects $obj
  296. set_property -name "ip_cache_permissions" -value "read write" -objects $obj
  297. set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj
  298. set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj
  299. set_property -name "part" -value "xc7a100tfgg484-2" -objects $obj
  300. set_property -name "revised_directory_structure" -value "1" -objects $obj
  301. set_property -name "sim.central_dir" -value "$proj_dir/${_xil_proj_name_}.ip_user_files" -objects $obj
  302. set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj
  303. set_property -name "sim_compile_state" -value "1" -objects $obj
  304. set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj
  305. # Create 'sources_1' fileset (if not found)
  306. if {[string equal [get_filesets -quiet sources_1] ""]} {
  307. create_fileset -srcset sources_1
  308. }
  309. # Set 'sources_1' fileset object
  310. set obj [get_filesets sources_1]
  311. set files [list \
  312. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/ActivePortSelector.v"] \
  313. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/AdcCalibration.v"] \
  314. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/ComplPrng.v"] \
  315. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/CordicNco.v"] \
  316. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/CordicRotation.v"] \
  317. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/DitherGen/DitherGenv2.v"] \
  318. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/DspPipeline.v"] \
  319. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/EP_MEM.v"] \
  320. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Math/FpCustomMultiplier.v"] \
  321. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/GainOverloadControl/GainControl.v"] \
  322. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/GainOverloadControl/GainControlWrapper.v"] \
  323. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InitRst/InitRst.v"] \
  324. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Top/IntermediateLogic.v"] \
  325. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/InternalDsp.v"] \
  326. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/MeasCtrlModule.v"] \
  327. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/MeasStartEventGen.v"] \
  328. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Math/MultModule.v"] \
  329. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/Mux.v"] \
  330. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Math/MyIntToFp.v"] \
  331. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/NcoRstGen.v"] \
  332. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/GainOverloadControl/OverloadDetect.v"] \
  333. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/PGenRstGenerator.v"] \
  334. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/PIO.v"] \
  335. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/PIO_EP.v"] \
  336. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/PIO_EP_MEM_ACCESS.v"] \
  337. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/PIO_RX_ENGINE.v"] \
  338. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/PIO_TO_CTRL.v"] \
  339. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/PIO_TX_ENGINE.v"] \
  340. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/PulseGen.v"] \
  341. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/RegMap/RegMap.v"] \
  342. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Top/S5443Top.v"] \
  343. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/SampleStrobeGenRstDemux.v"] \
  344. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Math/SimpleMult.v"] \
  345. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/StartAfterGainSel.v"] \
  346. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Math/SumAcc.v"] \
  347. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/TrigInt2Mux.v"] \
  348. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/WinParameters.v"] \
  349. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/InternalDsp/Win_calc.v"] \
  350. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_pipe_clock.v"] \
  351. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_support.v"] \
  352. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pcie_app_7x.v"] \
  353. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/xilinx_pcie_2_1_ep_7x.v"] \
  354. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Top/PciVnaEmulTop.v"] \
  355. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/AdcSync.v"] \
  356. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/delay_controller_wrap.v"] \
  357. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/n_x_serdes_1_to_7_mmcm_idelay_sdr.v"] \
  358. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/serdes_1_to_7_mmcm_idelay_sdr.v"] \
  359. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/serdes_1_to_7_slave_idelay_sdr.v"] \
  360. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/top5x2_7to1_sdr_rx.v"] \
  361. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/AdcDataRx/AdcDataInterface.v"] \
  362. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/ClkGen/Clk200Gen.v"] \
  363. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/ExtDspInterface/DspInterface.v"] \
  364. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/ExtDspInterface/DspPpiOut.v"] \
  365. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/MeasDataFifo/FifoController.v"] \
  366. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Top/IntermediateLogicTb.v"] \
  367. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/MeasDataFifo/MeasDataFifoWrapper.v"] \
  368. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PulseMeas/PulseGenNew.v"] \
  369. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Sim/S5443TopPulseProfileTb.v"] \
  370. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/Sim/S5443TopSimpleMeasTb.v"] \
  371. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/ExtDspInterface/SlaveSpi.v"] \
  372. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/board_common.vh"] \
  373. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pipe_interconnect.vh"] \
  374. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/board.v"] \
  375. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_cfg.v"] \
  376. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_expect_tasks.vh"] \
  377. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_com.v"] \
  378. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_pl.v"] \
  379. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_rx.v"] \
  380. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/tests.vh"] \
  381. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/sample_tests1.vh"] \
  382. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_usrapp_tx.v"] \
  383. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pcie1234_gt_top_pipe_mode.v"] \
  384. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pcie_2_1_rport_7x.v"] \
  385. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/pcie_axi_trn_bridge.v"] \
  386. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/sys_clk_gen.v"] \
  387. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/sys_clk_gen_ds.v"] \
  388. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/xil_sig2pipe.v"] \
  389. [file normalize "${origin_dir}/VNA_PCIE_REPO/src/src/PCIeImports/xilinx_pcie_2_1_rport_7x.v"] \
  390. ]
  391. add_files -norecurse -fileset $obj $files
  392. # Set 'sources_1' fileset file properties for remote files
  393. set file "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/board_common.vh"
  394. set file [file normalize $file]
  395. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  396. set_property -name "file_type" -value "Verilog Header" -objects $file_obj
  397. set file "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pipe_interconnect.vh"
  398. set file [file normalize $file]
  399. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  400. set_property -name "file_type" -value "Verilog Header" -objects $file_obj
  401. set file "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/pci_exp_expect_tasks.vh"
  402. set file [file normalize $file]
  403. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  404. set_property -name "file_type" -value "Verilog Header" -objects $file_obj
  405. set file "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/tests.vh"
  406. set file [file normalize $file]
  407. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  408. set_property -name "file_type" -value "Verilog Header" -objects $file_obj
  409. set file "$origin_dir/VNA_PCIE_REPO/src/src/PCIeImports/sample_tests1.vh"
  410. set file [file normalize $file]
  411. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  412. set_property -name "file_type" -value "Verilog Header" -objects $file_obj
  413. # Set 'sources_1' fileset file properties for local files
  414. # None
  415. # Set 'sources_1' fileset properties
  416. set obj [get_filesets sources_1]
  417. set_property -name "dataflow_viewer_settings" -value "min_width=16" -objects $obj
  418. set_property -name "top" -value "PciVnaEmulTop" -objects $obj
  419. set_property -name "top_auto_set" -value "0" -objects $obj
  420. # Set 'sources_1' fileset object
  421. set obj [get_filesets sources_1]
  422. # Import local files from the original project
  423. set files [list \
  424. [file normalize "${origin_dir}/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/pcie1234/pcie1234.xci" ]\
  425. ]
  426. set imported_files [import_files -fileset sources_1 $files]
  427. # Set 'sources_1' fileset file properties for remote files
  428. # None
  429. # Set 'sources_1' fileset file properties for local files
  430. set file "pcie1234/pcie1234.xci"
  431. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  432. set_property -name "generate_files_for_reference" -value "0" -objects $file_obj
  433. set_property -name "registered_with_manager" -value "1" -objects $file_obj
  434. if { ![get_property "is_locked" $file_obj] } {
  435. set_property -name "synth_checkpoint_mode" -value "Singular" -objects $file_obj
  436. }
  437. # Set 'sources_1' fileset object
  438. set obj [get_filesets sources_1]
  439. # Import local files from the original project
  440. set files [list \
  441. [file normalize "${origin_dir}/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/sources_1/ip/ClkPllSysTo125/ClkPllSysTo125.xci" ]\
  442. ]
  443. set imported_files [import_files -fileset sources_1 $files]
  444. # Set 'sources_1' fileset file properties for remote files
  445. # None
  446. # Set 'sources_1' fileset file properties for local files
  447. set file "ClkPllSysTo125/ClkPllSysTo125.xci"
  448. set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]]
  449. set_property -name "generate_files_for_reference" -value "0" -objects $file_obj
  450. set_property -name "registered_with_manager" -value "1" -objects $file_obj
  451. if { ![get_property "is_locked" $file_obj] } {
  452. set_property -name "synth_checkpoint_mode" -value "Singular" -objects $file_obj
  453. }
  454. # Create 'constrs_1' fileset (if not found)
  455. if {[string equal [get_filesets -quiet constrs_1] ""]} {
  456. create_fileset -constrset constrs_1
  457. }
  458. # Set 'constrs_1' fileset object
  459. set obj [get_filesets constrs_1]
  460. # Add/Import constrs file and set constrs file properties
  461. set file "[file normalize "$origin_dir/VNA_PCIE_REPO/src/consrtrs/xilinx_pcie_7x_ep_x1g1.xdc"]"
  462. set file_added [add_files -norecurse -fileset $obj [list $file]]
  463. set file "$origin_dir/VNA_PCIE_REPO/src/consrtrs/xilinx_pcie_7x_ep_x1g1.xdc"
  464. set file [file normalize $file]
  465. set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]]
  466. set_property -name "file_type" -value "XDC" -objects $file_obj
  467. # Set 'constrs_1' fileset properties
  468. set obj [get_filesets constrs_1]
  469. set_property -name "target_part" -value "xc7a100tfgg484-2" -objects $obj
  470. # Create 'sim_1' fileset (if not found)
  471. if {[string equal [get_filesets -quiet sim_1] ""]} {
  472. create_fileset -simset sim_1
  473. }
  474. # Set 'sim_1' fileset object
  475. set obj [get_filesets sim_1]
  476. # Empty (no sources present)
  477. # Set 'sim_1' fileset properties
  478. set obj [get_filesets sim_1]
  479. set_property -name "top" -value "AdcDataInterface" -objects $obj
  480. set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
  481. # Set 'utils_1' fileset object
  482. set obj [get_filesets utils_1]
  483. # Import local files from the original project
  484. set files [list \
  485. [file normalize "${origin_dir}/Projects/VNA_PCIE_PROJ/VNA_PCIE_PROJ.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp" ]\
  486. ]
  487. set imported_files ""
  488. foreach f $files {
  489. lappend imported_files [import_files -fileset utils_1 $f]
  490. }
  491. # Set 'utils_1' fileset file properties for remote files
  492. # None
  493. # Set 'utils_1' fileset file properties for local files
  494. set file "synth_1/PciVnaEmulTop.dcp"
  495. set file_obj [get_files -of_objects [get_filesets utils_1] [list "*$file"]]
  496. set_property -name "netlist_only" -value "0" -objects $file_obj
  497. # Set 'utils_1' fileset properties
  498. set obj [get_filesets utils_1]
  499. set idrFlowPropertiesConstraints ""
  500. catch {
  501. set idrFlowPropertiesConstraints [get_param runs.disableIDRFlowPropertyConstraints]
  502. set_param runs.disableIDRFlowPropertyConstraints 1
  503. }
  504. # Create 'synth_1' run (if not found)
  505. if {[string equal [get_runs -quiet synth_1] ""]} {
  506. create_run -name synth_1 -part xc7a100tfgg484-2 -flow {Vivado Synthesis 2024} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1
  507. } else {
  508. set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1]
  509. set_property flow "Vivado Synthesis 2024" [get_runs synth_1]
  510. }
  511. set obj [get_runs synth_1]
  512. set_property set_report_strategy_name 1 $obj
  513. set_property report_strategy {Vivado Synthesis Default Reports} $obj
  514. set_property set_report_strategy_name 0 $obj
  515. # Create 'synth_1_synth_report_utilization_0' report (if not found)
  516. if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } {
  517. create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1
  518. }
  519. set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0]
  520. if { $obj != "" } {
  521. }
  522. set obj [get_runs synth_1]
  523. set_property -name "part" -value "xc7a100tfgg484-2" -objects $obj
  524. set_property -name "incremental_checkpoint" -value "$proj_dir/${_xil_proj_name_}.srcs/utils_1/imports/synth_1/PciVnaEmulTop.dcp" -objects $obj
  525. set_property -name "auto_incremental_checkpoint" -value "1" -objects $obj
  526. set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
  527. set_property -name "steps.synth_design.args.flatten_hierarchy" -value "none" -objects $obj
  528. set_property -name "steps.synth_design.args.gated_clock_conversion" -value "auto" -objects $obj
  529. # set the current synth run
  530. current_run -synthesis [get_runs synth_1]
  531. # Create 'impl_1' run (if not found)
  532. if {[string equal [get_runs -quiet impl_1] ""]} {
  533. create_run -name impl_1 -part xc7a100tfgg484-2 -flow {Vivado Implementation 2024} -strategy "Vivado Implementation Defaults" -report_strategy {No Reports} -constrset constrs_1 -parent_run synth_1
  534. } else {
  535. set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
  536. set_property flow "Vivado Implementation 2024" [get_runs impl_1]
  537. }
  538. set obj [get_runs impl_1]
  539. set_property set_report_strategy_name 1 $obj
  540. set_property report_strategy {Vivado Implementation Default Reports} $obj
  541. set_property set_report_strategy_name 0 $obj
  542. # Create 'impl_1_init_report_timing_summary_0' report (if not found)
  543. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } {
  544. create_report_config -report_name impl_1_init_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps init_design -runs impl_1
  545. }
  546. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0]
  547. if { $obj != "" } {
  548. set_property -name "is_enabled" -value "0" -objects $obj
  549. set_property -name "options.max_paths" -value "10" -objects $obj
  550. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  551. }
  552. # Create 'impl_1_opt_report_drc_0' report (if not found)
  553. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } {
  554. create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1
  555. }
  556. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0]
  557. if { $obj != "" } {
  558. }
  559. # Create 'impl_1_opt_report_timing_summary_0' report (if not found)
  560. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } {
  561. create_report_config -report_name impl_1_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps opt_design -runs impl_1
  562. }
  563. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0]
  564. if { $obj != "" } {
  565. set_property -name "is_enabled" -value "0" -objects $obj
  566. set_property -name "options.max_paths" -value "10" -objects $obj
  567. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  568. }
  569. # Create 'impl_1_power_opt_report_timing_summary_0' report (if not found)
  570. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } {
  571. create_report_config -report_name impl_1_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps power_opt_design -runs impl_1
  572. }
  573. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0]
  574. if { $obj != "" } {
  575. set_property -name "is_enabled" -value "0" -objects $obj
  576. set_property -name "options.max_paths" -value "10" -objects $obj
  577. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  578. }
  579. # Create 'impl_1_place_report_io_0' report (if not found)
  580. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } {
  581. create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1
  582. }
  583. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0]
  584. if { $obj != "" } {
  585. }
  586. # Create 'impl_1_place_report_utilization_0' report (if not found)
  587. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } {
  588. create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1
  589. }
  590. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0]
  591. if { $obj != "" } {
  592. }
  593. # Create 'impl_1_place_report_control_sets_0' report (if not found)
  594. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } {
  595. create_report_config -report_name impl_1_place_report_control_sets_0 -report_type report_control_sets:1.0 -steps place_design -runs impl_1
  596. }
  597. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0]
  598. if { $obj != "" } {
  599. set_property -name "options.verbose" -value "1" -objects $obj
  600. }
  601. # Create 'impl_1_place_report_incremental_reuse_0' report (if not found)
  602. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } {
  603. create_report_config -report_name impl_1_place_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1
  604. }
  605. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0]
  606. if { $obj != "" } {
  607. set_property -name "is_enabled" -value "0" -objects $obj
  608. }
  609. # Create 'impl_1_place_report_incremental_reuse_1' report (if not found)
  610. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } {
  611. create_report_config -report_name impl_1_place_report_incremental_reuse_1 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1
  612. }
  613. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1]
  614. if { $obj != "" } {
  615. set_property -name "is_enabled" -value "0" -objects $obj
  616. }
  617. # Create 'impl_1_place_report_timing_summary_0' report (if not found)
  618. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } {
  619. create_report_config -report_name impl_1_place_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps place_design -runs impl_1
  620. }
  621. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0]
  622. if { $obj != "" } {
  623. set_property -name "is_enabled" -value "0" -objects $obj
  624. set_property -name "options.max_paths" -value "10" -objects $obj
  625. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  626. }
  627. # Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found)
  628. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } {
  629. create_report_config -report_name impl_1_post_place_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_place_power_opt_design -runs impl_1
  630. }
  631. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0]
  632. if { $obj != "" } {
  633. set_property -name "is_enabled" -value "0" -objects $obj
  634. set_property -name "options.max_paths" -value "10" -objects $obj
  635. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  636. }
  637. # Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found)
  638. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } {
  639. create_report_config -report_name impl_1_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps phys_opt_design -runs impl_1
  640. }
  641. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0]
  642. if { $obj != "" } {
  643. set_property -name "is_enabled" -value "0" -objects $obj
  644. set_property -name "options.max_paths" -value "10" -objects $obj
  645. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  646. }
  647. # Create 'impl_1_route_report_drc_0' report (if not found)
  648. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } {
  649. create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1
  650. }
  651. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0]
  652. if { $obj != "" } {
  653. }
  654. # Create 'impl_1_route_report_methodology_0' report (if not found)
  655. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } {
  656. create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1
  657. }
  658. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0]
  659. if { $obj != "" } {
  660. }
  661. # Create 'impl_1_route_report_power_0' report (if not found)
  662. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } {
  663. create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1
  664. }
  665. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0]
  666. if { $obj != "" } {
  667. }
  668. # Create 'impl_1_route_report_route_status_0' report (if not found)
  669. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } {
  670. create_report_config -report_name impl_1_route_report_route_status_0 -report_type report_route_status:1.0 -steps route_design -runs impl_1
  671. }
  672. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0]
  673. if { $obj != "" } {
  674. }
  675. # Create 'impl_1_route_report_timing_summary_0' report (if not found)
  676. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } {
  677. create_report_config -report_name impl_1_route_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps route_design -runs impl_1
  678. }
  679. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0]
  680. if { $obj != "" } {
  681. set_property -name "options.max_paths" -value "10" -objects $obj
  682. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  683. }
  684. # Create 'impl_1_route_report_incremental_reuse_0' report (if not found)
  685. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } {
  686. create_report_config -report_name impl_1_route_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps route_design -runs impl_1
  687. }
  688. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0]
  689. if { $obj != "" } {
  690. }
  691. # Create 'impl_1_route_report_clock_utilization_0' report (if not found)
  692. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } {
  693. create_report_config -report_name impl_1_route_report_clock_utilization_0 -report_type report_clock_utilization:1.0 -steps route_design -runs impl_1
  694. }
  695. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0]
  696. if { $obj != "" } {
  697. }
  698. # Create 'impl_1_route_report_bus_skew_0' report (if not found)
  699. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } {
  700. create_report_config -report_name impl_1_route_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps route_design -runs impl_1
  701. }
  702. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0]
  703. if { $obj != "" } {
  704. set_property -name "options.warn_on_violation" -value "1" -objects $obj
  705. }
  706. # Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found)
  707. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } {
  708. create_report_config -report_name impl_1_post_route_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_route_phys_opt_design -runs impl_1
  709. }
  710. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0]
  711. if { $obj != "" } {
  712. set_property -name "options.max_paths" -value "10" -objects $obj
  713. set_property -name "options.report_unconstrained" -value "1" -objects $obj
  714. set_property -name "options.warn_on_violation" -value "1" -objects $obj
  715. }
  716. # Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found)
  717. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } {
  718. create_report_config -report_name impl_1_post_route_phys_opt_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps post_route_phys_opt_design -runs impl_1
  719. }
  720. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0]
  721. if { $obj != "" } {
  722. set_property -name "options.warn_on_violation" -value "1" -objects $obj
  723. }
  724. set obj [get_runs impl_1]
  725. set_property -name "part" -value "xc7a100tfgg484-2" -objects $obj
  726. set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj
  727. set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj
  728. set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj
  729. # set the current impl run
  730. current_run -implementation [get_runs impl_1]
  731. catch {
  732. if { $idrFlowPropertiesConstraints != {} } {
  733. set_param runs.disableIDRFlowPropertyConstraints $idrFlowPropertiesConstraints
  734. }
  735. }
  736. puts "INFO: Project created:${_xil_proj_name_}"
  737. # Create 'drc_1' gadget (if not found)
  738. if {[string equal [get_dashboard_gadgets [ list "drc_1" ] ] ""]} {
  739. create_dashboard_gadget -name {drc_1} -type drc
  740. }
  741. set obj [get_dashboard_gadgets [ list "drc_1" ] ]
  742. set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj
  743. # Create 'methodology_1' gadget (if not found)
  744. if {[string equal [get_dashboard_gadgets [ list "methodology_1" ] ] ""]} {
  745. create_dashboard_gadget -name {methodology_1} -type methodology
  746. }
  747. set obj [get_dashboard_gadgets [ list "methodology_1" ] ]
  748. set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj
  749. # Create 'power_1' gadget (if not found)
  750. if {[string equal [get_dashboard_gadgets [ list "power_1" ] ] ""]} {
  751. create_dashboard_gadget -name {power_1} -type power
  752. }
  753. set obj [get_dashboard_gadgets [ list "power_1" ] ]
  754. set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj
  755. # Create 'timing_1' gadget (if not found)
  756. if {[string equal [get_dashboard_gadgets [ list "timing_1" ] ] ""]} {
  757. create_dashboard_gadget -name {timing_1} -type timing
  758. }
  759. set obj [get_dashboard_gadgets [ list "timing_1" ] ]
  760. set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj
  761. # Create 'utilization_1' gadget (if not found)
  762. if {[string equal [get_dashboard_gadgets [ list "utilization_1" ] ] ""]} {
  763. create_dashboard_gadget -name {utilization_1} -type utilization
  764. }
  765. set obj [get_dashboard_gadgets [ list "utilization_1" ] ]
  766. set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj
  767. set_property -name "run.step" -value "synth_design" -objects $obj
  768. set_property -name "run.type" -value "synthesis" -objects $obj
  769. # Create 'utilization_2' gadget (if not found)
  770. if {[string equal [get_dashboard_gadgets [ list "utilization_2" ] ] ""]} {
  771. create_dashboard_gadget -name {utilization_2} -type utilization
  772. }
  773. set obj [get_dashboard_gadgets [ list "utilization_2" ] ]
  774. set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj
  775. move_dashboard_gadget -name {utilization_1} -row 0 -col 0
  776. move_dashboard_gadget -name {power_1} -row 1 -col 0
  777. move_dashboard_gadget -name {drc_1} -row 2 -col 0
  778. move_dashboard_gadget -name {timing_1} -row 0 -col 1
  779. move_dashboard_gadget -name {utilization_2} -row 1 -col 1
  780. move_dashboard_gadget -name {methodology_1} -row 2 -col 1