diff --git a/library/util_dac_unpack/util_dac_unpack.v b/library/util_dac_unpack/util_dac_unpack.v index fd061c66e..aafc9a508 100755 --- a/library/util_dac_unpack/util_dac_unpack.v +++ b/library/util_dac_unpack/util_dac_unpack.v @@ -41,26 +41,49 @@ module util_dac_unpack ( - chan_data_0, - chan_data_1, - chan_data_2, - chan_data_3, + dac_enable_00, + dac_valid_00, + dac_data_00, - dma_data + dac_enable_01, + dac_valid_01, + dac_data_01, - ); + dac_enable_02, + dac_valid_02, + dac_data_02, - output [15:0] chan_data_0; - output [15:0] chan_data_1; - output [15:0] chan_data_2; - output [15:0] chan_data_3; + dac_enable_03, + dac_valid_03, + dac_data_03, - input [63:0] dma_data; + dma_rd, + dma_data); - assign chan_data_0 = dma_data[15:0 ]; - assign chan_data_1 = dma_data[31:16]; - assign chan_data_2 = dma_data[47:32]; - assign chan_data_3 = dma_data[63:48]; + input dac_enable_00; + input dac_valid_00; + output [ 15:0] dac_data_00; + + input dac_enable_01; + input dac_valid_01; + output [ 15:0] dac_data_01; + + input dac_enable_02; + input dac_valid_02; + output [ 15:0] dac_data_02; + + input dac_enable_03; + input dac_valid_03; + output [ 15:0] dac_data_03; + + output dma_rd; + input [ 63:0] dma_data; + + assign dma_rd = dac_valid_00 | dac_valid_01 | dac_valid_02 | dac_valid_03; + assign dac_data_00 = dma_data[15: 0]; + assign dac_data_01 = dma_data[31:16]; + assign dac_data_02 = dma_data[47:32]; + assign dac_data_03 = dma_data[63:48]; endmodule diff --git a/projects/fmcomms2/common/fmcomms2_bd.tcl b/projects/fmcomms2/common/fmcomms2_bd.tcl index 524bdc83d..54dae6418 100755 --- a/projects/fmcomms2/common/fmcomms2_bd.tcl +++ b/projects/fmcomms2/common/fmcomms2_bd.tcl @@ -167,29 +167,38 @@ if {$sys_zynq == 0} { connect_bd_net -net axi_ad9361_tx_data_out_n [get_bd_ports tx_data_out_n] [get_bd_pins axi_ad9361/tx_data_out_n] connect_bd_net -net axi_ad9361_clk [get_bd_pins util_adc_pack/clk] - connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins axi_ad9361/adc_valid_0] [get_bd_pins util_adc_pack/chan_valid_0] - connect_bd_net -net axi_ad9361_adc_valid_1 [get_bd_pins axi_ad9361/adc_valid_1] [get_bd_pins util_adc_pack/chan_valid_1] - connect_bd_net -net axi_ad9361_adc_valid_2 [get_bd_pins axi_ad9361/adc_valid_2] [get_bd_pins util_adc_pack/chan_valid_2] - connect_bd_net -net axi_ad9361_adc_valid_3 [get_bd_pins axi_ad9361/adc_valid_3] [get_bd_pins util_adc_pack/chan_valid_3] - connect_bd_net -net axi_ad9361_adc_enable_0 [get_bd_pins axi_ad9361/adc_enable_0] [get_bd_pins util_adc_pack/chan_enable_0] - connect_bd_net -net axi_ad9361_adc_enable_1 [get_bd_pins axi_ad9361/adc_enable_1] [get_bd_pins util_adc_pack/chan_enable_1] - connect_bd_net -net axi_ad9361_adc_enable_2 [get_bd_pins axi_ad9361/adc_enable_2] [get_bd_pins util_adc_pack/chan_enable_2] - connect_bd_net -net axi_ad9361_adc_enable_3 [get_bd_pins axi_ad9361/adc_enable_3] [get_bd_pins util_adc_pack/chan_enable_3] - connect_bd_net -net axi_ad9361_adc_chan_i1 [get_bd_pins axi_ad9361/adc_chan_i1] [get_bd_pins util_adc_pack/chan_data_0] - connect_bd_net -net axi_ad9361_adc_chan_q1 [get_bd_pins axi_ad9361/adc_chan_q1] [get_bd_pins util_adc_pack/chan_data_1] - connect_bd_net -net axi_ad9361_adc_chan_i2 [get_bd_pins axi_ad9361/adc_chan_i2] [get_bd_pins util_adc_pack/chan_data_2] - connect_bd_net -net axi_ad9361_adc_chan_q2 [get_bd_pins axi_ad9361/adc_chan_q2] [get_bd_pins util_adc_pack/chan_data_3] + connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins axi_ad9361/adc_valid_i0] [get_bd_pins util_adc_pack/chan_valid_0] + connect_bd_net -net axi_ad9361_adc_valid_1 [get_bd_pins axi_ad9361/adc_valid_q0] [get_bd_pins util_adc_pack/chan_valid_1] + connect_bd_net -net axi_ad9361_adc_valid_2 [get_bd_pins axi_ad9361/adc_valid_i1] [get_bd_pins util_adc_pack/chan_valid_2] + connect_bd_net -net axi_ad9361_adc_valid_3 [get_bd_pins axi_ad9361/adc_valid_q1] [get_bd_pins util_adc_pack/chan_valid_3] + connect_bd_net -net axi_ad9361_adc_enable_0 [get_bd_pins axi_ad9361/adc_enable_i0] [get_bd_pins util_adc_pack/chan_enable_0] + connect_bd_net -net axi_ad9361_adc_enable_1 [get_bd_pins axi_ad9361/adc_enable_q0] [get_bd_pins util_adc_pack/chan_enable_1] + connect_bd_net -net axi_ad9361_adc_enable_2 [get_bd_pins axi_ad9361/adc_enable_i1] [get_bd_pins util_adc_pack/chan_enable_2] + connect_bd_net -net axi_ad9361_adc_enable_3 [get_bd_pins axi_ad9361/adc_enable_q1] [get_bd_pins util_adc_pack/chan_enable_3] + connect_bd_net -net axi_ad9361_adc_chan_i1 [get_bd_pins axi_ad9361/adc_data_i0] [get_bd_pins util_adc_pack/chan_data_0] + connect_bd_net -net axi_ad9361_adc_chan_q1 [get_bd_pins axi_ad9361/adc_data_q0] [get_bd_pins util_adc_pack/chan_data_1] + connect_bd_net -net axi_ad9361_adc_chan_i2 [get_bd_pins axi_ad9361/adc_data_i1] [get_bd_pins util_adc_pack/chan_data_2] + connect_bd_net -net axi_ad9361_adc_chan_q2 [get_bd_pins axi_ad9361/adc_data_q1] [get_bd_pins util_adc_pack/chan_data_3] connect_bd_net -net util_adc_pack_dvalid [get_bd_pins util_adc_pack/dvalid] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_en] connect_bd_net -net util_adc_pack_dsync [get_bd_pins util_adc_pack/dsync] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_sync] connect_bd_net -net util_adc_pack_ddata [get_bd_pins util_adc_pack/ddata] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_din] connect_bd_net -net axi_ad9361_adc_dovf [get_bd_pins axi_ad9361/adc_dovf] [get_bd_pins axi_ad9361_adc_dma/fifo_wr_overflow] - connect_bd_net -net axi_ad9361_dac_data_0 [get_bd_pins util_dac_unpack/chan_data_0] [get_bd_pins axi_ad9361/dac_data_0] - connect_bd_net -net axi_ad9361_dac_data_1 [get_bd_pins util_dac_unpack/chan_data_1] [get_bd_pins axi_ad9361/dac_data_1] - connect_bd_net -net axi_ad9361_dac_data_2 [get_bd_pins util_dac_unpack/chan_data_2] [get_bd_pins axi_ad9361/dac_data_2] - connect_bd_net -net axi_ad9361_dac_data_3 [get_bd_pins util_dac_unpack/chan_data_3] [get_bd_pins axi_ad9361/dac_data_3] + connect_bd_net -net axi_ad9361_dac_valid_0 [get_bd_pins util_dac_unpack/dac_valid_00] [get_bd_pins axi_ad9361/dac_valid_i0] + connect_bd_net -net axi_ad9361_dac_valid_1 [get_bd_pins util_dac_unpack/dac_valid_01] [get_bd_pins axi_ad9361/dac_valid_q0] + connect_bd_net -net axi_ad9361_dac_valid_2 [get_bd_pins util_dac_unpack/dac_valid_02] [get_bd_pins axi_ad9361/dac_valid_i1] + connect_bd_net -net axi_ad9361_dac_valid_3 [get_bd_pins util_dac_unpack/dac_valid_03] [get_bd_pins axi_ad9361/dac_valid_q1] + connect_bd_net -net axi_ad9361_dac_enable_0 [get_bd_pins util_dac_unpack/dac_enable_00] [get_bd_pins axi_ad9361/dac_enable_i0] + connect_bd_net -net axi_ad9361_dac_enable_1 [get_bd_pins util_dac_unpack/dac_enable_01] [get_bd_pins axi_ad9361/dac_enable_q0] + connect_bd_net -net axi_ad9361_dac_enable_2 [get_bd_pins util_dac_unpack/dac_enable_02] [get_bd_pins axi_ad9361/dac_enable_i1] + connect_bd_net -net axi_ad9361_dac_enable_3 [get_bd_pins util_dac_unpack/dac_enable_03] [get_bd_pins axi_ad9361/dac_enable_q1] + connect_bd_net -net axi_ad9361_dac_data_0 [get_bd_pins util_dac_unpack/dac_data_00] [get_bd_pins axi_ad9361/dac_data_i0] + connect_bd_net -net axi_ad9361_dac_data_1 [get_bd_pins util_dac_unpack/dac_data_01] [get_bd_pins axi_ad9361/dac_data_q0] + connect_bd_net -net axi_ad9361_dac_data_2 [get_bd_pins util_dac_unpack/dac_data_02] [get_bd_pins axi_ad9361/dac_data_i1] + connect_bd_net -net axi_ad9361_dac_data_3 [get_bd_pins util_dac_unpack/dac_data_03] [get_bd_pins axi_ad9361/dac_data_q1] + connect_bd_net -net fifo_data [get_bd_pins util_dac_unpack/dma_data] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_dout] - connect_bd_net -net axi_ad9361_dac_drd [get_bd_pins axi_ad9361/dac_drd_0] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_en] + connect_bd_net -net axi_ad9361_dac_drd [get_bd_pins util_dac_unpack/dma_rd] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_en] connect_bd_net -net axi_ad9361_dac_dunf [get_bd_pins axi_ad9361/dac_dunf] [get_bd_pins axi_ad9361_dac_dma/fifo_rd_underflow] if {$sys_zynq == 0} { @@ -283,14 +292,20 @@ if {$sys_zynq == 0} { # ila (adc) set ila_adc [create_bd_cell -type ip -vlnv xilinx.com:ip:ila:3.0 ila_adc] - set_property -dict [list CONFIG.C_NUM_OF_PROBES {2}] $ila_adc + set_property -dict [list CONFIG.C_NUM_OF_PROBES {5}] $ila_adc set_property -dict [list CONFIG.C_PROBE0_WIDTH {1}] $ila_adc - set_property -dict [list CONFIG.C_PROBE1_WIDTH {48}] $ila_adc + set_property -dict [list CONFIG.C_PROBE1_WIDTH {16}] $ila_adc + set_property -dict [list CONFIG.C_PROBE2_WIDTH {16}] $ila_adc + set_property -dict [list CONFIG.C_PROBE3_WIDTH {16}] $ila_adc + set_property -dict [list CONFIG.C_PROBE4_WIDTH {16}] $ila_adc set_property -dict [list CONFIG.C_TRIGIN_EN {false}] $ila_adc connect_bd_net -net axi_ad9361_clk [get_bd_pins ila_adc/clk] - connect_bd_net -net axi_ad9361_adc_mon_valid [get_bd_pins axi_ad9361/adc_mon_valid] [get_bd_pins ila_adc/probe0] - connect_bd_net -net axi_ad9361_adc_mon_data [get_bd_pins axi_ad9361/adc_mon_data] [get_bd_pins ila_adc/probe1] + connect_bd_net -net axi_ad9361_adc_valid_0 [get_bd_pins ila_adc/probe0] + connect_bd_net -net axi_ad9361_adc_chan_i1 [get_bd_pins ila_adc/probe1] + connect_bd_net -net axi_ad9361_adc_chan_q1 [get_bd_pins ila_adc/probe2] + connect_bd_net -net axi_ad9361_adc_chan_i2 [get_bd_pins ila_adc/probe3] + connect_bd_net -net axi_ad9361_adc_chan_q2 [get_bd_pins ila_adc/probe4] # address map