Mukhanov 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба Не подскажите как сделать счетчик, чтобы считал по переднему фронту на входе данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба А что за "вход данных" у простого счетчика? Синхронные схемы для выделения фронта импульса делаются примерно так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mukhanov 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба А что за "вход данных" у простого счетчика? Ну не данных, а просто тогда вход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба А что за "вход данных" у простого счетчика? Синхронные схемы для выделения фронта импульса делаются примерно так. Оп-па. А откуда рисунок? Мне казалось, что для синхронизации со схемой нужно два триггера, а у уж с помощью третего выделяется фронт. Это что же, я постоянно лишние триггера лепил? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mukhanov 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба Оп-па. А откуда рисунок? Мне казалось, что для синхронизации со схемой нужно два триггера, а у уж с помощью третего выделяется фронт. Это что же, я постоянно лишние триггера лепил? :) Код или схему можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба Мне казалось, что для синхронизации со схемой нужно два триггера, а у уж с помощью третего выделяется фронт. Это что же, я постоянно лишние триггера лепил? :) Если схема полностью синхронная, то DPOUT на вход разрешения счета подается. Оп-па. А откуда рисунок? Если вы подразумеваете вопрос в какой среде рисовалось, то отвечаю - Xilinx Foundation 4.2i. Синхронный 4-х разрядный счетчик внешнего сигнала я бы реализовывал так. А вот так выглядит примитив двухразрядного счетчика с асинхронным сбросом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mukhanov 0 11 октября, 2007 Опубликовано 11 октября, 2007 · Жалоба спасибо, очень помогли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mukhanov 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба А задний фронт как выделить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба Код или схему можно. А задний фронт как выделить? input Data; input clk; reg Data_Sync0, Data_Sync1, Data_EdgeDetect; wire Data_PosEdge, Data_NegEdge; always @(posedge clk) begin {Data_EdgeDetect, Data_Sync1, Data_Sync0}={Data_Sync1, Data_Sync0, Data}; end assign Data_PosEdge = (Data_Sync1 && !Data_EdgeDetect); assign Data_PosEdge = (!Data_Sync1 && Data_EdgeDetect); Только тут сигнал проходит через два триггера, а уже потом из него фронт выделяется. Если делать через один триггер, то, соответственно, Data_Sync0 надо убрать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба Оп-па. А откуда рисунок? Мне казалось, что для синхронизации со схемой нужно два триггера, а у уж с помощью третего выделяется фронт. Это что же, я постоянно лишние триггера лепил? :) Да нет тут лишних триггеров. Чтобы длительность DOUT была всегда кратна периоду клока, они нужны. Иначе эта длительность будет меняться от периода к периоду. А пички при функциональном моделировании можно и не увидеть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба А вот так выглядит примитив двухразрядного счетчика с асинхронным сбросом. Блин, ведь сто раз обсуждалось. Если входной сигнал синхронный по отношению к клоку - то первый триггер лишний. Если входной сигнал, фронт которого выделяется, асинхронный, и схема работает вблизи максимальной рабочей частоты (на что полезно закладываться всегда) - то на вход нужно добавить еще один промежуточный обконстрейненный триггер. Потому что без него метастабильность первого триггера + возможно большая задержка в цепях возможно глубокой логики вплоть до разрешения счета и, возможно, перенесенная при оптимизации между дальнейшими триггерами логика, могут привести к нарушению sample time у триггеров в схеме и ее редким глюкам. P.S. Вот опять задумался, как теоретически правильнее всего констрейнить синхронизирующие триггеры в FPGA. Задать в лоб большую задержку у выхода синхронизирующего триггера относительно клока, и пусть тулзы сами понимают, что не нужно на выход пихать много логики и делать тяжелые пути? Я делал по-другому, но какой вариант "самый идеальный"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба А задний фронт как выделить? Поменять местами подключение инвертирующего и неинвертирующего входов у элемента AND2B1. 2 Oldring. Примитив счетчика не мной разрабатывался, а взят из библиотеки Xilinx Foundation, о чем, как мне казалось, не трудно догадаться по подписи справа внизу. P.S. Насчет третьего (точнее первого в цепи) триггера я соглашусь. Просто я никогда не работал с сигналами длительностью близкой к тактовой частоте. Соответственно и не закладывал эту возможность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 12 октября, 2007 Опубликовано 12 октября, 2007 · Жалоба Просто я никогда не работал с сигналами длительностью близкой к тактовой частоте. Соответственно и не закладывал эту возможность. Речь идет не про сигналы, близкие к тактовой частоте, а о тактовой частоте, близкой к предельной для данной схемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 15 октября, 2007 Опубликовано 15 октября, 2007 · Жалоба Приветсвую! В случае когда длительность входного сигнала меньше чем период clk (а также при переходе между разными clk) удобно использовать и такую схему Успехов! Rob.ris.bmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться