ad77681evb: Add upscaler to the data path

main
Istvan Csomortani 2018-03-22 10:06:35 +00:00 committed by István Csomortáni
parent e782ed06cb
commit 8b671fa7ae
4 changed files with 35 additions and 11 deletions

View File

@ -69,6 +69,7 @@ clean-all:clean
$(MAKE) -C ../../../library/util_i2c_mixer clean
$(MAKE) -C ../../../library/util_pulse_gen clean
ad738x_fmc_zed.sdk/system_top.hdf: $(M_DEPS)
-rm -rf $(M_FLIST)
$(M_VIVADO) system_project.tcl >> ad738x_fmc_zed_vivado.log 2>&1

View File

@ -17,6 +17,9 @@ current_bd_instance /spi_adc1
create_bd_intf_pin -mode Master -vlnv analog.com:interface:spi_master_rtl:1.0 m_spi
create_bd_intf_pin -mode Master -vlnv xilinx.com:interface:axis_rtl:1.0 M_AXIS_SAMPLE
# DATA_WIDTH is set to 8, so the granularity of the transaction will be 8 bit
# So we can to support 16bit 24bit and 32bit transfers
ad_ip_instance spi_engine_execution execution
ad_ip_parameter execution CONFIG.DATA_WIDTH 8
ad_ip_parameter execution CONFIG.NUM_OF_CS 1
@ -32,15 +35,26 @@ current_bd_instance /spi_adc1
ad_ip_instance spi_engine_interconnect interconnect
ad_ip_parameter interconnect CONFIG.DATA_WIDTH 8
# to convert the 8bit AXI stream to 24bit AXI stream
ad_ip_instance axis_dwidth_converter m_axis_samples_24
ad_ip_parameter m_axis_samples_24 CONFIG.M_TDATA_NUM_BYTES 3
# upscale the data to 32bit, samples should be multiple of 16bit
ad_ip_instance util_axis_upscale axis_upscaler
ad_ip_parameter axis_upscaler CONFIG.NUM_OF_CHANNELS 1
ad_ip_parameter axis_upscaler CONFIG.DATA_WIDTH 24
ad_ip_parameter axis_upscaler CONFIG.UDATA_WIDTH 32
ad_connect axis_upscaler/dfmt_enable GND
ad_connect axis_upscaler/dfmt_type GND
ad_connect axis_upscaler/dfmt_se GND
ad_connect axi_1/spi_engine_offload_ctrl0 offload/spi_engine_offload_ctrl
ad_connect offload/spi_engine_ctrl interconnect/s0_ctrl
ad_connect axi_1/spi_engine_ctrl interconnect/s1_ctrl
ad_connect interconnect/m_ctrl execution/ctrl
ad_connect offload/offload_sdi m_axis_samples_24/S_AXIS
ad_connect m_axis_samples_24/M_AXIS M_AXIS_SAMPLE
ad_connect m_axis_samples_24/M_AXIS axis_upscaler/s_axis
ad_connect axis_upscaler/m_axis M_AXIS_SAMPLE
ad_connect execution/spi m_spi
@ -51,11 +65,13 @@ current_bd_instance /spi_adc1
ad_connect clk axi_1/spi_clk
ad_connect clk interconnect/clk
ad_connect clk m_axis_samples_24/aclk
ad_connect clk axis_upscaler/clk
ad_connect axi_1/spi_resetn offload/spi_resetn
ad_connect axi_1/spi_resetn execution/resetn
ad_connect axi_1/spi_resetn interconnect/resetn
ad_connect axi_1/spi_resetn m_axis_samples_24/aresetn
ad_connect axi_1/spi_resetn axis_upscaler/resetn
ad_connect drdy offload/trigger
@ -89,15 +105,26 @@ current_bd_instance /spi_adc2
ad_ip_instance spi_engine_interconnect interconnect
ad_ip_parameter interconnect CONFIG.DATA_WIDTH 8
# to convert the 8bit AXI stream to 24bit AXI stream
ad_ip_instance axis_dwidth_converter m_axis_samples_24
ad_ip_parameter m_axis_samples_24 CONFIG.M_TDATA_NUM_BYTES 3
# upscale the data to 32bit, samples should be multiple of 16bit
ad_ip_instance util_axis_upscale axis_upscaler
ad_ip_parameter axis_upscaler CONFIG.NUM_OF_CHANNELS 1
ad_ip_parameter axis_upscaler CONFIG.DATA_WIDTH 24
ad_ip_parameter axis_upscaler CONFIG.UDATA_WIDTH 32
ad_connect axis_upscaler/dfmt_enable GND
ad_connect axis_upscaler/dfmt_type GND
ad_connect axis_upscaler/dfmt_se GND
ad_connect axi_2/spi_engine_offload_ctrl0 offload/spi_engine_offload_ctrl
ad_connect offload/spi_engine_ctrl interconnect/s0_ctrl
ad_connect axi_2/spi_engine_ctrl interconnect/s1_ctrl
ad_connect interconnect/m_ctrl execution/ctrl
ad_connect offload/offload_sdi m_axis_samples_24/S_AXIS
ad_connect m_axis_samples_24/M_AXIS M_AXIS_SAMPLE
ad_connect m_axis_samples_24/M_AXIS axis_upscaler/s_axis
ad_connect axis_upscaler/m_axis M_AXIS_SAMPLE
ad_connect execution/spi m_spi
@ -108,11 +135,13 @@ current_bd_instance /spi_adc2
ad_connect clk axi_2/spi_clk
ad_connect clk interconnect/clk
ad_connect clk m_axis_samples_24/aclk
ad_connect clk axis_upscaler/clk
ad_connect axi_2/spi_resetn offload/spi_resetn
ad_connect axi_2/spi_resetn execution/resetn
ad_connect axi_2/spi_resetn interconnect/resetn
ad_connect axi_2/spi_resetn m_axis_samples_24/aresetn
ad_connect axi_2/spi_resetn axis_upscaler/resetn
ad_connect drdy offload/trigger

