diff --git a/projects/usdrx1/common/usdrx1_bd.tcl b/projects/usdrx1/common/usdrx1_bd.tcl index 1fda956ab..f921f3491 100644 --- a/projects/usdrx1/common/usdrx1_bd.tcl +++ b/projects/usdrx1/common/usdrx1_bd.tcl @@ -78,18 +78,22 @@ set_property -dict [list CONFIG.PCORE_PMA_RSV {0x00018480}] $axi_usdrx1_gt set_property -dict [list CONFIG.PCORE_RX_CDR_CFG {0x03000023ff20400020}] $axi_usdrx1_gt set axi_usdrx1_dma [create_bd_cell -type ip -vlnv analog.com:user:axi_dmac:1.0 axi_usdrx1_dma] -set_property -dict [list CONFIG.DMA_TYPE_SRC {2}] $axi_usdrx1_dma + +set_property -dict [list CONFIG.DMA_TYPE_SRC {1}] $axi_usdrx1_dma set_property -dict [list CONFIG.DMA_TYPE_DEST {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.ID {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.AXI_SLICE_SRC {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.AXI_SLICE_DEST {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.ASYNC_CLK_DEST_REQ {1}] $axi_usdrx1_dma +set_property -dict [list CONFIG.CLKS_ASYNC_REQ_SRC {1}] $axi_usdrx1_dma +set_property -dict [list CONFIG.CLKS_ASYNC_SRC_DEST {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.SYNC_TRANSFER_START {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.DMA_LENGTH_WIDTH {24}] $axi_usdrx1_dma set_property -dict [list CONFIG.DMA_2D_TRANSFER {0}] $axi_usdrx1_dma set_property -dict [list CONFIG.CYCLIC {0}] $axi_usdrx1_dma -set_property -dict [list CONFIG.DMA_DATA_WIDTH_SRC {512}] $axi_usdrx1_dma +set_property -dict [list CONFIG.DMA_DATA_WIDTH_SRC {64}] $axi_usdrx1_dma set_property -dict [list CONFIG.DMA_DATA_WIDTH_DEST {64}] $axi_usdrx1_dma +set_property -dict [list CONFIG.FIFO_SIZE {8}] $axi_usdrx1_dma set axi_usdrx1_spi [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_quad_spi:3.2 axi_usdrx1_spi] set_property -dict [list CONFIG.C_USE_STARTUP {0}] $axi_usdrx1_spi @@ -199,7 +203,7 @@ ad_connect gt_rx_data_2 axi_ad9671_core_2/rx_data ad_connect gt_rx_sof_2 axi_ad9671_core_2/rx_sof ad_connect gt_rx_data_3 axi_ad9671_core_3/rx_data ad_connect gt_rx_sof_3 axi_ad9671_core_3/rx_sof -ad_connect axi_ad9671_core_0/adc_clk axi_usdrx1_dma/fifo_wr_clk +ad_connect axi_ad9671_core_0/adc_clk usdrx1_fifo/adc_clk ad_connect adc_data_0 axi_ad9671_core_0/adc_data ad_connect adc_data_1 axi_ad9671_core_1/adc_data ad_connect adc_data_2 axi_ad9671_core_2/adc_data @@ -216,9 +220,8 @@ ad_connect adc_dovf_0 axi_ad9671_core_0/adc_dovf ad_connect adc_dovf_1 axi_ad9671_core_1/adc_dovf ad_connect adc_dovf_2 axi_ad9671_core_2/adc_dovf ad_connect adc_dovf_3 axi_ad9671_core_3/adc_dovf -ad_connect adc_wr_en axi_usdrx1_dma/fifo_wr_en -ad_connect adc_data axi_usdrx1_dma/fifo_wr_din -ad_connect adc_dovf axi_usdrx1_dma/fifo_wr_overflow +ad_connect adc_wr_en usdrx1_fifo/adc_wr +ad_connect adc_data usdrx1_fifo/adc_wdata ad_connect axi_ad9671_adc_raddr axi_ad9671_core_0/adc_raddr_out ad_connect axi_ad9671_adc_raddr axi_ad9671_core_1/adc_raddr_in ad_connect axi_ad9671_adc_raddr axi_ad9671_core_2/adc_raddr_in @@ -228,6 +231,16 @@ ad_connect axi_ad9671_adc_sync axi_ad9671_core_1/adc_sync_in ad_connect axi_ad9671_adc_sync axi_ad9671_core_2/adc_sync_in ad_connect axi_ad9671_adc_sync axi_ad9671_core_3/adc_sync_in +ad_connect axi_usdrx1_gt/rx_rst usdrx1_fifo/adc_rst +ad_connect adc_dovf usdrx1_fifo/adc_wovf + +ad_connect usdrx1_fifo/dma_wdata axi_usdrx1_dma/s_axis_data +ad_connect usdrx1_fifo/dma_wr axi_usdrx1_dma/s_axis_valid +ad_connect usdrx1_fifo/dma_wready axi_usdrx1_dma/s_axis_ready +ad_connect usdrx1_fifo/dma_xfer_req axi_usdrx1_dma/s_axis_xfer_req +ad_connect sys_200m_clk axi_usdrx1_dma/s_axis_aclk +ad_connect sys_200m_clk usdrx1_fifo/dma_clk + # address map ad_cpu_interconnect 0x44A00000 axi_ad9671_core_0 @@ -240,9 +253,9 @@ ad_cpu_interconnect 0x44A91000 axi_usdrx1_jesd ad_cpu_interconnect 0x7c400000 axi_usdrx1_dma ad_cpu_interconnect 0x7c420000 axi_usdrx1_spi -ad_mem_hp1_interconnect sys_cpu_clk sys_ps7/S_AXI_HP1 -ad_mem_hp1_interconnect sys_cpu_clk axi_usdrx1_dma/m_dest_axi -ad_connect sys_cpu_resetn axi_usdrx1_dma/m_dest_axi_aresetn +ad_mem_hp2_interconnect sys_200m_clk sys_ps7/S_AXI_HP2 +ad_mem_hp2_interconnect sys_200m_clk axi_usdrx1_dma/m_dest_axi +ad_connect sys_cpu_resetn axi_usdrx1_dma/m_dest_axi_aresetn ad_mem_hp3_interconnect sys_cpu_clk sys_ps7/S_AXI_HP3 ad_mem_hp3_interconnect sys_cpu_clk axi_usdrx1_gt/m_axi diff --git a/projects/usdrx1/zc706/system_bd.tcl b/projects/usdrx1/zc706/system_bd.tcl index 18ec3434c..0657c681c 100644 --- a/projects/usdrx1/zc706/system_bd.tcl +++ b/projects/usdrx1/zc706/system_bd.tcl @@ -1,4 +1,22 @@ source $ad_hdl_dir/projects/common/zc706/zc706_system_bd.tcl -source ../common/usdrx1_bd.tcl +source $ad_hdl_dir/projects/common/zc706/zc706_system_plddr3.tcl +p_plddr3_fifo [current_bd_instance .] usdrx1_fifo 512 + +create_bd_port -dir I -type rst sys_rst +create_bd_intf_port -mode Master -vlnv xilinx.com:interface:ddrx_rtl:1.0 ddr3 +create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:diff_clock_rtl:1.0 sys_clk + +set_property CONFIG.POLARITY ACTIVE_HIGH [get_bd_ports sys_rst] + +ad_connect sys_rst usdrx1_fifo/sys_rst +ad_connect sys_clk usdrx1_fifo/sys_clk +ad_connect ddr3 usdrx1_fifo/ddr3 + +create_bd_addr_seg -range 0x40000000 -offset 0x80000000 \ + [get_bd_addr_spaces usdrx1_fifo/axi_adcfifo/axi] \ + [get_bd_addr_segs usdrx1_fifo/axi_ddr_cntrl/memmap/memaddr] \ + SEG_axi_ddr_cntrl_memaddr + +source ../common/usdrx1_bd.tcl diff --git a/projects/usdrx1/zc706/system_project.tcl b/projects/usdrx1/zc706/system_project.tcl index 629ece234..e022ae874 100644 --- a/projects/usdrx1/zc706/system_project.tcl +++ b/projects/usdrx1/zc706/system_project.tcl @@ -10,6 +10,7 @@ adi_project_files usdrx1_zc706 [list \ "system_top.v" \ "system_constr.xdc" \ "../common/usdrx1_spi.v" \ + "$ad_hdl_dir/projects/common/zc706/zc706_system_mig_constr.xdc" \ "$ad_hdl_dir/projects/common/zc706/zc706_system_constr.xdc" ] adi_project_run usdrx1_zc706 diff --git a/projects/usdrx1/zc706/system_top.v b/projects/usdrx1/zc706/system_top.v index ca07ae87e..c73b1a051 100644 --- a/projects/usdrx1/zc706/system_top.v +++ b/projects/usdrx1/zc706/system_top.v @@ -74,6 +74,26 @@ module system_top ( spdif, + sys_rst, + sys_clk_p, + sys_clk_n, + + ddr3_addr, + ddr3_ba, + ddr3_cas_n, + ddr3_ck_n, + ddr3_ck_p, + ddr3_cke, + ddr3_cs_n, + ddr3_dm, + ddr3_dq, + ddr3_dqs_n, + ddr3_dqs_p, + ddr3_odt, + ddr3_ras_n, + ddr3_reset_n, + ddr3_we_n, + iic_scl, iic_sda, @@ -152,6 +172,26 @@ module system_top ( output spdif; + input sys_rst; + input sys_clk_p; + input sys_clk_n; + + output [13:0] ddr3_addr; + output [ 2:0] ddr3_ba; + output ddr3_cas_n; + output [ 0:0] ddr3_ck_n; + output [ 0:0] ddr3_ck_p; + output [ 0:0] ddr3_cke; + output [ 0:0] ddr3_cs_n; + output [ 7:0] ddr3_dm; + inout [63:0] ddr3_dq; + inout [ 7:0] ddr3_dqs_n; + inout [ 7:0] ddr3_dqs_p; + output [ 0:0] ddr3_odt; + output ddr3_ras_n; + output ddr3_reset_n; + output ddr3_we_n; + inout iic_scl; inout iic_sda; @@ -360,6 +400,24 @@ module system_top ( endgenerate system_wrapper i_system_wrapper ( + .sys_clk_clk_n (sys_clk_n), + .sys_clk_clk_p (sys_clk_p), + .sys_rst (sys_rst), + .ddr3_addr (ddr3_addr), + .ddr3_ba (ddr3_ba), + .ddr3_cas_n (ddr3_cas_n), + .ddr3_ck_n (ddr3_ck_n), + .ddr3_ck_p (ddr3_ck_p), + .ddr3_cke (ddr3_cke), + .ddr3_cs_n (ddr3_cs_n), + .ddr3_dm (ddr3_dm), + .ddr3_dq (ddr3_dq), + .ddr3_dqs_n (ddr3_dqs_n), + .ddr3_dqs_p (ddr3_dqs_p), + .ddr3_odt (ddr3_odt), + .ddr3_ras_n (ddr3_ras_n), + .ddr3_reset_n (ddr3_reset_n), + .ddr3_we_n (ddr3_we_n), .ddr_addr (ddr_addr), .ddr_ba (ddr_ba), .ddr_cas_n (ddr_cas_n),