jkkj 0 9 мая, 2010 Опубликовано 9 мая, 2010 · Жалоба Помогите, пожалуйста. на код счетчика 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. Как исправить, чтобы задержки не были большими на больших частотах и все работало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sefo 0 11 мая, 2010 Опубликовано 11 мая, 2010 · Жалоба Давайте разберемся сначала с первым вариантом (впрочем, остальные и не варианты :) ). Что за сигнал такой sig1? Как он формируется? Является ли он выходом триггера или комбинаторной логики? Ну и самое интересное, кто Вам сообщил, что на высоких частотах это приведет к ошибкам, к каким ошибкам и как он объяснил причину этих ошибок? И что это за высокие частоты, если Вы сами пишите, что "sig1 - ... серьёзно меньше частоты клока" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 11 мая, 2010 Опубликовано 11 мая, 2010 · Жалоба jkkj: У Вас в 3-ем варианте перед then написано and. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
st232bd 0 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Если не с клоком работаете - забудьте слово 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 0 15 мая, 2010 Опубликовано 15 мая, 2010 (изменено) · Жалоба Буферим тригером медленный асинхронный сигнал, выделяем положительный перепад, считаем число положительных перепадов. Вроде бы автор сказал, что асинхронный сигнал "серьёзно меньше частоты клока". В плане скважности или по длительности? Все упирается в частоту возникновения "сигнала", если меньше частоты клока, то сигнал можно подать как клок Т-триггера в счетном режиме и, как советовали выше, считать перепады "клоком" Изменено 15 мая, 2010 пользователем Dimentius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться