library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use ieee.math_real.all; entity AXI_Handshaking_Scheduler_32 is generic ( G_DataWidth : integer := 8; G_InBufferStages : integer := 1; G_OutBufferStages : integer := 1 ); port ( --@ Clock signal; (**Rising edge** triggered) I_CLK : in std_logic; --@ Clock enable signal (**Active high**) I_CE : in std_logic; --@ Synchronous reset signal (**Active high**) I_RST : in std_logic; --@ @virtualbus P0 @dir in P0 interface I_P0_Valid : in std_logic := '0'; O_P0_Ready : out std_logic := '0'; I_P0_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P1 @dir in P1 interface I_P1_Valid : in std_logic := '0'; O_P1_Ready : out std_logic := '0'; I_P1_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P2 @dir in P2 interface I_P2_Valid : in std_logic := '0'; O_P2_Ready : out std_logic := '0'; I_P2_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P3 @dir in P3 interface I_P3_Valid : in std_logic := '0'; O_P3_Ready : out std_logic := '0'; I_P3_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P4 @dir in P4 interface I_P4_Valid : in std_logic := '0'; O_P4_Ready : out std_logic := '0'; I_P4_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P5 @dir in P5 interface I_P5_Valid : in std_logic := '0'; O_P5_Ready : out std_logic := '0'; I_P5_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P6 @dir in P6 interface I_P6_Valid : in std_logic := '0'; O_P6_Ready : out std_logic := '0'; I_P6_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P7 @dir in P7 interface I_P7_Valid : in std_logic := '0'; O_P7_Ready : out std_logic := '0'; I_P7_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P8 @dir in P8 interface I_P8_Valid : in std_logic := '0'; O_P8_Ready : out std_logic := '0'; I_P8_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P9 @dir in P9 interface I_P9_Valid : in std_logic := '0'; O_P9_Ready : out std_logic := '0'; I_P9_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P10 @dir in P10 interface I_P10_Valid : in std_logic := '0'; O_P10_Ready : out std_logic := '0'; I_P10_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P11 @dir in P11 interface I_P11_Valid : in std_logic := '0'; O_P11_Ready : out std_logic := '0'; I_P11_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P12 @dir in P12 interface I_P12_Valid : in std_logic := '0'; O_P12_Ready : out std_logic := '0'; I_P12_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P13 @dir in P13 interface I_P13_Valid : in std_logic := '0'; O_P13_Ready : out std_logic := '0'; I_P13_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P14 @dir in P14 interface I_P14_Valid : in std_logic := '0'; O_P14_Ready : out std_logic := '0'; I_P14_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P15 @dir in P15 interface I_P15_Valid : in std_logic := '0'; O_P15_Ready : out std_logic := '0'; I_P15_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P16 @dir in P16 interface I_P16_Valid : in std_logic := '0'; O_P16_Ready : out std_logic := '0'; I_P16_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P17 @dir in P17 interface I_P17_Valid : in std_logic := '0'; O_P17_Ready : out std_logic := '0'; I_P17_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P18 @dir in P18 interface I_P18_Valid : in std_logic := '0'; O_P18_Ready : out std_logic := '0'; I_P18_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P19 @dir in P19 interface I_P19_Valid : in std_logic := '0'; O_P19_Ready : out std_logic := '0'; I_P19_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P20 @dir in P20 interface I_P20_Valid : in std_logic := '0'; O_P20_Ready : out std_logic := '0'; I_P20_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P21 @dir in P21 interface I_P21_Valid : in std_logic := '0'; O_P21_Ready : out std_logic := '0'; I_P21_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P22 @dir in P22 interface I_P22_Valid : in std_logic := '0'; O_P22_Ready : out std_logic := '0'; I_P22_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P23 @dir in P23 interface I_P23_Valid : in std_logic := '0'; O_P23_Ready : out std_logic := '0'; I_P23_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P24 @dir in P24 interface I_P24_Valid : in std_logic := '0'; O_P24_Ready : out std_logic := '0'; I_P24_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P25 @dir in P25 interface I_P25_Valid : in std_logic := '0'; O_P25_Ready : out std_logic := '0'; I_P25_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P26 @dir in P26 interface I_P26_Valid : in std_logic := '0'; O_P26_Ready : out std_logic := '0'; I_P26_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P27 @dir in P27 interface I_P27_Valid : in std_logic := '0'; O_P27_Ready : out std_logic := '0'; I_P27_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P28 @dir in P28 interface I_P28_Valid : in std_logic := '0'; O_P28_Ready : out std_logic := '0'; I_P28_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P29 @dir in P29 interface I_P29_Valid : in std_logic := '0'; O_P29_Ready : out std_logic := '0'; I_P29_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P30 @dir in P30 interface I_P30_Valid : in std_logic := '0'; O_P30_Ready : out std_logic := '0'; I_P30_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus P31 @dir in P31 interface I_P31_Valid : in std_logic := '0'; O_P31_Ready : out std_logic := '0'; I_P31_Data : in std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); --@ @end --@ @virtualbus Out @dir out Output interface O_Out_Valid : out std_logic := '0'; I_Out_Ready : in std_logic := '0'; O_Out_Data : out std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); O_Out_Address : out std_logic_vector(4 downto 0) := (others => '0') --@ @end ); end entity AXI_Handshaking_Scheduler_32; architecture Rtl of AXI_Handshaking_Scheduler_32 is signal R_SelectRotator : unsigned(4 downto 0) := (others => '0'); signal R1_SelectRotator : unsigned(4 downto 0) := (others => '0'); signal C_Select : std_logic_vector(31 downto 0) := (others => '0'); signal C_Code : std_logic_vector(4 downto 0) := (others => '0'); signal R_Code : std_logic_vector(4 downto 0) := (others => '0'); signal C_CodeUnrotated : std_logic_vector(4 downto 0) := (others => '0'); signal S_P0_InBufferEnable : std_logic := '0'; signal S_P0_Ready : std_logic := '0'; signal S_P0_Valid : std_logic := '0'; signal S_P0_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P1_InBufferEnable : std_logic := '0'; signal S_P1_Ready : std_logic := '0'; signal S_P1_Valid : std_logic := '0'; signal S_P1_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P2_InBufferEnable : std_logic := '0'; signal S_P2_Ready : std_logic := '0'; signal S_P2_Valid : std_logic := '0'; signal S_P2_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P3_InBufferEnable : std_logic := '0'; signal S_P3_Ready : std_logic := '0'; signal S_P3_Valid : std_logic := '0'; signal S_P3_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P4_InBufferEnable : std_logic := '0'; signal S_P4_Ready : std_logic := '0'; signal S_P4_Valid : std_logic := '0'; signal S_P4_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P5_InBufferEnable : std_logic := '0'; signal S_P5_Ready : std_logic := '0'; signal S_P5_Valid : std_logic := '0'; signal S_P5_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P6_InBufferEnable : std_logic := '0'; signal S_P6_Ready : std_logic := '0'; signal S_P6_Valid : std_logic := '0'; signal S_P6_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P7_InBufferEnable : std_logic := '0'; signal S_P7_Ready : std_logic := '0'; signal S_P7_Valid : std_logic := '0'; signal S_P7_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P8_InBufferEnable : std_logic := '0'; signal S_P8_Ready : std_logic := '0'; signal S_P8_Valid : std_logic := '0'; signal S_P8_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P9_InBufferEnable : std_logic := '0'; signal S_P9_Ready : std_logic := '0'; signal S_P9_Valid : std_logic := '0'; signal S_P9_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P10_InBufferEnable : std_logic := '0'; signal S_P10_Ready : std_logic := '0'; signal S_P10_Valid : std_logic := '0'; signal S_P10_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P11_InBufferEnable : std_logic := '0'; signal S_P11_Ready : std_logic := '0'; signal S_P11_Valid : std_logic := '0'; signal S_P11_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P12_InBufferEnable : std_logic := '0'; signal S_P12_Ready : std_logic := '0'; signal S_P12_Valid : std_logic := '0'; signal S_P12_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P13_InBufferEnable : std_logic := '0'; signal S_P13_Ready : std_logic := '0'; signal S_P13_Valid : std_logic := '0'; signal S_P13_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P14_InBufferEnable : std_logic := '0'; signal S_P14_Ready : std_logic := '0'; signal S_P14_Valid : std_logic := '0'; signal S_P14_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P15_InBufferEnable : std_logic := '0'; signal S_P15_Ready : std_logic := '0'; signal S_P15_Valid : std_logic := '0'; signal S_P15_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P16_InBufferEnable : std_logic := '0'; signal S_P16_Ready : std_logic := '0'; signal S_P16_Valid : std_logic := '0'; signal S_P16_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P17_InBufferEnable : std_logic := '0'; signal S_P17_Ready : std_logic := '0'; signal S_P17_Valid : std_logic := '0'; signal S_P17_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P18_InBufferEnable : std_logic := '0'; signal S_P18_Ready : std_logic := '0'; signal S_P18_Valid : std_logic := '0'; signal S_P18_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P19_InBufferEnable : std_logic := '0'; signal S_P19_Ready : std_logic := '0'; signal S_P19_Valid : std_logic := '0'; signal S_P19_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P20_InBufferEnable : std_logic := '0'; signal S_P20_Ready : std_logic := '0'; signal S_P20_Valid : std_logic := '0'; signal S_P20_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P21_InBufferEnable : std_logic := '0'; signal S_P21_Ready : std_logic := '0'; signal S_P21_Valid : std_logic := '0'; signal S_P21_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P22_InBufferEnable : std_logic := '0'; signal S_P22_Ready : std_logic := '0'; signal S_P22_Valid : std_logic := '0'; signal S_P22_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P23_InBufferEnable : std_logic := '0'; signal S_P23_Ready : std_logic := '0'; signal S_P23_Valid : std_logic := '0'; signal S_P23_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P24_InBufferEnable : std_logic := '0'; signal S_P24_Ready : std_logic := '0'; signal S_P24_Valid : std_logic := '0'; signal S_P24_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P25_InBufferEnable : std_logic := '0'; signal S_P25_Ready : std_logic := '0'; signal S_P25_Valid : std_logic := '0'; signal S_P25_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P26_InBufferEnable : std_logic := '0'; signal S_P26_Ready : std_logic := '0'; signal S_P26_Valid : std_logic := '0'; signal S_P26_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P27_InBufferEnable : std_logic := '0'; signal S_P27_Ready : std_logic := '0'; signal S_P27_Valid : std_logic := '0'; signal S_P27_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P28_InBufferEnable : std_logic := '0'; signal S_P28_Ready : std_logic := '0'; signal S_P28_Valid : std_logic := '0'; signal S_P28_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P29_InBufferEnable : std_logic := '0'; signal S_P29_Ready : std_logic := '0'; signal S_P29_Valid : std_logic := '0'; signal S_P29_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P30_InBufferEnable : std_logic := '0'; signal S_P30_Ready : std_logic := '0'; signal S_P30_Valid : std_logic := '0'; signal S_P30_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_P31_InBufferEnable : std_logic := '0'; signal S_P31_Ready : std_logic := '0'; signal S_P31_Valid : std_logic := '0'; signal S_P31_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_OutBufferEnable : std_logic := '0'; signal S_Out_Ready : std_logic := '0'; signal S_Out_Valid : std_logic := '0'; signal S_Out_Data : std_logic_vector(G_DataWidth - 1 downto 0) := (others => '0'); signal S_Out_Address : std_logic_vector(4 downto 0) := (others => '0'); begin I_P0_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P0_InBufferEnable, I_Valid => I_P0_Valid, O_Ready => O_P0_Ready, O_Valid => S_P0_Valid, I_Ready => S_P0_Ready ); I_P0_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P0_InBufferEnable, I_Data => I_P0_Data, O_Data => S_P0_Data ); I_P1_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P1_InBufferEnable, I_Valid => I_P1_Valid, O_Ready => O_P1_Ready, O_Valid => S_P1_Valid, I_Ready => S_P1_Ready ); I_P1_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P1_InBufferEnable, I_Data => I_P1_Data, O_Data => S_P1_Data ); I_P2_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P2_InBufferEnable, I_Valid => I_P2_Valid, O_Ready => O_P2_Ready, O_Valid => S_P2_Valid, I_Ready => S_P2_Ready ); I_P2_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P2_InBufferEnable, I_Data => I_P2_Data, O_Data => S_P2_Data ); I_P3_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P3_InBufferEnable, I_Valid => I_P3_Valid, O_Ready => O_P3_Ready, O_Valid => S_P3_Valid, I_Ready => S_P3_Ready ); I_P3_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P3_InBufferEnable, I_Data => I_P3_Data, O_Data => S_P3_Data ); I_P4_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P4_InBufferEnable, I_Valid => I_P4_Valid, O_Ready => O_P4_Ready, O_Valid => S_P4_Valid, I_Ready => S_P4_Ready ); I_P4_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P4_InBufferEnable, I_Data => I_P4_Data, O_Data => S_P4_Data ); I_P5_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P5_InBufferEnable, I_Valid => I_P5_Valid, O_Ready => O_P5_Ready, O_Valid => S_P5_Valid, I_Ready => S_P5_Ready ); I_P5_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P5_InBufferEnable, I_Data => I_P5_Data, O_Data => S_P5_Data ); I_P6_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P6_InBufferEnable, I_Valid => I_P6_Valid, O_Ready => O_P6_Ready, O_Valid => S_P6_Valid, I_Ready => S_P6_Ready ); I_P6_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P6_InBufferEnable, I_Data => I_P6_Data, O_Data => S_P6_Data ); I_P7_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P7_InBufferEnable, I_Valid => I_P7_Valid, O_Ready => O_P7_Ready, O_Valid => S_P7_Valid, I_Ready => S_P7_Ready ); I_P7_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P7_InBufferEnable, I_Data => I_P7_Data, O_Data => S_P7_Data ); I_P8_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P8_InBufferEnable, I_Valid => I_P8_Valid, O_Ready => O_P8_Ready, O_Valid => S_P8_Valid, I_Ready => S_P8_Ready ); I_P8_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P8_InBufferEnable, I_Data => I_P8_Data, O_Data => S_P8_Data ); I_P9_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P9_InBufferEnable, I_Valid => I_P9_Valid, O_Ready => O_P9_Ready, O_Valid => S_P9_Valid, I_Ready => S_P9_Ready ); I_P9_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P9_InBufferEnable, I_Data => I_P9_Data, O_Data => S_P9_Data ); I_P10_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P10_InBufferEnable, I_Valid => I_P10_Valid, O_Ready => O_P10_Ready, O_Valid => S_P10_Valid, I_Ready => S_P10_Ready ); I_P10_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P10_InBufferEnable, I_Data => I_P10_Data, O_Data => S_P10_Data ); I_P11_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P11_InBufferEnable, I_Valid => I_P11_Valid, O_Ready => O_P11_Ready, O_Valid => S_P11_Valid, I_Ready => S_P11_Ready ); I_P11_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P11_InBufferEnable, I_Data => I_P11_Data, O_Data => S_P11_Data ); I_P12_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P12_InBufferEnable, I_Valid => I_P12_Valid, O_Ready => O_P12_Ready, O_Valid => S_P12_Valid, I_Ready => S_P12_Ready ); I_P12_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P12_InBufferEnable, I_Data => I_P12_Data, O_Data => S_P12_Data ); I_P13_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P13_InBufferEnable, I_Valid => I_P13_Valid, O_Ready => O_P13_Ready, O_Valid => S_P13_Valid, I_Ready => S_P13_Ready ); I_P13_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P13_InBufferEnable, I_Data => I_P13_Data, O_Data => S_P13_Data ); I_P14_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P14_InBufferEnable, I_Valid => I_P14_Valid, O_Ready => O_P14_Ready, O_Valid => S_P14_Valid, I_Ready => S_P14_Ready ); I_P14_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P14_InBufferEnable, I_Data => I_P14_Data, O_Data => S_P14_Data ); I_P15_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P15_InBufferEnable, I_Valid => I_P15_Valid, O_Ready => O_P15_Ready, O_Valid => S_P15_Valid, I_Ready => S_P15_Ready ); I_P15_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P15_InBufferEnable, I_Data => I_P15_Data, O_Data => S_P15_Data ); I_P16_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P16_InBufferEnable, I_Valid => I_P16_Valid, O_Ready => O_P16_Ready, O_Valid => S_P16_Valid, I_Ready => S_P16_Ready ); I_P16_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P16_InBufferEnable, I_Data => I_P16_Data, O_Data => S_P16_Data ); I_P17_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P17_InBufferEnable, I_Valid => I_P17_Valid, O_Ready => O_P17_Ready, O_Valid => S_P17_Valid, I_Ready => S_P17_Ready ); I_P17_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P17_InBufferEnable, I_Data => I_P17_Data, O_Data => S_P17_Data ); I_P18_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P18_InBufferEnable, I_Valid => I_P18_Valid, O_Ready => O_P18_Ready, O_Valid => S_P18_Valid, I_Ready => S_P18_Ready ); I_P18_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P18_InBufferEnable, I_Data => I_P18_Data, O_Data => S_P18_Data ); I_P19_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P19_InBufferEnable, I_Valid => I_P19_Valid, O_Ready => O_P19_Ready, O_Valid => S_P19_Valid, I_Ready => S_P19_Ready ); I_P19_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P19_InBufferEnable, I_Data => I_P19_Data, O_Data => S_P19_Data ); I_P20_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P20_InBufferEnable, I_Valid => I_P20_Valid, O_Ready => O_P20_Ready, O_Valid => S_P20_Valid, I_Ready => S_P20_Ready ); I_P20_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P20_InBufferEnable, I_Data => I_P20_Data, O_Data => S_P20_Data ); I_P21_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P21_InBufferEnable, I_Valid => I_P21_Valid, O_Ready => O_P21_Ready, O_Valid => S_P21_Valid, I_Ready => S_P21_Ready ); I_P21_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P21_InBufferEnable, I_Data => I_P21_Data, O_Data => S_P21_Data ); I_P22_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P22_InBufferEnable, I_Valid => I_P22_Valid, O_Ready => O_P22_Ready, O_Valid => S_P22_Valid, I_Ready => S_P22_Ready ); I_P22_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P22_InBufferEnable, I_Data => I_P22_Data, O_Data => S_P22_Data ); I_P23_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P23_InBufferEnable, I_Valid => I_P23_Valid, O_Ready => O_P23_Ready, O_Valid => S_P23_Valid, I_Ready => S_P23_Ready ); I_P23_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P23_InBufferEnable, I_Data => I_P23_Data, O_Data => S_P23_Data ); I_P24_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P24_InBufferEnable, I_Valid => I_P24_Valid, O_Ready => O_P24_Ready, O_Valid => S_P24_Valid, I_Ready => S_P24_Ready ); I_P24_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P24_InBufferEnable, I_Data => I_P24_Data, O_Data => S_P24_Data ); I_P25_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P25_InBufferEnable, I_Valid => I_P25_Valid, O_Ready => O_P25_Ready, O_Valid => S_P25_Valid, I_Ready => S_P25_Ready ); I_P25_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P25_InBufferEnable, I_Data => I_P25_Data, O_Data => S_P25_Data ); I_P26_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P26_InBufferEnable, I_Valid => I_P26_Valid, O_Ready => O_P26_Ready, O_Valid => S_P26_Valid, I_Ready => S_P26_Ready ); I_P26_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P26_InBufferEnable, I_Data => I_P26_Data, O_Data => S_P26_Data ); I_P27_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P27_InBufferEnable, I_Valid => I_P27_Valid, O_Ready => O_P27_Ready, O_Valid => S_P27_Valid, I_Ready => S_P27_Ready ); I_P27_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P27_InBufferEnable, I_Data => I_P27_Data, O_Data => S_P27_Data ); I_P28_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P28_InBufferEnable, I_Valid => I_P28_Valid, O_Ready => O_P28_Ready, O_Valid => S_P28_Valid, I_Ready => S_P28_Ready ); I_P28_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P28_InBufferEnable, I_Data => I_P28_Data, O_Data => S_P28_Data ); I_P29_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P29_InBufferEnable, I_Valid => I_P29_Valid, O_Ready => O_P29_Ready, O_Valid => S_P29_Valid, I_Ready => S_P29_Ready ); I_P29_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P29_InBufferEnable, I_Data => I_P29_Data, O_Data => S_P29_Data ); I_P30_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P30_InBufferEnable, I_Valid => I_P30_Valid, O_Ready => O_P30_Ready, O_Valid => S_P30_Valid, I_Ready => S_P30_Ready ); I_P30_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P30_InBufferEnable, I_Data => I_P30_Data, O_Data => S_P30_Data ); I_P31_InBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_InBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_P31_InBufferEnable, I_Valid => I_P31_Valid, O_Ready => O_P31_Ready, O_Valid => S_P31_Valid, I_Ready => S_P31_Ready ); I_P31_InBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_InBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "forward" ) port map( I_CLK => I_CLK, I_Enable => S_P31_InBufferEnable, I_Data => I_P31_Data, O_Data => S_P31_Data ); I_PriorityEncoder_32 : entity work.PriorityEncoder_32 port map( I_Select => C_Select, O_Code => C_Code ); P_SelectMux : process (R_SelectRotator, S_P0_Valid, S_P1_Valid, S_P2_Valid, S_P3_Valid, S_P4_Valid, S_P5_Valid, S_P6_Valid, S_P7_Valid, S_P8_Valid, S_P9_Valid, S_P10_Valid, S_P11_Valid, S_P12_Valid, S_P13_Valid, S_P14_Valid, S_P15_Valid, S_P16_Valid, S_P17_Valid, S_P18_Valid, S_P19_Valid, S_P20_Valid, S_P21_Valid, S_P22_Valid, S_P23_Valid, S_P24_Valid, S_P25_Valid, S_P26_Valid, S_P27_Valid, S_P28_Valid, S_P29_Valid, S_P30_Valid, S_P31_Valid) begin case R_SelectRotator is when "00000" => C_Select <= S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid; when "00001" => C_Select <= S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid; when "00010" => C_Select <= S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid; when "00011" => C_Select <= S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid; when "00100" => C_Select <= S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid; when "00101" => C_Select <= S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid; when "00110" => C_Select <= S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid; when "00111" => C_Select <= S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid; when "01000" => C_Select <= S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid; when "01001" => C_Select <= S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid; when "01010" => C_Select <= S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid; when "01011" => C_Select <= S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid; when "01100" => C_Select <= S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid; when "01101" => C_Select <= S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid; when "01110" => C_Select <= S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid; when "01111" => C_Select <= S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid; when "10000" => C_Select <= S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid; when "10001" => C_Select <= S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid; when "10010" => C_Select <= S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid; when "10011" => C_Select <= S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid; when "10100" => C_Select <= S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid; when "10101" => C_Select <= S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid; when "10110" => C_Select <= S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid; when "10111" => C_Select <= S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid; when "11000" => C_Select <= S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid; when "11001" => C_Select <= S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid; when "11010" => C_Select <= S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid; when "11011" => C_Select <= S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid; when "11100" => C_Select <= S_P28_Valid & S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid; when "11101" => C_Select <= S_P29_Valid & S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid; when "11110" => C_Select <= S_P30_Valid & S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid; when "11111" => C_Select <= S_P31_Valid & S_P0_Valid & S_P1_Valid & S_P2_Valid & S_P3_Valid & S_P4_Valid & S_P5_Valid & S_P6_Valid & S_P7_Valid & S_P8_Valid & S_P9_Valid & S_P10_Valid & S_P11_Valid & S_P12_Valid & S_P13_Valid & S_P14_Valid & S_P15_Valid & S_P16_Valid & S_P17_Valid & S_P18_Valid & S_P19_Valid & S_P20_Valid & S_P21_Valid & S_P22_Valid & S_P23_Valid & S_P24_Valid & S_P25_Valid & S_P26_Valid & S_P27_Valid & S_P28_Valid & S_P29_Valid & S_P30_Valid; when others => C_Select <= (others => '-'); end case; end process; P_CodeUnrotating : process (R_Code, R1_SelectRotator) begin C_CodeUnrotated <= std_logic_vector(unsigned(R_Code) + R1_SelectRotator); end process; P_OutMux : process ( C_CodeUnrotated, S_P0_Data, S_P1_Data, S_P2_Data, S_P3_Data, S_P4_Data, S_P5_Data, S_P6_Data, S_P7_Data, S_P8_Data, S_P9_Data, S_P10_Data, S_P11_Data, S_P12_Data, S_P13_Data, S_P14_Data, S_P15_Data, S_P16_Data, S_P17_Data, S_P18_Data, S_P19_Data, S_P20_Data, S_P21_Data, S_P22_Data, S_P23_Data, S_P24_Data, S_P25_Data, S_P26_Data, S_P27_Data, S_P28_Data, S_P29_Data, S_P30_Data, S_P31_Data, S_P0_Valid, S_P1_Valid, S_P2_Valid, S_P3_Valid, S_P4_Valid, S_P5_Valid, S_P6_Valid, S_P7_Valid, S_P8_Valid, S_P9_Valid, S_P10_Valid, S_P11_Valid, S_P12_Valid, S_P13_Valid, S_P14_Valid, S_P15_Valid, S_P16_Valid, S_P17_Valid, S_P18_Valid, S_P19_Valid, S_P20_Valid, S_P21_Valid, S_P22_Valid, S_P23_Valid, S_P24_Valid, S_P25_Valid, S_P26_Valid, S_P27_Valid, S_P28_Valid, S_P29_Valid, S_P30_Valid, S_P31_Valid, S_Out_Ready) begin S_Out_Valid <= '0'; S_P0_Ready <= '0'; S_P1_Ready <= '0'; S_P2_Ready <= '0'; S_P3_Ready <= '0'; S_P4_Ready <= '0'; S_P5_Ready <= '0'; S_P6_Ready <= '0'; S_P7_Ready <= '0'; S_P8_Ready <= '0'; S_P9_Ready <= '0'; S_P10_Ready <= '0'; S_P11_Ready <= '0'; S_P12_Ready <= '0'; S_P13_Ready <= '0'; S_P14_Ready <= '0'; S_P15_Ready <= '0'; S_P16_Ready <= '0'; S_P17_Ready <= '0'; S_P18_Ready <= '0'; S_P19_Ready <= '0'; S_P20_Ready <= '0'; S_P21_Ready <= '0'; S_P22_Ready <= '0'; S_P23_Ready <= '0'; S_P24_Ready <= '0'; S_P25_Ready <= '0'; S_P26_Ready <= '0'; S_P27_Ready <= '0'; S_P28_Ready <= '0'; S_P29_Ready <= '0'; S_P30_Ready <= '0'; S_P31_Ready <= '0'; S_Out_Data <= (others => '-'); S_Out_Address <= C_CodeUnrotated; case C_CodeUnrotated is when "00000" => S_Out_Valid <= S_P0_Valid; S_P0_Ready <= S_Out_Ready; S_Out_Data <= S_P0_Data; when "00001" => S_Out_Valid <= S_P1_Valid; S_P1_Ready <= S_Out_Ready; S_Out_Data <= S_P1_Data; when "00010" => S_Out_Valid <= S_P2_Valid; S_P2_Ready <= S_Out_Ready; S_Out_Data <= S_P2_Data; when "00011" => S_Out_Valid <= S_P3_Valid; S_P3_Ready <= S_Out_Ready; S_Out_Data <= S_P3_Data; when "00100" => S_Out_Valid <= S_P4_Valid; S_P4_Ready <= S_Out_Ready; S_Out_Data <= S_P4_Data; when "00101" => S_Out_Valid <= S_P5_Valid; S_P5_Ready <= S_Out_Ready; S_Out_Data <= S_P5_Data; when "00110" => S_Out_Valid <= S_P6_Valid; S_P6_Ready <= S_Out_Ready; S_Out_Data <= S_P6_Data; when "00111" => S_Out_Valid <= S_P7_Valid; S_P7_Ready <= S_Out_Ready; S_Out_Data <= S_P7_Data; when "01000" => S_Out_Valid <= S_P8_Valid; S_P8_Ready <= S_Out_Ready; S_Out_Data <= S_P8_Data; when "01001" => S_Out_Valid <= S_P9_Valid; S_P9_Ready <= S_Out_Ready; S_Out_Data <= S_P9_Data; when "01010" => S_Out_Valid <= S_P10_Valid; S_P10_Ready <= S_Out_Ready; S_Out_Data <= S_P10_Data; when "01011" => S_Out_Valid <= S_P11_Valid; S_P11_Ready <= S_Out_Ready; S_Out_Data <= S_P11_Data; when "01100" => S_Out_Valid <= S_P12_Valid; S_P12_Ready <= S_Out_Ready; S_Out_Data <= S_P12_Data; when "01101" => S_Out_Valid <= S_P13_Valid; S_P13_Ready <= S_Out_Ready; S_Out_Data <= S_P13_Data; when "01110" => S_Out_Valid <= S_P14_Valid; S_P14_Ready <= S_Out_Ready; S_Out_Data <= S_P14_Data; when "01111" => S_Out_Valid <= S_P15_Valid; S_P15_Ready <= S_Out_Ready; S_Out_Data <= S_P15_Data; when "10000" => S_Out_Valid <= S_P16_Valid; S_P16_Ready <= S_Out_Ready; S_Out_Data <= S_P16_Data; when "10001" => S_Out_Valid <= S_P17_Valid; S_P17_Ready <= S_Out_Ready; S_Out_Data <= S_P17_Data; when "10010" => S_Out_Valid <= S_P18_Valid; S_P18_Ready <= S_Out_Ready; S_Out_Data <= S_P18_Data; when "10011" => S_Out_Valid <= S_P19_Valid; S_P19_Ready <= S_Out_Ready; S_Out_Data <= S_P19_Data; when "10100" => S_Out_Valid <= S_P20_Valid; S_P20_Ready <= S_Out_Ready; S_Out_Data <= S_P20_Data; when "10101" => S_Out_Valid <= S_P21_Valid; S_P21_Ready <= S_Out_Ready; S_Out_Data <= S_P21_Data; when "10110" => S_Out_Valid <= S_P22_Valid; S_P22_Ready <= S_Out_Ready; S_Out_Data <= S_P22_Data; when "10111" => S_Out_Valid <= S_P23_Valid; S_P23_Ready <= S_Out_Ready; S_Out_Data <= S_P23_Data; when "11000" => S_Out_Valid <= S_P24_Valid; S_P24_Ready <= S_Out_Ready; S_Out_Data <= S_P24_Data; when "11001" => S_Out_Valid <= S_P25_Valid; S_P25_Ready <= S_Out_Ready; S_Out_Data <= S_P25_Data; when "11010" => S_Out_Valid <= S_P26_Valid; S_P26_Ready <= S_Out_Ready; S_Out_Data <= S_P26_Data; when "11011" => S_Out_Valid <= S_P27_Valid; S_P27_Ready <= S_Out_Ready; S_Out_Data <= S_P27_Data; when "11100" => S_Out_Valid <= S_P28_Valid; S_P28_Ready <= S_Out_Ready; S_Out_Data <= S_P28_Data; when "11101" => S_Out_Valid <= S_P29_Valid; S_P29_Ready <= S_Out_Ready; S_Out_Data <= S_P29_Data; when "11110" => S_Out_Valid <= S_P30_Valid; S_P30_Ready <= S_Out_Ready; S_Out_Data <= S_P30_Data; when "11111" => S_Out_Valid <= S_P31_Valid; S_P31_Ready <= S_Out_Ready; S_Out_Data <= S_P31_Data; when others => S_Out_Address <= (others => '-'); end case; end process; P_SelectRotator : process (I_CLK) begin if rising_edge(I_CLK) then if I_CE = '1' then if I_RST = '1' then R_SelectRotator <= (others => '0'); R1_SelectRotator <= (others => '0'); R_Code <= (others => '0'); else R1_SelectRotator <= R_SelectRotator; R_Code <= C_Code; if I_Out_Ready = '1' then R_SelectRotator <= unsigned(C_CodeUnrotated) + 1; end if; end if; end if; end if; end process P_SelectRotator; I_OutBufferCtrl : entity work.PipelineController generic map( G_PipelineStages => G_OutBufferStages ) port map( I_CLK => I_CLK, I_CE => I_CE, I_RST => I_RST, O_Enable => S_OutBufferEnable, I_Valid => S_Out_Valid, O_Ready => S_Out_Ready, O_Valid => O_Out_Valid, I_Ready => I_Out_Ready ); I_OutDataBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_OutBufferStages, G_Width => G_DataWidth, G_RegisterBalancing => "backward" ) port map( I_CLK => I_CLK, I_Enable => S_OutBufferEnable, I_Data => S_Out_Data, O_Data => O_Out_Data ); I_OutAddressBuffer : entity work.PipelineRegister generic map( G_PipelineStages => G_OutBufferStages, G_Width => 5, G_RegisterBalancing => "backward" ) port map( I_CLK => I_CLK, I_Enable => S_OutBufferEnable, I_Data => S_Out_Address, O_Data => O_Out_Address ); end architecture;