From fa38ca66145120791db540ecba3377bd8c02d081 Mon Sep 17 00:00:00 2001 From: "joachim.schmidt" <joachim.schmidt@hesge.ch> Date: Sun, 12 Sep 2021 11:02:35 +0200 Subject: [PATCH] Update scalp_router_regbank --- ips/hw/scalp_router_regbank/component.xml | 48 ++++- .../src/hdl/scalp_router_regbank.vhd | 175 +++++++++++------- 2 files changed, 143 insertions(+), 80 deletions(-) diff --git a/ips/hw/scalp_router_regbank/component.xml b/ips/hw/scalp_router_regbank/component.xml index b7041e5..46bace0 100644 --- a/ips/hw/scalp_router_regbank/component.xml +++ b/ips/hw/scalp_router_regbank/component.xml @@ -3,7 +3,7 @@ <spirit:vendor>hepia.hesge.ch</spirit:vendor> <spirit:library>user</spirit:library> <spirit:name>scalp_router_regbank</spirit:name> - <spirit:version>0.8</spirit:version> + <spirit:version>1.0</spirit:version> <spirit:busInterfaces> <spirit:busInterface> <spirit:name>SAxiClkxCI</spirit:name> @@ -412,7 +412,7 @@ <spirit:parameters> <spirit:parameter> <spirit:name>viewChecksum</spirit:name> - <spirit:value>7a280e8f</spirit:value> + <spirit:value>16e15106</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:view> @@ -428,7 +428,7 @@ <spirit:parameters> <spirit:parameter> <spirit:name>viewChecksum</spirit:name> - <spirit:value>7a280e8f</spirit:value> + <spirit:value>16e15106</spirit:value> </spirit:parameter> </spirit:parameters> </spirit:view> @@ -931,7 +931,7 @@ <spirit:file> <spirit:name>src/hdl/scalp_router_regbank.vhd</spirit:name> <spirit:fileType>vhdlSource</spirit:fileType> - <spirit:userFileType>CHECKSUM_7a280e8f</spirit:userFileType> + <spirit:userFileType>CHECKSUM_16e15106</spirit:userFileType> </spirit:file> </spirit:fileSet> <spirit:fileSet> @@ -944,14 +944,14 @@ <spirit:fileSet> <spirit:name>xilinx_xpgui_view_fileset</spirit:name> <spirit:file> - <spirit:name>xgui/scalp_router_regbank_v0_8.tcl</spirit:name> + <spirit:name>xgui/scalp_router_regbank_v1_0.tcl</spirit:name> <spirit:fileType>tclSource</spirit:fileType> <spirit:userFileType>CHECKSUM_94c74469</spirit:userFileType> <spirit:userFileType>XGUI_VERSION_2</spirit:userFileType> </spirit:file> </spirit:fileSet> </spirit:fileSets> - <spirit:description>scalp_router_regbank_v0_8</spirit:description> + <spirit:description>scalp_router_regbank_v1_0</spirit:description> <spirit:parameters> <spirit:parameter> <spirit:name>C_AXI4_ARADDR_SIZE</spirit:name> @@ -1031,11 +1031,11 @@ <xilinx:taxonomies> <xilinx:taxonomy>/UserIP</xilinx:taxonomy> </xilinx:taxonomies> - <xilinx:displayName>scalp_router_regbank_v0_8</xilinx:displayName> + <xilinx:displayName>scalp_router_regbank_v1_0</xilinx:displayName> <xilinx:definitionSource>package_project</xilinx:definitionSource> <xilinx:vendorDisplayName>Hepia</xilinx:vendorDisplayName> - <xilinx:coreRevision>18</xilinx:coreRevision> - <xilinx:coreCreationDateTime>2021-06-28T06:22:25Z</xilinx:coreCreationDateTime> + <xilinx:coreRevision>22</xilinx:coreRevision> + <xilinx:coreCreationDateTime>2021-09-12T08:42:29Z</xilinx:coreCreationDateTime> <xilinx:tags> <xilinx:tag xilinx:name="ui.data.coregen.dd@32291851_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> <xilinx:tag xilinx:name="ui.data.coregen.dd@530043c9_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> @@ -1256,12 +1256,40 @@ <xilinx:tag xilinx:name="ui.data.coregen.dd@52defe61_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> <xilinx:tag xilinx:name="ui.data.coregen.dd@4f037fc3_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> <xilinx:tag xilinx:name="ui.data.coregen.dd@b0126f5_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@4f0a2041_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@778c2065_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@56084df3_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@5526729_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@b1d2941_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@7e8dccb0_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@6bc81f8d_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@23f0989f_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@1a55ba40_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@f52f706_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@398753e7_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@6d9eda34_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@42101452_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@53a026d7_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@667e25ed_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@71f35fbc_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@407d044d_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@4aa62268_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@ff17e9e_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@3459baa2_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@74b073b1_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@5e363cb_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@776b34d2_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@78b9123e_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@b62c76_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@3fe39027_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@78658331_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> + <xilinx:tag xilinx:name="ui.data.coregen.dd@27a2c99f_ARCHIVE_LOCATION">/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ips/hw/scalp_router_regbank</xilinx:tag> </xilinx:tags> </xilinx:coreExtensions> <xilinx:packagingInfo> <xilinx:xilinxVersion>2020.2</xilinx:xilinxVersion> <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="43363bdc"/> - <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="8fbae063"/> + <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="03649f14"/> <xilinx:checksum xilinx:scope="ports" xilinx:value="6b6e9195"/> <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="d2e1fb7a"/> <xilinx:checksum xilinx:scope="parameters" xilinx:value="03a862ce"/> diff --git a/ips/hw/scalp_router_regbank/src/hdl/scalp_router_regbank.vhd b/ips/hw/scalp_router_regbank/src/hdl/scalp_router_regbank.vhd index b4df94a..68d468f 100644 --- a/ips/hw/scalp_router_regbank/src/hdl/scalp_router_regbank.vhd +++ b/ips/hw/scalp_router_regbank/src/hdl/scalp_router_regbank.vhd @@ -81,65 +81,87 @@ architecture behavioral of scalp_router_regbank is -- Signals -- Clock and reset - signal SAxiClkxC : std_ulogic := '0'; - signal SAxiRstxRAN : std_ulogic := '0'; + signal SAxiClkxC : std_ulogic := '0'; + signal SAxiRstxRAN : std_ulogic := '0'; -- AXI4 Lite - signal SAxiARReadyxS : std_ulogic := '0'; - signal SAxiRValidxS : std_ulogic := '0'; - signal SAxiBValidxS : std_ulogic := '0'; - signal SAxiWReadyxS : std_ulogic := '0'; - signal SAxiAWReadyxS : std_ulogic := '0'; - signal WrAddrxDN : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); - signal WrAddrxDP : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); + signal SAxiARReadyxS : std_ulogic := '0'; + signal SAxiRValidxS : std_ulogic := '0'; + signal SAxiBValidxS : std_ulogic := '0'; + signal SAxiWReadyxS : std_ulogic := '0'; + signal SAxiAWReadyxS : std_ulogic := '0'; + signal WrAddrxDN : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); + signal WrAddrxDP : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); -- Signals of access to the register bank - signal RdAddrxD : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); - signal RdDataxD : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := (others => '0'); - signal RdValidxS : std_ulogic := '0'; - signal WrAddrxD : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); - signal WrDataxD : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := (others => '0'); - signal WrValidxS : std_ulogic := '0'; + signal RdAddrxD : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); + signal RdDataxD : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := (others => '0'); + signal RdValidxS : std_ulogic := '0'; + signal WrAddrxD : std_ulogic_vector((C_AXI4_ADDR_SIZE - 1) downto 0) := (others => '0'); + signal WrDataxD : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := (others => '0'); + signal WrValidxS : std_ulogic := '0'; -- Registers list - signal ScalpPacketWriteDataPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketWriteDataPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketReadDataPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketReadDataPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketCtrlPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketCtrlPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketStatusPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal ScalpPacketStatusPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal TXWrDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal TXWrDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal TXRdDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal TXRdDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal RXWrDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal RXWrDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal RXRdDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal RXRdDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal LocNetAddrPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; - signal LocNetAddrPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketWriteDataPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketWriteDataPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketReadDataPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketReadDataPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketCtrlPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketCtrlPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketStatusPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal ScalpPacketStatusPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal TXWrDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal TXWrDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal TXRdDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal TXRdDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal RXWrDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal RXWrDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal RXRdDataCntPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal RXRdDataCntPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal LocNetAddrPortxDN : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + signal LocNetAddrPortxDP : std_ulogic_vector((C_AXI4_DATA_SIZE - 1) downto 0) := x"00000000"; + -- Debug + signal SAxiARAddrInDebugxD : std_ulogic_vector((C_AXI4_ARADDR_SIZE - 1) downto 0) := (others => '0'); + signal SAxiARValidInDebugxS : std_ulogic := '0'; + signal SAxiARReadyOutDebugxS : std_ulogic := '0'; + signal SAxiRDataOutDebugxD : std_ulogic_vector((C_AXI4_RDATA_SIZE - 1) downto 0) := (others => '0'); + signal SAxiRRespOutDebugxD : std_ulogic_vector((C_AXI4_RRESP_SIZE - 1) downto 0) := (others => '0'); + signal SAxiRValidOutDebugxS : std_ulogic := '0'; + signal SAxiRReadyInDebugxS : std_ulogic := '0'; -- Attributes - attribute mark_debug : string; - attribute keep : string; + attribute mark_debug : string; + attribute keep : string; -- -- attribute mark_debug of : signal is "true"; -- attribute keep of : signal is "true"; - attribute mark_debug of RdAddrxD : signal is "true"; - attribute keep of RdAddrxD : signal is "true"; - attribute mark_debug of RdDataxD : signal is "true"; - attribute keep of RdDataxD : signal is "true"; - attribute mark_debug of RdValidxS : signal is "true"; - attribute keep of RdValidxS : signal is "true"; - attribute mark_debug of WrAddrxD : signal is "true"; - attribute keep of WrAddrxD : signal is "true"; - attribute mark_debug of WrDataxD : signal is "true"; - attribute keep of WrDataxD : signal is "true"; - attribute mark_debug of WrValidxS : signal is "true"; - attribute keep of WrValidxS : signal is "true"; - attribute mark_debug of LocNetAddrPortxDN : signal is "true"; - attribute keep of LocNetAddrPortxDN : signal is "true"; - attribute mark_debug of LocNetAddrPortxDP : signal is "true"; - attribute keep of LocNetAddrPortxDP : signal is "true"; + attribute mark_debug of RdAddrxD : signal is "true"; + attribute keep of RdAddrxD : signal is "true"; + attribute mark_debug of RdDataxD : signal is "true"; + attribute keep of RdDataxD : signal is "true"; + attribute mark_debug of RdValidxS : signal is "true"; + attribute keep of RdValidxS : signal is "true"; + attribute mark_debug of WrAddrxD : signal is "true"; + attribute keep of WrAddrxD : signal is "true"; + attribute mark_debug of WrDataxD : signal is "true"; + attribute keep of WrDataxD : signal is "true"; + attribute mark_debug of WrValidxS : signal is "true"; + attribute keep of WrValidxS : signal is "true"; + attribute mark_debug of LocNetAddrPortxDN : signal is "true"; + attribute keep of LocNetAddrPortxDN : signal is "true"; + attribute mark_debug of LocNetAddrPortxDP : signal is "true"; + attribute keep of LocNetAddrPortxDP : signal is "true"; + attribute mark_debug of SAxiARAddrInDebugxD : signal is "true"; + attribute keep of SAxiARAddrInDebugxD : signal is "true"; + attribute mark_debug of SAxiARValidInDebugxS : signal is "true"; + attribute keep of SAxiARValidInDebugxS : signal is "true"; + attribute mark_debug of SAxiARReadyOutDebugxS : signal is "true"; + attribute keep of SAxiARReadyOutDebugxS : signal is "true"; + attribute mark_debug of SAxiRDataOutDebugxD : signal is "true"; + attribute keep of SAxiRDataOutDebugxD : signal is "true"; + attribute mark_debug of SAxiRRespOutDebugxD : signal is "true"; + attribute keep of SAxiRRespOutDebugxD : signal is "true"; + attribute mark_debug of SAxiRValidOutDebugxS : signal is "true"; + attribute keep of SAxiRValidOutDebugxS : signal is "true"; + attribute mark_debug of SAxiRReadyInDebugxS : signal is "true"; + attribute keep of SAxiRReadyInDebugxS : signal is "true"; begin @@ -155,27 +177,40 @@ begin assert C_AXI4_AWADDR_SIZE >= C_AXI4_ADDR_SIZE report "AWADDR and ADDR vectors must be the same" severity failure; + DebugxB : block is + begin -- block DebugxB + + SAxiARAddrInDebugxAS : SAxiARAddrInDebugxD <= SAxiARAddrxDI; + SAxiARValidInDebugxAS : SAxiARValidInDebugxS <= SAxiARValidxSI; + SAxiARReadyOutDebugxAS : SAxiARReadyOutDebugxS <= SAxiARReadyxS; + SAxiRDataOutDebugxAS : SAxiRDataOutDebugxD <= RdDataxD; + SAxiRRespOutDebugxAS : SAxiRRespOutDebugxD <= C_AXI4_RRESP_OKAY; + SAxiRValidOutDebugxAS : SAxiRValidOutDebugxS <= SAxiRValidxS; + SAxiRReadyInDebugxAS : SAxiRReadyInDebugxS <= SAxiRReadyxSI; + + end block DebugxB; + EntityIOxB : block is begin -- block EntityIOxB -- Clock and reset - SAxiClkxAS : SAxiClkxC <= SAxiClkxCI; - SAxiRstxAS : SAxiRstxRAN <= SAxiRstxRANI; + SAxiClkxAS : SAxiClkxC <= SAxiClkxCI; + SAxiRstxAS : SAxiRstxRAN <= SAxiRstxRANI; -- Read Channel - SAxiARReadyxAS : SAxiARReadyxSO <= SAxiARReadyxS; - SAxiRValidxAS : SAxiRValidxSO <= SAxiRValidxS; - SAxiRDataxAS : SAxiRDataxDO <= RdDataxD; - RdValidxAS : RdValidxS <= SAxiARValidxSI; - RdAddrxAS : RdAddrxD((C_AXI4_ADDR_SIZE - 1) downto 0) <= SAxiARAddrxDI((C_AXI4_ADDR_SIZE - 1) downto 0); - SAxiRRespxAS : SAxiRRespxDO <= C_AXI4_RRESP_OKAY; + SAxiARReadyxAS : SAxiARReadyxSO <= SAxiARReadyxS; + SAxiRValidxAS : SAxiRValidxSO <= SAxiRValidxS; + SAxiRDataxAS : SAxiRDataxDO <= RdDataxD; + RdValidxAS : RdValidxS <= SAxiARValidxSI; + RdAddrxAS : RdAddrxD((C_AXI4_ADDR_SIZE - 1) downto 0) <= SAxiARAddrxDI((C_AXI4_ADDR_SIZE - 1) downto 0); + SAxiRRespxAS : SAxiRRespxDO <= C_AXI4_RRESP_OKAY; -- Write Channel - SAxiBRespxAS : SAxiBRespxDO <= C_AXI4_BRESP_OKAY; - SAxiBValidxAS : SAxiBValidxSO <= SAxiBValidxS; - SAxiWReadyxAS : SAxiWReadyxSO <= SAxiWReadyxS; - SAxiAWReadyxAS : SAxiAWReadyxSO <= SAxiAWReadyxS; - WrValidxAS : WrValidxS <= SAxiWValidxSI; - WrDataxAS : WrDataxD <= SAxiWDataxDI; - WrAddrOutxAS : WrAddrxD((C_AXI4_ADDR_SIZE - 1) downto 0) <= WrAddrxDN((C_AXI4_ADDR_SIZE - 1) downto 0); + SAxiBRespxAS : SAxiBRespxDO <= C_AXI4_BRESP_OKAY; + SAxiBValidxAS : SAxiBValidxSO <= SAxiBValidxS; + SAxiWReadyxAS : SAxiWReadyxSO <= SAxiWReadyxS; + SAxiAWReadyxAS : SAxiAWReadyxSO <= SAxiAWReadyxS; + WrValidxAS : WrValidxS <= SAxiWValidxSI; + WrDataxAS : WrDataxD <= SAxiWDataxDI; + WrAddrOutxAS : WrAddrxD((C_AXI4_ADDR_SIZE - 1) downto 0) <= WrAddrxDN((C_AXI4_ADDR_SIZE - 1) downto 0); -- WrAddrOutxAS : WrAddrxD((C_AXI4_ADDR_SIZE - 1) downto 0) <= SAxiAWAddrxDI((C_AXI4_ADDR_SIZE - 1) downto 0) when SAxiAWValidxSI = '1' else WrAddrxDP; -- WrAddrOutxAS : WrAddrxD <= WrAddrxDP; WrAddrxAS : WrAddrxDN((C_AXI4_ADDR_SIZE - 1) downto 0) <= SAxiAWAddrxDI((C_AXI4_ADDR_SIZE - 1) downto 0) when SAxiAWValidxSI = '1' else WrAddrxDP; @@ -347,12 +382,13 @@ begin end if; end process WriteRegPortxP; - ReadRegPortxP : process (SAxiClkxC, SAxiRstxRAN) is + ReadRegPortxP : process (SAxiClkxCI, SAxiRstxRAN) is begin -- process ReadRegPortxP if SAxiRstxRAN = '0' then RdDataxD <= (others => '0'); - elsif rising_edge(SAxiClkxC) then - RdDataxD <= (others => '0'); + + elsif rising_edge(SAxiClkxCI) then + RdDataxD <= RdDataxD; if RdValidxS = '1' then case RdAddrxD is @@ -364,7 +400,6 @@ begin when x"020" => RdDataxD <= RXWrDataCntPortxDP; when x"024" => RdDataxD <= RXRdDataCntPortxDP; when x"028" => RdDataxD <= LocNetAddrPortxDP; - when others => RdDataxD <= (others => '0'); end case; end if; -- GitLab