From 0897b8168306266c0a6a0f7bea01117b05905d1e Mon Sep 17 00:00:00 2001 From: Glenn Brian Christian Date: Thu, 25 Apr 2019 11:02:26 +0100 Subject: [PATCH] Fix to fmc_24vio module to allow build with reduced block count in app * Includes an unused GTX loopback instance in the fmc_24vio_in module * Fix to fpga makefile to produce indepenent log for ps, pl, ip builds --- modules/fmc_24vio/const/fmc_24vio_impl.xdc | 13 +++++++++++ modules/fmc_24vio/fmc_24v_in.block.ini | 2 ++ modules/fmc_24vio/hdl/fmc_24v_in_wrapper.vhd | 22 ++++++++++++++++++- modules/fmc_24vio/hdl/fmc_24v_out_wrapper.vhd | 1 - modules/fmc_24vio/hdl/fmc_loopback | 1 + targets/PandABox/Makefile | 18 ++++++++------- targets/PandABox/hdl/panda_carrier_top.vhd | 1 + 7 files changed, 48 insertions(+), 10 deletions(-) create mode 120000 modules/fmc_24vio/hdl/fmc_loopback diff --git a/modules/fmc_24vio/const/fmc_24vio_impl.xdc b/modules/fmc_24vio/const/fmc_24vio_impl.xdc index e3421ccbf..f8270b9bc 100644 --- a/modules/fmc_24vio/const/fmc_24vio_impl.xdc +++ b/modules/fmc_24vio/const/fmc_24vio_impl.xdc @@ -15,3 +15,16 @@ # ------------------------------------------------------------------- set_property PULLTYPE PULLDOWN [get_ports FMC_LA_P[*]] set_property PULLTYPE PULLDOWN [get_ports FMC_LA_N[*]] + +##set_property IO_BUFFER_TYPE none [get_ports FMC_DP0_C2M_P] +##set_property IO_BUFFER_TYPE none [get_ports FMC_DP0_C2M_N] + +set_clock_groups -asynchronous -group [get_clocks \ +{softblocks_inst/FMC_24V_IN_inst/fmcgtx_exdes_i/fmcgtx_support_i/fmcgtx_init_i/U0/fmcgtx_i/gt0_fmcgtx_i/gtxe2_i/TXOUTCLK}] + +# ------------------------------------------------------------------- +# FMC MGTs - Bank 112 +# ------------------------------------------------------------------- +set_property LOC $FMC_GTX_LOC \ +[get_cells softblocks_inst/FMC_24V_IN_inst/fmcgtx_exdes_i/fmcgtx_support_i/fmcgtx_init_i/U0/fmcgtx_i/gt0_fmcgtx_i/gtxe2_i] + diff --git a/modules/fmc_24vio/fmc_24v_in.block.ini b/modules/fmc_24vio/fmc_24v_in.block.ini index e695e8249..f29024929 100644 --- a/modules/fmc_24vio/fmc_24v_in.block.ini +++ b/modules/fmc_24vio/fmc_24v_in.block.ini @@ -3,6 +3,8 @@ description: FMC 24V IO Module Input entity: fmc_24v_in type: fmc constraints: const/fmc_24vio_impl.xdc +otherconst: mgt_pins +ip: fmcgtx [IN_VTSEL] type: param enum diff --git a/modules/fmc_24vio/hdl/fmc_24v_in_wrapper.vhd b/modules/fmc_24vio/hdl/fmc_24v_in_wrapper.vhd index 6bb932f60..ddc478308 100644 --- a/modules/fmc_24vio/hdl/fmc_24v_in_wrapper.vhd +++ b/modules/fmc_24vio/hdl/fmc_24v_in_wrapper.vhd @@ -67,7 +67,11 @@ signal IN_VTSEL : std_logic_vector(31 downto 0); signal fmc_in : std_logic_vector(7 downto 0); -signal fmc_out : std_logic_vector(7 downto 0); + + +--attribute io_buffer_type : string; +--attribute io_buffer_type of FMC_o.TXP_OUT, FMC_o.TXN_OUT, FMC_i.RXP_IN, FMC_i.RXN_IN: signal is "none"; + begin @@ -108,6 +112,22 @@ port map ( -- IB => FMC_i.FMC_CLK1_M2C_N --); +--------------------------------------------------------------------------- +-- GTX Loopback Test +--------------------------------------------------------------------------- +fmcgtx_exdes_i : entity work.fmcgtx_exdes +port map ( + Q0_CLK1_GTREFCLK_PAD_IN => FMC_i.GTREFCLK, + GTREFCLK => open, + drpclk_in_i => clk_i, + SOFT_RESET => '0', + TRACK_DATA_OUT => open, + ERROR_COUNT => open, + RXN_IN => FMC_i.RXN_IN, + RXP_IN => FMC_i.RXP_IN, + TXN_OUT => FMC_o.TXN_OUT, + TXP_OUT => FMC_o.TXP_OUT +); --------------------------------------------------------------------------- -- FMC CSR Interface diff --git a/modules/fmc_24vio/hdl/fmc_24v_out_wrapper.vhd b/modules/fmc_24vio/hdl/fmc_24v_out_wrapper.vhd index 4d2ca7a37..1c7e6374b 100644 --- a/modules/fmc_24vio/hdl/fmc_24v_out_wrapper.vhd +++ b/modules/fmc_24vio/hdl/fmc_24v_out_wrapper.vhd @@ -61,7 +61,6 @@ signal OUT_EN : std_logic_vector(31 downto 0); signal OUT_CONFIG : std_logic_vector(31 downto 0); signal OUT_STATUS : std_logic_vector(31 downto 0); -signal fmc_in : std_logic_vector(7 downto 0); signal fmc_out : std_logic_vector(7 downto 0); begin diff --git a/modules/fmc_24vio/hdl/fmc_loopback b/modules/fmc_24vio/hdl/fmc_loopback new file mode 120000 index 000000000..d5bdf8330 --- /dev/null +++ b/modules/fmc_24vio/hdl/fmc_loopback @@ -0,0 +1 @@ +../../fmc_loopback/hdl/ \ No newline at end of file diff --git a/targets/PandABox/Makefile b/targets/PandABox/Makefile index 5e639e895..59f9bc825 100644 --- a/targets/PandABox/Makefile +++ b/targets/PandABox/Makefile @@ -44,18 +44,20 @@ VERSION : $(IP_CORES) : $(RUNVIVADO) -mode batch -source $(TARGET_DIR)/scripts/build_ips.tcl \ - -tclargs $(TARGET_DIR) -tclargs $(IP_DIR) -log build_ips.log -nojournal + -log build_ips.log -nojournal \ + -tclargs $(TARGET_DIR) -tclargs $(IP_DIR) $(PS_CORE) : $(RUNVIVADO) -mode batch -source $(TARGET_DIR)/scripts/build_ps.tcl \ - -tclargs $(TARGET_DIR) -tclargs $(BUILD_DIR) -log build_ps.log -nojournal + -log build_ps.log -nojournal \ + -tclargs $(TARGET_DIR) -tclargs $(BUILD_DIR) panda_top.bit : VERSION $(IP_CORES) $(PS_CORE) $(RUNVIVADO) -mode batch -source $(TARGET_DIR)/scripts/build_top.tcl \ - -log build_top.log -nojournal \ - -tclargs $(TOP) \ - -tclargs $(TARGET_DIR) \ - -tclargs $(BUILD_DIR) \ - -tclargs $(AUTOGEN) \ - -tclargs $(IP_DIR) + -log build_top.log -nojournal \ + -tclargs $(TOP) \ + -tclargs $(TARGET_DIR) \ + -tclargs $(BUILD_DIR) \ + -tclargs $(AUTOGEN) \ + -tclargs $(IP_DIR) diff --git a/targets/PandABox/hdl/panda_carrier_top.vhd b/targets/PandABox/hdl/panda_carrier_top.vhd index 90add525e..e6f38408e 100644 --- a/targets/PandABox/hdl/panda_carrier_top.vhd +++ b/targets/PandABox/hdl/panda_carrier_top.vhd @@ -243,6 +243,7 @@ signal FMC_MAC_ADDR_ARR : std32_array(2*NUM_FMC-1 downto 0); -- FMC Block signal FMC_i : FMC_input_interface; signal FMC_o : FMC_output_interface; +--signal FMC_o : FMC_output_interface := ( TXN_OUT => 'Z', TXP_OUT => 'Z'); signal FMC_io : FMC_inout_interface; -- SFP Block