design_1.tcl 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  1. ################################################################
  2. # This is a generated script based on design: design_1
  3. #
  4. # Though there are limitations about the generated script,
  5. # the main purpose of this utility is to make learning
  6. # IP Integrator Tcl commands easier.
  7. ################################################################
  8. namespace eval _tcl {
  9. proc get_script_folder {} {
  10. set script_path [file normalize [info script]]
  11. set script_folder [file dirname $script_path]
  12. return $script_folder
  13. }
  14. }
  15. variable script_folder
  16. set script_folder [_tcl::get_script_folder]
  17. ################################################################
  18. # Check if script is running in correct Vivado version.
  19. ################################################################
  20. set scripts_vivado_version 2018.3
  21. set current_vivado_version [version -short]
  22. if { [string first $scripts_vivado_version $current_vivado_version] == -1 } {
  23. puts ""
  24. catch {common::send_msg_id "BD_TCL-109" "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_bd_tcl to create an updated script."}
  25. return 1
  26. }
  27. ################################################################
  28. # START
  29. ################################################################
  30. # To test this script, run the following commands from Vivado Tcl console:
  31. # source design_1_script.tcl
  32. # If there is no project opened, this script will create a
  33. # project, but make sure you do not have an existing project
  34. # <./myproj/project_1.xpr> in the current working folder.
  35. set list_projs [get_projects -quiet]
  36. if { $list_projs eq "" } {
  37. create_project project_1 myproj -part xc7a100tcsg324-1
  38. }
  39. # CHANGE DESIGN NAME HERE
  40. variable design_name
  41. set design_name design_1
  42. # If you do not already have an existing IP Integrator design open,
  43. # you can create a design using the following command:
  44. # create_bd_design $design_name
  45. # Creating design if needed
  46. set errMsg ""
  47. set nRet 0
  48. set cur_design [current_bd_design -quiet]
  49. set list_cells [get_bd_cells -quiet]
  50. if { ${design_name} eq "" } {
  51. # USE CASES:
  52. # 1) Design_name not set
  53. set errMsg "Please set the variable <design_name> to a non-empty value."
  54. set nRet 1
  55. } elseif { ${cur_design} ne "" && ${list_cells} eq "" } {
  56. # USE CASES:
  57. # 2): Current design opened AND is empty AND names same.
  58. # 3): Current design opened AND is empty AND names diff; design_name NOT in project.
  59. # 4): Current design opened AND is empty AND names diff; design_name exists in project.
  60. if { $cur_design ne $design_name } {
  61. common::send_msg_id "BD_TCL-001" "INFO" "Changing value of <design_name> from <$design_name> to <$cur_design> since current design is empty."
  62. set design_name [get_property NAME $cur_design]
  63. }
  64. common::send_msg_id "BD_TCL-002" "INFO" "Constructing design in IPI design <$cur_design>..."
  65. } elseif { ${cur_design} ne "" && $list_cells ne "" && $cur_design eq $design_name } {
  66. # USE CASES:
  67. # 5) Current design opened AND has components AND same names.
  68. set errMsg "Design <$design_name> already exists in your project, please set the variable <design_name> to another value."
  69. set nRet 1
  70. } elseif { [get_files -quiet ${design_name}.bd] ne "" } {
  71. # USE CASES:
  72. # 6) Current opened design, has components, but diff names, design_name exists in project.
  73. # 7) No opened design, design_name exists in project.
  74. set errMsg "Design <$design_name> already exists in your project, please set the variable <design_name> to another value."
  75. set nRet 2
  76. } else {
  77. # USE CASES:
  78. # 8) No opened design, design_name not in project.
  79. # 9) Current opened design, has components, but diff names, design_name not in project.
  80. common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..."
  81. create_bd_design $design_name
  82. common::send_msg_id "BD_TCL-004" "INFO" "Making design <$design_name> as current_bd_design."
  83. current_bd_design $design_name
  84. }
  85. common::send_msg_id "BD_TCL-005" "INFO" "Currently the variable <design_name> is equal to \"$design_name\"."
  86. if { $nRet != 0 } {
  87. catch {common::send_msg_id "BD_TCL-114" "ERROR" $errMsg}
  88. return $nRet
  89. }
  90. set bCheckIPsPassed 1
  91. ##################################################################
  92. # CHECK IPs
  93. ##################################################################
  94. set bCheckIPs 1
  95. if { $bCheckIPs == 1 } {
  96. set list_check_ips "\
  97. xilinx.com:ip:c_counter_binary:12.0\
  98. xilinx.com:user:ethernet_transceiver2:1.0\
  99. xilinx.com:ip:fifo_generator:13.2\
  100. xilinx.com:ip:c_addsub:12.0\
  101. user.org:user:packaging:3.0\
  102. xilinx.com:user:segment:1.0\
  103. xilinx.com:ip:xlconcat:2.1\
  104. xilinx.com:ip:xlconstant:1.1\
  105. xilinx.com:ip:xlslice:1.0\
  106. "
  107. set list_ips_missing ""
  108. common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ."
  109. foreach ip_vlnv $list_check_ips {
  110. set ip_obj [get_ipdefs -all $ip_vlnv]
  111. if { $ip_obj eq "" } {
  112. lappend list_ips_missing $ip_vlnv
  113. }
  114. }
  115. if { $list_ips_missing ne "" } {
  116. catch {common::send_msg_id "BD_TCL-115" "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." }
  117. set bCheckIPsPassed 0
  118. }
  119. }
  120. if { $bCheckIPsPassed != 1 } {
  121. common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above."
  122. return 3
  123. }
  124. ##################################################################
  125. # DESIGN PROCs
  126. ##################################################################
  127. # Procedure to create entire design; Provide argument to make
  128. # procedure reusable. If parentCell is "", will use root.
  129. proc create_root_design { parentCell } {
  130. variable script_folder
  131. variable design_name
  132. if { $parentCell eq "" } {
  133. set parentCell [get_bd_cells /]
  134. }
  135. # Get object for parentCell
  136. set parentObj [get_bd_cells $parentCell]
  137. if { $parentObj == "" } {
  138. catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"}
  139. return
  140. }
  141. # Make sure parentObj is hier blk
  142. set parentType [get_property TYPE $parentObj]
  143. if { $parentType ne "hier" } {
  144. catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be <hier>."}
  145. return
  146. }
  147. # Save current instance; Restore later
  148. set oldCurInst [current_bd_instance .]
  149. # Set parent object as current
  150. current_bd_instance $parentObj
  151. # Create interface ports
  152. # Create ports
  153. set anodes_0 [ create_bd_port -dir O -from 0 -to 7 anodes_0 ]
  154. set cathodes_0 [ create_bd_port -dir O -from 0 -to 7 cathodes_0 ]
  155. set clk_100MHz [ create_bd_port -dir I -type clk clk_100MHz ]
  156. set_property -dict [ list \
  157. CONFIG.FREQ_HZ {100000000} \
  158. ] $clk_100MHz
  159. set eth_crsdv_0 [ create_bd_port -dir IO eth_crsdv_0 ]
  160. set eth_mdc_0 [ create_bd_port -dir O eth_mdc_0 ]
  161. set eth_mdio_0 [ create_bd_port -dir IO eth_mdio_0 ]
  162. set eth_refclk_0 [ create_bd_port -dir O eth_refclk_0 ]
  163. set eth_rstn_0 [ create_bd_port -dir IO -type rst eth_rstn_0 ]
  164. set eth_rxd_0 [ create_bd_port -dir IO -from 1 -to 0 eth_rxd_0 ]
  165. set eth_rxerr_0 [ create_bd_port -dir IO eth_rxerr_0 ]
  166. set eth_txd_0 [ create_bd_port -dir IO -from 1 -to 0 eth_txd_0 ]
  167. set eth_txen_0 [ create_bd_port -dir IO eth_txen_0 ]
  168. set led16_b_0 [ create_bd_port -dir O led16_b_0 ]
  169. set led16_g_0 [ create_bd_port -dir O led16_g_0 ]
  170. set led16_r_0 [ create_bd_port -dir O led16_r_0 ]
  171. set led17_b_0 [ create_bd_port -dir O led17_b_0 ]
  172. set led17_g_0 [ create_bd_port -dir O led17_g_0 ]
  173. set led17_r_0 [ create_bd_port -dir O led17_r_0 ]
  174. set led_0 [ create_bd_port -dir O -from 15 -to 0 led_0 ]
  175. set reset_rtl_0 [ create_bd_port -dir I -type rst reset_rtl_0 ]
  176. set_property -dict [ list \
  177. CONFIG.POLARITY {ACTIVE_LOW} \
  178. ] $reset_rtl_0
  179. set sw_0 [ create_bd_port -dir I -from 4 -to 0 sw_0 ]
  180. # Create instance: c_counter_binary_0, and set properties
  181. set c_counter_binary_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_counter_binary:12.0 c_counter_binary_0 ]
  182. set_property -dict [ list \
  183. CONFIG.CE {true} \
  184. CONFIG.Fb_Latency {2} \
  185. CONFIG.Fb_Latency_Configuration {Automatic} \
  186. CONFIG.Final_Count_Value {270F} \
  187. CONFIG.Latency_Configuration {Automatic} \
  188. CONFIG.Restrict_Count {true} \
  189. CONFIG.SCLR {true} \
  190. CONFIG.SSET {false} \
  191. ] $c_counter_binary_0
  192. # Create instance: c_counter_binary_1, and set properties
  193. set c_counter_binary_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_counter_binary:12.0 c_counter_binary_1 ]
  194. set_property -dict [ list \
  195. CONFIG.CE {true} \
  196. CONFIG.Fb_Latency {2} \
  197. CONFIG.Fb_Latency_Configuration {Automatic} \
  198. CONFIG.Final_Count_Value {270F} \
  199. CONFIG.Latency_Configuration {Automatic} \
  200. CONFIG.Restrict_Count {true} \
  201. CONFIG.SCLR {true} \
  202. CONFIG.SSET {false} \
  203. ] $c_counter_binary_1
  204. # Create instance: ethernet_transceiver2_0, and set properties
  205. set ethernet_transceiver2_0 [ create_bd_cell -type ip -vlnv xilinx.com:user:ethernet_transceiver2:1.0 ethernet_transceiver2_0 ]
  206. # Create instance: fifo_input, and set properties
  207. set fifo_input [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_input ]
  208. set_property -dict [ list \
  209. CONFIG.Almost_Empty_Flag {false} \
  210. CONFIG.Data_Count {false} \
  211. CONFIG.Data_Count_Width {6} \
  212. CONFIG.Empty_Threshold_Assert_Value {2} \
  213. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  214. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  215. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  216. CONFIG.Empty_Threshold_Negate_Value {3} \
  217. CONFIG.Enable_Safety_Circuit {false} \
  218. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  219. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  220. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  221. CONFIG.Fifo_Implementation {Common_Clock_Distributed_RAM} \
  222. CONFIG.Full_Flags_Reset_Value {0} \
  223. CONFIG.Full_Threshold_Assert_Value {62} \
  224. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  225. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  226. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  227. CONFIG.Full_Threshold_Negate_Value {61} \
  228. CONFIG.INTERFACE_TYPE {Native} \
  229. CONFIG.Input_Data_Width {32} \
  230. CONFIG.Input_Depth {64} \
  231. CONFIG.Output_Data_Width {32} \
  232. CONFIG.Output_Depth {64} \
  233. CONFIG.Overflow_Flag {true} \
  234. CONFIG.Performance_Options {Standard_FIFO} \
  235. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  236. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  237. CONFIG.Read_Data_Count {false} \
  238. CONFIG.Read_Data_Count_Width {6} \
  239. CONFIG.Reset_Pin {true} \
  240. CONFIG.Reset_Type {Synchronous_Reset} \
  241. CONFIG.Underflow_Flag {false} \
  242. CONFIG.Use_Dout_Reset {true} \
  243. CONFIG.Use_Embedded_Registers {false} \
  244. CONFIG.Use_Extra_Logic {false} \
  245. CONFIG.Valid_Flag {false} \
  246. CONFIG.Write_Data_Count {false} \
  247. CONFIG.Write_Data_Count_Width {6} \
  248. ] $fifo_input
  249. # Create instance: fifo_output, and set properties
  250. set fifo_output [ create_bd_cell -type ip -vlnv xilinx.com:ip:fifo_generator:13.2 fifo_output ]
  251. set_property -dict [ list \
  252. CONFIG.Almost_Empty_Flag {false} \
  253. CONFIG.Almost_Full_Flag {false} \
  254. CONFIG.Data_Count {false} \
  255. CONFIG.Data_Count_Width {9} \
  256. CONFIG.Empty_Threshold_Assert_Value {2} \
  257. CONFIG.Empty_Threshold_Assert_Value_rach {1022} \
  258. CONFIG.Empty_Threshold_Assert_Value_wach {1022} \
  259. CONFIG.Empty_Threshold_Assert_Value_wrch {1022} \
  260. CONFIG.Empty_Threshold_Negate_Value {3} \
  261. CONFIG.Enable_Safety_Circuit {false} \
  262. CONFIG.FIFO_Implementation_rach {Common_Clock_Distributed_RAM} \
  263. CONFIG.FIFO_Implementation_wach {Common_Clock_Distributed_RAM} \
  264. CONFIG.FIFO_Implementation_wrch {Common_Clock_Distributed_RAM} \
  265. CONFIG.Fifo_Implementation {Independent_Clocks_Distributed_RAM} \
  266. CONFIG.Full_Flags_Reset_Value {1} \
  267. CONFIG.Full_Threshold_Assert_Value {509} \
  268. CONFIG.Full_Threshold_Assert_Value_rach {1023} \
  269. CONFIG.Full_Threshold_Assert_Value_wach {1023} \
  270. CONFIG.Full_Threshold_Assert_Value_wrch {1023} \
  271. CONFIG.Full_Threshold_Negate_Value {508} \
  272. CONFIG.INTERFACE_TYPE {Native} \
  273. CONFIG.Input_Data_Width {32} \
  274. CONFIG.Input_Depth {512} \
  275. CONFIG.Output_Data_Width {32} \
  276. CONFIG.Output_Depth {512} \
  277. CONFIG.Overflow_Flag {true} \
  278. CONFIG.Performance_Options {Standard_FIFO} \
  279. CONFIG.Programmable_Empty_Type {No_Programmable_Empty_Threshold} \
  280. CONFIG.Programmable_Full_Type {No_Programmable_Full_Threshold} \
  281. CONFIG.Read_Data_Count {true} \
  282. CONFIG.Read_Data_Count_Width {9} \
  283. CONFIG.Reset_Pin {true} \
  284. CONFIG.Reset_Type {Asynchronous_Reset} \
  285. CONFIG.Underflow_Flag {false} \
  286. CONFIG.Use_Dout_Reset {true} \
  287. CONFIG.Use_Embedded_Registers {false} \
  288. CONFIG.Use_Extra_Logic {false} \
  289. CONFIG.Valid_Flag {false} \
  290. CONFIG.Write_Data_Count {false} \
  291. CONFIG.Write_Data_Count_Width {9} \
  292. ] $fifo_output
  293. # Create instance: negate_0, and set properties
  294. set negate_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:c_addsub:12.0 negate_0 ]
  295. set_property -dict [ list \
  296. CONFIG.A_Type {Unsigned} \
  297. CONFIG.A_Width {1} \
  298. CONFIG.Add_Mode {Add} \
  299. CONFIG.B_Constant {true} \
  300. CONFIG.B_Type {Unsigned} \
  301. CONFIG.B_Value {1} \
  302. CONFIG.B_Width {1} \
  303. CONFIG.CE {false} \
  304. CONFIG.Latency {1} \
  305. CONFIG.Latency_Configuration {Automatic} \
  306. CONFIG.Out_Width {1} \
  307. ] $negate_0
  308. # Create instance: packaging_1, and set properties
  309. set packaging_1 [ create_bd_cell -type ip -vlnv user.org:user:packaging:3.0 packaging_1 ]
  310. # Create instance: segment_0, and set properties
  311. set segment_0 [ create_bd_cell -type ip -vlnv xilinx.com:user:segment:1.0 segment_0 ]
  312. # Create instance: xlconcat_4, and set properties
  313. set xlconcat_4 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_4 ]
  314. set_property -dict [ list \
  315. CONFIG.IN0_WIDTH {4} \
  316. CONFIG.IN1_WIDTH {4} \
  317. CONFIG.IN2_WIDTH {8} \
  318. CONFIG.IN3_WIDTH {2} \
  319. CONFIG.IN4_WIDTH {5} \
  320. CONFIG.NUM_PORTS {3} \
  321. ] $xlconcat_4
  322. # Create instance: xlconcat_5, and set properties
  323. set xlconcat_5 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_5 ]
  324. set_property -dict [ list \
  325. CONFIG.IN0_WIDTH {9} \
  326. CONFIG.IN1_WIDTH {7} \
  327. CONFIG.IN2_WIDTH {8} \
  328. CONFIG.IN3_WIDTH {2} \
  329. CONFIG.IN4_WIDTH {5} \
  330. CONFIG.NUM_PORTS {2} \
  331. ] $xlconcat_5
  332. # Create instance: xlconstant_0, and set properties
  333. set xlconstant_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 xlconstant_0 ]
  334. set_property -dict [ list \
  335. CONFIG.CONST_VAL {0} \
  336. CONFIG.CONST_WIDTH {16} \
  337. ] $xlconstant_0
  338. # Create instance: xlconstant_1, and set properties
  339. set xlconstant_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconstant:1.1 xlconstant_1 ]
  340. set_property -dict [ list \
  341. CONFIG.CONST_VAL {0} \
  342. CONFIG.CONST_WIDTH {7} \
  343. ] $xlconstant_1
  344. # Create instance: xlslice_0, and set properties
  345. set xlslice_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 xlslice_0 ]
  346. set_property -dict [ list \
  347. CONFIG.DIN_FROM {7} \
  348. CONFIG.DIN_TO {0} \
  349. CONFIG.DIN_WIDTH {16} \
  350. CONFIG.DOUT_WIDTH {8} \
  351. ] $xlslice_0
  352. # Create interface connections
  353. connect_bd_intf_net -intf_net ethernet_transceiver2_0_fifo_read [get_bd_intf_pins ethernet_transceiver2_0/fifo_read] [get_bd_intf_pins fifo_output/FIFO_READ]
  354. connect_bd_intf_net -intf_net ethernet_transceiver2_0_fifo_write [get_bd_intf_pins ethernet_transceiver2_0/fifo_write] [get_bd_intf_pins fifo_input/FIFO_WRITE]
  355. connect_bd_intf_net -intf_net packaging_1_fifo_read [get_bd_intf_pins fifo_input/FIFO_READ] [get_bd_intf_pins packaging_1/fifo_read]
  356. connect_bd_intf_net -intf_net packaging_1_fifo_write [get_bd_intf_pins fifo_output/FIFO_WRITE] [get_bd_intf_pins packaging_1/fifo_write]
  357. # Create port connections
  358. connect_bd_net -net Net [get_bd_ports eth_rxd_0] [get_bd_pins ethernet_transceiver2_0/eth_rxd]
  359. connect_bd_net -net Net1 [get_bd_ports eth_txd_0] [get_bd_pins ethernet_transceiver2_0/eth_txd]
  360. connect_bd_net -net Net2 [get_bd_ports eth_crsdv_0] [get_bd_pins ethernet_transceiver2_0/eth_crsdv]
  361. connect_bd_net -net Net3 [get_bd_ports eth_txen_0] [get_bd_pins ethernet_transceiver2_0/eth_txen]
  362. connect_bd_net -net Net4 [get_bd_ports eth_rxerr_0] [get_bd_pins ethernet_transceiver2_0/eth_rxerr]
  363. connect_bd_net -net Net5 [get_bd_ports eth_mdio_0] [get_bd_pins ethernet_transceiver2_0/eth_mdio]
  364. connect_bd_net -net Net6 [get_bd_ports eth_rstn_0] [get_bd_pins ethernet_transceiver2_0/eth_rstn]
  365. connect_bd_net -net c_counter_binary_0_Q [get_bd_pins c_counter_binary_0/Q] [get_bd_pins segment_0/num2]
  366. connect_bd_net -net c_counter_binary_1_Q [get_bd_pins c_counter_binary_1/Q] [get_bd_pins segment_0/num1]
  367. connect_bd_net -net clk_wiz_clk_out1 [get_bd_ports clk_100MHz] [get_bd_pins c_counter_binary_0/CLK] [get_bd_pins c_counter_binary_1/CLK] [get_bd_pins ethernet_transceiver2_0/clk100mhz] [get_bd_pins fifo_input/clk] [get_bd_pins fifo_output/wr_clk] [get_bd_pins negate_0/CLK] [get_bd_pins packaging_1/clk] [get_bd_pins segment_0/clk]
  368. connect_bd_net -net ethernet_transceiver2_0_eth_mdc [get_bd_ports eth_mdc_0] [get_bd_pins ethernet_transceiver2_0/eth_mdc]
  369. connect_bd_net -net ethernet_transceiver2_0_eth_refclk [get_bd_ports eth_refclk_0] [get_bd_pins ethernet_transceiver2_0/eth_refclk] [get_bd_pins fifo_output/rd_clk]
  370. connect_bd_net -net ethernet_transceiver2_0_led16_b [get_bd_ports led16_b_0] [get_bd_pins ethernet_transceiver2_0/led16_b]
  371. connect_bd_net -net ethernet_transceiver2_0_led16_g [get_bd_ports led16_g_0] [get_bd_pins ethernet_transceiver2_0/led16_g]
  372. connect_bd_net -net ethernet_transceiver2_0_led16_r [get_bd_ports led16_r_0] [get_bd_pins ethernet_transceiver2_0/led16_r]
  373. connect_bd_net -net ethernet_transceiver2_0_led17_b [get_bd_ports led17_b_0] [get_bd_pins ethernet_transceiver2_0/led17_b]
  374. connect_bd_net -net ethernet_transceiver2_0_led17_g [get_bd_ports led17_g_0] [get_bd_pins ethernet_transceiver2_0/led17_g]
  375. connect_bd_net -net ethernet_transceiver2_0_led17_r [get_bd_ports led17_r_0] [get_bd_pins ethernet_transceiver2_0/led17_r]
  376. connect_bd_net -net fifo_input_overflow [get_bd_pins c_counter_binary_1/CE] [get_bd_pins fifo_input/overflow]
  377. connect_bd_net -net fifo_output_overflow [get_bd_pins c_counter_binary_0/CE] [get_bd_pins fifo_output/overflow]
  378. connect_bd_net -net fifo_output_rd_data_count [get_bd_pins fifo_output/rd_data_count] [get_bd_pins xlconcat_5/In0]
  379. connect_bd_net -net packaging_1_errorCode [get_bd_pins packaging_1/errorCode] [get_bd_pins xlconcat_4/In0]
  380. connect_bd_net -net packaging_1_stateOut [get_bd_pins packaging_1/stateOut] [get_bd_pins xlconcat_4/In1]
  381. connect_bd_net -net rst_clk_wiz_100M_peripheral_aresetn [get_bd_ports reset_rtl_0] [get_bd_pins ethernet_transceiver2_0/btn_reset] [get_bd_pins negate_0/A] [get_bd_pins packaging_1/rst]
  382. connect_bd_net -net segment_0_anodes [get_bd_ports anodes_0] [get_bd_pins segment_0/anodes]
  383. connect_bd_net -net segment_0_cathodes [get_bd_ports cathodes_0] [get_bd_pins segment_0/cathodes]
  384. connect_bd_net -net sw_0_1 [get_bd_ports sw_0] [get_bd_pins ethernet_transceiver2_0/ip]
  385. connect_bd_net -net xlconcat_4_dout [get_bd_ports led_0] [get_bd_pins xlconcat_4/dout]
  386. connect_bd_net -net xlconcat_5_dout [get_bd_pins ethernet_transceiver2_0/fifo_read_length] [get_bd_pins xlconcat_5/dout] [get_bd_pins xlslice_0/Din]
  387. connect_bd_net -net xlconstant_0_dout [get_bd_pins ethernet_transceiver2_0/udp_packet_checksum] [get_bd_pins xlconstant_0/dout]
  388. connect_bd_net -net xlconstant_1_dout [get_bd_pins xlconcat_5/In1] [get_bd_pins xlconstant_1/dout]
  389. connect_bd_net -net xlslice_0_Dout [get_bd_pins xlconcat_4/In2] [get_bd_pins xlslice_0/Dout]
  390. connect_bd_net -net xlslice_1_Dout [get_bd_pins c_counter_binary_0/SCLR] [get_bd_pins c_counter_binary_1/SCLR] [get_bd_pins fifo_input/srst] [get_bd_pins fifo_output/rst] [get_bd_pins negate_0/S]
  391. # Create address segments
  392. # Restore current instance
  393. current_bd_instance $oldCurInst
  394. save_bd_design
  395. }
  396. # End of create_root_design()
  397. ##################################################################
  398. # MAIN FLOW
  399. ##################################################################
  400. create_root_design ""
  401. common::send_msg_id "BD_TCL-1000" "WARNING" "This Tcl script was generated from a block design that has not been validated. It is possible that design <$design_name> may result in errors during validation."