fmcomms2/a10soc: compile version
parent
f4e5965936
commit
ddfaff2cf5
|
@ -315,6 +315,11 @@
|
|||
internal="fmcomms2.axi_ad9361_device_if"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<interface
|
||||
name="delay_clk"
|
||||
internal="fmcomms2.axi_ad9361_delay_clk"
|
||||
type="clock"
|
||||
dir="end" />
|
||||
<interface name="hps_ddr" internal="a10soc.hps_ddr" type="conduit" dir="end" />
|
||||
<interface
|
||||
name="hps_ddr_oct"
|
||||
|
@ -346,27 +351,37 @@
|
|||
internal="sys_clk.clk_in_reset"
|
||||
type="reset"
|
||||
dir="end" />
|
||||
<interface
|
||||
name="up_enable"
|
||||
internal="fmcomms2.axi_ad9361_up_enable"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<interface
|
||||
name="up_txnrx"
|
||||
internal="fmcomms2.axi_ad9361_up_txnrx"
|
||||
type="conduit"
|
||||
dir="end" />
|
||||
<module name="a10soc" kind="a10soc_system_bd" version="1.0" enabled="1">
|
||||
<parameter name="AUTO_DEVICE" value="10AS066N3F40E2SGE2" />
|
||||
<parameter name="AUTO_DEVICE_FAMILY" value="Arria 10" />
|
||||
<parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
|
||||
<parameter name="AUTO_GENERATION_ID" value="0" />
|
||||
<parameter name="AUTO_HPS_DDR_REF_CLK_CLOCK_DOMAIN" value="4" />
|
||||
<parameter name="AUTO_HPS_DDR_REF_CLK_CLOCK_DOMAIN" value="2" />
|
||||
<parameter name="AUTO_HPS_DDR_REF_CLK_CLOCK_RATE" value="0" />
|
||||
<parameter name="AUTO_HPS_DDR_REF_CLK_RESET_DOMAIN" value="4" />
|
||||
<parameter name="AUTO_HPS_DDR_REF_CLK_RESET_DOMAIN" value="2" />
|
||||
<parameter name="AUTO_HPS_IRQ0_INTERRUPTS_USED" value="3" />
|
||||
<parameter name="AUTO_HPS_IRQ1_INTERRUPTS_USED" value="3" />
|
||||
<parameter name="AUTO_SYS_CLK_CLOCK_DOMAIN" value="3" />
|
||||
<parameter name="AUTO_SYS_CLK_CLOCK_DOMAIN" value="5" />
|
||||
<parameter name="AUTO_SYS_CLK_CLOCK_RATE" value="100000000" />
|
||||
<parameter name="AUTO_SYS_CLK_RESET_DOMAIN" value="3" />
|
||||
<parameter name="AUTO_SYS_CLK_RESET_DOMAIN" value="5" />
|
||||
<parameter name="AUTO_SYS_CPU_M_AVL_ADDRESS_MAP"><![CDATA[<address-map><slave name='fmcomms2_axi_ad9361.s_axi' start='0x0' end='0x10000' /><slave name='fmcomms2_axi_dmac_dac.s_axi' start='0x10000' end='0x14000' /><slave name='fmcomms2_axi_dmac_adc.s_axi' start='0x14000' end='0x18000' /></address-map>]]></parameter>
|
||||
<parameter name="AUTO_SYS_CPU_M_AVL_ADDRESS_WIDTH" value="AddressWidth = 17" />
|
||||
<parameter name="AUTO_UNIQUE_ID" value="system_bd_a10soc" />
|
||||
<parameter name="AUTO_UNIQUE_ID" value="$${FILENAME}_a10soc" />
|
||||
</module>
|
||||
<module name="fmcomms2" kind="fmcomms2_bd" version="1.0" enabled="1">
|
||||
<parameter name="AUTO_AXI_AD9361_DEVICE_CLOCK_CLOCK_DOMAIN" value="2" />
|
||||
<parameter name="AUTO_AXI_AD9361_DEVICE_CLOCK_CLOCK_RATE" value="0" />
|
||||
<parameter name="AUTO_AXI_AD9361_DEVICE_CLOCK_RESET_DOMAIN" value="2" />
|
||||
<parameter name="AUTO_AXI_AD9361_DELAY_CLK_CLOCK_DOMAIN" value="1" />
|
||||
<parameter name="AUTO_AXI_AD9361_DELAY_CLK_CLOCK_RATE" value="0" />
|
||||
<parameter name="AUTO_AXI_AD9361_DELAY_CLK_RESET_DOMAIN" value="1" />
|
||||
<parameter name="AUTO_AXI_DMAC_ADC_M_DEST_AXI_ADDRESS_MAP"><![CDATA[<address-map><slave name='a10soc_arria10_hps_0_bridges.f2sdram1_data' start='0x0' end='0x100000000' /></address-map>]]></parameter>
|
||||
<parameter
|
||||
name="AUTO_AXI_DMAC_ADC_M_DEST_AXI_ADDRESS_WIDTH"
|
||||
|
@ -379,10 +394,10 @@
|
|||
<parameter name="AUTO_DEVICE_FAMILY" value="Arria 10" />
|
||||
<parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
|
||||
<parameter name="AUTO_GENERATION_ID" value="0" />
|
||||
<parameter name="AUTO_SYS_CLK_CLOCK_DOMAIN" value="3" />
|
||||
<parameter name="AUTO_SYS_CLK_CLOCK_DOMAIN" value="5" />
|
||||
<parameter name="AUTO_SYS_CLK_CLOCK_RATE" value="100000000" />
|
||||
<parameter name="AUTO_SYS_CLK_RESET_DOMAIN" value="3" />
|
||||
<parameter name="AUTO_UNIQUE_ID" value="system_bd_fmcomms2" />
|
||||
<parameter name="AUTO_SYS_CLK_RESET_DOMAIN" value="5" />
|
||||
<parameter name="AUTO_UNIQUE_ID">$${FILENAME}_fmcomms2</parameter>
|
||||
</module>
|
||||
<module name="sys_clk" kind="clock_source" version="15.1" enabled="1">
|
||||
<parameter name="clockFrequency" value="100000000" />
|
||||
|
@ -435,11 +450,6 @@
|
|||
<parameter name="baseAddress" value="0x00010000" />
|
||||
<parameter name="defaultConnection" value="false" />
|
||||
</connection>
|
||||
<connection
|
||||
kind="clock"
|
||||
version="15.1"
|
||||
start="fmcomms2.axi_ad9361_l_clk"
|
||||
end="fmcomms2.axi_ad9361_device_clock" />
|
||||
<connection kind="clock" version="15.1" start="sys_clk.clk" end="a10soc.sys_clk" />
|
||||
<connection
|
||||
kind="clock"
|
||||
|
|
|
@ -1,43 +1,7 @@
|
|||
|
||||
create_clock -period "10.000 ns" -name sys_clk_100mhz [get_ports {sys_clk}]
|
||||
create_clock -period "2.000 ns" -name rx_ref_clk_500mhz [get_ports {rx_ref_clk}]
|
||||
create_clock -period "2.000 ns" -name tx_ref_clk_500mhz [get_ports {tx_ref_clk}]
|
||||
create_clock -period "4.000 ns" -name rx_clk_250mhz [get_ports {rx_clk_in}]
|
||||
|
||||
derive_pll_clocks
|
||||
derive_clock_uncertainty
|
||||
|
||||
set_false_path -from [get_clocks {sys_clk_100mhz}] -to [get_clocks {\
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_phy_clk_0 \
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_phy_clk_1 \
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_phy_clk_2 \
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_phy_clk_l_0 \
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_phy_clk_l_1 \
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_phy_clk_l_2}]
|
||||
|
||||
set_false_path -from [get_clocks {sys_clk_100mhz}] -to [get_clocks {\
|
||||
i_system_bd|a10gx_base|sys_ddr3_cntrl_core_nios_clk}]
|
||||
|
||||
set_false_path -from [get_clocks {sys_clk_100mhz}]\
|
||||
-through [get_nets *altera_jesd204_tx_csr_inst*]\
|
||||
-to [get_clocks {i_system_bd|daq2|xcvr_tx_pll|outclk0}]
|
||||
|
||||
set_false_path -from [get_clocks {sys_clk_100mhz}]\
|
||||
-through [get_nets *altera_jesd204_tx_ctl_inst*]\
|
||||
-to [get_clocks {i_system_bd|daq2|xcvr_tx_pll|outclk0}]
|
||||
|
||||
set_false_path -from [get_clocks {sys_clk_100mhz}]\
|
||||
-through [get_nets *altera_jesd204_rx_csr_inst*]\
|
||||
-to [get_clocks {i_system_bd|daq2|xcvr_rx_pll|outclk0}]
|
||||
|
||||
set_false_path -from [get_clocks {i_system_bd|daq2|xcvr_tx_pll|outclk0}]\
|
||||
-through [get_nets *altera_jesd204_tx_csr_inst*]\
|
||||
-to [get_clocks {sys_clk_100mhz}]
|
||||
|
||||
set_false_path -from [get_clocks {i_system_bd|daq2|xcvr_tx_pll|outclk0}]\
|
||||
-through [get_nets *altera_jesd204_tx_ctl_inst*]\
|
||||
-to [get_clocks {sys_clk_100mhz}]
|
||||
|
||||
set_false_path -from [get_clocks {i_system_bd|daq2|xcvr_rx_pll|outclk0}]\
|
||||
-through [get_nets *altera_jesd204_rx_csr_inst*]\
|
||||
-to [get_clocks {sys_clk_100mhz}]
|
||||
|
||||
|
|
|
@ -11,5 +11,120 @@ set_global_assignment -name VERILOG_FILE system_top.v
|
|||
set_global_assignment -name SDC_FILE system_constr.sdc
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY system_top
|
||||
|
||||
# data-path
|
||||
|
||||
set_location_assignment PIN_G14 -to rx_clk_in ; ## G6 FMC_LPC_LA00_CC_P
|
||||
set_location_assignment PIN_H14 -to "rx_clk_in(n)" ; ## G7 FMC_LPC_LA00_CC_N
|
||||
set_location_assignment PIN_E12 -to rx_frame_in ; ## D8 FMC_LPC_LA01_CC_P
|
||||
set_location_assignment PIN_E13 -to "rx_frame_in(n)" ; ## D9 FMC_LPC_LA01_CC_N
|
||||
set_location_assignment PIN_C13 -to rx_data_in[0] ; ## H7 FMC_LPC_LA02_P
|
||||
set_location_assignment PIN_D13 -to "rx_data_in[0](n)" ; ## H8 FMC_LPC_LA02_N
|
||||
set_location_assignment PIN_C14 -to rx_data_in[1] ; ## G9 FMC_LPC_LA03_P
|
||||
set_location_assignment PIN_D14 -to "rx_data_in[1](n)" ; ## G10 FMC_LPC_LA03_N
|
||||
set_location_assignment PIN_H12 -to rx_data_in[2] ; ## H10 FMC_LPC_LA04_P
|
||||
set_location_assignment PIN_H13 -to "rx_data_in[2](n)" ; ## H11 FMC_LPC_LA04_N
|
||||
set_location_assignment PIN_F13 -to rx_data_in[3] ; ## D11 FMC_LPC_LA05_P
|
||||
set_location_assignment PIN_F14 -to "rx_data_in[3](n)" ; ## D12 FMC_LPC_LA05_N
|
||||
set_location_assignment PIN_A10 -to rx_data_in[4] ; ## C10 FMC_LPC_LA06_P
|
||||
set_location_assignment PIN_B10 -to "rx_data_in[4](n)" ; ## C11 FMC_LPC_LA06_N
|
||||
set_location_assignment PIN_A9 -to rx_data_in[5] ; ## H13 FMC_LPC_LA07_P
|
||||
set_location_assignment PIN_B9 -to "rx_data_in[5](n)" ; ## H14 FMC_LPC_LA07_N
|
||||
set_location_assignment PIN_B11 -to tx_clk_out ; ## G12 FMC_LPC_LA08_P
|
||||
set_location_assignment PIN_B12 -to "tx_clk_out(n)" ; ## G13 FMC_LPC_LA08_N
|
||||
set_location_assignment PIN_A12 -to tx_frame_out ; ## D14 FMC_LPC_LA09_P
|
||||
set_location_assignment PIN_A13 -to "tx_frame_out(n)" ; ## D15 FMC_LPC_LA09_N
|
||||
set_location_assignment PIN_C9 -to tx_data_out[0] ; ## H16 FMC_LPC_LA11_P
|
||||
set_location_assignment PIN_D9 -to "tx_data_out[0](n)" ; ## H17 FMC_LPC_LA11_N
|
||||
set_location_assignment PIN_M12 -to tx_data_out[1] ; ## G15 FMC_LPC_LA12_P
|
||||
set_location_assignment PIN_N13 -to "tx_data_out[1](n)" ; ## G16 FMC_LPC_LA12_N
|
||||
set_location_assignment PIN_J11 -to tx_data_out[2] ; ## D17 FMC_LPC_LA13_P
|
||||
set_location_assignment PIN_K11 -to "tx_data_out[2](n)" ; ## D18 FMC_LPC_LA13_N
|
||||
set_location_assignment PIN_A7 -to tx_data_out[3] ; ## C14 FMC_LPC_LA10_P
|
||||
set_location_assignment PIN_A8 -to "tx_data_out[3](n)" ; ## C15 FMC_LPC_LA10_N
|
||||
set_location_assignment PIN_J9 -to tx_data_out[4] ; ## C18 FMC_LPC_LA14_P
|
||||
set_location_assignment PIN_J10 -to "tx_data_out[4](n)" ; ## C19 FMC_LPC_LA14_N
|
||||
set_location_assignment PIN_D4 -to tx_data_out[5] ; ## H19 FMC_LPC_LA15_P
|
||||
set_location_assignment PIN_D5 -to "tx_data_out[5](n)" ; ## H20 FMC_LPC_LA15_N
|
||||
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_clk_in
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_frame_in
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_data_in[0]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_data_in[1]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_data_in[2]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_data_in[3]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_data_in[4]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to rx_data_in[5]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_clk_out
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_frame_out
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_data_out[0]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_data_out[1]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_data_out[2]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_data_out[3]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_data_out[4]
|
||||
set_instance_assignment -name IO_STANDARD LVDS -to tx_data_out[5]
|
||||
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_clk_in
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_frame_in
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_data_in[0]
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_data_in[1]
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_data_in[2]
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_data_in[3]
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_data_in[4]
|
||||
set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to rx_data_in[5]
|
||||
|
||||
# ensm/tdd control
|
||||
|
||||
set_location_assignment PIN_D6 -to enable ; ## G18 FMC_LPC_LA16_P
|
||||
set_location_assignment PIN_E6 -to txnrx ; ## G19 FMC_LPC_LA16_N
|
||||
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to enable
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to txnrx
|
||||
|
||||
# control & status
|
||||
|
||||
set_location_assignment PIN_C3 -to gpio_status[0] ; ## G21 FMC_LPC_LA20_P
|
||||
set_location_assignment PIN_C4 -to gpio_status[1] ; ## G22 FMC_LPC_LA20_N
|
||||
set_location_assignment PIN_C2 -to gpio_status[2] ; ## H25 FMC_LPC_LA21_P
|
||||
set_location_assignment PIN_D3 -to gpio_status[3] ; ## H26 FMC_LPC_LA21_N
|
||||
set_location_assignment PIN_F4 -to gpio_status[4] ; ## G24 FMC_LPC_LA22_P
|
||||
set_location_assignment PIN_G4 -to gpio_status[5] ; ## G25 FMC_LPC_LA22_N
|
||||
set_location_assignment PIN_C1 -to gpio_status[6] ; ## D23 FMC_LPC_LA23_P
|
||||
set_location_assignment PIN_D1 -to gpio_status[7] ; ## D24 FMC_LPC_LA23_N
|
||||
set_location_assignment PIN_E1 -to gpio_ctl[0] ; ## H28 FMC_LPC_LA24_P
|
||||
set_location_assignment PIN_E2 -to gpio_ctl[1] ; ## H29 FMC_LPC_LA24_N
|
||||
set_location_assignment PIN_E3 -to gpio_ctl[2] ; ## G27 FMC_LPC_LA25_P
|
||||
set_location_assignment PIN_F3 -to gpio_ctl[3] ; ## G28 FMC_LPC_LA25_N
|
||||
set_location_assignment PIN_G5 -to gpio_en_agc ; ## H22 FMC_LPC_LA19_P
|
||||
set_location_assignment PIN_G6 -to gpio_sync ; ## H23 FMC_LPC_LA19_N
|
||||
set_location_assignment PIN_L5 -to gpio_resetb ; ## H31 FMC_LPC_LA28_P
|
||||
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[0]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[1]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[2]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[3]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[4]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[5]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[6]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_status[7]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_ctl[0]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_ctl[1]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_ctl[2]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_ctl[3]
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_en_agc
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_sync
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to gpio_resetb
|
||||
|
||||
# spi
|
||||
|
||||
set_location_assignment PIN_F2 -to spi_csn ; ## D26 FMC_LPC_LA26_P
|
||||
set_location_assignment PIN_G2 -to spi_clk ; ## D27 FMC_LPC_LA26_N
|
||||
set_location_assignment PIN_G1 -to spi_mosi ; ## C26 FMC_LPC_LA27_P
|
||||
set_location_assignment PIN_H2 -to spi_miso ; ## C27 FMC_LPC_LA27_N
|
||||
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to spi_csn
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to spi_clk
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to spi_mosi
|
||||
set_instance_assignment -name IO_STANDARD "1.8 V" -to spi_miso
|
||||
|
||||
execute_flow -compile
|
||||
|
||||
|
|
|
@ -41,246 +41,222 @@ module system_top (
|
|||
|
||||
// clock and resets
|
||||
|
||||
sys_clk,
|
||||
sys_resetn,
|
||||
input sys_clk,
|
||||
input sys_resetn,
|
||||
|
||||
// ddr3
|
||||
// hps-ddr4 (32)
|
||||
|
||||
ddr3_clk_p,
|
||||
ddr3_clk_n,
|
||||
ddr3_a,
|
||||
ddr3_ba,
|
||||
ddr3_cke,
|
||||
ddr3_cs_n,
|
||||
ddr3_odt,
|
||||
ddr3_reset_n,
|
||||
ddr3_we_n,
|
||||
ddr3_ras_n,
|
||||
ddr3_cas_n,
|
||||
ddr3_dqs_p,
|
||||
ddr3_dqs_n,
|
||||
ddr3_dq,
|
||||
ddr3_dm,
|
||||
ddr3_rzq,
|
||||
ddr3_ref_clk,
|
||||
input hps_ddr_ref_clk,
|
||||
output [ 0:0] hps_ddr_clk_p,
|
||||
output [ 0:0] hps_ddr_clk_n,
|
||||
output [ 16:0] hsp_ddr_a,
|
||||
output [ 1:0] hps_ddr_ba,
|
||||
output [ 0:0] hps_ddr_bg,
|
||||
output [ 0:0] hps_ddr_cke,
|
||||
output [ 0:0] hps_ddr_cs_n,
|
||||
output [ 0:0] hps_ddr_odt,
|
||||
output [ 0:0] hps_ddr_reset_n,
|
||||
output [ 0:0] hps_ddr_act_n,
|
||||
output [ 0:0] hps_ddr_par,
|
||||
input [ 0:0] hps_ddr_alert_n,
|
||||
inout [ 3:0] hps_ddr_dqs_p,
|
||||
inout [ 3:0] hps_ddr_dqs_n,
|
||||
inout [ 31:0] hps_ddr_dq,
|
||||
inout [ 3:0] hps_ddr_dbi_n,
|
||||
input hps_ddr_rzq,
|
||||
|
||||
// ethernet
|
||||
// hps-ethernet
|
||||
|
||||
eth_ref_clk,
|
||||
eth_rxd,
|
||||
eth_txd,
|
||||
eth_mdc,
|
||||
eth_mdio,
|
||||
eth_resetn,
|
||||
eth_intn,
|
||||
input [ 0:0] hps_eth_rxclk,
|
||||
input [ 0:0] hps_eth_rxctl,
|
||||
input [ 3:0] hps_eth_rxd,
|
||||
output [ 0:0] hps_eth_txclk,
|
||||
output [ 0:0] hps_eth_txctl,
|
||||
output [ 3:0] hps_eth_txd,
|
||||
output [ 0:0] hps_eth_mdc,
|
||||
inout [ 0:0] hps_eth_mdio,
|
||||
|
||||
// board gpio
|
||||
// hps-sdio
|
||||
|
||||
gpio_bd_i,
|
||||
gpio_bd_o,
|
||||
output [ 0:0] hps_sdio_clk,
|
||||
inout [ 0:0] hps_sdio_cmd,
|
||||
inout [ 7:0] hps_sdio_d,
|
||||
|
||||
// lane interface
|
||||
// hps-usb
|
||||
|
||||
rx_ref_clk,
|
||||
rx_sysref,
|
||||
rx_sync,
|
||||
rx_data,
|
||||
tx_ref_clk,
|
||||
tx_sysref,
|
||||
tx_sync,
|
||||
tx_data,
|
||||
input [ 0:0] hps_usb_clk,
|
||||
input [ 0:0] hps_usb_dir,
|
||||
input [ 0:0] hps_usb_nxt,
|
||||
output [ 0:0] hps_usb_stp,
|
||||
inout [ 7:0] hps_usb_d,
|
||||
|
||||
// gpio
|
||||
// hps-uart
|
||||
|
||||
trig,
|
||||
adc_fdb,
|
||||
adc_fda,
|
||||
dac_irq,
|
||||
clkd_status,
|
||||
adc_pd,
|
||||
dac_txen,
|
||||
dac_reset,
|
||||
clkd_sync,
|
||||
input [ 0:0] hps_uart_rx,
|
||||
output [ 0:0] hps_uart_tx,
|
||||
|
||||
// spi
|
||||
// hps-i2c (shared w fmc-a, fmc-b)
|
||||
|
||||
spi_csn_clk,
|
||||
spi_csn_dac,
|
||||
spi_csn_adc,
|
||||
spi_clk,
|
||||
spi_sdio,
|
||||
spi_dir);
|
||||
inout [ 0:0] hps_i2c_sda,
|
||||
inout [ 0:0] hps_i2c_scl,
|
||||
|
||||
// clock and resets
|
||||
// hps-gpio (max-v-u16)
|
||||
|
||||
input sys_clk;
|
||||
input sys_resetn;
|
||||
inout [ 3:0] hps_gpio,
|
||||
|
||||
// gpio (max-v-u21)
|
||||
|
||||
// ddr3
|
||||
input [ 7:0] gpio_bd_i,
|
||||
output [ 3:0] gpio_bd_o,
|
||||
|
||||
output ddr3_clk_p;
|
||||
output ddr3_clk_n;
|
||||
output [ 14:0] ddr3_a;
|
||||
output [ 2:0] ddr3_ba;
|
||||
output ddr3_cke;
|
||||
output ddr3_cs_n;
|
||||
output ddr3_odt;
|
||||
output ddr3_reset_n;
|
||||
output ddr3_we_n;
|
||||
output ddr3_ras_n;
|
||||
output ddr3_cas_n;
|
||||
inout [ 7:0] ddr3_dqs_p;
|
||||
inout [ 7:0] ddr3_dqs_n;
|
||||
inout [ 63:0] ddr3_dq;
|
||||
output [ 7:0] ddr3_dm;
|
||||
input ddr3_rzq;
|
||||
input ddr3_ref_clk;
|
||||
// ad9361-interface
|
||||
|
||||
// ethernet
|
||||
input rx_clk_in,
|
||||
input rx_frame_in,
|
||||
input [ 5:0] rx_data_in,
|
||||
output tx_clk_out,
|
||||
output tx_frame_out,
|
||||
output [ 5:0] tx_data_out,
|
||||
output enable,
|
||||
output txnrx,
|
||||
|
||||
input eth_ref_clk;
|
||||
input eth_rxd;
|
||||
output eth_txd;
|
||||
output eth_mdc;
|
||||
inout eth_mdio;
|
||||
output eth_resetn;
|
||||
input eth_intn;
|
||||
output gpio_resetb,
|
||||
output gpio_sync,
|
||||
output gpio_en_agc,
|
||||
output [ 3:0] gpio_ctl,
|
||||
input [ 7:0] gpio_status,
|
||||
|
||||
// board gpio
|
||||
|
||||
input [ 10:0] gpio_bd_i;
|
||||
output [ 15:0] gpio_bd_o;
|
||||
|
||||
// lane interface
|
||||
|
||||
input rx_ref_clk;
|
||||
input rx_sysref;
|
||||
output rx_sync;
|
||||
input [ 3:0] rx_data;
|
||||
input tx_ref_clk;
|
||||
input tx_sysref;
|
||||
input tx_sync;
|
||||
output [ 3:0] tx_data;
|
||||
|
||||
// gpio
|
||||
|
||||
input trig;
|
||||
input adc_fdb;
|
||||
input adc_fda;
|
||||
input dac_irq;
|
||||
input [ 1:0] clkd_status;
|
||||
output adc_pd;
|
||||
output dac_txen;
|
||||
output dac_reset;
|
||||
output clkd_sync;
|
||||
|
||||
// spi
|
||||
|
||||
output spi_csn_clk;
|
||||
output spi_csn_dac;
|
||||
output spi_csn_adc;
|
||||
output spi_clk;
|
||||
inout spi_sdio;
|
||||
output spi_dir;
|
||||
output spi_csn,
|
||||
output spi_clk,
|
||||
output spi_mosi,
|
||||
input spi_miso);
|
||||
|
||||
// internal signals
|
||||
|
||||
wire eth_reset;
|
||||
wire eth_mdio_i;
|
||||
wire eth_mdio_o;
|
||||
wire eth_mdio_t;
|
||||
wire [ 63:0] gpio_i;
|
||||
wire [ 63:0] gpio_o;
|
||||
wire spi_miso_s;
|
||||
wire spi_mosi_s;
|
||||
wire [ 7:0] spi_csn_s;
|
||||
wire [ 31:0] gpio_i;
|
||||
wire [ 31:0] gpio_o;
|
||||
|
||||
// daq2
|
||||
// gpio (ad9361)
|
||||
|
||||
assign spi_csn_adc = spi_csn_s[2];
|
||||
assign spi_csn_dac = spi_csn_s[1];
|
||||
assign spi_csn_clk = spi_csn_s[0];
|
||||
assign gpio_i[31:24] = gpio_o[31:24];
|
||||
assign gpio_i[23:16] = gpio_status;
|
||||
|
||||
daq2_spi i_daq2_spi (
|
||||
.spi_csn (spi_csn_s[2:0]),
|
||||
.spi_clk (spi_clk),
|
||||
.spi_mosi (spi_mosi_s),
|
||||
.spi_miso (spi_miso_s),
|
||||
.spi_sdio (spi_sdio),
|
||||
.spi_dir (spi_dir));
|
||||
assign gpio_resetb = gpio_o[22];
|
||||
assign gpio_sync = gpio_o[21];
|
||||
assign gpio_en_agc = gpio_o[20];
|
||||
assign gpio_ctl = gpio_o[19:16];
|
||||
|
||||
// gpio in & out are separate cores
|
||||
// gpio (max-v-u21)
|
||||
|
||||
assign adc_pd = gpio_o[42];
|
||||
assign dac_txen = gpio_o[41];
|
||||
assign dac_reset = gpio_o[40];
|
||||
assign clkd_sync = gpio_o[38];
|
||||
assign gpio_i[15:8] = gpio_o[15:8];
|
||||
assign gpio_i[ 7:0] = gpio_bd_i;
|
||||
|
||||
assign gpio_i[63:38] = gpio_o[63:38];
|
||||
assign gpio_i[37:37] = trig;
|
||||
assign gpio_i[36:36] = adc_fdb;
|
||||
assign gpio_i[35:35] = adc_fda;
|
||||
assign gpio_i[34:34] = dac_irq;
|
||||
assign gpio_i[33:32] = clkd_status;
|
||||
assign gpio_bd_o = gpio_o[3:0];
|
||||
|
||||
// board stuff
|
||||
|
||||
assign eth_resetn = ~eth_reset;
|
||||
assign eth_mdio_i = eth_mdio;
|
||||
assign eth_mdio = (eth_mdio_t == 1'b1) ? 1'bz : eth_mdio_o;
|
||||
|
||||
assign ddr3_a[14:12] = 3'd0;
|
||||
|
||||
assign gpio_i[31:27] = gpio_o[31:27];
|
||||
assign gpio_i[26:16] = gpio_bd_i;
|
||||
assign gpio_i[15: 0] = gpio_o[15:0];
|
||||
|
||||
assign gpio_bd_o = gpio_o[15:0];
|
||||
// instantiations
|
||||
|
||||
system_bd i_system_bd (
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_ck (ddr3_clk_p),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_ck_n (ddr3_clk_n),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_a (ddr3_a[11:0]),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_ba (ddr3_ba),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_cke (ddr3_cke),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_cs_n (ddr3_cs_n),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_odt (ddr3_odt),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_reset_n (ddr3_reset_n),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_we_n (ddr3_we_n),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_ras_n (ddr3_ras_n),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_cas_n (ddr3_cas_n),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_dqs (ddr3_dqs_p[7:0]),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_dqs_n (ddr3_dqs_n[7:0]),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_dq (ddr3_dq[63:0]),
|
||||
.a10gx_base_sys_ddr3_cntrl_mem_mem_dm (ddr3_dm[7:0]),
|
||||
.a10gx_base_sys_ddr3_cntrl_oct_oct_rzqin (ddr3_rzq),
|
||||
.a10gx_base_sys_ddr3_cntrl_pll_ref_clk_clk (ddr3_ref_clk),
|
||||
.a10gx_base_sys_ethernet_mdio_mdc (eth_mdc),
|
||||
.a10gx_base_sys_ethernet_mdio_mdio_in (eth_mdio_i),
|
||||
.a10gx_base_sys_ethernet_mdio_mdio_out (eth_mdio_o),
|
||||
.a10gx_base_sys_ethernet_mdio_mdio_oen (eth_mdio_t),
|
||||
.a10gx_base_sys_ethernet_ref_clk_clk (eth_ref_clk),
|
||||
.a10gx_base_sys_ethernet_reset_reset (eth_reset),
|
||||
.a10gx_base_sys_ethernet_sgmii_rxp_0 (eth_rxd),
|
||||
.a10gx_base_sys_ethernet_sgmii_txp_0 (eth_txd),
|
||||
.a10gx_base_sys_gpio_in_export (gpio_i[63:32]),
|
||||
.a10gx_base_sys_gpio_out_export (gpio_o[63:32]),
|
||||
.a10gx_base_sys_gpio_bd_in_port (gpio_i[31:0]),
|
||||
.a10gx_base_sys_gpio_bd_out_port (gpio_o[31:0]),
|
||||
.a10gx_base_sys_spi_MISO (spi_miso_s),
|
||||
.a10gx_base_sys_spi_MOSI (spi_mosi_s),
|
||||
.a10gx_base_sys_spi_SCLK (spi_clk),
|
||||
.a10gx_base_sys_spi_SS_n (spi_csn_s),
|
||||
.daq2_rx_data_rx_serial_data (rx_data),
|
||||
.daq2_rx_ref_clk_clk (rx_ref_clk),
|
||||
.daq2_rx_sync_rx_sync (rx_sync),
|
||||
.daq2_rx_sysref_rx_ext_sysref_in (rx_sysref),
|
||||
.daq2_tx_data_tx_serial_data (tx_data),
|
||||
.daq2_tx_ref_clk_clk (tx_ref_clk),
|
||||
.daq2_tx_sync_tx_sync (tx_sync),
|
||||
.daq2_tx_sysref_tx_ext_sysref_in (tx_sysref),
|
||||
.ad9361_if_rx_clk_in_p (rx_clk_in),
|
||||
.ad9361_if_rx_clk_in_n (1'b0),
|
||||
.ad9361_if_rx_frame_in_p (rx_frame_in),
|
||||
.ad9361_if_rx_frame_in_n (1'b0),
|
||||
.ad9361_if_rx_data_in_p (rx_data_in),
|
||||
.ad9361_if_rx_data_in_n (6'd0),
|
||||
.ad9361_if_tx_clk_out_p (tx_clk_out),
|
||||
.ad9361_if_tx_clk_out_n (),
|
||||
.ad9361_if_tx_frame_out_p (tx_frame_out),
|
||||
.ad9361_if_tx_frame_out_n (),
|
||||
.ad9361_if_tx_data_out_p (tx_data_out),
|
||||
.ad9361_if_tx_data_out_n (),
|
||||
.ad9361_if_enable (enable),
|
||||
.ad9361_if_txnrx (txnrx),
|
||||
.delay_clk_clk (1'b0),
|
||||
.hps_ddr_mem_ck (hps_ddr_clk_p),
|
||||
.hps_ddr_mem_ck_n (hps_ddr_clk_n),
|
||||
.hps_ddr_mem_a (hsp_ddr_a),
|
||||
.hps_ddr_mem_act_n (hps_ddr_act_n),
|
||||
.hps_ddr_mem_ba (hps_ddr_ba),
|
||||
.hps_ddr_mem_bg (hps_ddr_bg),
|
||||
.hps_ddr_mem_cke (hps_ddr_cke),
|
||||
.hps_ddr_mem_cs_n (hps_ddr_cs_n),
|
||||
.hps_ddr_mem_odt (hps_ddr_odt),
|
||||
.hps_ddr_mem_reset_n (hps_ddr_reset_n),
|
||||
.hps_ddr_mem_par (hps_ddr_par),
|
||||
.hps_ddr_mem_alert_n (hps_ddr_alert_n),
|
||||
.hps_ddr_mem_dqs (hps_ddr_dqs_p),
|
||||
.hps_ddr_mem_dqs_n (hps_ddr_dqs_n),
|
||||
.hps_ddr_mem_dq (hps_ddr_dq),
|
||||
.hps_ddr_mem_dbi_n (hps_ddr_dbi_n),
|
||||
.hps_ddr_oct_oct_rzqin (hps_ddr_rzq),
|
||||
.hps_ddr_ref_clk_clk (hps_ddr_ref_clk),
|
||||
.hps_gpio_gp_in (gpio_i),
|
||||
.hps_gpio_gp_out (gpio_o),
|
||||
.hps_io_hps_io_phery_emac0_TX_CLK (hps_eth_txclk),
|
||||
.hps_io_hps_io_phery_emac0_TXD0 (hps_eth_txd[0]),
|
||||
.hps_io_hps_io_phery_emac0_TXD1 (hps_eth_txd[1]),
|
||||
.hps_io_hps_io_phery_emac0_TXD2 (hps_eth_txd[2]),
|
||||
.hps_io_hps_io_phery_emac0_TXD3 (hps_eth_txd[3]),
|
||||
.hps_io_hps_io_phery_emac0_RX_CTL (hps_eth_rxctl),
|
||||
.hps_io_hps_io_phery_emac0_TX_CTL (hps_eth_txctl),
|
||||
.hps_io_hps_io_phery_emac0_RX_CLK (hps_eth_rxclk),
|
||||
.hps_io_hps_io_phery_emac0_RXD0 (hps_eth_rxd[0]),
|
||||
.hps_io_hps_io_phery_emac0_RXD1 (hps_eth_rxd[1]),
|
||||
.hps_io_hps_io_phery_emac0_RXD2 (hps_eth_rxd[2]),
|
||||
.hps_io_hps_io_phery_emac0_RXD3 (hps_eth_rxd[3]),
|
||||
.hps_io_hps_io_phery_emac0_MDIO (hps_eth_mdio),
|
||||
.hps_io_hps_io_phery_emac0_MDC (hps_eth_mdc),
|
||||
.hps_io_hps_io_phery_sdmmc_CMD (hps_sdio_cmd),
|
||||
.hps_io_hps_io_phery_sdmmc_D0 (hps_sdio_d[0]),
|
||||
.hps_io_hps_io_phery_sdmmc_D1 (hps_sdio_d[1]),
|
||||
.hps_io_hps_io_phery_sdmmc_D2 (hps_sdio_d[2]),
|
||||
.hps_io_hps_io_phery_sdmmc_D3 (hps_sdio_d[3]),
|
||||
.hps_io_hps_io_phery_sdmmc_D4 (hps_sdio_d[4]),
|
||||
.hps_io_hps_io_phery_sdmmc_D5 (hps_sdio_d[5]),
|
||||
.hps_io_hps_io_phery_sdmmc_D6 (hps_sdio_d[6]),
|
||||
.hps_io_hps_io_phery_sdmmc_D7 (hps_sdio_d[7]),
|
||||
.hps_io_hps_io_phery_sdmmc_CCLK (hps_sdio_clk),
|
||||
.hps_io_hps_io_phery_usb0_DATA0 (hps_usb_d[0]),
|
||||
.hps_io_hps_io_phery_usb0_DATA1 (hps_usb_d[1]),
|
||||
.hps_io_hps_io_phery_usb0_DATA2 (hps_usb_d[2]),
|
||||
.hps_io_hps_io_phery_usb0_DATA3 (hps_usb_d[3]),
|
||||
.hps_io_hps_io_phery_usb0_DATA4 (hps_usb_d[4]),
|
||||
.hps_io_hps_io_phery_usb0_DATA5 (hps_usb_d[5]),
|
||||
.hps_io_hps_io_phery_usb0_DATA6 (hps_usb_d[6]),
|
||||
.hps_io_hps_io_phery_usb0_DATA7 (hps_usb_d[7]),
|
||||
.hps_io_hps_io_phery_usb0_CLK (hps_usb_clk),
|
||||
.hps_io_hps_io_phery_usb0_STP (hps_usb_stp),
|
||||
.hps_io_hps_io_phery_usb0_DIR (hps_usb_dir),
|
||||
.hps_io_hps_io_phery_usb0_NXT (hps_usb_nxt),
|
||||
.hps_io_hps_io_phery_uart1_RX (hps_uart_rx),
|
||||
.hps_io_hps_io_phery_uart1_TX (hps_uart_tx),
|
||||
.hps_io_hps_io_phery_i2c1_SDA (hps_i2c_sda),
|
||||
.hps_io_hps_io_phery_i2c1_SCL (hps_i2c_scl),
|
||||
.hps_io_hps_io_gpio_gpio1_io5 (hps_gpio[0]),
|
||||
.hps_io_hps_io_gpio_gpio1_io14 (hps_gpio[1]),
|
||||
.hps_io_hps_io_gpio_gpio1_io16 (hps_gpio[2]),
|
||||
.hps_io_hps_io_gpio_gpio1_io17 (hps_gpio[3]),
|
||||
.hps_spi0_mosi_o (spi_mosi),
|
||||
.hps_spi0_miso_i (spi_miso),
|
||||
.hps_spi0_ss_in_n (1'b1),
|
||||
.hps_spi0_mosi_oe (),
|
||||
.hps_spi0_ss0_n_o (spi_csn),
|
||||
.hps_spi0_ss1_n_o (),
|
||||
.hps_spi0_ss2_n_o (),
|
||||
.hps_spi0_ss3_n_o (),
|
||||
.hps_spi0_sclk_clk (spi_clk),
|
||||
.hps_spi1_mosi_o (),
|
||||
.hps_spi1_miso_i (1'b0),
|
||||
.hps_spi1_ss_in_n (1'b1),
|
||||
.hps_spi1_mosi_oe (),
|
||||
.hps_spi1_ss0_n_o (),
|
||||
.hps_spi1_ss1_n_o (),
|
||||
.hps_spi1_ss2_n_o (),
|
||||
.hps_spi1_ss3_n_o (),
|
||||
.hps_spi1_sclk_clk (),
|
||||
.sys_clk_clk (sys_clk),
|
||||
.sys_reset_reset_n (sys_resetn));
|
||||
.sys_reset_reset_n (sys_resetn),
|
||||
.up_enable_up_enable (gpio_o[23]),
|
||||
.up_txnrx_up_txnrx (gpio_o[24]));
|
||||
|
||||
endmodule
|
||||
|
||||
|
|
Loading…
Reference in New Issue