----------------------------------------------- increase output every fourth clock cycle--library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;library sychro1;entity saw_generator_wrapper isgeneric (G_INCREASE_EVERY_NTH : positive := 4);port (i_clk : in std_logic;i_rst : in std_logic;o_valid : out std_logic;o_data : out std_logic_vector);end saw_generator_wrapper;architecture behavioral of saw_generator_wrapper issignal s_modulo_counter_carry : std_logic;begin-- first counter that counts modulo G_INCREASE_EVERY_NTH to generate a valid signal for the second counter-- and the output:modulo_up_counter : entity sychro1.up_countergeneric map ( G_MIN_NUMBER => 0, G_MAX_NUMBER => G_INCREASE_EVERY_NTH - 1 )port map ( i_clk => i_clk, i_rst => i_rst, i_valid => '1', o_data => open, o_carry => s_modulo_counter_carry );-- the second counter:main_up_counter : entity sychro1.up_counter_stdlvgeneric map ( G_BITS => o_data'length, G_MIN_NUMBER => ( o_data'range => '0' ), G_MAX_NUMBER => ( o_data'range => '1' ) )port map( i_clk => i_clk, i_rst => i_rst, i_valid => s_modulo_counter_carry, o_data => o_data, o_carry => open );-- signal connection:o_valid <= s_modulo_counter_carry;end architecture;