fmcomms2: c5soc: Connect ADC, DAC and VGA DMA to different bridge interconnects

We have enough bridge interconnect to give each DMA its own, so use them.
This makes sure that they do not interfere with each others transfers to
much. The SDRAM controller side of the FPGA2SDRAM bridges FIFO runs at a
much faster frequency then what we are able to use in the fabric. So its
better to do the arbitration on that side of the bus to make sure that we
can utilize the buses in the FPGA fabric to the maximum for each DMA core.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
main
Lars-Peter Clausen 2014-09-12 16:08:52 +02:00
parent 17a993032b
commit ecc498313c
1 changed files with 291 additions and 253 deletions

View File

@ -7,222 +7,222 @@
description="" description=""
tags="" tags=""
categories="System" /> categories="System" />
<parameter name="bonusData"><![CDATA[bonusData <parameter name="bonusData"><![CDATA[bonusData
{ {
element $${FILENAME} element $${FILENAME}
{ {
} }
element adc_pack element adc_pack
{ {
datum _sortIndex datum _sortIndex
{ {
value = "8"; value = "8";
type = "int"; type = "int";
} }
} }
element vga_frame_reader.avalon_slave element vga_frame_reader.avalon_slave
{ {
datum baseAddress datum baseAddress
{ {
value = "36864"; value = "36864";
type = "String"; type = "String";
} }
} }
element axi_ad9361 element axi_ad9361
{ {
datum _sortIndex datum _sortIndex
{ {
value = "5"; value = "5";
type = "int"; type = "int";
} }
} }
element axi_dmac_adc element axi_dmac_adc
{ {
datum _sortIndex datum _sortIndex
{ {
value = "9"; value = "9";
type = "int"; type = "int";
} }
} }
element axi_dmac_dac element axi_dmac_dac
{ {
datum _sortIndex datum _sortIndex
{ {
value = "6"; value = "6";
type = "int"; type = "int";
} }
} }
element sys_id.control_slave element sys_id.control_slave
{ {
datum _lockedAddress datum _lockedAddress
{ {
value = "1"; value = "1";
type = "boolean"; type = "boolean";
} }
datum baseAddress datum baseAddress
{ {
value = "65536"; value = "65536";
type = "String"; type = "String";
} }
} }
element sys_gpio.external_connection element sys_gpio.external_connection
{ {
datum _tags datum _tags
{ {
value = ""; value = "";
type = "String"; type = "String";
} }
} }
element sys_hps.f2h_sdram0_data element sys_hps.f2h_sdram0_data
{ {
datum baseAddress datum baseAddress
{ {
value = "0"; value = "0";
type = "String"; type = "String";
} }
} }
element sys_int_mem.s1 element sys_int_mem.s1
{ {
datum baseAddress datum baseAddress
{ {
value = "0"; value = "0";
type = "String"; type = "String";
} }
} }
element sys_gpio.s1 element sys_gpio.s1
{ {
datum _lockedAddress datum _lockedAddress
{ {
value = "1"; value = "1";
type = "boolean"; type = "boolean";
} }
datum baseAddress datum baseAddress
{ {
value = "65664"; value = "65664";
type = "String"; type = "String";
} }
} }
element axi_ad9361.s_axi element axi_ad9361.s_axi
{ {
datum baseAddress datum baseAddress
{ {
value = "131072"; value = "131072";
type = "String"; type = "String";
} }
} }
element axi_dmac_dac.s_axi element axi_dmac_adc.s_axi
{ {
datum baseAddress datum baseAddress
{ {
value = "16384"; value = "0";
type = "String"; type = "String";
} }
} }
element axi_dmac_adc.s_axi element axi_dmac_dac.s_axi
{ {
datum baseAddress datum baseAddress
{ {
value = "0"; value = "16384";
type = "String"; type = "String";
} }
} }
element spi_ad9361 element spi_ad9361
{ {
datum _sortIndex datum _sortIndex
{ {
value = "10"; value = "10";
type = "int"; type = "int";
} }
} }
element spi_ad9361.spi_control_port element spi_ad9361.spi_control_port
{ {
datum baseAddress datum baseAddress
{ {
value = "32768"; value = "32768";
type = "String"; type = "String";
} }
} }
element sys_clk element sys_clk
{ {
datum _sortIndex datum _sortIndex
{ {
value = "0"; value = "0";
type = "int"; type = "int";
} }
} }
element sys_gpio element sys_gpio
{ {
datum _sortIndex datum _sortIndex
{ {
value = "4"; value = "4";
type = "int"; type = "int";
} }
} }
element sys_hps element sys_hps
{ {
datum _sortIndex datum _sortIndex
{ {
value = "1"; value = "1";
type = "int"; type = "int";
} }
} }
element sys_id element sys_id
{ {
datum _sortIndex datum _sortIndex
{ {
value = "3"; value = "3";
type = "int"; type = "int";
} }
} }
element sys_int_mem element sys_int_mem
{ {
datum _sortIndex datum _sortIndex
{ {
value = "2"; value = "2";
type = "int"; type = "int";
} }
} }
element util_dac_unpack element util_dac_unpack
{ {
datum _sortIndex datum _sortIndex
{ {
value = "7"; value = "7";
type = "int"; type = "int";
} }
} }
element vga_clock_video_output element vga_clock_video_output
{ {
datum _sortIndex datum _sortIndex
{ {
value = "14"; value = "14";
type = "int"; type = "int";
} }
} }
element vga_frame_reader element vga_frame_reader
{ {
datum _sortIndex datum _sortIndex
{ {
value = "13"; value = "13";
type = "int"; type = "int";
} }
} }
element vga_pixel_clock_bridge element vga_pixel_clock_bridge
{ {
datum _sortIndex datum _sortIndex
{ {
value = "12"; value = "12";
type = "int"; type = "int";
} }
} }
element vga_pll element vga_pll
{ {
datum _sortIndex datum _sortIndex
{ {
value = "11"; value = "11";
type = "int"; type = "int";
} }
} }
} }
]]></parameter> ]]></parameter>
<parameter name="clockCrossingAdapter" value="FIFO" /> <parameter name="clockCrossingAdapter" value="FIFO" />
<parameter name="device" value="5CSXFC6D6F31C8ES" /> <parameter name="device" value="5CSXFC6D6F31C8ES" />
@ -762,8 +762,8 @@
<parameter name="F2S_Width" value="2" /> <parameter name="F2S_Width" value="2" />
<parameter name="S2F_Width" value="2" /> <parameter name="S2F_Width" value="2" />
<parameter name="LWH2F_Enable" value="true" /> <parameter name="LWH2F_Enable" value="true" />
<parameter name="F2SDRAM_Type">Avalon-MM Bidirectional</parameter> <parameter name="F2SDRAM_Type">Avalon-MM Bidirectional,AXI-3,AXI-3</parameter>
<parameter name="F2SDRAM_Width" value="64" /> <parameter name="F2SDRAM_Width" value="64,64,64" />
<parameter name="BONDING_OUT_ENABLED" value="false" /> <parameter name="BONDING_OUT_ENABLED" value="false" />
<parameter name="S2FCLK_COLDRST_Enable" value="false" /> <parameter name="S2FCLK_COLDRST_Enable" value="false" />
<parameter name="S2FCLK_PENDINGRST_Enable" value="false" /> <parameter name="S2FCLK_PENDINGRST_Enable" value="false" />
@ -836,9 +836,9 @@
<parameter name="F2H_AXI_CLOCK_FREQ" value="50000000" /> <parameter name="F2H_AXI_CLOCK_FREQ" value="50000000" />
<parameter name="H2F_AXI_CLOCK_FREQ" value="50000000" /> <parameter name="H2F_AXI_CLOCK_FREQ" value="50000000" />
<parameter name="H2F_LW_AXI_CLOCK_FREQ" value="50000000" /> <parameter name="H2F_LW_AXI_CLOCK_FREQ" value="50000000" />
<parameter name="F2H_SDRAM0_CLOCK_FREQ" value="80000000" /> <parameter name="F2H_SDRAM0_CLOCK_FREQ" value="50000000" />
<parameter name="F2H_SDRAM1_CLOCK_FREQ" value="100" /> <parameter name="F2H_SDRAM1_CLOCK_FREQ" value="80000000" />
<parameter name="F2H_SDRAM2_CLOCK_FREQ" value="100" /> <parameter name="F2H_SDRAM2_CLOCK_FREQ" value="80000000" />
<parameter name="F2H_SDRAM3_CLOCK_FREQ" value="100" /> <parameter name="F2H_SDRAM3_CLOCK_FREQ" value="100" />
<parameter name="F2H_SDRAM4_CLOCK_FREQ" value="100" /> <parameter name="F2H_SDRAM4_CLOCK_FREQ" value="100" />
<parameter name="F2H_SDRAM5_CLOCK_FREQ" value="100" /> <parameter name="F2H_SDRAM5_CLOCK_FREQ" value="100" />
@ -1369,11 +1369,6 @@
version="14.0" version="14.0"
start="sys_clk.clk" start="sys_clk.clk"
end="axi_ad9361.delay_clock" /> end="axi_ad9361.delay_clock" />
<connection
kind="clock"
version="14.0"
start="sys_hps.h2f_user0_clock"
end="sys_hps.f2h_sdram0_clock" />
<connection <connection
kind="clock" kind="clock"
version="14.0" version="14.0"
@ -1403,15 +1398,6 @@
version="14.0" version="14.0"
start="sys_clk.clk_reset" start="sys_clk.clk_reset"
end="axi_dmac_dac.m_src_axi_reset" /> end="axi_dmac_dac.m_src_axi_reset" />
<connection
kind="avalon"
version="14.0"
start="axi_dmac_dac.m_src_axi"
end="sys_hps.f2h_sdram0_data">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
<parameter name="defaultConnection" value="false" />
</connection>
<connection <connection
kind="clock" kind="clock"
version="14.0" version="14.0"
@ -1441,15 +1427,6 @@
version="14.0" version="14.0"
start="sys_clk.clk_reset" start="sys_clk.clk_reset"
end="axi_dmac_adc.m_dest_axi_reset" /> end="axi_dmac_adc.m_dest_axi_reset" />
<connection
kind="avalon"
version="14.0"
start="axi_dmac_adc.m_dest_axi"
end="sys_hps.f2h_sdram0_data">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
<parameter name="defaultConnection" value="false" />
</connection>
<connection <connection
kind="interrupt" kind="interrupt"
version="14.0" version="14.0"
@ -1541,15 +1518,6 @@
version="14.0" version="14.0"
start="vga_frame_reader.avalon_streaming_source" start="vga_frame_reader.avalon_streaming_source"
end="vga_clock_video_output.din" /> end="vga_clock_video_output.din" />
<connection
kind="avalon"
version="14.0"
start="vga_frame_reader.avalon_master"
end="sys_hps.f2h_axi_slave">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
<parameter name="defaultConnection" value="false" />
</connection>
<connection <connection
kind="clock" kind="clock"
version="14.0" version="14.0"
@ -1562,6 +1530,76 @@
end="vga_frame_reader.interrupt_sender"> end="vga_frame_reader.interrupt_sender">
<parameter name="irqNumber" value="4" /> <parameter name="irqNumber" value="4" />
</connection> </connection>
<connection
kind="clock"
version="14.0"
start="sys_clk.clk"
end="sys_hps.f2h_sdram0_clock" />
<connection
kind="avalon"
version="14.0"
start="vga_frame_reader.avalon_master"
end="sys_hps.f2h_sdram0_data">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
<parameter name="defaultConnection" value="false" />
</connection>
<connection
kind="avalon"
version="14.0"
start="axi_dmac_adc.m_dest_axi"
end="sys_hps.f2h_sdram1_data">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
<parameter name="defaultConnection" value="false" />
</connection>
<connection
kind="avalon"
version="14.0"
start="axi_dmac_dac.m_src_axi"
end="sys_hps.f2h_sdram2_data">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
<parameter name="defaultConnection" value="false" />
</connection>
<connection
kind="clock"
version="14.0"
start="sys_hps.h2f_user0_clock"
end="sys_hps.f2h_sdram2_clock" />
<connection
kind="clock"
version="14.0"
start="sys_hps.h2f_user0_clock"
end="sys_hps.f2h_sdram1_clock" />
<interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="FIFO" /> <interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="FIFO" />
<interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="2" /> <interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="2" />
<interconnectRequirement
for="mm_interconnect_4|axi_dmac_dac_m_src_axi_agent.write_cp/router.sink"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
<interconnectRequirement
for="mm_interconnect_4|cmd_mux_001"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
<interconnectRequirement
for="mm_interconnect_4|cmd_mux"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
<interconnectRequirement
for="mm_interconnect_3|cmd_mux_001"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
<interconnectRequirement
for="mm_interconnect_3|cmd_mux"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
<interconnectRequirement
for="mm_interconnect_2|cmd_mux"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
<interconnectRequirement
for="mm_interconnect_0|cmd_mux"
name="qsys_mm.postTransform.pipelineCount"
value="0" />
</system> </system>