From 0d402bd165177f7eb7486e89ecb817a9eced8b3f Mon Sep 17 00:00:00 2001 From: "joachim.schmidt" <joachim.schmidt@hesge.ch> Date: Fri, 10 Sep 2021 10:03:27 +0200 Subject: [PATCH] Update scalp_axis_fifo_wrapper with tlast internal management --- .../src/hdl/scalp_axis_fifo_wrapper.vhd | 64 ++++++++++++------- .../scalp_axis_fifo/scalp_axis_fifo.xci | 53 +++++++-------- 2 files changed, 69 insertions(+), 48 deletions(-) diff --git a/ips/hw/scalp_axis_fifo_wrapper/src/hdl/scalp_axis_fifo_wrapper.vhd b/ips/hw/scalp_axis_fifo_wrapper/src/hdl/scalp_axis_fifo_wrapper.vhd index 7aa080a..e03c10a 100644 --- a/ips/hw/scalp_axis_fifo_wrapper/src/hdl/scalp_axis_fifo_wrapper.vhd +++ b/ips/hw/scalp_axis_fifo_wrapper/src/hdl/scalp_axis_fifo_wrapper.vhd @@ -15,7 +15,7 @@ -- Tool version: 2020.2 -- Description: scalp_axis_fifo_wrapper -- --- Last update: 2021-05-31 +-- Last update: 2021-09-07 -- --------------------------------------------------------------------------------- @@ -30,6 +30,9 @@ use unisim.vcomponents.all; entity scalp_axis_fifo_wrapper is + generic ( + C_CTRL_TLAST : boolean := true); + port ( ClkxCI : in t_axi4_dual_clk; ResetxRI : in t_axi4_rst; @@ -50,29 +53,46 @@ architecture arch of scalp_axis_fifo_wrapper is s_axis_tvalid : in std_logic; s_axis_tready : out std_logic; s_axis_tdata : in std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); - s_axis_tstrb : in std_logic_vector((C_AXI4_STRB_SIZE - 1) downto 0); - s_axis_tkeep : in std_logic_vector((C_AXI4_KEEP_SIZE - 1) downto 0); + -- s_axis_tstrb : in std_logic_vector((C_AXI4_STRB_SIZE - 1) downto 0); + -- s_axis_tkeep : in std_logic_vector((C_AXI4_KEEP_SIZE - 1) downto 0); s_axis_tlast : in std_logic; - s_axis_tid : in std_logic_vector(0 downto 0); - s_axis_tdest : in std_logic_vector((C_AXI4_DEST_SIZE - 1) downto 0); - s_axis_tuser : in std_logic_vector((C_AXI4_USER_SIZE - 1) downto 0); + -- s_axis_tid : in std_logic_vector(0 downto 0); + -- s_axis_tdest : in std_logic_vector((C_AXI4_DEST_SIZE - 1) downto 0); + -- s_axis_tuser : in std_logic_vector((C_AXI4_USER_SIZE - 1) downto 0); m_axis_aclk : in std_logic; m_axis_tvalid : out std_logic; m_axis_tready : in std_logic; m_axis_tdata : out std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); - m_axis_tstrb : out std_logic_vector((C_AXI4_STRB_SIZE - 1) downto 0); - m_axis_tkeep : out std_logic_vector((C_AXI4_KEEP_SIZE - 1) downto 0); + -- m_axis_tstrb : out std_logic_vector((C_AXI4_STRB_SIZE - 1) downto 0); + -- m_axis_tkeep : out std_logic_vector((C_AXI4_KEEP_SIZE - 1) downto 0); m_axis_tlast : out std_logic; - m_axis_tid : out std_logic_vector(0 downto 0); - m_axis_tdest : out std_logic_vector((C_AXI4_DEST_SIZE - 1) downto 0); - m_axis_tuser : out std_logic_vector((C_AXI4_USER_SIZE - 1) downto 0); + -- m_axis_tid : out std_logic_vector(0 downto 0); + -- m_axis_tdest : out std_logic_vector((C_AXI4_DEST_SIZE - 1) downto 0); + -- m_axis_tuser : out std_logic_vector((C_AXI4_USER_SIZE - 1) downto 0); axis_wr_data_count : out std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); axis_rd_data_count : out std_logic_vector((C_AXI4_DATA_SIZE - 1) downto 0); prog_full : out std_logic); end component; + signal TXM2SLastxS : std_ulogic := '0'; + + -- Attributes + attribute mark_debug : string; + attribute keep : string; + -- + begin -- architecture arch + CtrlTLastxG : if C_CTRL_TLAST = true generate + + TXM2SLastxAS : TXM2SxDO.LastxS <= '1' when (TXM2SLastxS = '1') and (TXM2SxDO.ValidxS = '1') else '0'; + + elsif C_CTRL_TLAST = false generate + + TXM2SLastxAS : TXM2SxDO.LastxS <= TXM2SLastxS; + + end generate CtrlTLastxG; + ScalpAxisFifoCorexI : entity work.scalp_axis_fifo port map ( s_axis_aresetn => ResetxRI.RstxRAN, @@ -80,22 +100,22 @@ begin -- architecture arch s_axis_tvalid => RXM2SxDI.ValidxS, s_axis_tready => RXS2MxSO.ReadyxS, s_axis_tdata => RXM2SxDI.DataxD, - s_axis_tstrb => RXM2SxDI.StrbxD, - s_axis_tkeep => RXM2SxDI.KeepxD, + -- s_axis_tstrb => RXM2SxDI.StrbxD, + -- s_axis_tkeep => RXM2SxDI.KeepxD, s_axis_tlast => RXM2SxDI.LastxS, - s_axis_tid(0) => RXM2SxDI.IdxS, - s_axis_tdest => RXM2SxDI.DestxD, - s_axis_tuser => RXM2SxDI.UserxD, + -- s_axis_tid(0) => RXM2SxDI.IdxS, + -- s_axis_tdest => RXM2SxDI.DestxD, + -- s_axis_tuser => RXM2SxDI.UserxD, m_axis_aclk => ClkxCI.TXClkxC, m_axis_tvalid => TXM2SxDO.ValidxS, m_axis_tready => TXS2MxSI.ReadyxS, m_axis_tdata => TXM2SxDO.DataxD, - m_axis_tstrb => TXM2SxDO.StrbxD, - m_axis_tkeep => TXM2SxDO.KeepxD, - m_axis_tlast => TXM2SxDO.LastxS, - m_axis_tid(0) => TXM2SxDO.IdxS, - m_axis_tdest => TXM2SxDO.DestxD, - m_axis_tuser => TXM2SxDO.UserxD, + -- m_axis_tstrb => TXM2SxDO.StrbxD, + -- m_axis_tkeep => TXM2SxDO.KeepxD, + m_axis_tlast => TXM2SLastxS, + -- m_axis_tid(0) => TXM2SxDO.IdxS, + -- m_axis_tdest => TXM2SxDO.DestxD, + -- m_axis_tuser => TXM2SxDO.UserxD, axis_wr_data_count => FifoStatusxDO.WrDataCntxD, axis_rd_data_count => FifoStatusxDO.RdDataCntxD, prog_full => FifoStatusxDO.ProgFullxS); diff --git a/ips/hw/scalp_axis_fifo_wrapper/src/ip_core/scalp_axis_fifo/scalp_axis_fifo.xci b/ips/hw/scalp_axis_fifo_wrapper/src/ip_core/scalp_axis_fifo/scalp_axis_fifo.xci index 7d4b7a8..951de61 100644 --- a/ips/hw/scalp_axis_fifo_wrapper/src/ip_core/scalp_axis_fifo/scalp_axis_fifo.xci +++ b/ips/hw/scalp_axis_fifo_wrapper/src/ip_core/scalp_axis_fifo/scalp_axis_fifo.xci @@ -11,17 +11,17 @@ <spirit:configurableElementValues> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.CLK_DOMAIN"/> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TREADY">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TSTRB">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TSTRB">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.INSERT_VIP">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.PHASE">0.000</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDATA_NUM_BYTES">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDEST_WIDTH">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TID_WIDTH">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TUSER_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TID_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKENIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.ASSOCIATED_RESET"/> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.CLK_DOMAIN"/> @@ -31,17 +31,17 @@ <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_CLKIF.PHASE">0.000</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.CLK_DOMAIN"/> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TREADY">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TSTRB">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TSTRB">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.INSERT_VIP">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.PHASE">0.000</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDATA_NUM_BYTES">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDEST_WIDTH">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TID_WIDTH">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TUSER_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TID_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKENIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.ASSOCIATED_RESET"/> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_CLKIF.CLK_DOMAIN"/> @@ -52,11 +52,11 @@ <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_RSTIF.INSERT_VIP">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_RSTIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ACLKEN_CONV_MODE">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_SIGNAL_SET">0b00000000000000000000000011111111</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_SIGNAL_SET">0b00000000000000000000000000010011</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDATA_WIDTH">32</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TID_WIDTH">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TUSER_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TUSER_WIDTH">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ECC_MODE">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">zynq</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FIFO_DEPTH">64</spirit:configurableElementValue> @@ -68,7 +68,7 @@ <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SYNCHRONIZER_STAGE">3</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_ADV_FEATURES">826486853</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ACLKEN_CONV_MODE">0</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">scalp_axis_fifo_1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">scalp_axis_fifo</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_ECC">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_DEPTH">64</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FIFO_MEMORY_TYPE">block</spirit:configurableElementValue> @@ -79,19 +79,19 @@ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_PROG_EMPTY">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_PROG_FULL">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_RD_DATA_COUNT">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TLAST">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TREADY">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_WR_DATA_COUNT">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IS_ACLK_ASYNC">1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROG_EMPTY_THRESH">5</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PROG_FULL_THRESH">11</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SYNCHRONIZATION_STAGES">3</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDATA_NUM_BYTES">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">4</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">1</spirit:configurableElementValue> - <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_WIDTH">0</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">zynq</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BASE_BOARD_PART">hepia-cores.ch:scalp_node:part0:0.1</spirit:configurableElementValue> <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD_CONNECTIONS"/> @@ -148,13 +148,14 @@ <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.TUSER_WIDTH" xilinx:valueSource="user"/> </xilinx:configElementInfos> <xilinx:boundaryDescriptionInfo> - <xilinx:boundaryDescription xilinx:boundaryDescriptionJSON="{"ip_boundary":{"ports":{"s_axis_aresetn":{"direction":"in","physical_left":"0","physical_right":"0"},"s_axis_aclk":{"direction":"in","physical_left":"0","physical_right":"0"},"s_axis_tvalid":{"direction":"in","physical_left":"0","physical_right":"0"},"s_axis_tready":{"direction":"out","physical_left":"0","physical_right":"0"},"s_axis_tdata":{"direction":"in","physical_left":"7","physical_right":"0"},"m_axis_tvalid":{"direction":"out","physical_left":"0","physical_right":"0"},"m_axis_tready":{"direction":"in","physical_left":"0","physical_right":"0"},"m_axis_tdata":{"direction":"out","physical_left":"7","physical_right":"0"}},"interfaces":{"S_AXIS":{"vlnv":"xilinx.com:interface:axis:1.0","abstraction_type":"xilinx.com:interface:axis_rtl:1.0","mode":"slave","parameters":{"TDATA_NUM_BYTES":[{"value":"4"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TDEST_WIDTH":[{"value":"4"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"} -],"TID_WIDTH":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TUSER_WIDTH":[{"value":"32"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TREADY":[{"value":"1"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TSTRB":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TKEEP":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TLAST":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"FREQ_HZ":[{"value":"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"LAYERED_METADATA":[{ -"value":"undef"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"TDATA":{"physical_name":"s_axis_tdata","physical_left":"7","physical_right":"0","logical_left":"7","logical_right":"0"},"TREADY":{"physical_name":"s_axis_tready","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"},"TVALID":{"physical_name":"s_axis_tvalid","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}},"M_AXIS":{"vlnv":"xilinx.com:interface:axis:1.0","abstraction_type":"xilinx.com:interface:axis_rtl:1.0","mode":"master","parameters":{"TDATA_NUM_BYTES":[{"value":"4"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TDEST_WIDTH":[{"value":"4"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TID_WIDTH":[{"value":"1"},{"value_src":"auto"},{"value_pe -rmission":"user"},{"resolve_type":"generated"}],"TUSER_WIDTH":[{"value":"32"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TREADY":[{"value":"1"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TSTRB":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TKEEP":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TLAST":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"FREQ_HZ":[{"value":"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"LAYERED_METADATA":[{"value":"undef"},{"value_src":"default"},{"value_permission" -:"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"TDATA":{"physical_name":"m_axis_tdata","physical_left":"7","physical_right":"0","logical_left":"7","logical_right":"0"},"TREADY":{"physical_name":"m_axis_tready","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"},"TVALID":{"physical_name":"m_axis_tvalid","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}},"S_RSTIF":{"vlnv":"xilinx.com:signal:reset:1.0","abstraction_type":"xilinx.com:signal:reset_rtl:1.0","mode":"slave","parameters":{"POLARITY":[{"value":"ACTIVE_LOW"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"RST":{"physical_name":"s_axis_aresetn","physical_left":"0","physical_right":"0","logical_left":"0","logic -al_right":"0"}}},"S_CLKIF":{"vlnv":"xilinx.com:signal:clock:1.0","abstraction_type":"xilinx.com:signal:clock_rtl:1.0","mode":"slave","parameters":{"ASSOCIATED_BUSIF":[{"value":"S_AXIS"},{"value_src":"constant"},{"value_permission":"user"},{"resolve_type":"immediate"}],"FREQ_HZ":[{"value":"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}],"FREQ_TOLERANCE_HZ":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"ASSOCIATED_RESET":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"CLK":{"physical_name":"s_axis_aclk","physical_left -":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}}}}}"/> + <xilinx:boundaryDescription xilinx:boundaryDescriptionJSON="{"ip_boundary":{"ports":{"s_axis_aresetn":{"direction":"in","physical_left":"0","physical_right":"0"},"s_axis_aclk":{"direction":"in","physical_left":"0","physical_right":"0"},"s_axis_tvalid":{"direction":"in","physical_left":"0","physical_right":"0"},"s_axis_tready":{"direction":"out","physical_left":"0","physical_right":"0"},"s_axis_tdata":{"direction":"in","physical_left":"31","physical_right":"0"},"s_axis_tlast":{"direction":"in","physical_left":"0","physical_right":"0"},"m_axis_aclk":{"direction":"in","physical_left":"0","physical_right":"0"},"m_axis_tvalid":{"direction":"out","physical_left":"0","physical_right":"0"},"m_axis_tready":{"direction":"in","physical_left":"0","physical_right":"0"},"m_axis_tdata":{"direction":"out","physical_left":"31","physical_right":"0"},"m_axis_tlast":{"direction":"out","physical_left":"0","physical_right":"0"},"axis_wr_data_count":{"direction":"out","physical_left":"31","physical_right":"0"},"axis_rd_data_count":{"direction":"out","physical_left": +"31","physical_right":"0"},"prog_full":{"direction":"out","physical_left":"0","physical_right":"0"}},"interfaces":{"S_AXIS":{"vlnv":"xilinx.com:interface:axis:1.0","abstraction_type":"xilinx.com:interface:axis_rtl:1.0","mode":"slave","parameters":{"TDATA_NUM_BYTES":[{"value":"4"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TDEST_WIDTH":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TID_WIDTH":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TUSER_WIDTH":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TREADY":[{"value":"1"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TSTRB":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TKEEP":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generate +d"}],"HAS_TLAST":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"FREQ_HZ":[{"value":"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"LAYERED_METADATA":[{"value":"undef"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"TDATA":{"physical_name":"s_axis_tdata","physical_left":"31","physical_right":"0","logical_left":"31","logical_right":"0"},"TLAST":{"physical_name":"s_axis_tlast","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"},"TREADY":{"physical_name":"s_axis_tready","physical_left":"0","physical_ +right":"0","logical_left":"0","logical_right":"0"},"TVALID":{"physical_name":"s_axis_tvalid","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}},"M_AXIS":{"vlnv":"xilinx.com:interface:axis:1.0","abstraction_type":"xilinx.com:interface:axis_rtl:1.0","mode":"master","parameters":{"TDATA_NUM_BYTES":[{"value":"4"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TDEST_WIDTH":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TID_WIDTH":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"TUSER_WIDTH":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TREADY":[{"value":"1"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TSTRB":[{"value":"0"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TKEEP":[{"value":"0"},{"value_src" +:"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"HAS_TLAST":[{"value":"1"},{"value_src":"auto"},{"value_permission":"user"},{"resolve_type":"generated"}],"FREQ_HZ":[{"value":"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"LAYERED_METADATA":[{"value":"undef"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"TDATA":{"physical_name":"m_axis_tdata","physical_left":"31","physical_right":"0","logical_left":"31","logical_right":"0"},"TLAST":{"physical_name":"m_axis_tlast","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"},"TREADY":{ +"physical_name":"m_axis_tready","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"},"TVALID":{"physical_name":"m_axis_tvalid","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}},"S_RSTIF":{"vlnv":"xilinx.com:signal:reset:1.0","abstraction_type":"xilinx.com:signal:reset_rtl:1.0","mode":"slave","parameters":{"POLARITY":[{"value":"ACTIVE_LOW"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"RST":{"physical_name":"s_axis_aresetn","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}},"S_CLKIF":{"vlnv":"xilinx.com:signal:clock:1.0","abstraction_type":"xilinx.com:signal:clock_rtl:1.0","mode":"slave","parameters":{"ASSOCIATED_BUSIF":[{"value":"S_AXIS"},{"value_src":"constant"},{"value_permission":"user"},{"resolve_type":"immediate"}],"FREQ_HZ":[{"value": +"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}],"FREQ_TOLERANCE_HZ":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"ASSOCIATED_RESET":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"CLK":{"physical_name":"s_axis_aclk","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}},"M_CLKIF":{"vlnv":"xilinx.com:signal:clock:1.0","abstraction_type":"xilinx.com:signal:clock_rtl:1.0","mode":"slave","parameters":{"ASSOCIATED_BUSIF":[{"value":"M_AXIS"},{"value_src":"constant"},{"value_permission":"user" +},{"resolve_type":"immediate"}],"FREQ_HZ":[{"value":"100000000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}],"FREQ_TOLERANCE_HZ":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"PHASE":[{"value":"0.000"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"CLK_DOMAIN":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"ASSOCIATED_RESET":[{"value":""},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"generated"}],"INSERT_VIP":[{"value":"0"},{"value_src":"default"},{"value_permission":"user"},{"resolve_type":"user"}]},"port_maps":{"CLK":{"physical_name":"m_axis_aclk","physical_left":"0","physical_right":"0","logical_left":"0","logical_right":"0"}}}}}}"/> </xilinx:boundaryDescriptionInfo> </xilinx:componentInstanceExtensions> </spirit:vendorExtensions> -- GitLab