Jump to content
    

Совмещение синхронной и асинхронной схем

Всем привет!

Сталкивался ли кто-нибудь со следующей задачей - по сигналу с верхнего уровня на нижнем переключаться то на синхронную, то на асинхронную схему(естественно этот сигнал переключается очень редко). Я так полагаю просто оператором условия тут не отделаться?

 

Иными словами, для примера, код ниже как переписать более корректно?

bytes_det: process(usrclk2_rad, SPEED_MODE)
begin
    if SPEED_MODE = "00" then
      if rising_edge(usrclk2_rad) then
            rd_detect <= fifo_eth_re or dec_cou;
      end if;
    elsif SPEED_MODE = "01" then
        if CEd2 = '1' then
            rd_detect <= fifo_eth_re_flag or dec_cou;
        end if;
    else
            rd_detect <= '0';
    end if;
end process bytes_det;

Share this post


Link to post
Share on other sites

Корректно будет сформировать два сигнала и их мультиплексировать (синхронных и асинхронный) при помощи SPEED_MODE.

Share this post


Link to post
Share on other sites

Корректно будет сформировать два сигнала и их мультиплексировать (синхронных и асинхронный) при помощи SPEED_MODE.

По сути, написанное мной выше и должно так развестись, тут вопрос не в том как это должно представляться в железе, а исключительно по синтаксису. Но спасибо за ответ)

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

Потому что интересно, есть ли возможность сделать так как я описал выше) если нет, то действительно придется делать так как вы описали.

А какой ожидаете результат?

"Интерес" или "Работает"? Есть такое определение: "процесс, который ведется ради самого процесса называется игра"...

А то, что я написал - это CDC, и об этом у меня в "Кратком Курсе" есть глава...

И когда я даю уроки, то об этом говорю очень подробно...

 

Share this post


Link to post
Share on other sites

Потому что интересно, есть ли возможность сделать так как я описал выше

 

Теоретически, возможность есть. Построение схемы внутри ПЛИС принципиально ничем не отличается от построения схемы на "рассыпухе", разница лишь в наборе элементов, а принципы - все те же - элементы, имеющие определенные времянки, соединяются проводами, тоже имеющими свои времянки, и все это можно контролировать средствами сред разработки и/или языка. То есть, почти все, что можно сделать на "рассыпухе", можно сделать в ПЛИС. "Почти" - за исключением всякой хитро-редкой полуаналоговой, двуклочной и т.п. рассыпухи

 

А практически - надо смотреть, из каких сигналов какая логика там формируется, будут ли гонки в асинхронной части, приводящие к глитчам, могущим испортить жизнь. Того фрагмента, что Вы привели, совершенно недостаточно, чтобы понять, можно, или нет. Нужна полная схема асинхронного пути от всех стартовых точек сигналов, участвующих в нем, а также понимание, к чему будут приводить глитчи на асинхронном выходе, если таковые будут.

 

Ну, и как сказали выше, в один процесс это все не надо пихать. Надо сделать синхронный процесс отдельно, а за ним уже мультиплексор - отдельно. Это уже с точки зрения синтезируемости конструкции на множестве элементов ПЛИС (следует изучить ее внутреннее устройство, чтобы понять, что в ней можно физически реализовать, и как, а что - нельзя).

Share this post


Link to post
Share on other sites

А какой ожидаете результат?

"Интерес" или "Работает"? Есть такое определение: "процесс, который ведется ради самого процесса называется игра"...

А то, что я написал - это CDC, и об этом у меня в "Кратком Курсе" есть глава...

И когда я даю уроки, то об этом говорю очень подробно...

 

Мне в данном случае придется много переписывать и менять, этого я хотел избежать, но видимо проще все равно не получится. Это все что я хотел узнать, спасибо всем.

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

Это просто участок стыковки моих старого и нового кодов, сакрального смысла конкретно этот момент не имеет). Но я уже переписал все на синхру)

В цифровой технике никокого "програмирования на VHDL" и никаких "стыковок кода" быть не может :)

Только описание схемы на языке (просто вместо рисования)

Поэтому, описанный фрагмент, должен превратится в конкретный схемотехнический элемент (как минимум в голове дизайнера :))

Иначе обсуждение того, как это реализовать - не имеет смысла.....

Share this post


Link to post
Share on other sites

ничего он никому не должен, правильнее считать что VHDL описывает не схему а поведение, если обращаться к ПЛИС, то в зависимости от того из чего она состоит и какие элементы имеет так и будет собрана схема. Есть RS триггеры будут они, нету их будут LUT или ячейки от альтеры (не помню как они там зовутся)

 

что касается данного вопроса,если очень надо схему то это 2 схемы синхронная и асинхронная, с переключателем между ними

Share this post


Link to post
Share on other sites

ничего он никому не должен, правильнее считать что VHDL описывает не схему а поведение...

что касается данного вопроса,если очень надо схему то это 2 схемы синхронная и асинхронная, с переключателем между ними

Вот по этой причине и вышло что "rd_detect" одновременно описан и как синхронный тригер и как латч... а вот если думать о схеме, то так не получится...

 

Share this post


Link to post
Share on other sites

что касается данного вопроса,если очень надо схему то это 2 схемы синхронная и асинхронная, с переключателем между ними

 

Стыдно Вам должно быть! Это опять в Вас просыпается программист.

Ни хрена не возможно это - "VHDL описывает не схему а поведение, если обращаться к ПЛИС"... Поведение ПЛИС зависит в первую очередь от приложенных воздействий и только потом от описания структуры. И это описание все равно превращается в эквивалент "схемы", а не в "поведение"...

Если грубо, то Микроконтроллер или ПЛИС и пррограмма - так это забор и на нем наклеенные объявления. Что наклеили, то и прочтете. А забор не знает, что на него наклеют...

Share this post


Link to post
Share on other sites

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

Ну почему же? Если думать о схеме, то это обычный триггер с асинхронной загрузкой. Вполне себе получится. Главное, описать его так, как его описывать положено, чтобы синтезатор понял, какой элемент от него хотят.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...