View File

@ -26,6 +26,7 @@ M_DEPS += ../../../library/spi_engine/axi_spi_engine/axi_spi_engine.xpr
M_DEPS += ../../../library/spi_engine/spi_engine_execution/spi_engine_execution.xpr
M_DEPS += ../../../library/spi_engine/spi_engine_interconnect/spi_engine_interconnect.xpr
M_DEPS += ../../../library/spi_engine/spi_engine_offload/spi_engine_offload.xpr
M_DEPS += ../../../library/util_axis_upscale/util_axis_upscale.xpr
M_DEPS += ../../../library/util_i2c_mixer/util_i2c_mixer.xpr
M_VIVADO := vivado -mode batch -source
@ -64,6 +65,7 @@ clean-all:clean
$(MAKE) -C ../../../library/spi_engine/spi_engine_execution clean
$(MAKE) -C ../../../library/spi_engine/spi_engine_interconnect clean
$(MAKE) -C ../../../library/spi_engine/spi_engine_offload clean
$(MAKE) -C ../../../library/util_axis_upscale clean
$(MAKE) -C ../../../library/util_i2c_mixer clean
@ -82,6 +84,7 @@ lib:
$(MAKE) -C ../../../library/spi_engine/spi_engine_execution
$(MAKE) -C ../../../library/spi_engine/spi_engine_interconnect
$(MAKE) -C ../../../library/spi_engine/spi_engine_offload
$(MAKE) -C ../../../library/util_axis_upscale
$(MAKE) -C ../../../library/util_i2c_mixer
####################################################################################

View File

@ -2,12 +2,3 @@
source $ad_hdl_dir/projects/common/zed/zed_system_bd.tcl
source ../common/ad77681evb_bd.tcl
# Disable a CRITICAL WARNING, which appears because of the SPI_ENGINE and DMA data width
# missmatch.
# The warning are the following:
#
# CRITICAL WARNING: [BD 41-237] Bus Interface property TDATA_NUM_BYTES does not
# match between /axi_ad77681_dma_1/s_axis(4) and /spi_adc1/m_axis_samples_24/M_AXIS(3)
# CRITICAL WARNING: [BD 41-237] Bus Interface property TDATA_NUM_BYTES does not
# match between /axi_ad77681_dma_2/s_axis(4) and /spi_adc2/m_axis_samples_24/M_AXIS(3)
set_msg_config -severity {CRITICAL WARNING} -quiet -id {BD 41-237} -new_severity info