Jump to content

    

Генератор единичного импульса по приходу разрешающего сигнала

Доброго времени суток! Есть потребность в генераторе единичного импульса по приходу разрешающего сигнала! Нашел схему на двух триггерах, она работает, но генериться импульс длительностью импульса clk, а мне бы надо, чтобы генерился единичный импульс длительностью период clk, чтоб его можно было считать нормально. Ибо с генерацией импульса длиной импульс clk считать его нормально по clk не получается, либо я, возможно, чего-то не понимаю.

 

Share this post


Link to post
Share on other sites

Ни слова не понял. Переформулируйте понятным, технически грамотным языком ...

А такие одновибраторы, вроде как, делают на NE555 ...

Share this post


Link to post
Share on other sites

Безусловно, суть построения мне объяснили, вопрос теперь у меня в другом, а именно в формирователе единичного импульса по фронту метки.
В предыдущей теме единичные импульсы сказали посылать на синхронные входы RS-триггера.

Скорее всего, я чего-то не понимаю, поэтому и решил создать эту тему.

Я нашёл в инете схему формирователя на двух триггерах, который по фронту генерит импульс. Этот импульс по длительности равен длительности импульса clk. И я вот не понимаю как мне его по этому самому clk считать, а схему формирователя единичного импульса, который бы генерил единичный импульс длительностью период clk, чтоб его можно было считать нормально в триггере.

Либо я чего-то не понимаю и импульс длительностью импульс clk спокойно можно считать в триггере.

Share this post


Link to post
Share on other sites

Так в той теме Вы указали, что вопрос решился.

Share this post


Link to post
Share on other sites

Подайте ваши импульсы временные на входы clk D-триггеров, сами триггера в счетном режиме(D=~Q). Выходы D-триггеров пересинхронизируете на частоту ПЛИС. Эти уже синхронизованные выходы управляют стейт машиной, где в каждом состоянии значение счетчика отсылается куда надо, затем сбрасывается в 0 и счет времени начинается заново. Таким образом вы сможете посчитать интервалы длительностью не менее примерно десятка тактов рабочей частоты ПЛИС.

Share this post


Link to post
Share on other sites
process (Clk)
begin  
   if (Clk'event and Clk = '1') then
       Data_Shift <= Data;
   end if;
end process;

Rise        <=     Data and not Data_Shift;
Fail        <= not Data and     Data_Shift;
Front       <=     Data or not  Data_Shift;
ShiftData   <=                  Data_Shift;
Data_plus1  <=     Data or      Data_Shift;
Data_minus1 <=     Data and     Data_Shift;

Генерилка ништяков:

Rise - единичный импульс по переднему фронту 0->1

Что делают остальные можно посмотреть в симуляторе :)

Share this post


Link to post
Share on other sites

Предложенное в той теме решение безусловно мне помогло и я сделал предложенный измеритель, но на асинхронном RS-триггере из-за особенности единичных импульсов. Самостоятельно придумать схему генерации импульсов длительностью в период clk я не смог, поэтому и задал вопрос уже в теме для новичков, вдруг кто-нибудь сталкивался с этим или знает как это сделать. Хочется все-таки сделать на синхронном RS-триггере.

17 минут назад, Herz сказал:

Так в той теме Вы указали, что вопрос решился.

 

Share this post


Link to post
Share on other sites
36 минут назад, oleg679976 сказал:

вопрос теперь у меня в другом, а именно в формирователе единичного импульса

Вам там расписали 5-битный автомат, который уже определял в т.ч. и событие "измеряемый интервал длиной ноль", но не фиксировал его, потому как для этого логично требуется добавить ещё один бит.

Share this post


Link to post
Share on other sites
24 минуты назад, MegaVolt сказал:

process (Clk)
begin  
   if (Clk'event and Clk = '1') then
       Data_Shift <= Data;
   end if;
end process;

Rise        <=     Data and not Data_Shift;
Fail        <= not Data and     Data_Shift;
Front       <=     Data or not  Data_Shift;
ShiftData   <=                  Data_Shift;
Data_plus1  <=     Data or      Data_Shift;
Data_minus1 <=     Data and     Data_Shift;

Генерилка ништяков:

Rise - единичный импульс по переднему фронту 0->1

Что делают остальные можно посмотреть в симуляторе :)

Front на фронт не похож. :-)

Share this post


Link to post
Share on other sites
5 минут назад, ViKo сказал:

Front на фронт не похож. :-)

Точно :) xor должно быть. Мой косяк.

Share this post


Link to post
Share on other sites
В 31.01.2019 в 11:32, MegaVolt сказал:

process (Clk)
begin  
   if (Clk'event and Clk = '1') then
       Data_Shift <= Data;
   end if;
end process;

Rise        <=     Data and not Data_Shift;
Fail        <= not Data and     Data_Shift;
Front       <=     Data or not  Data_Shift;
ShiftData   <=                  Data_Shift;
Data_plus1  <=     Data or      Data_Shift;
Data_minus1 <=     Data and     Data_Shift;

Генерилка ништяков:

Rise - единичный импульс по переднему фронту 0->1

Что делают остальные можно посмотреть в симуляторе :)

Большое спасибо за помощь, очень помогли!
Так же большое спасибо всем проявившим участие!

Share this post


Link to post
Share on other sites

И к чему эта картинка?

а) Автор свою проблему решил, и его, как видно, интересовало решение на ПЛИС,

б) приведенная Вами схема известна из букварей,

в) если уж демонстрируете скрин из симулятора, то потрудитесь пояснить график: что это за линии, чему соответствуют, о чём говорят.

Без легенды, без размерности по осям это просто мусор.

Share this post


Link to post
Share on other sites

Хорошо, что Вы уже все буквари прочитали, очень завидую. Тут как бы темы для начинающих, я не центр ядерных исследований. Картинки подправил.

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