Перейти к содержанию
    

счетчик не от клока

Помогите, пожалуйста.

на код счетчика

v: process(sig1)

begin

if sig1'event and sig1='1' then

count=count+1;

end if;

end process;

sig1 - из другого блока, не является клоком, серьёзно меньше частоты клока

мне сообщили, что на высоких частотах это приведет к ошибкам, это так?

Пошел по другому пути:

v: process(clk)

begin

if clk'event and clk='1' then

if sig1'event and sig1='1' then

count=count+1;

end if;

end if;

end process;

тогда во- первых ошибка что данные идут от двух клоков, а во-вторых во времени , наверное будет ещё больший бардак

Третий вариант с дополнительным сигнал ise забраковал

v: process(clk)

begin

if clk'event and clk='1' and then

if sig1='1' then

count=count+1;

cen='0';

else

cen='1'

end if;

end if;

end process;

Это было сделано, чтобы считывал всего раз после установления sig1 в 1.

Как исправить, чтобы задержки не были большими на больших частотах и все работало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте разберемся сначала с первым вариантом (впрочем, остальные и не варианты :) ).

 

Что за сигнал такой sig1?

 

Как он формируется?

 

Является ли он выходом триггера или комбинаторной логики?

 

Ну и самое интересное, кто Вам сообщил, что на высоких частотах это приведет к ошибкам, к каким ошибкам и как он объяснил причину этих ошибок? И что это за высокие частоты, если Вы сами пишите, что "sig1 - ... серьёзно меньше частоты клока"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не с клоком работаете - забудьте слово event.

if clk'event and clk = '1' then

buf1 <= sig1;

buf2 <= buf1;

if buf1 = '1' and buf2 = '0' then

count=count+1;

end if;

end if;

Буферим тригером медленный асинхронный сигнал, выделяем положительный перепад, считаем число положительных перепадов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Буферим тригером медленный асинхронный сигнал, выделяем положительный перепад, считаем число положительных перепадов.

Вроде бы автор сказал, что асинхронный сигнал "серьёзно меньше частоты клока". В плане скважности или по длительности?

 

Все упирается в частоту возникновения "сигнала", если меньше частоты клока, то сигнал можно подать как клок Т-триггера в счетном режиме и, как советовали выше, считать перепады "клоком"

Изменено пользователем Dimentius

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...