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