Так как вы используете ресет, он у вас не будет срабатывать если counter_ena='1'. Перепишите процесс в стиле
CODE
if count_rst='1' then
elsif count_ena='1' then
end if;
По генерации ресета есть вопрос, где он устанавливается в единицу. Если в процессе IR_PARSE, то в принципе работать будет, хотя мне не нравится такой стить написания.
Я бы для повышения читаемости прописал установку ресета там же, где он сбрасывается, например после else.
CODE
if count_rst='1' then
else
end if;
Переменные в таком стиле не применял, но так тоже должно синтезнуться.