[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Привет всем.
Есть следующий кусок кода, в зависимости от команды с шины выполняется определенное действие, после синтеза и проверки
на симуляторе видно, что при in_isa_data=06h сигнал
timer_stop после окончания цикла записи команды (in_isa_data снова нуль) начинает колебаться из 1 в 0 с периодом 8.7нс. На других
сигналах (принцип тот же сигнал pc_reset) этого не происходит.
Это пропадает, если как-то хитрым образом выставить опции
синтезатора логики. Проект VHDL сначала прогнал через Leonardo
потом EDIF в EMAX10.1. Что это за штука и как с ней бороться???
commndd:PROCESS (reset_drv,in_isa_data)
BEGIN
IF (reset_drv='1') THEN
timer_reset<='0';
out_isa_data:="00000000";
pc_reset:='0';
timer_stop<='0';
ELSE
case in_isa_data is
when "00000001" => out_isa_data:=wdt_release;
when "00000010" => pc_reset:='1';
when "00000100" => timer_reset<='1';
out_isa_data:="00000000";
when "00000101" => out_isa_data:=timer(15 downto 8);
when "00000110" => timer_stop<='1';
out_isa_data:="00000001";
when "00000111" => timer_stop<='0';
out_isa_data:="00000000";
when others => timer_reset<='0';
end case;
END IF;
END PROCESS commndd;
E-mail: info@telesys.ru