darkniisiis 0 3 октября, 2007 Опубликовано 3 октября, 2007 (изменено) · Жалоба Подскажите пожалуйста, как организовать событие по спаду импульса(по заднему фронту). Если по переднему фронту, например if clk'event and clk='1' ,то как организовать подобное по спаду фронта? Изменено 3 октября, 2007 пользователем darkniisiis Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Подскажите пожалуйста, как организовать событие по спаду импульса(по заднему фронту). Если по переднему фронту, например if clk'event and clk='1' ,то как организовать подобное по спаду фронта? if clk'event and clk='0' Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 15 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Подскажите пожалуйста, как организовать событие по спаду импульса(по заднему фронту). Если по переднему фронту, например if clk'event and clk='1' ,то как организовать подобное по спаду фронта? Пользуйтесь стандартными функциями. Их названия говорят сами за себя: rising_edge - восходящий (передний) фронт, falling_edge - спадающий (задний) фронт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Пользуйтесь стандартными функциями. Их названия говорят сами за себя: rising_edge - восходящий (передний) фронт, falling_edge - спадающий (задний) фронт. А чем плох первый способ? Спрашиваю исключительно в целях самообразования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Epikur 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Vadim Тем, что букоф больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Vadim Тем, что букоф больше. Привет земляку :) Не поленился, посмотрел PACKAGE std_logic_1164, и сделал вывод - стандартная функция возвращает TRUE при переходе из '0' в '1' или наоборот, а в первом случае возвращается TRUE при переходе любого значения в '0' или в '1', что не есть гуд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Привет земляку :) Не поленился, посмотрел PACKAGE std_logic_1164, и сделал вывод - стандартная функция возвращает TRUE при переходе из '0' в '1' или наоборот, а в первом случае возвращается TRUE при переходе любого значения в '0' или в '1', что не есть гуд. Ага! Но там еще and clk='0' :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба Ага! Но там еще and clk='0' :) И что? :07: Сигнал, например, переходит из 'U' в '0' - чем не событие? Мы это дело отлавливаем. А оно нам надо? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 3 октября, 2007 Опубликовано 3 октября, 2007 · Жалоба И что? :07: Сигнал, например, переходит из 'U' в '0' - чем не событие? Мы это дело отлавливаем. А оно нам надо? :) Может в разных симуляторах и есть отличия поведения при таких не "стандартных" переход условиях (хотя сомневаюсь). Но вот для синтезатора это полностью эквивалентные конструкции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KostyanPro 0 4 октября, 2007 Опубликовано 4 октября, 2007 · Жалоба Попробую еще предложить альтернативный способ. Задаем clk_not<=NOT CLK А спад уже фиксируем следующим способом if (rising_edge(clk_not)) На мой взгляд это облегчает чтения кода, когда все события становятся по фронту. Хотя IMHO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 4 октября, 2007 Опубликовано 4 октября, 2007 · Жалоба Попробую еще предложить альтернативный способ. Задаем clk_not<=NOT CLK А спад уже фиксируем следующим способом if (rising_edge(clk_not)) На мой взгляд это облегчает чтения кода, когда все события становятся по фронту. Хотя IMHO Так синтезатор может неявно сделать новый сигнал (not CLK) и подать его на тактовый вход. А это называется еще один тактовый домен... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 7 октября, 2007 Опубликовано 7 октября, 2007 · Жалоба И что? :07: Сигнал, например, переходит из 'U' в '0' - чем не событие? Мы это дело отлавливаем. А оно нам надо? :) Незнаю, надо ли Вам. :) Но Xilinx и Altera в своих пакетах ISE и Quartus соответственно в своих примерах примитивов и т.д. приводят именно эту конструкцию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rv3dll 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба если проект полностью синхронный Лучше не пользоваться разными фронтами! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tyro 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба если проект полностью синхронный Лучше не пользоваться разными фронтами! Вы имеете в виду их не выделять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 19 октября, 2007 Опубликовано 19 октября, 2007 · Жалоба если проект полностью синхронный Лучше не пользоваться разными фронтами! Хе. И как же тогда работает полностью синхронный контроллер памяти DDR? :smile3009: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться