################################################################ # This is a generated script based on design: MM7020_BD # # Though there are limitations about the generated script, # the main purpose of this utility is to make learning # IP Integrator Tcl commands easier. ################################################################ namespace eval _tcl { proc get_script_folder {} { set script_path [file normalize [info script]] set script_folder [file dirname $script_path] return $script_folder } } variable script_folder set script_folder [_tcl::get_script_folder] ################################################################ # Check if script is running in correct Vivado version. ################################################################ set scripts_vivado_version 2023.2 set current_vivado_version [version -short] if { [string first $scripts_vivado_version $current_vivado_version] == -1 } { puts "" if { [string compare $scripts_vivado_version $current_vivado_version] > 0 } { catch {common::send_gid_msg -ssname BD::TCL -id 2042 -severity "ERROR" " This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Sourcing the script failed since it was created with a future version of Vivado."} } else { catch {common::send_gid_msg -ssname BD::TCL -id 2041 -severity "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."} } return 1 } ################################################################ # START ################################################################ # To test this script, run the following commands from Vivado Tcl console: # source MM7020_BD_script.tcl # The design that will be created by this Tcl script contains the following # module references: # axi_lite_control, ad9361_spi_interface # Please add the sources of those modules before sourcing this Tcl script. # If there is no project opened, this script will create a # project, but make sure you do not have an existing project # <./myproj/project_1.xpr> in the current working folder. set list_projs [get_projects -quiet] if { $list_projs eq "" } { create_project project_1 myproj -part xc7z020clg400-2 } # CHANGE DESIGN NAME HERE variable design_name set design_name MM7020_BD # If you do not already have an existing IP Integrator design open, # you can create a design using the following command: # create_bd_design $design_name # Creating design if needed set errMsg "" set nRet 0 set cur_design [current_bd_design -quiet] set list_cells [get_bd_cells -quiet] if { ${design_name} eq "" } { # USE CASES: # 1) Design_name not set set errMsg "Please set the variable to a non-empty value." set nRet 1 } elseif { ${cur_design} ne "" && ${list_cells} eq "" } { # USE CASES: # 2): Current design opened AND is empty AND names same. # 3): Current design opened AND is empty AND names diff; design_name NOT in project. # 4): Current design opened AND is empty AND names diff; design_name exists in project. if { $cur_design ne $design_name } { common::send_gid_msg -ssname BD::TCL -id 2001 -severity "INFO" "Changing value of from <$design_name> to <$cur_design> since current design is empty." set design_name [get_property NAME $cur_design] } common::send_gid_msg -ssname BD::TCL -id 2002 -severity "INFO" "Constructing design in IPI design <$cur_design>..." } elseif { ${cur_design} ne "" && $list_cells ne "" && $cur_design eq $design_name } { # USE CASES: # 5) Current design opened AND has components AND same names. set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." set nRet 1 } elseif { [get_files -quiet ${design_name}.bd] ne "" } { # USE CASES: # 6) Current opened design, has components, but diff names, design_name exists in project. # 7) No opened design, design_name exists in project. set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." set nRet 2 } else { # USE CASES: # 8) No opened design, design_name not in project. # 9) Current opened design, has components, but diff names, design_name not in project. common::send_gid_msg -ssname BD::TCL -id 2003 -severity "INFO" "Currently there is no design <$design_name> in project, so creating one..." create_bd_design $design_name common::send_gid_msg -ssname BD::TCL -id 2004 -severity "INFO" "Making design <$design_name> as current_bd_design." current_bd_design $design_name } common::send_gid_msg -ssname BD::TCL -id 2005 -severity "INFO" "Currently the variable is equal to \"$design_name\"." if { $nRet != 0 } { catch {common::send_gid_msg -ssname BD::TCL -id 2006 -severity "ERROR" $errMsg} return $nRet } set bCheckIPsPassed 1 ################################################################## # CHECK IPs ################################################################## set bCheckIPs 1 if { $bCheckIPs == 1 } { set list_check_ips "\ xilinx.com:ip:axi_dma:7.1\ xilinx.com:ip:smartconnect:1.0\ xilinx.com:ip:axis_data_fifo:2.0\ xilinx.com:ip:processing_system7:5.5\ xilinx.com:ip:proc_sys_reset:5.0\ xilinx.com:ip:xlconcat:2.1\ xilinx.com:ip:vio:3.0\ xilinx.com:ip:mdm:3.2\ xilinx.com:ip:axis_dwidth_converter:1.1\ analog.com:user:spi_engine_execution:1.0\ analog.com:user:axi_spi_engine:1.0\ " set list_ips_missing "" common::send_gid_msg -ssname BD::TCL -id 2011 -severity "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ." foreach ip_vlnv $list_check_ips { set ip_obj [get_ipdefs -all $ip_vlnv] if { $ip_obj eq "" } { lappend list_ips_missing $ip_vlnv } } if { $list_ips_missing ne "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2012 -severity "ERROR" "The following IPs are not found in the IP Catalog:\n $list_ips_missing\n\nResolution: Please add the repository containing the IP(s) to the project." } set bCheckIPsPassed 0 } } ################################################################## # CHECK Modules ################################################################## set bCheckModules 1 if { $bCheckModules == 1 } { set list_check_mods "\ axi_lite_control\ ad9361_spi_interface\ " set list_mods_missing "" common::send_gid_msg -ssname BD::TCL -id 2020 -severity "INFO" "Checking if the following modules exist in the project's sources: $list_check_mods ." foreach mod_vlnv $list_check_mods { if { [can_resolve_reference $mod_vlnv] == 0 } { lappend list_mods_missing $mod_vlnv } } if { $list_mods_missing ne "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2021 -severity "ERROR" "The following module(s) are not found in the project: $list_mods_missing" } common::send_gid_msg -ssname BD::TCL -id 2022 -severity "INFO" "Please add source files for the missing module(s) above." set bCheckIPsPassed 0 } } if { $bCheckIPsPassed != 1 } { common::send_gid_msg -ssname BD::TCL -id 2023 -severity "WARNING" "Will not continue with creation of design due to the error(s) above." return 3 } ################################################################## # DESIGN PROCs ################################################################## # Hierarchical cell: ad9361_driver proc create_hier_cell_ad9361_driver { parentCell nameHier } { variable script_folder if { $parentCell eq "" || $nameHier eq "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2092 -severity "ERROR" "create_hier_cell_ad9361_driver() - Empty argument(s)!"} return } # Get object for parentCell set parentObj [get_bd_cells $parentCell] if { $parentObj == "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2090 -severity "ERROR" "Unable to find parent cell <$parentCell>!"} return } # Make sure parentObj is hier blk set parentType [get_property TYPE $parentObj] if { $parentType ne "hier" } { catch {common::send_gid_msg -ssname BD::TCL -id 2091 -severity "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} return } # Save current instance; Restore later set oldCurInst [current_bd_instance .] # Set parent object as current current_bd_instance $parentObj # Create cell and set as current instance set hier_obj [create_bd_cell -type hier $nameHier] current_bd_instance $hier_obj # Create interface pins create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 s_axi # Create pins create_bd_pin -dir I -type clk clk_sys create_bd_pin -dir I -type rst s_axi_aresetn create_bd_pin -dir I ad9361_spi_miso create_bd_pin -dir O ad9361_spi_csn create_bd_pin -dir O -type clk ad9361_spi_clk create_bd_pin -dir O ad9361_spi_mosi # Create instance: spi_engine_execution_0, and set properties set spi_engine_execution_0 [ create_bd_cell -type ip -vlnv analog.com:user:spi_engine_execution:1.0 spi_engine_execution_0 ] set_property CONFIG.NUM_OF_CS {2} $spi_engine_execution_0 # Create instance: axi_spi_engine_0, and set properties set axi_spi_engine_0 [ create_bd_cell -type ip -vlnv analog.com:user:axi_spi_engine:1.0 axi_spi_engine_0 ] # Create instance: ad9361_spi_interface, and set properties set block_name ad9361_spi_interface set block_cell_name ad9361_spi_interface if { [catch {set ad9361_spi_interface [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } { catch {common::send_gid_msg -ssname BD::TCL -id 2095 -severity "ERROR" "Unable to add referenced block <$block_name>. Please add the files for ${block_name}'s definition into the project."} return 1 } elseif { $ad9361_spi_interface eq "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2096 -severity "ERROR" "Unable to referenced block <$block_name>. Please add the files for ${block_name}'s definition into the project."} return 1 } # Create interface connections connect_bd_intf_net -intf_net axi_interconnect_M01_AXI [get_bd_intf_pins s_axi] [get_bd_intf_pins axi_spi_engine_0/s_axi] connect_bd_intf_net -intf_net axi_spi_engine_0_spi_engine_ctrl [get_bd_intf_pins axi_spi_engine_0/spi_engine_ctrl] [get_bd_intf_pins spi_engine_execution_0/ctrl] connect_bd_intf_net -intf_net axi_spi_engine_spi [get_bd_intf_pins ad9361_spi_interface/spi] [get_bd_intf_pins spi_engine_execution_0/spi] # Create port connections connect_bd_net -net Net1 [get_bd_pins clk_sys] [get_bd_pins axi_spi_engine_0/s_axi_aclk] [get_bd_pins axi_spi_engine_0/spi_clk] [get_bd_pins spi_engine_execution_0/clk] connect_bd_net -net ad9361_spi_interface_1_ad9361_spi_clk [get_bd_pins ad9361_spi_interface/ad9361_spi_clk] [get_bd_pins ad9361_spi_clk] connect_bd_net -net ad9361_spi_interface_1_ad9361_spi_csn [get_bd_pins ad9361_spi_interface/ad9361_spi_csn] [get_bd_pins ad9361_spi_csn] connect_bd_net -net ad9361_spi_interface_1_ad9361_spi_mosi [get_bd_pins ad9361_spi_interface/ad9361_spi_mosi] [get_bd_pins ad9361_spi_mosi] connect_bd_net -net ad9361_spi_miso_0_1 [get_bd_pins ad9361_spi_miso] [get_bd_pins ad9361_spi_interface/ad9361_spi_miso] connect_bd_net -net axi_spi_engine_0_spi_resetn [get_bd_pins axi_spi_engine_0/spi_resetn] [get_bd_pins spi_engine_execution_0/resetn] connect_bd_net -net axi_spi_engine_active_0 [get_bd_pins spi_engine_execution_0/active] [get_bd_pins ad9361_spi_interface/spi_active] connect_bd_net -net rst_ps7_0_50M_peripheral_aresetn [get_bd_pins s_axi_aresetn] [get_bd_pins axi_spi_engine_0/s_axi_aresetn] # Restore current instance current_bd_instance $oldCurInst } # Procedure to create entire design; Provide argument to make # procedure reusable. If parentCell is "", will use root. proc create_root_design { parentCell } { variable script_folder variable design_name if { $parentCell eq "" } { set parentCell [get_bd_cells /] } # Get object for parentCell set parentObj [get_bd_cells $parentCell] if { $parentObj == "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2090 -severity "ERROR" "Unable to find parent cell <$parentCell>!"} return } # Make sure parentObj is hier blk set parentType [get_property TYPE $parentObj] if { $parentType ne "hier" } { catch {common::send_gid_msg -ssname BD::TCL -id 2091 -severity "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} return } # Save current instance; Restore later set oldCurInst [current_bd_instance .] # Set parent object as current current_bd_instance $parentObj # Create interface ports set ddr [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:ddrx_rtl:1.0 ddr ] set fixed_io [ create_bd_intf_port -mode Master -vlnv xilinx.com:display_processing_system7:fixedio_rtl:1.0 fixed_io ] set tx_data_src [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:axis_rtl:1.0 tx_data_src ] set_property -dict [ list \ CONFIG.FREQ_HZ {100000000} \ ] $tx_data_src # Create ports set ad9361_spi_clk [ create_bd_port -dir O -type clk ad9361_spi_clk ] set ad9361_spi_csn [ create_bd_port -dir O ad9361_spi_csn ] set ad9361_spi_miso [ create_bd_port -dir I ad9361_spi_miso ] set ad9361_spi_mosi [ create_bd_port -dir O ad9361_spi_mosi ] set uart_rx [ create_bd_port -dir I uart_rx ] set uart_tx [ create_bd_port -dir O uart_tx ] set gpio_i [ create_bd_port -dir I -from 31 -to 0 gpio_i ] set gpio_o [ create_bd_port -dir O -from 31 -to 0 gpio_o ] set gpio_t [ create_bd_port -dir O -from 31 -to 0 gpio_t ] set tx_data_src_count [ create_bd_port -dir O -from 31 -to 0 tx_data_src_count ] set pl2ps_intr2 [ create_bd_port -dir I -from 0 -to 0 pl2ps_intr2 ] set pl2ps_intr3 [ create_bd_port -dir I -from 0 -to 0 pl2ps_intr3 ] set clk_ps [ create_bd_port -dir I -type clk -freq_hz 100000000 clk_ps ] set rst_ps [ create_bd_port -dir I -type rst rst_ps ] set_property -dict [ list \ CONFIG.POLARITY {ACTIVE_HIGH} \ ] $rst_ps set tx_test_flag [ create_bd_port -dir O tx_test_flag ] # Create instance: axi_dma_0, and set properties set axi_dma_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_dma:7.1 axi_dma_0 ] set_property -dict [list \ CONFIG.c_include_mm2s {1} \ CONFIG.c_include_mm2s_dre {0} \ CONFIG.c_include_s2mm {0} \ CONFIG.c_include_sg {0} \ CONFIG.c_micro_dma {0} \ CONFIG.c_mm2s_burst_size {256} \ CONFIG.c_sg_length_width {17} \ ] $axi_dma_0 # Create instance: axi_interconnect, and set properties set axi_interconnect [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_interconnect ] set_property CONFIG.NUM_MI {4} $axi_interconnect # Create instance: axi_smc, and set properties set axi_smc [ create_bd_cell -type ip -vlnv xilinx.com:ip:smartconnect:1.0 axi_smc ] set_property CONFIG.NUM_SI {1} $axi_smc # Create instance: axis_data_src_fifo, and set properties set axis_data_src_fifo [ create_bd_cell -type ip -vlnv xilinx.com:ip:axis_data_fifo:2.0 axis_data_src_fifo ] set_property -dict [list \ CONFIG.FIFO_DEPTH {16384} \ CONFIG.HAS_RD_DATA_COUNT {1} \ CONFIG.IS_ACLK_ASYNC {0} \ ] $axis_data_src_fifo # Create instance: ps, and set properties set ps [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 ps ] set_property -dict [list \ CONFIG.PCW_ACT_APU_PERIPHERAL_FREQMHZ {350.000000} \ CONFIG.PCW_ACT_CAN0_PERIPHERAL_FREQMHZ {23.8095} \ CONFIG.PCW_ACT_CAN1_PERIPHERAL_FREQMHZ {23.8095} \ CONFIG.PCW_ACT_CAN_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_DCI_PERIPHERAL_FREQMHZ {10.062893} \ CONFIG.PCW_ACT_ENET0_PERIPHERAL_FREQMHZ {125.000000} \ CONFIG.PCW_ACT_ENET1_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_FPGA0_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_I2C_PERIPHERAL_FREQMHZ {50} \ CONFIG.PCW_ACT_PCAP_PERIPHERAL_FREQMHZ {200.000000} \ CONFIG.PCW_ACT_QSPI_PERIPHERAL_FREQMHZ {200.000000} \ CONFIG.PCW_ACT_SDIO_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_SMC_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_SPI_PERIPHERAL_FREQMHZ {10.000000} \ CONFIG.PCW_ACT_TPIU_PERIPHERAL_FREQMHZ {200.000000} \ CONFIG.PCW_ACT_TTC0_CLK0_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_ACT_TTC0_CLK1_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_ACT_TTC0_CLK2_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_ACT_TTC1_CLK0_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_ACT_TTC1_CLK1_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_ACT_TTC1_CLK2_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_ACT_TTC_PERIPHERAL_FREQMHZ {50} \ CONFIG.PCW_ACT_UART_PERIPHERAL_FREQMHZ {100.000000} \ CONFIG.PCW_ACT_USB0_PERIPHERAL_FREQMHZ {60} \ CONFIG.PCW_ACT_USB1_PERIPHERAL_FREQMHZ {60} \ CONFIG.PCW_ACT_WDT_PERIPHERAL_FREQMHZ {58.333332} \ CONFIG.PCW_APU_CLK_RATIO_ENABLE {6:2:1} \ CONFIG.PCW_APU_PERIPHERAL_FREQMHZ {350} \ CONFIG.PCW_CAN0_PERIPHERAL_CLKSRC {External} \ CONFIG.PCW_CAN0_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_CAN1_PERIPHERAL_CLKSRC {External} \ CONFIG.PCW_CAN1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_CAN_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_CAN_PERIPHERAL_VALID {0} \ CONFIG.PCW_CLK0_FREQ {10000000} \ CONFIG.PCW_CLK1_FREQ {10000000} \ CONFIG.PCW_CLK2_FREQ {10000000} \ CONFIG.PCW_CLK3_FREQ {10000000} \ CONFIG.PCW_CORE0_FIQ_INTR {0} \ CONFIG.PCW_CORE0_IRQ_INTR {0} \ CONFIG.PCW_CORE1_FIQ_INTR {0} \ CONFIG.PCW_CORE1_IRQ_INTR {0} \ CONFIG.PCW_CPU_CPU_6X4X_MAX_RANGE {767} \ CONFIG.PCW_CPU_PERIPHERAL_CLKSRC {ARM PLL} \ CONFIG.PCW_CRYSTAL_PERIPHERAL_FREQMHZ {33.333333} \ CONFIG.PCW_DCI_PERIPHERAL_CLKSRC {DDR PLL} \ CONFIG.PCW_DCI_PERIPHERAL_FREQMHZ {10.159} \ CONFIG.PCW_DDR_PERIPHERAL_CLKSRC {DDR PLL} \ CONFIG.PCW_DDR_RAM_BASEADDR {0x00100000} \ CONFIG.PCW_DDR_RAM_HIGHADDR {0x1FFFFFFF} \ CONFIG.PCW_DM_WIDTH {4} \ CONFIG.PCW_DQS_WIDTH {4} \ CONFIG.PCW_DQ_WIDTH {32} \ CONFIG.PCW_ENET0_ENET0_IO {MIO 16 .. 27} \ CONFIG.PCW_ENET0_GRP_MDIO_ENABLE {1} \ CONFIG.PCW_ENET0_GRP_MDIO_IO {MIO 52 .. 53} \ CONFIG.PCW_ENET0_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_ENET0_PERIPHERAL_ENABLE {1} \ CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ {1000 Mbps} \ CONFIG.PCW_ENET1_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_ENET1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_ENET_RESET_POLARITY {Active Low} \ CONFIG.PCW_EN_4K_TIMER {0} \ CONFIG.PCW_EN_CAN0 {0} \ CONFIG.PCW_EN_CAN1 {0} \ CONFIG.PCW_EN_CLK0_PORT {0} \ CONFIG.PCW_EN_CLK1_PORT {0} \ CONFIG.PCW_EN_CLK2_PORT {0} \ CONFIG.PCW_EN_CLK3_PORT {0} \ CONFIG.PCW_EN_CLKTRIG0_PORT {0} \ CONFIG.PCW_EN_CLKTRIG1_PORT {0} \ CONFIG.PCW_EN_CLKTRIG2_PORT {0} \ CONFIG.PCW_EN_CLKTRIG3_PORT {0} \ CONFIG.PCW_EN_DDR {1} \ CONFIG.PCW_EN_EMIO_CAN0 {0} \ CONFIG.PCW_EN_EMIO_CAN1 {0} \ CONFIG.PCW_EN_EMIO_CD_SDIO0 {0} \ CONFIG.PCW_EN_EMIO_CD_SDIO1 {0} \ CONFIG.PCW_EN_EMIO_ENET0 {0} \ CONFIG.PCW_EN_EMIO_ENET1 {0} \ CONFIG.PCW_EN_EMIO_GPIO {1} \ CONFIG.PCW_EN_EMIO_I2C0 {0} \ CONFIG.PCW_EN_EMIO_I2C1 {0} \ CONFIG.PCW_EN_EMIO_MODEM_UART0 {0} \ CONFIG.PCW_EN_EMIO_MODEM_UART1 {0} \ CONFIG.PCW_EN_EMIO_PJTAG {0} \ CONFIG.PCW_EN_EMIO_SDIO0 {0} \ CONFIG.PCW_EN_EMIO_SDIO1 {0} \ CONFIG.PCW_EN_EMIO_SPI0 {0} \ CONFIG.PCW_EN_EMIO_SPI1 {0} \ CONFIG.PCW_EN_EMIO_SRAM_INT {0} \ CONFIG.PCW_EN_EMIO_TRACE {0} \ CONFIG.PCW_EN_EMIO_TTC0 {0} \ CONFIG.PCW_EN_EMIO_TTC1 {0} \ CONFIG.PCW_EN_EMIO_UART0 {1} \ CONFIG.PCW_EN_EMIO_UART1 {0} \ CONFIG.PCW_EN_EMIO_WDT {0} \ CONFIG.PCW_EN_EMIO_WP_SDIO0 {0} \ CONFIG.PCW_EN_EMIO_WP_SDIO1 {0} \ CONFIG.PCW_EN_ENET0 {1} \ CONFIG.PCW_EN_ENET1 {0} \ CONFIG.PCW_EN_GPIO {0} \ CONFIG.PCW_EN_I2C0 {0} \ CONFIG.PCW_EN_I2C1 {0} \ CONFIG.PCW_EN_MODEM_UART0 {0} \ CONFIG.PCW_EN_MODEM_UART1 {0} \ CONFIG.PCW_EN_PJTAG {0} \ CONFIG.PCW_EN_PTP_ENET0 {0} \ CONFIG.PCW_EN_PTP_ENET1 {0} \ CONFIG.PCW_EN_QSPI {1} \ CONFIG.PCW_EN_RST0_PORT {0} \ CONFIG.PCW_EN_RST1_PORT {0} \ CONFIG.PCW_EN_RST2_PORT {0} \ CONFIG.PCW_EN_RST3_PORT {0} \ CONFIG.PCW_EN_SDIO0 {0} \ CONFIG.PCW_EN_SDIO1 {0} \ CONFIG.PCW_EN_SMC {0} \ CONFIG.PCW_EN_SPI0 {0} \ CONFIG.PCW_EN_SPI1 {0} \ CONFIG.PCW_EN_TRACE {0} \ CONFIG.PCW_EN_TTC0 {1} \ CONFIG.PCW_EN_TTC1 {0} \ CONFIG.PCW_EN_UART0 {1} \ CONFIG.PCW_EN_UART1 {0} \ CONFIG.PCW_EN_USB0 {0} \ CONFIG.PCW_EN_USB1 {0} \ CONFIG.PCW_EN_WDT {0} \ CONFIG.PCW_FCLK0_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_FCLK1_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_FCLK2_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_FCLK3_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_FPGA0_PERIPHERAL_FREQMHZ {100} \ CONFIG.PCW_FPGA1_PERIPHERAL_FREQMHZ {50} \ CONFIG.PCW_FPGA2_PERIPHERAL_FREQMHZ {50} \ CONFIG.PCW_FPGA3_PERIPHERAL_FREQMHZ {50} \ CONFIG.PCW_GP0_EN_MODIFIABLE_TXN {1} \ CONFIG.PCW_GP0_NUM_READ_THREADS {4} \ CONFIG.PCW_GP0_NUM_WRITE_THREADS {4} \ CONFIG.PCW_GP1_EN_MODIFIABLE_TXN {1} \ CONFIG.PCW_GP1_NUM_READ_THREADS {4} \ CONFIG.PCW_GP1_NUM_WRITE_THREADS {4} \ CONFIG.PCW_GPIO_EMIO_GPIO_ENABLE {1} \ CONFIG.PCW_GPIO_EMIO_GPIO_IO {32} \ CONFIG.PCW_GPIO_EMIO_GPIO_WIDTH {32} \ CONFIG.PCW_GPIO_MIO_GPIO_ENABLE {0} \ CONFIG.PCW_GPIO_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_I2C0_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_I2C1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_I2C_RESET_POLARITY {Active Low} \ CONFIG.PCW_IMPORT_BOARD_PRESET {None} \ CONFIG.PCW_INCLUDE_ACP_TRANS_CHECK {0} \ CONFIG.PCW_IRQ_F2P_INTR {1} \ CONFIG.PCW_IRQ_F2P_MODE {DIRECT} \ CONFIG.PCW_MIO_16_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_16_PULLUP {enabled} \ CONFIG.PCW_MIO_16_SLEW {slow} \ CONFIG.PCW_MIO_17_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_17_PULLUP {enabled} \ CONFIG.PCW_MIO_17_SLEW {slow} \ CONFIG.PCW_MIO_18_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_18_PULLUP {enabled} \ CONFIG.PCW_MIO_18_SLEW {slow} \ CONFIG.PCW_MIO_19_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_19_PULLUP {enabled} \ CONFIG.PCW_MIO_19_SLEW {slow} \ CONFIG.PCW_MIO_1_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_1_PULLUP {enabled} \ CONFIG.PCW_MIO_1_SLEW {slow} \ CONFIG.PCW_MIO_20_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_20_PULLUP {enabled} \ CONFIG.PCW_MIO_20_SLEW {slow} \ CONFIG.PCW_MIO_21_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_21_PULLUP {enabled} \ CONFIG.PCW_MIO_21_SLEW {slow} \ CONFIG.PCW_MIO_22_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_22_PULLUP {enabled} \ CONFIG.PCW_MIO_22_SLEW {slow} \ CONFIG.PCW_MIO_23_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_23_PULLUP {enabled} \ CONFIG.PCW_MIO_23_SLEW {slow} \ CONFIG.PCW_MIO_24_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_24_PULLUP {enabled} \ CONFIG.PCW_MIO_24_SLEW {slow} \ CONFIG.PCW_MIO_25_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_25_PULLUP {enabled} \ CONFIG.PCW_MIO_25_SLEW {slow} \ CONFIG.PCW_MIO_26_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_26_PULLUP {enabled} \ CONFIG.PCW_MIO_26_SLEW {slow} \ CONFIG.PCW_MIO_27_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_27_PULLUP {enabled} \ CONFIG.PCW_MIO_27_SLEW {slow} \ CONFIG.PCW_MIO_2_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_2_SLEW {slow} \ CONFIG.PCW_MIO_30_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_30_PULLUP {enabled} \ CONFIG.PCW_MIO_30_SLEW {slow} \ CONFIG.PCW_MIO_31_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_31_PULLUP {enabled} \ CONFIG.PCW_MIO_31_SLEW {slow} \ CONFIG.PCW_MIO_3_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_3_SLEW {slow} \ CONFIG.PCW_MIO_4_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_4_SLEW {slow} \ CONFIG.PCW_MIO_52_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_52_PULLUP {enabled} \ CONFIG.PCW_MIO_52_SLEW {slow} \ CONFIG.PCW_MIO_53_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_53_PULLUP {enabled} \ CONFIG.PCW_MIO_53_SLEW {slow} \ CONFIG.PCW_MIO_5_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_5_SLEW {slow} \ CONFIG.PCW_MIO_6_IOTYPE {LVCMOS 1.8V} \ CONFIG.PCW_MIO_6_SLEW {slow} \ CONFIG.PCW_MIO_PRIMITIVE {54} \ CONFIG.PCW_MIO_TREE_PERIPHERALS {unassigned#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#Enet\ 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#unassigned#unassigned#Timer 0#Timer 0#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#Enet\ 0#Enet 0} \ CONFIG.PCW_MIO_TREE_SIGNALS {unassigned#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]/HOLD_B#qspi0_sclk#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#unassigned#unassigned#wave_out#clk_in#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#unassigned#mdc#mdio}\ \ CONFIG.PCW_M_AXI_GP0_ENABLE_STATIC_REMAP {0} \ CONFIG.PCW_M_AXI_GP0_ID_WIDTH {12} \ CONFIG.PCW_M_AXI_GP0_SUPPORT_NARROW_BURST {0} \ CONFIG.PCW_M_AXI_GP0_THREAD_ID_WIDTH {12} \ CONFIG.PCW_NAND_CYCLES_T_AR {1} \ CONFIG.PCW_NAND_CYCLES_T_CLR {1} \ CONFIG.PCW_NAND_CYCLES_T_RC {11} \ CONFIG.PCW_NAND_CYCLES_T_REA {1} \ CONFIG.PCW_NAND_CYCLES_T_RR {1} \ CONFIG.PCW_NAND_CYCLES_T_WC {11} \ CONFIG.PCW_NAND_CYCLES_T_WP {1} \ CONFIG.PCW_NOR_CS0_T_CEOE {1} \ CONFIG.PCW_NOR_CS0_T_PC {1} \ CONFIG.PCW_NOR_CS0_T_RC {11} \ CONFIG.PCW_NOR_CS0_T_TR {1} \ CONFIG.PCW_NOR_CS0_T_WC {11} \ CONFIG.PCW_NOR_CS0_T_WP {1} \ CONFIG.PCW_NOR_CS0_WE_TIME {0} \ CONFIG.PCW_NOR_CS1_T_CEOE {1} \ CONFIG.PCW_NOR_CS1_T_PC {1} \ CONFIG.PCW_NOR_CS1_T_RC {11} \ CONFIG.PCW_NOR_CS1_T_TR {1} \ CONFIG.PCW_NOR_CS1_T_WC {11} \ CONFIG.PCW_NOR_CS1_T_WP {1} \ CONFIG.PCW_NOR_CS1_WE_TIME {0} \ CONFIG.PCW_NOR_SRAM_CS0_T_CEOE {1} \ CONFIG.PCW_NOR_SRAM_CS0_T_PC {1} \ CONFIG.PCW_NOR_SRAM_CS0_T_RC {11} \ CONFIG.PCW_NOR_SRAM_CS0_T_TR {1} \ CONFIG.PCW_NOR_SRAM_CS0_T_WC {11} \ CONFIG.PCW_NOR_SRAM_CS0_T_WP {1} \ CONFIG.PCW_NOR_SRAM_CS0_WE_TIME {0} \ CONFIG.PCW_NOR_SRAM_CS1_T_CEOE {1} \ CONFIG.PCW_NOR_SRAM_CS1_T_PC {1} \ CONFIG.PCW_NOR_SRAM_CS1_T_RC {11} \ CONFIG.PCW_NOR_SRAM_CS1_T_TR {1} \ CONFIG.PCW_NOR_SRAM_CS1_T_WC {11} \ CONFIG.PCW_NOR_SRAM_CS1_T_WP {1} \ CONFIG.PCW_NOR_SRAM_CS1_WE_TIME {0} \ CONFIG.PCW_OVERRIDE_BASIC_CLOCK {0} \ CONFIG.PCW_P2F_UART0_INTR {0} \ CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY0 {0.096} \ CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY1 {0.102} \ CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY2 {0.100} \ CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY3 {0.090} \ CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_0 {-0.054} \ CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_1 {-0.040} \ CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_2 {-0.041} \ CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_3 {-0.010} \ CONFIG.PCW_PACKAGE_NAME {clg400} \ CONFIG.PCW_PCAP_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_PCAP_PERIPHERAL_FREQMHZ {200} \ CONFIG.PCW_PERIPHERAL_BOARD_PRESET {None} \ CONFIG.PCW_PJTAG_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_PLL_BYPASSMODE_ENABLE {0} \ CONFIG.PCW_PRESET_BANK0_VOLTAGE {LVCMOS 1.8V} \ CONFIG.PCW_PRESET_BANK1_VOLTAGE {LVCMOS 1.8V} \ CONFIG.PCW_PS7_SI_REV {PRODUCTION} \ CONFIG.PCW_QSPI_GRP_FBCLK_ENABLE {0} \ CONFIG.PCW_QSPI_GRP_IO1_ENABLE {0} \ CONFIG.PCW_QSPI_GRP_SINGLE_SS_ENABLE {1} \ CONFIG.PCW_QSPI_GRP_SINGLE_SS_IO {MIO 1 .. 6} \ CONFIG.PCW_QSPI_GRP_SS1_ENABLE {0} \ CONFIG.PCW_QSPI_INTERNAL_HIGHADDRESS {0xFCFFFFFF} \ CONFIG.PCW_QSPI_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_QSPI_PERIPHERAL_ENABLE {1} \ CONFIG.PCW_QSPI_PERIPHERAL_FREQMHZ {200} \ CONFIG.PCW_QSPI_QSPI_IO {MIO 1 .. 6} \ CONFIG.PCW_SD0_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_SD1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_SDIO_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_SDIO_PERIPHERAL_VALID {0} \ CONFIG.PCW_SINGLE_QSPI_DATA_MODE {x4} \ CONFIG.PCW_SMC_CYCLE_T0 {NA} \ CONFIG.PCW_SMC_CYCLE_T1 {NA} \ CONFIG.PCW_SMC_CYCLE_T2 {NA} \ CONFIG.PCW_SMC_CYCLE_T3 {NA} \ CONFIG.PCW_SMC_CYCLE_T4 {NA} \ CONFIG.PCW_SMC_CYCLE_T5 {NA} \ CONFIG.PCW_SMC_CYCLE_T6 {NA} \ CONFIG.PCW_SMC_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_SMC_PERIPHERAL_VALID {0} \ CONFIG.PCW_SPI0_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_SPI1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_SPI_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_SPI_PERIPHERAL_VALID {0} \ CONFIG.PCW_S_AXI_HP0_DATA_WIDTH {64} \ CONFIG.PCW_S_AXI_HP0_ID_WIDTH {6} \ CONFIG.PCW_TPIU_PERIPHERAL_CLKSRC {External} \ CONFIG.PCW_TRACE_INTERNAL_WIDTH {2} \ CONFIG.PCW_TRACE_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_TTC0_CLK0_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_TTC0_CLK0_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_TTC0_CLK1_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_TTC0_CLK1_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_TTC0_CLK2_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_TTC0_CLK2_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_TTC0_PERIPHERAL_ENABLE {1} \ CONFIG.PCW_TTC0_TTC0_IO {MIO 30 .. 31} \ CONFIG.PCW_TTC1_CLK0_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_TTC1_CLK0_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_TTC1_CLK1_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_TTC1_CLK1_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_TTC1_CLK2_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_TTC1_CLK2_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_TTC1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_TTC_PERIPHERAL_FREQMHZ {50} \ CONFIG.PCW_UART0_BASEADDR {0xE0000000} \ CONFIG.PCW_UART0_BAUD_RATE {115200} \ CONFIG.PCW_UART0_GRP_FULL_ENABLE {0} \ CONFIG.PCW_UART0_HIGHADDR {0xE0000FFF} \ CONFIG.PCW_UART0_PERIPHERAL_ENABLE {1} \ CONFIG.PCW_UART0_UART0_IO {EMIO} \ CONFIG.PCW_UART1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_UART_PERIPHERAL_CLKSRC {IO PLL} \ CONFIG.PCW_UART_PERIPHERAL_FREQMHZ {100} \ CONFIG.PCW_UART_PERIPHERAL_VALID {1} \ CONFIG.PCW_UIPARAM_ACT_DDR_FREQ_MHZ {200.000000} \ CONFIG.PCW_UIPARAM_DDR_ADV_ENABLE {0} \ CONFIG.PCW_UIPARAM_DDR_AL {0} \ CONFIG.PCW_UIPARAM_DDR_BL {8} \ CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY0 {0.521} \ CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY1 {0.636} \ CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY2 {0.54} \ CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY3 {0.621} \ CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH {16 Bit} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_0_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PACKAGE_LENGTH {80.0515} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_1_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PACKAGE_LENGTH {80.0515} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_2_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PACKAGE_LENGTH {80.0515} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_3_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PACKAGE_LENGTH {80.0515} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_CLOCK_STOP_EN {0} \ CONFIG.PCW_UIPARAM_DDR_DQS_0_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQS_0_PACKAGE_LENGTH {133.8645} \ CONFIG.PCW_UIPARAM_DDR_DQS_0_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQS_1_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQS_1_PACKAGE_LENGTH {119.997} \ CONFIG.PCW_UIPARAM_DDR_DQS_1_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQS_2_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQS_2_PACKAGE_LENGTH {121.146} \ CONFIG.PCW_UIPARAM_DDR_DQS_2_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQS_3_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQS_3_PACKAGE_LENGTH {90.125} \ CONFIG.PCW_UIPARAM_DDR_DQS_3_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 {0.226} \ CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1 {0.278} \ CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2 {0.184} \ CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3 {0.309} \ CONFIG.PCW_UIPARAM_DDR_DQ_0_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQ_0_PACKAGE_LENGTH {111.7605} \ CONFIG.PCW_UIPARAM_DDR_DQ_0_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQ_1_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQ_1_PACKAGE_LENGTH {123.5525} \ CONFIG.PCW_UIPARAM_DDR_DQ_1_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQ_2_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQ_2_PACKAGE_LENGTH {120.714} \ CONFIG.PCW_UIPARAM_DDR_DQ_2_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_DQ_3_LENGTH_MM {0} \ CONFIG.PCW_UIPARAM_DDR_DQ_3_PACKAGE_LENGTH {100.836} \ CONFIG.PCW_UIPARAM_DDR_DQ_3_PROPOGATION_DELAY {160} \ CONFIG.PCW_UIPARAM_DDR_ECC {Disabled} \ CONFIG.PCW_UIPARAM_DDR_ENABLE {1} \ CONFIG.PCW_UIPARAM_DDR_FREQ_MHZ {200} \ CONFIG.PCW_UIPARAM_DDR_HIGH_TEMP {Normal (0-85)} \ CONFIG.PCW_UIPARAM_DDR_MEMORY_TYPE {DDR 3} \ CONFIG.PCW_UIPARAM_DDR_PARTNO {MT41J256M16 RE-125} \ CONFIG.PCW_UIPARAM_DDR_TRAIN_DATA_EYE {0} \ CONFIG.PCW_UIPARAM_DDR_TRAIN_READ_GATE {0} \ CONFIG.PCW_UIPARAM_DDR_TRAIN_WRITE_LEVEL {0} \ CONFIG.PCW_UIPARAM_DDR_USE_INTERNAL_VREF {0} \ CONFIG.PCW_UIPARAM_GENERATE_SUMMARY {NONE} \ CONFIG.PCW_USB0_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_USB1_PERIPHERAL_ENABLE {0} \ CONFIG.PCW_USB_RESET_POLARITY {Active Low} \ CONFIG.PCW_USE_AXI_FABRIC_IDLE {0} \ CONFIG.PCW_USE_AXI_NONSECURE {0} \ CONFIG.PCW_USE_CORESIGHT {0} \ CONFIG.PCW_USE_CROSS_TRIGGER {0} \ CONFIG.PCW_USE_CR_FABRIC {1} \ CONFIG.PCW_USE_DDR_BYPASS {0} \ CONFIG.PCW_USE_DEBUG {0} \ CONFIG.PCW_USE_DMA0 {0} \ CONFIG.PCW_USE_DMA1 {0} \ CONFIG.PCW_USE_DMA2 {0} \ CONFIG.PCW_USE_DMA3 {0} \ CONFIG.PCW_USE_EXPANDED_IOP {0} \ CONFIG.PCW_USE_FABRIC_INTERRUPT {1} \ CONFIG.PCW_USE_HIGH_OCM {0} \ CONFIG.PCW_USE_M_AXI_GP0 {1} \ CONFIG.PCW_USE_M_AXI_GP1 {0} \ CONFIG.PCW_USE_PROC_EVENT_BUS {0} \ CONFIG.PCW_USE_PS_SLCR_REGISTERS {0} \ CONFIG.PCW_USE_S_AXI_ACP {0} \ CONFIG.PCW_USE_S_AXI_GP0 {0} \ CONFIG.PCW_USE_S_AXI_GP1 {0} \ CONFIG.PCW_USE_S_AXI_HP0 {1} \ CONFIG.PCW_USE_S_AXI_HP1 {0} \ CONFIG.PCW_USE_S_AXI_HP2 {0} \ CONFIG.PCW_USE_S_AXI_HP3 {0} \ CONFIG.PCW_USE_TRACE {0} \ CONFIG.PCW_VALUE_SILVERSION {3} \ CONFIG.PCW_WDT_PERIPHERAL_CLKSRC {CPU_1X} \ CONFIG.PCW_WDT_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_WDT_PERIPHERAL_ENABLE {0} \ ] $ps # Create instance: rst_ps7_100M, and set properties set rst_ps7_100M [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 rst_ps7_100M ] # Create instance: xlconcat_0, and set properties set xlconcat_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlconcat:2.1 xlconcat_0 ] set_property CONFIG.NUM_PORTS {5} $xlconcat_0 # Create instance: vio_0, and set properties set vio_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:vio:3.0 vio_0 ] set_property -dict [list \ CONFIG.C_EN_PROBE_IN_ACTIVITY {0} \ CONFIG.C_NUM_PROBE_IN {1} \ ] $vio_0 # Create instance: mdm_0, and set properties set mdm_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:mdm:3.2 mdm_0 ] set_property -dict [list \ CONFIG.C_MB_DBG_PORTS {0} \ CONFIG.C_USE_UART {1} \ ] $mdm_0 # Create instance: ad9361_driver create_hier_cell_ad9361_driver [current_bd_instance .] ad9361_driver # Create instance: axis_dwidth_converter_0, and set properties set axis_dwidth_converter_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axis_dwidth_converter:1.1 axis_dwidth_converter_0 ] set_property CONFIG.M_TDATA_NUM_BYTES {1} $axis_dwidth_converter_0 # Create instance: axis_data_fifo_0, and set properties set axis_data_fifo_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axis_data_fifo:2.0 axis_data_fifo_0 ] set_property -dict [list \ CONFIG.FIFO_DEPTH {16} \ CONFIG.FIFO_MEMORY_TYPE {distributed} \ CONFIG.HAS_RD_DATA_COUNT {0} \ CONFIG.HAS_TKEEP {0} \ CONFIG.HAS_TLAST {0} \ CONFIG.IS_ACLK_ASYNC {0} \ ] $axis_data_fifo_0 # Create instance: axi_lite_control_0, and set properties set block_name axi_lite_control set block_cell_name axi_lite_control_0 if { [catch {set axi_lite_control_0 [create_bd_cell -type module -reference $block_name $block_cell_name] } errmsg] } { catch {common::send_gid_msg -ssname BD::TCL -id 2095 -severity "ERROR" "Unable to add referenced block <$block_name>. Please add the files for ${block_name}'s definition into the project."} return 1 } elseif { $axi_lite_control_0 eq "" } { catch {common::send_gid_msg -ssname BD::TCL -id 2096 -severity "ERROR" "Unable to referenced block <$block_name>. Please add the files for ${block_name}'s definition into the project."} return 1 } # Create interface connections connect_bd_intf_net -intf_net S00_AXI_1 [get_bd_intf_pins axi_interconnect/S00_AXI] [get_bd_intf_pins ps/M_AXI_GP0] connect_bd_intf_net -intf_net axi_dma_0_M_AXIS_MM2S [get_bd_intf_pins axi_dma_0/M_AXIS_MM2S] [get_bd_intf_pins axis_data_src_fifo/S_AXIS] connect_bd_intf_net -intf_net axi_dma_0_M_AXI_MM2S [get_bd_intf_pins axi_dma_0/M_AXI_MM2S] [get_bd_intf_pins axi_smc/S00_AXI] connect_bd_intf_net -intf_net axi_interconnect_M00_AXI [get_bd_intf_pins axi_dma_0/S_AXI_LITE] [get_bd_intf_pins axi_interconnect/M00_AXI] connect_bd_intf_net -intf_net axi_interconnect_M01_AXI [get_bd_intf_pins axi_interconnect/M01_AXI] [get_bd_intf_pins ad9361_driver/s_axi] connect_bd_intf_net -intf_net axi_interconnect_M02_AXI [get_bd_intf_pins axi_interconnect/M02_AXI] [get_bd_intf_pins axi_lite_control_0/S_AXI] connect_bd_intf_net -intf_net axi_interconnect_M03_AXI [get_bd_intf_pins axi_interconnect/M03_AXI] [get_bd_intf_pins mdm_0/S_AXI] connect_bd_intf_net -intf_net axi_smc_M00_AXI [get_bd_intf_pins axi_smc/M00_AXI] [get_bd_intf_pins ps/S_AXI_HP0] connect_bd_intf_net -intf_net axis_data_fifo_1_M_AXIS [get_bd_intf_ports tx_data_src] [get_bd_intf_pins axis_data_fifo_0/M_AXIS] connect_bd_intf_net -intf_net axis_data_src_fifo_M_AXIS [get_bd_intf_pins axis_data_src_fifo/M_AXIS] [get_bd_intf_pins axis_dwidth_converter_0/S_AXIS] connect_bd_intf_net -intf_net axis_dwidth_converter_0_M_AXIS [get_bd_intf_pins axis_dwidth_converter_0/M_AXIS] [get_bd_intf_pins axis_data_fifo_0/S_AXIS] connect_bd_intf_net -intf_net processing_system7_0_DDR [get_bd_intf_ports ddr] [get_bd_intf_pins ps/DDR] connect_bd_intf_net -intf_net processing_system7_0_FIXED_IO [get_bd_intf_ports fixed_io] [get_bd_intf_pins ps/FIXED_IO] # Create port connections connect_bd_net -net ARESETN_1 [get_bd_pins rst_ps7_100M/interconnect_aresetn] [get_bd_pins axi_interconnect/ARESETN] connect_bd_net -net GPIO_I_1_1 [get_bd_ports gpio_i] [get_bd_pins ps/GPIO_I] connect_bd_net -net In2_0_1 [get_bd_ports pl2ps_intr2] [get_bd_pins xlconcat_0/In2] connect_bd_net -net In3_0_1 [get_bd_ports pl2ps_intr3] [get_bd_pins xlconcat_0/In3] connect_bd_net -net Net1 [get_bd_ports clk_ps] [get_bd_pins ps/M_AXI_GP0_ACLK] [get_bd_pins ps/S_AXI_HP0_ACLK] [get_bd_pins ad9361_driver/clk_sys] [get_bd_pins axi_dma_0/s_axi_lite_aclk] [get_bd_pins axi_dma_0/m_axi_mm2s_aclk] [get_bd_pins axi_interconnect/ACLK] [get_bd_pins axi_interconnect/S00_ACLK] [get_bd_pins axi_interconnect/M00_ACLK] [get_bd_pins axi_interconnect/M01_ACLK] [get_bd_pins axi_interconnect/M02_ACLK] [get_bd_pins axi_interconnect/M03_ACLK] [get_bd_pins axi_smc/aclk] [get_bd_pins axis_data_src_fifo/s_axis_aclk] [get_bd_pins axis_data_fifo_0/s_axis_aclk] [get_bd_pins axis_dwidth_converter_0/aclk] [get_bd_pins mdm_0/S_AXI_ACLK] [get_bd_pins rst_ps7_100M/slowest_sync_clk] [get_bd_pins vio_0/clk] [get_bd_pins axi_lite_control_0/s_axi_aclk] [get_bd_pins axi_lite_control_0/clk] connect_bd_net -net ad9361_spi_interface_1_ad9361_spi_clk [get_bd_pins ad9361_driver/ad9361_spi_clk] [get_bd_ports ad9361_spi_clk] connect_bd_net -net ad9361_spi_interface_1_ad9361_spi_csn [get_bd_pins ad9361_driver/ad9361_spi_csn] [get_bd_ports ad9361_spi_csn] connect_bd_net -net ad9361_spi_interface_1_ad9361_spi_mosi [get_bd_pins ad9361_driver/ad9361_spi_mosi] [get_bd_ports ad9361_spi_mosi] connect_bd_net -net ad9361_spi_miso_0_1 [get_bd_ports ad9361_spi_miso] [get_bd_pins ad9361_driver/ad9361_spi_miso] connect_bd_net -net axi_dma_0_mm2s_introut [get_bd_pins axi_dma_0/mm2s_introut] [get_bd_pins xlconcat_0/In0] connect_bd_net -net axi_lite_control_0_tx_test_flag [get_bd_pins axi_lite_control_0/tx_test_flag] [get_bd_ports tx_test_flag] connect_bd_net -net axis_data_fifo_0_axis_rd_data_count [get_bd_pins axis_data_src_fifo/axis_rd_data_count] [get_bd_ports tx_data_src_count] [get_bd_pins vio_0/probe_in0] connect_bd_net -net mdm_0_Interrupt [get_bd_pins mdm_0/Interrupt] [get_bd_pins xlconcat_0/In4] connect_bd_net -net processing_system7_0_GPIO_O [get_bd_pins ps/GPIO_O] [get_bd_ports gpio_o] connect_bd_net -net processing_system7_0_GPIO_T [get_bd_pins ps/GPIO_T] [get_bd_ports gpio_t] connect_bd_net -net processing_system7_0_UART0_TX [get_bd_pins ps/UART0_TX] [get_bd_ports uart_tx] connect_bd_net -net rst_ps7_0_50M_peripheral_aresetn [get_bd_pins rst_ps7_100M/peripheral_aresetn] [get_bd_pins ad9361_driver/s_axi_aresetn] [get_bd_pins axi_dma_0/axi_resetn] [get_bd_pins axi_interconnect/S00_ARESETN] [get_bd_pins axi_interconnect/M00_ARESETN] [get_bd_pins axi_interconnect/M01_ARESETN] [get_bd_pins axi_interconnect/M02_ARESETN] [get_bd_pins axi_interconnect/M03_ARESETN] [get_bd_pins axi_smc/aresetn] [get_bd_pins axis_data_src_fifo/s_axis_aresetn] [get_bd_pins axis_data_fifo_0/s_axis_aresetn] [get_bd_pins axis_dwidth_converter_0/aresetn] [get_bd_pins mdm_0/S_AXI_ARESETN] [get_bd_pins axi_lite_control_0/s_axi_aresetn] [get_bd_pins axi_lite_control_0/rstn] connect_bd_net -net rst_ps_1 [get_bd_ports rst_ps] [get_bd_pins rst_ps7_100M/ext_reset_in] connect_bd_net -net uart0_rx_1 [get_bd_ports uart_rx] [get_bd_pins ps/UART0_RX] connect_bd_net -net vio_0_probe_out0 [get_bd_pins vio_0/probe_out0] [get_bd_pins xlconcat_0/In1] [get_bd_pins axi_lite_control_0/req] connect_bd_net -net xlconcat_0_dout [get_bd_pins xlconcat_0/dout] [get_bd_pins ps/IRQ_F2P] # Create address segments assign_bd_address -offset 0x00000000 -range 0x00020000 -with_name SEG_processing_system7_0_HP0_DDR_LOWOCM -target_address_space [get_bd_addr_spaces axi_dma_0/Data_MM2S] [get_bd_addr_segs ps/S_AXI_HP0/HP0_DDR_LOWOCM] -force assign_bd_address -offset 0x40400000 -range 0x00010000 -target_address_space [get_bd_addr_spaces ps/Data] [get_bd_addr_segs axi_dma_0/S_AXI_LITE/Reg] -force assign_bd_address -offset 0x43C10000 -range 0x00010000 -target_address_space [get_bd_addr_spaces ps/Data] [get_bd_addr_segs axi_lite_control_0/S_AXI/reg0] -force assign_bd_address -offset 0x43C00000 -range 0x00010000 -target_address_space [get_bd_addr_spaces ps/Data] [get_bd_addr_segs ad9361_driver/axi_spi_engine_0/s_axi/axi_lite] -force assign_bd_address -offset 0x43400000 -range 0x00001000 -target_address_space [get_bd_addr_spaces ps/Data] [get_bd_addr_segs mdm_0/S_AXI/Reg] -force # Restore current instance current_bd_instance $oldCurInst validate_bd_design save_bd_design } # End of create_root_design() ################################################################## # MAIN FLOW ################################################################## create_root_design ""