Jump to content

    

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

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

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

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.

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

jkkj:

 

У Вас в 3-ем варианте перед then написано and.

Share this post


Link to post
Share on other sites

Если не с клоком работаете - забудьте слово 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;

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

Share this post


Link to post
Share on other sites
Буферим тригером медленный асинхронный сигнал, выделяем положительный перепад, считаем число положительных перепадов.

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

 

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

Edited by Dimentius

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this