Перейти к содержанию
    

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

Всем привет!

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

 

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

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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет!

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

Вообще это совсем не лучший вариант работы. Мультиплексор испортит времянки на тактовой....

Почему Вы не хотите сделать привязку обоих сигналов к внутреннейй тактовой? И коммутировать не тактовую, а только сигналы разрешения?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще это совсем не лучший вариант работы. Мультиплексор испортит времянки на тактовой....

Почему Вы не хотите сделать привязку обоих сигналов к внутреннейй тактовой? И коммутировать не тактовую, а только сигналы разрешения?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет!

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

А что это должно быть в результате?

Синхронный тиригер и асинхронный латч в одном флаконе?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что это должно быть в результате?

Синхронный тиригер и асинхронный латч в одном флаконе?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...