[an error occurred while processing this directive]
|
if falling_edge(clock) then
[...]
elsif rising_edge(clock) then
[...]
end if;
Так делать нельзя, разнесите по разным процессам.
Никакого сдвига на полпериода не надо. Используйте один фронт, восходящий. Все будет нормально, высокий уровень енабла в нужный момент вы гарантированно получите.
Про список чувствительности. В нем должны быть только те сигналы, изменени которых может непосредственно привести к изменению других сигналов. Вот возьмем ваш пример. У вас триггеры с _синхронным_ сбросом и входом разрешения. В списке чувствительности должен быть только клок, потому что как бы не менялись сигналы на входах данных, сброса и разрешения, триггер может изменить свое состояние только в момент фронта клока.
Если триггер с _асинхронным_ сбросом, то в списке чувствительности должны быть только сброс и клок.
Если внутри процесса только комбинационная логика, то в списке чувствительности должны быть все входные сигналы этого куска схемы, иначе можно нарваться на то, что синтезатор, скажем, из мультиплексора сделает latch.
E-mail: info@telesys.ru