recreate.tcl 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809
  1. #*****************************************************************************************
  2. # Vivado (TM) v2020.2 (64-bit)
  3. #
  4. # recreate.tcl: Tcl script for re-creating project 'S5243_FFT'
  5. #
  6. # Generated by Vivado on Wed Dec 13 17:13:10 +0300 2023
  7. # IP Build 3064653 on Wed Nov 18 14:17:31 MST 2020
  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.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:/S5243_FFT_PROJ/S5243_FFT/S5243_FFT.srcs/sources_1/ip/MeasDataFifo/MeasDataFifo.xci"
  27. # "C:/S5243_FFT_PROJ/S5243_FFT/S5243_FFT.srcs/sources_1/ip/MeasDataFifoExtender/MeasDataFifoExtender.xci"
  28. #
  29. # 3. The following remote source files that were added to the original project:-
  30. #
  31. # "C:/S5243_FFT_REPO/src/src/PulseMeas/ActivePortSelector.v"
  32. # "C:/S5243_FFT_REPO/src/src/InternalDsp/AdcCalibration.v"
  33. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/AdcDataInterface.v"
  34. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/AdcSync.v"
  35. # "C:/S5243_FFT_REPO/src/src/ClkGen/Clk200Gen.v"
  36. # "C:/S5243_FFT_REPO/src/src/InternalDsp/ComplPrng.v"
  37. # "C:/S5243_FFT_REPO/src/src/InternalDsp/CordicNco.v"
  38. # "C:/S5243_FFT_REPO/src/src/InternalDsp/CordicRotation.v"
  39. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/DecimFilterWrapper.v"
  40. # "C:/S5243_FFT_REPO/src/src/DitherGen/DitherGenv2.v"
  41. # "C:/S5243_FFT_REPO/src/src/ExtDspInterface/DspInterface.v"
  42. # "C:/S5243_FFT_REPO/src/src/InternalDsp/DspPipeline.v"
  43. # "C:/S5243_FFT_REPO/src/src/ExtDspInterface/DspPpiOut.v"
  44. # "C:/S5243_FFT_REPO/src/src/MeasDataFifo/FifoController.v"
  45. # "C:/S5243_FFT_REPO/src/src/Math/FpCustomMultiplier.v"
  46. # "C:/S5243_FFT_REPO/src/src/GainOverloadControl/GainControl.v"
  47. # "C:/S5243_FFT_REPO/src/src/GainOverloadControl/GainControlWrapper.v"
  48. # "C:/S5243_FFT_REPO/src/src/InitRst/InitRst.v"
  49. # "C:/S5243_FFT_REPO/src/src/InternalDsp/InternalDsp.v"
  50. # "C:/S5243_FFT_REPO/src/src/InternalDsp/MeasCtrlModule.v"
  51. # "C:/S5243_FFT_REPO/src/src/MeasDataFifo/MeasDataFifoWrapper.v"
  52. # "C:/S5243_FFT_REPO/src/src/PulseMeas/MeasStartEventGen.v"
  53. # "C:/S5243_FFT_REPO/src/src/Math/MultModule.v"
  54. # "C:/S5243_FFT_REPO/src/src/PulseMeas/Mux.v"
  55. # "C:/S5243_FFT_REPO/src/src/Math/MyIntToFp.v"
  56. # "C:/S5243_FFT_REPO/src/src/InternalDsp/NcoRstGen.v"
  57. # "C:/S5243_FFT_REPO/src/src/MeasDataFifo/OscDataFormer.v"
  58. # "C:/S5243_FFT_REPO/src/src/GainOverloadControl/OverloadDetect.v"
  59. # "C:/S5243_FFT_REPO/src/src/PulseMeas/PGenRstGenerator.v"
  60. # "C:/S5243_FFT_REPO/src/src/PulseMeas/PulseGen.v"
  61. # "C:/S5243_FFT_REPO/src/src/RegMap/RegMap.v"
  62. # "C:/S5243_FFT_REPO/src/src/PulseMeas/SampleStrobeGenRstDemux.v"
  63. # "C:/S5243_FFT_REPO/src/src/Math/SimpleMult.v"
  64. # "C:/S5243_FFT_REPO/src/src/ExtDspInterface/SlaveSpi.v"
  65. # "C:/S5243_FFT_REPO/src/src/PulseMeas/StartAfterGainSel.v"
  66. # "C:/S5243_FFT_REPO/src/src/Math/SumAcc.v"
  67. # "C:/S5243_FFT_REPO/src/src/PulseMeas/TrigInt2Mux.v"
  68. # "C:/S5243_FFT_REPO/src/src/InternalDsp/WinParameters.v"
  69. # "C:/S5243_FFT_REPO/src/src/InternalDsp/Win_calc.v"
  70. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/cicFilter.v"
  71. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/combFilterBlock.v"
  72. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/combFilterWrapper.v"
  73. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/decimBlock.v"
  74. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/delay_controller_wrap.v"
  75. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/intFilterBlock.v"
  76. # "C:/S5243_FFT_REPO/src/src/FftDataFiltering/intFilterWrapper.v"
  77. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/n_x_serdes_1_to_7_mmcm_idelay_sdr.v"
  78. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/serdes_1_to_7_mmcm_idelay_sdr.v"
  79. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/serdes_1_to_7_slave_idelay_sdr.v"
  80. # "C:/S5243_FFT_REPO/src/src/AdcDataRx/top5x2_7to1_sdr_rx.v"
  81. # "C:/S5243_FFT_REPO/src/src/Top/S5243Top.v"
  82. # "C:/S5243_FFT_REPO/src/src/MeasDataFifo/FftDataFormer.v"
  83. # "C:/S5243_FFT_REPO/src/src/PulseMeas/PulseGenV2.v"
  84. # "C:/S5243_FFT_REPO/src/constrs/S5243Top.xdc"
  85. # "C:/S5243_FFT_REPO/src/src/Sim/S5243TopSpectrumTb.v"
  86. # "C:/S5243_FFT_REPO/src/src/Sim/S5243TopPulseProfileTb.v"
  87. #
  88. #*****************************************************************************************
  89. # Check file required for this script exists
  90. proc checkRequiredFiles { origin_dir} {
  91. set status true
  92. foreach ifile $files {
  93. if { ![file isfile $ifile] } {
  94. puts " Could not find local file $ifile "
  95. set status false
  96. }
  97. }
  98. set files [list \
  99. "C:/S5243_FFT_REPO/src/src/PulseMeas/ActivePortSelector.v" \
  100. "C:/S5243_FFT_REPO/src/src/InternalDsp/AdcCalibration.v" \
  101. "C:/S5243_FFT_REPO/src/src/AdcDataRx/AdcDataInterface.v" \
  102. "C:/S5243_FFT_REPO/src/src/AdcDataRx/AdcSync.v" \
  103. "C:/S5243_FFT_REPO/src/src/ClkGen/Clk200Gen.v" \
  104. "C:/S5243_FFT_REPO/src/src/InternalDsp/ComplPrng.v" \
  105. "C:/S5243_FFT_REPO/src/src/InternalDsp/CordicNco.v" \
  106. "C:/S5243_FFT_REPO/src/src/InternalDsp/CordicRotation.v" \
  107. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/DecimFilterWrapper.v" \
  108. "C:/S5243_FFT_REPO/src/src/DitherGen/DitherGenv2.v" \
  109. "C:/S5243_FFT_REPO/src/src/ExtDspInterface/DspInterface.v" \
  110. "C:/S5243_FFT_REPO/src/src/InternalDsp/DspPipeline.v" \
  111. "C:/S5243_FFT_REPO/src/src/ExtDspInterface/DspPpiOut.v" \
  112. "C:/S5243_FFT_REPO/src/src/MeasDataFifo/FifoController.v" \
  113. "C:/S5243_FFT_REPO/src/src/Math/FpCustomMultiplier.v" \
  114. "C:/S5243_FFT_REPO/src/src/GainOverloadControl/GainControl.v" \
  115. "C:/S5243_FFT_REPO/src/src/GainOverloadControl/GainControlWrapper.v" \
  116. "C:/S5243_FFT_REPO/src/src/InitRst/InitRst.v" \
  117. "C:/S5243_FFT_REPO/src/src/InternalDsp/InternalDsp.v" \
  118. "C:/S5243_FFT_REPO/src/src/InternalDsp/MeasCtrlModule.v" \
  119. "C:/S5243_FFT_REPO/src/src/MeasDataFifo/MeasDataFifoWrapper.v" \
  120. "C:/S5243_FFT_REPO/src/src/PulseMeas/MeasStartEventGen.v" \
  121. "C:/S5243_FFT_REPO/src/src/Math/MultModule.v" \
  122. "C:/S5243_FFT_REPO/src/src/PulseMeas/Mux.v" \
  123. "C:/S5243_FFT_REPO/src/src/Math/MyIntToFp.v" \
  124. "C:/S5243_FFT_REPO/src/src/InternalDsp/NcoRstGen.v" \
  125. "C:/S5243_FFT_REPO/src/src/MeasDataFifo/OscDataFormer.v" \
  126. "C:/S5243_FFT_REPO/src/src/GainOverloadControl/OverloadDetect.v" \
  127. "C:/S5243_FFT_REPO/src/src/PulseMeas/PGenRstGenerator.v" \
  128. "C:/S5243_FFT_REPO/src/src/PulseMeas/PulseGen.v" \
  129. "C:/S5243_FFT_REPO/src/src/RegMap/RegMap.v" \
  130. "C:/S5243_FFT_REPO/src/src/PulseMeas/SampleStrobeGenRstDemux.v" \
  131. "C:/S5243_FFT_REPO/src/src/Math/SimpleMult.v" \
  132. "C:/S5243_FFT_REPO/src/src/ExtDspInterface/SlaveSpi.v" \
  133. "C:/S5243_FFT_REPO/src/src/PulseMeas/StartAfterGainSel.v" \
  134. "C:/S5243_FFT_REPO/src/src/Math/SumAcc.v" \
  135. "C:/S5243_FFT_REPO/src/src/PulseMeas/TrigInt2Mux.v" \
  136. "C:/S5243_FFT_REPO/src/src/InternalDsp/WinParameters.v" \
  137. "C:/S5243_FFT_REPO/src/src/InternalDsp/Win_calc.v" \
  138. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/cicFilter.v" \
  139. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/combFilterBlock.v" \
  140. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/combFilterWrapper.v" \
  141. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/decimBlock.v" \
  142. "C:/S5243_FFT_REPO/src/src/AdcDataRx/delay_controller_wrap.v" \
  143. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/intFilterBlock.v" \
  144. "C:/S5243_FFT_REPO/src/src/FftDataFiltering/intFilterWrapper.v" \
  145. "C:/S5243_FFT_REPO/src/src/AdcDataRx/n_x_serdes_1_to_7_mmcm_idelay_sdr.v" \
  146. "C:/S5243_FFT_REPO/src/src/AdcDataRx/serdes_1_to_7_mmcm_idelay_sdr.v" \
  147. "C:/S5243_FFT_REPO/src/src/AdcDataRx/serdes_1_to_7_slave_idelay_sdr.v" \
  148. "C:/S5243_FFT_REPO/src/src/AdcDataRx/top5x2_7to1_sdr_rx.v" \
  149. "C:/S5243_FFT_REPO/src/src/Top/S5243Top.v" \
  150. "C:/S5243_FFT_REPO/src/src/MeasDataFifo/FftDataFormer.v" \
  151. "C:/S5243_FFT_REPO/src/src/PulseMeas/PulseGenV2.v" \
  152. "C:/S5243_FFT_REPO/src/constrs/S5243Top.xdc" \
  153. "C:/S5243_FFT_REPO/src/src/Sim/S5243TopSpectrumTb.v" \
  154. "C:/S5243_FFT_REPO/src/src/Sim/S5243TopPulseProfileTb.v" \
  155. ]
  156. foreach ifile $files {
  157. if { ![file isfile $ifile] } {
  158. puts " Could not find remote file $ifile "
  159. set status false
  160. }
  161. }
  162. return $status
  163. }
  164. # Set the reference directory for source file relative paths (by default the value is script directory path)
  165. set origin_dir "C:/"
  166. # Use origin directory path location variable, if specified in the tcl shell
  167. if { [info exists ::origin_dir_loc] } {
  168. set origin_dir $::origin_dir_loc
  169. }
  170. # Set the project name
  171. set _xil_proj_name_ "S5243_FFT"
  172. # Use project name variable, if specified in the tcl shell
  173. if { [info exists ::user_project_name] } {
  174. set _xil_proj_name_ $::user_project_name
  175. }
  176. variable script_file
  177. set script_file "recreate.tcl"
  178. # Help information for this script
  179. proc print_help {} {
  180. variable script_file
  181. puts "\nDescription:"
  182. puts "Recreate a Vivado project from this script. The created project will be"
  183. puts "functionally equivalent to the original project for which this script was"
  184. puts "generated. The script contains commands for creating a project, filesets,"
  185. puts "runs, adding/importing sources and setting properties on various objects.\n"
  186. puts "Syntax:"
  187. puts "$script_file"
  188. puts "$script_file -tclargs \[--origin_dir <path>\]"
  189. puts "$script_file -tclargs \[--project_name <name>\]"
  190. puts "$script_file -tclargs \[--help\]\n"
  191. puts "Usage:"
  192. puts "Name Description"
  193. puts "-------------------------------------------------------------------------"
  194. puts "\[--origin_dir <path>\] Determine source file paths wrt this path. Default"
  195. puts " origin_dir path value is \".\", otherwise, the value"
  196. puts " that was set with the \"-paths_relative_to\" switch"
  197. puts " when this script was generated.\n"
  198. puts "\[--project_name <name>\] Create project with the specified name. Default"
  199. puts " name is the name of the project from where this"
  200. puts " script was generated.\n"
  201. puts "\[--help\] Print help information for this script"
  202. puts "-------------------------------------------------------------------------\n"
  203. exit 0
  204. }
  205. if { $::argc > 0 } {
  206. for {set i 0} {$i < $::argc} {incr i} {
  207. set option [string trim [lindex $::argv $i]]
  208. switch -regexp -- $option {
  209. "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] }
  210. "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] }
  211. "--help" { print_help }
  212. default {
  213. if { [regexp {^-} $option] } {
  214. puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n"
  215. return 1
  216. }
  217. }
  218. }
  219. }
  220. }
  221. # Set the directory path for the original project from where this script was exported
  222. set orig_proj_dir "[file normalize "$origin_dir/S5243_FFT_PROJ/S5243_FFT"]"
  223. # Check for paths and files needed for project creation
  224. set validate_required 0
  225. if { $validate_required } {
  226. if { [checkRequiredFiles $origin_dir] } {
  227. puts "Tcl file $script_file is valid. All files required for project creation is accesable. "
  228. } else {
  229. puts "Tcl file $script_file is not valid. Not all files required for project creation is accesable. "
  230. return
  231. }
  232. }
  233. # Create project
  234. create_project ${_xil_proj_name_} ./${_xil_proj_name_} -part xc7s25csga324-2
  235. # Set the directory path for the new project
  236. set proj_dir [get_property directory [current_project]]
  237. # Set project properties
  238. set obj [current_project]
  239. set_property -name "default_lib" -value "xil_defaultlib" -objects $obj
  240. set_property -name "enable_vhdl_2008" -value "1" -objects $obj
  241. set_property -name "ip_cache_permissions" -value "read write" -objects $obj
  242. set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj
  243. set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj
  244. set_property -name "part" -value "xc7s25csga324-2" -objects $obj
  245. set_property -name "sim.central_dir" -value "$proj_dir/${_xil_proj_name_}.ip_user_files" -objects $obj
  246. set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj
  247. set_property -name "simulator_language" -value "Mixed" -objects $obj
  248. set_property -name "webtalk.activehdl_export_sim" -value "2" -objects $obj
  249. set_property -name "webtalk.ies_export_sim" -value "2" -objects $obj
  250. set_property -name "webtalk.modelsim_export_sim" -value "2" -objects $obj
  251. set_property -name "webtalk.questa_export_sim" -value "2" -objects $obj
  252. set_property -name "webtalk.riviera_export_sim" -value "2" -objects $obj
  253. set_property -name "webtalk.vcs_export_sim" -value "2" -objects $obj
  254. set_property -name "webtalk.xsim_export_sim" -value "2" -objects $obj
  255. set_property -name "webtalk.xsim_launch_sim" -value "32" -objects $obj
  256. set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj
  257. # Create 'sources_1' fileset (if not found)
  258. if {[string equal [get_filesets -quiet sources_1] ""]} {
  259. create_fileset -srcset sources_1
  260. }
  261. # Set 'sources_1' fileset object
  262. set obj [get_filesets sources_1]
  263. set files [list \
  264. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/ActivePortSelector.v"] \
  265. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/AdcCalibration.v"] \
  266. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/AdcDataInterface.v"] \
  267. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/AdcSync.v"] \
  268. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/ClkGen/Clk200Gen.v"] \
  269. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/ComplPrng.v"] \
  270. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/CordicNco.v"] \
  271. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/CordicRotation.v"] \
  272. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/DecimFilterWrapper.v"] \
  273. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/DitherGen/DitherGenv2.v"] \
  274. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/ExtDspInterface/DspInterface.v"] \
  275. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/DspPipeline.v"] \
  276. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/ExtDspInterface/DspPpiOut.v"] \
  277. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/MeasDataFifo/FifoController.v"] \
  278. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Math/FpCustomMultiplier.v"] \
  279. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/GainOverloadControl/GainControl.v"] \
  280. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/GainOverloadControl/GainControlWrapper.v"] \
  281. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InitRst/InitRst.v"] \
  282. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/InternalDsp.v"] \
  283. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/MeasCtrlModule.v"] \
  284. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/MeasDataFifo/MeasDataFifoWrapper.v"] \
  285. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/MeasStartEventGen.v"] \
  286. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Math/MultModule.v"] \
  287. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/Mux.v"] \
  288. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Math/MyIntToFp.v"] \
  289. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/NcoRstGen.v"] \
  290. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/MeasDataFifo/OscDataFormer.v"] \
  291. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/GainOverloadControl/OverloadDetect.v"] \
  292. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/PGenRstGenerator.v"] \
  293. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/PulseGen.v"] \
  294. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/RegMap/RegMap.v"] \
  295. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/SampleStrobeGenRstDemux.v"] \
  296. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Math/SimpleMult.v"] \
  297. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/ExtDspInterface/SlaveSpi.v"] \
  298. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/StartAfterGainSel.v"] \
  299. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Math/SumAcc.v"] \
  300. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/TrigInt2Mux.v"] \
  301. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/WinParameters.v"] \
  302. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/InternalDsp/Win_calc.v"] \
  303. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/cicFilter.v"] \
  304. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/combFilterBlock.v"] \
  305. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/combFilterWrapper.v"] \
  306. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/decimBlock.v"] \
  307. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/delay_controller_wrap.v"] \
  308. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/intFilterBlock.v"] \
  309. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/FftDataFiltering/intFilterWrapper.v"] \
  310. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/n_x_serdes_1_to_7_mmcm_idelay_sdr.v"] \
  311. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/serdes_1_to_7_mmcm_idelay_sdr.v"] \
  312. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/serdes_1_to_7_slave_idelay_sdr.v"] \
  313. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/AdcDataRx/top5x2_7to1_sdr_rx.v"] \
  314. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Top/S5243Top.v"] \
  315. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/MeasDataFifo/FftDataFormer.v"] \
  316. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/PulseMeas/PulseGenV2.v"] \
  317. ]
  318. add_files -norecurse -fileset $obj $files
  319. # Set 'sources_1' fileset file properties for remote files
  320. # None
  321. # Set 'sources_1' fileset file properties for local files
  322. # None
  323. # Set 'sources_1' fileset properties
  324. set obj [get_filesets sources_1]
  325. set_property -name "top" -value "S5243Top" -objects $obj
  326. set_property -name "top_auto_set" -value "0" -objects $obj
  327. # Create 'constrs_1' fileset (if not found)
  328. if {[string equal [get_filesets -quiet constrs_1] ""]} {
  329. create_fileset -constrset constrs_1
  330. }
  331. # Set 'constrs_1' fileset object
  332. set obj [get_filesets constrs_1]
  333. # Add/Import constrs file and set constrs file properties
  334. set file "[file normalize "$origin_dir/S5243_FFT_REPO/src/constrs/S5243Top.xdc"]"
  335. set file_added [add_files -norecurse -fileset $obj [list $file]]
  336. set file "$origin_dir/S5243_FFT_REPO/src/constrs/S5243Top.xdc"
  337. set file [file normalize $file]
  338. set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]]
  339. set_property -name "file_type" -value "XDC" -objects $file_obj
  340. # Set 'constrs_1' fileset properties
  341. set obj [get_filesets constrs_1]
  342. set_property -name "target_part" -value "xc7s25csga324-2" -objects $obj
  343. # Create 'sim_1' fileset (if not found)
  344. if {[string equal [get_filesets -quiet sim_1] ""]} {
  345. create_fileset -simset sim_1
  346. }
  347. # Set 'sim_1' fileset object
  348. set obj [get_filesets sim_1]
  349. set files [list \
  350. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Sim/S5243TopSpectrumTb.v"] \
  351. [file normalize "${origin_dir}/S5243_FFT_REPO/src/src/Sim/S5243TopPulseProfileTb.v"] \
  352. ]
  353. add_files -norecurse -fileset $obj $files
  354. # Set 'sim_1' fileset file properties for remote files
  355. # None
  356. # Set 'sim_1' fileset file properties for local files
  357. # None
  358. # Set 'sim_1' fileset properties
  359. set obj [get_filesets sim_1]
  360. set_property -name "hbs.configure_design_for_hier_access" -value "1" -objects $obj
  361. set_property -name "top" -value "S5243TopSpectrumTb" -objects $obj
  362. set_property -name "top_auto_set" -value "0" -objects $obj
  363. set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
  364. # Set 'utils_1' fileset object
  365. set obj [get_filesets utils_1]
  366. # Empty (no sources present)
  367. # Set 'utils_1' fileset properties
  368. set obj [get_filesets utils_1]
  369. # Create 'synth_1' run (if not found)
  370. if {[string equal [get_runs -quiet synth_1] ""]} {
  371. create_run -name synth_1 -part xc7s25csga324-2 -flow {Vivado Synthesis 2020} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1
  372. } else {
  373. set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1]
  374. set_property flow "Vivado Synthesis 2020" [get_runs synth_1]
  375. }
  376. set obj [get_runs synth_1]
  377. set_property set_report_strategy_name 1 $obj
  378. set_property report_strategy {Vivado Synthesis Default Reports} $obj
  379. set_property set_report_strategy_name 0 $obj
  380. # Create 'synth_1_synth_report_utilization_0' report (if not found)
  381. if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } {
  382. create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1
  383. }
  384. set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0]
  385. if { $obj != "" } {
  386. }
  387. set obj [get_runs synth_1]
  388. set_property -name "needs_refresh" -value "1" -objects $obj
  389. set_property -name "part" -value "xc7s25csga324-2" -objects $obj
  390. set_property -name "auto_incremental_checkpoint.directory" -value "D:/S5243_FFT_PROJ/S5243_FFT/S5243_FFT.srcs/utils_1/imports/synth_1" -objects $obj
  391. set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj
  392. # set the current synth run
  393. current_run -synthesis [get_runs synth_1]
  394. # Create 'impl_1' run (if not found)
  395. if {[string equal [get_runs -quiet impl_1] ""]} {
  396. create_run -name impl_1 -part xc7s25csga324-2 -flow {Vivado Implementation 2020} -strategy "Vivado Implementation Defaults" -report_strategy {No Reports} -constrset constrs_1 -parent_run synth_1
  397. } else {
  398. set_property strategy "Vivado Implementation Defaults" [get_runs impl_1]
  399. set_property flow "Vivado Implementation 2020" [get_runs impl_1]
  400. }
  401. set obj [get_runs impl_1]
  402. set_property set_report_strategy_name 1 $obj
  403. set_property report_strategy {Vivado Implementation Default Reports} $obj
  404. set_property set_report_strategy_name 0 $obj
  405. # Create 'impl_1_init_report_timing_summary_0' report (if not found)
  406. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } {
  407. 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
  408. }
  409. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0]
  410. if { $obj != "" } {
  411. set_property -name "is_enabled" -value "0" -objects $obj
  412. set_property -name "options.max_paths" -value "10" -objects $obj
  413. }
  414. # Create 'impl_1_opt_report_drc_0' report (if not found)
  415. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } {
  416. create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1
  417. }
  418. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0]
  419. if { $obj != "" } {
  420. }
  421. # Create 'impl_1_opt_report_timing_summary_0' report (if not found)
  422. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } {
  423. 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
  424. }
  425. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0]
  426. if { $obj != "" } {
  427. set_property -name "is_enabled" -value "0" -objects $obj
  428. set_property -name "options.max_paths" -value "10" -objects $obj
  429. }
  430. # Create 'impl_1_power_opt_report_timing_summary_0' report (if not found)
  431. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } {
  432. 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
  433. }
  434. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0]
  435. if { $obj != "" } {
  436. set_property -name "is_enabled" -value "0" -objects $obj
  437. set_property -name "options.max_paths" -value "10" -objects $obj
  438. }
  439. # Create 'impl_1_place_report_io_0' report (if not found)
  440. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } {
  441. create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1
  442. }
  443. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0]
  444. if { $obj != "" } {
  445. }
  446. # Create 'impl_1_place_report_utilization_0' report (if not found)
  447. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } {
  448. create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1
  449. }
  450. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0]
  451. if { $obj != "" } {
  452. }
  453. # Create 'impl_1_place_report_control_sets_0' report (if not found)
  454. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } {
  455. 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
  456. }
  457. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0]
  458. if { $obj != "" } {
  459. set_property -name "options.verbose" -value "1" -objects $obj
  460. }
  461. # Create 'impl_1_place_report_incremental_reuse_0' report (if not found)
  462. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } {
  463. 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
  464. }
  465. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0]
  466. if { $obj != "" } {
  467. set_property -name "is_enabled" -value "0" -objects $obj
  468. }
  469. # Create 'impl_1_place_report_incremental_reuse_1' report (if not found)
  470. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } {
  471. 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
  472. }
  473. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1]
  474. if { $obj != "" } {
  475. set_property -name "is_enabled" -value "0" -objects $obj
  476. }
  477. # Create 'impl_1_place_report_timing_summary_0' report (if not found)
  478. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } {
  479. 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
  480. }
  481. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0]
  482. if { $obj != "" } {
  483. set_property -name "is_enabled" -value "0" -objects $obj
  484. set_property -name "options.max_paths" -value "10" -objects $obj
  485. }
  486. # Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found)
  487. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } {
  488. 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
  489. }
  490. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0]
  491. if { $obj != "" } {
  492. set_property -name "is_enabled" -value "0" -objects $obj
  493. set_property -name "options.max_paths" -value "10" -objects $obj
  494. }
  495. # Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found)
  496. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } {
  497. 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
  498. }
  499. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0]
  500. if { $obj != "" } {
  501. set_property -name "is_enabled" -value "0" -objects $obj
  502. set_property -name "options.max_paths" -value "10" -objects $obj
  503. }
  504. # Create 'impl_1_route_report_drc_0' report (if not found)
  505. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } {
  506. create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1
  507. }
  508. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0]
  509. if { $obj != "" } {
  510. }
  511. # Create 'impl_1_route_report_methodology_0' report (if not found)
  512. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } {
  513. create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1
  514. }
  515. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0]
  516. if { $obj != "" } {
  517. }
  518. # Create 'impl_1_route_report_power_0' report (if not found)
  519. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } {
  520. create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1
  521. }
  522. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0]
  523. if { $obj != "" } {
  524. }
  525. # Create 'impl_1_route_report_route_status_0' report (if not found)
  526. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } {
  527. 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
  528. }
  529. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0]
  530. if { $obj != "" } {
  531. }
  532. # Create 'impl_1_route_report_timing_summary_0' report (if not found)
  533. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } {
  534. 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
  535. }
  536. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0]
  537. if { $obj != "" } {
  538. set_property -name "options.max_paths" -value "10" -objects $obj
  539. }
  540. # Create 'impl_1_route_report_incremental_reuse_0' report (if not found)
  541. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } {
  542. 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
  543. }
  544. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0]
  545. if { $obj != "" } {
  546. }
  547. # Create 'impl_1_route_report_clock_utilization_0' report (if not found)
  548. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } {
  549. 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
  550. }
  551. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0]
  552. if { $obj != "" } {
  553. }
  554. # Create 'impl_1_route_report_bus_skew_0' report (if not found)
  555. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } {
  556. 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
  557. }
  558. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0]
  559. if { $obj != "" } {
  560. set_property -name "options.warn_on_violation" -value "1" -objects $obj
  561. }
  562. # Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found)
  563. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } {
  564. 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
  565. }
  566. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0]
  567. if { $obj != "" } {
  568. set_property -name "options.max_paths" -value "10" -objects $obj
  569. set_property -name "options.warn_on_violation" -value "1" -objects $obj
  570. }
  571. # Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found)
  572. if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } {
  573. 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
  574. }
  575. set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0]
  576. if { $obj != "" } {
  577. set_property -name "options.warn_on_violation" -value "1" -objects $obj
  578. }
  579. set obj [get_runs impl_1]
  580. set_property -name "needs_refresh" -value "1" -objects $obj
  581. set_property -name "part" -value "xc7s25csga324-2" -objects $obj
  582. set_property -name "auto_incremental_checkpoint.directory" -value "D:/S5243_FFT_PROJ/S5243_FFT/S5243_FFT.srcs/utils_1/imports/impl_1" -objects $obj
  583. set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj
  584. set_property -name "steps.write_bitstream.args.bin_file" -value "1" -objects $obj
  585. set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj
  586. set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj
  587. # set the current impl run
  588. current_run -implementation [get_runs impl_1]
  589. puts "INFO: Project created:${_xil_proj_name_}"
  590. # Create 'drc_1' gadget (if not found)
  591. if {[string equal [get_dashboard_gadgets [ list "drc_1" ] ] ""]} {
  592. create_dashboard_gadget -name {drc_1} -type drc
  593. }
  594. set obj [get_dashboard_gadgets [ list "drc_1" ] ]
  595. set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj
  596. # Create 'methodology_1' gadget (if not found)
  597. if {[string equal [get_dashboard_gadgets [ list "methodology_1" ] ] ""]} {
  598. create_dashboard_gadget -name {methodology_1} -type methodology
  599. }
  600. set obj [get_dashboard_gadgets [ list "methodology_1" ] ]
  601. set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj
  602. # Create 'power_1' gadget (if not found)
  603. if {[string equal [get_dashboard_gadgets [ list "power_1" ] ] ""]} {
  604. create_dashboard_gadget -name {power_1} -type power
  605. }
  606. set obj [get_dashboard_gadgets [ list "power_1" ] ]
  607. set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj
  608. # Create 'timing_1' gadget (if not found)
  609. if {[string equal [get_dashboard_gadgets [ list "timing_1" ] ] ""]} {
  610. create_dashboard_gadget -name {timing_1} -type timing
  611. }
  612. set obj [get_dashboard_gadgets [ list "timing_1" ] ]
  613. set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj
  614. # Create 'utilization_1' gadget (if not found)
  615. if {[string equal [get_dashboard_gadgets [ list "utilization_1" ] ] ""]} {
  616. create_dashboard_gadget -name {utilization_1} -type utilization
  617. }
  618. set obj [get_dashboard_gadgets [ list "utilization_1" ] ]
  619. set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj
  620. set_property -name "run.step" -value "synth_design" -objects $obj
  621. set_property -name "run.type" -value "synthesis" -objects $obj
  622. # Create 'utilization_2' gadget (if not found)
  623. if {[string equal [get_dashboard_gadgets [ list "utilization_2" ] ] ""]} {
  624. create_dashboard_gadget -name {utilization_2} -type utilization
  625. }
  626. set obj [get_dashboard_gadgets [ list "utilization_2" ] ]
  627. set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj
  628. move_dashboard_gadget -name {utilization_1} -row 0 -col 0
  629. move_dashboard_gadget -name {power_1} -row 1 -col 0
  630. move_dashboard_gadget -name {drc_1} -row 2 -col 0
  631. move_dashboard_gadget -name {timing_1} -row 0 -col 1
  632. move_dashboard_gadget -name {utilization_2} -row 1 -col 1
  633. move_dashboard_gadget -name {methodology_1} -row 2 -col 1
  634. ##################################################################
  635. # CHECK VIVADO VERSION
  636. ##################################################################
  637. set scripts_vivado_version 2020.2
  638. set current_vivado_version [version -short]
  639. if { [string first $scripts_vivado_version $current_vivado_version] == -1 } {
  640. 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."}
  641. return 1
  642. }
  643. ##################################################################
  644. # START
  645. ##################################################################
  646. # To test this script, run the following commands from Vivado Tcl console:
  647. # source recreateIp.tcl
  648. # If there is no project opened, this script will create a
  649. # project, but make sure you do not have an existing project
  650. # <./S5243_FFT/S5243_FFT.xpr> in the current working folder.
  651. set list_projs [get_projects -quiet]
  652. if { $list_projs eq "" } {
  653. create_project S5243_FFT S5243_FFT -part xc7s25csga324-2
  654. set_property target_language Verilog [current_project]
  655. set_property simulator_language Mixed [current_project]
  656. }
  657. ##################################################################
  658. # CHECK IPs
  659. ##################################################################
  660. set bCheckIPs 1
  661. set bCheckIPsPassed 1
  662. if { $bCheckIPs == 1 } {
  663. set list_check_ips { xilinx.com:ip:fifo_generator:13.2 }
  664. set list_ips_missing ""
  665. common::send_msg_id "IPS_TCL-1001" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
  666. foreach ip_vlnv $list_check_ips {
  667. set ip_obj [get_ipdefs -all $ip_vlnv]
  668. if { $ip_obj eq "" } {
  669. lappend list_ips_missing $ip_vlnv
  670. }
  671. }
  672. if { $list_ips_missing ne "" } {
  673. 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." }
  674. set bCheckIPsPassed 0
  675. }
  676. }
  677. if { $bCheckIPsPassed != 1 } {
  678. common::send_msg_id "IPS_TCL-102" "WARNING" "Will not continue with creation of design due to the error(s) above."
  679. return 1
  680. }
  681. ##################################################################
  682. # CREATE IP MeasDataFifo
  683. ##################################################################
  684. set MeasDataFifo [create_ip -name fifo_generator -vendor xilinx.com -library ip -version 13.2 -module_name MeasDataFifo]
  685. set_property -dict {
  686. CONFIG.Input_Data_Width {256}
  687. CONFIG.Input_Depth {4096}
  688. CONFIG.Output_Data_Width {256}
  689. CONFIG.Output_Depth {4096}
  690. CONFIG.Data_Count_Width {12}
  691. CONFIG.Write_Data_Count_Width {12}
  692. CONFIG.Read_Data_Count_Width {12}
  693. CONFIG.Full_Threshold_Assert_Value {4094}
  694. CONFIG.Full_Threshold_Negate_Value {4093}
  695. } [get_ips MeasDataFifo]
  696. set_property -dict {
  697. GENERATE_SYNTH_CHECKPOINT {1}
  698. } $MeasDataFifo
  699. ##################################################################
  700. ##################################################################
  701. # CREATE IP MeasDataFifoExtender
  702. ##################################################################
  703. set MeasDataFifoExtender [create_ip -name fifo_generator -vendor xilinx.com -library ip -version 13.2 -module_name MeasDataFifoExtender]
  704. set_property -dict {
  705. CONFIG.Performance_Options {First_Word_Fall_Through}
  706. CONFIG.Input_Data_Width {256}
  707. CONFIG.Input_Depth {32}
  708. CONFIG.Output_Data_Width {256}
  709. CONFIG.Output_Depth {32}
  710. CONFIG.Use_Extra_Logic {true}
  711. CONFIG.Data_Count_Width {6}
  712. CONFIG.Write_Data_Count_Width {6}
  713. CONFIG.Read_Data_Count_Width {6}
  714. CONFIG.Full_Threshold_Assert_Value {31}
  715. CONFIG.Full_Threshold_Negate_Value {30}
  716. CONFIG.Empty_Threshold_Assert_Value {4}
  717. CONFIG.Empty_Threshold_Negate_Value {5}
  718. } [get_ips MeasDataFifoExtender]
  719. set_property -dict {
  720. GENERATE_SYNTH_CHECKPOINT {1}
  721. } $MeasDataFifoExtender
  722. ##################################################################