В одном процессе есть сигнал обнуляющий счетчик - count_rst.
Код
COUNTER : process(CLK)
begin
if (rising_edge(CLK)) then
if (count_rst = '1') then
ir_counter <= (others => '0');
ir_prescaler <= (others => '0');
end if;
if (count_ena = '1') then
if (ir_prescaler = PRESCALE_VAL) then
ir_prescaler <= (others => '0');
ir_counter <= not ir_counter;
else
ir_prescaler <= ir_prescaler + '1';
end if;
end if;
end if;
end process COUNTER;
В другом процессе в некоторых состояниях я поднимаю этот сигнал и для того чтоб сигнал подержался пару клоков я делаю так
Код
IR_PARSE : process(CLK)
variable ticks : integer range 0 to 255 := 0;
variable bit_idx : integer range 0 to 255 := 0;
begin
if (rising_edge(CLK)) then
if (count_rst = '1') then
ticks := ticks + 1;
if (ticks > 1) then
count_rst <= '0';
ticks := 0;
end if;
end if;
-----------------------------------
--дальше идет State Machine
------------------------------------
Насколько это правильно? Или так делать нельзя?
Сообщение отредактировал Jenya7 - Jul 17 2017, 05:48