2 use ieee.std_logic_1164.all;
3 use ieee.std_logic_arith.all;
4 use ieee.std_logic_unsigned.all;
5 use ieee.numeric_std.all;
6 use work.lx_rocon_pkg.all;
9 -- Increments step in IRC coprocessor
11 entity irc_proc_inc is
14 num_irc_g : positive := 4
20 reset_i : in std_logic;
22 op_o : out std_logic_vector(1 downto 0);
23 axis_o : out std_logic_vector((ceil_log2(num_irc_g)-1) downto 0)
27 architecture Behavioral of irc_proc_inc is
29 signal num_s : std_logic_vector((axis_o'length+1) downto 0);
33 -- higher bits are axis
34 axis_o <= num_s((num_s'length-1) downto 2);
36 op_o <= num_s(1 downto 0);
42 wait until clk_i'event and clk_i = '1';
45 num_s <= std_logic_vector(to_unsigned(4*num_irc_g - 1, num_s'length));
46 elsif num_s = std_logic_vector(to_unsigned(4*num_irc_g - 1, num_s'length)) then
47 num_s <= (others => '0');
49 num_s <= std_logic_vector(num_s + 1);