Lutovid 1 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Всем привет! Сталкивался ли кто-нибудь со следующей задачей - по сигналу с верхнего уровня на нижнем переключаться то на синхронную, то на асинхронную схему(естественно этот сигнал переключается очень редко). Я так полагаю просто оператором условия тут не отделаться? Иными словами, для примера, код ниже как переписать более корректно? 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; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Корректно будет сформировать два сигнала и их мультиплексировать (синхронных и асинхронный) при помощи SPEED_MODE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 1 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Корректно будет сформировать два сигнала и их мультиплексировать (синхронных и асинхронный) при помощи SPEED_MODE. По сути, написанное мной выше и должно так развестись, тут вопрос не в том как это должно представляться в железе, а исключительно по синтаксису. Но спасибо за ответ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Всем привет! Сталкивался ли кто-нибудь со следующей задачей - по сигналу с верхнего уровня на нижнем переключаться то на синхронную, то на асинхронную схему(естественно этот сигнал переключается очень редко). Я так полагаю просто оператором условия тут не отделаться? Вообще это совсем не лучший вариант работы. Мультиплексор испортит времянки на тактовой.... Почему Вы не хотите сделать привязку обоих сигналов к внутреннейй тактовой? И коммутировать не тактовую, а только сигналы разрешения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 1 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Вообще это совсем не лучший вариант работы. Мультиплексор испортит времянки на тактовой.... Почему Вы не хотите сделать привязку обоих сигналов к внутреннейй тактовой? И коммутировать не тактовую, а только сигналы разрешения? Потому что интересно, есть ли возможность сделать так как я описал выше) если нет, то действительно придется делать так как вы описали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Потому что интересно, есть ли возможность сделать так как я описал выше) если нет, то действительно придется делать так как вы описали. А какой ожидаете результат? "Интерес" или "Работает"? Есть такое определение: "процесс, который ведется ради самого процесса называется игра"... А то, что я написал - это CDC, и об этом у меня в "Кратком Курсе" есть глава... И когда я даю уроки, то об этом говорю очень подробно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Потому что интересно, есть ли возможность сделать так как я описал выше Теоретически, возможность есть. Построение схемы внутри ПЛИС принципиально ничем не отличается от построения схемы на "рассыпухе", разница лишь в наборе элементов, а принципы - все те же - элементы, имеющие определенные времянки, соединяются проводами, тоже имеющими свои времянки, и все это можно контролировать средствами сред разработки и/или языка. То есть, почти все, что можно сделать на "рассыпухе", можно сделать в ПЛИС. "Почти" - за исключением всякой хитро-редкой полуаналоговой, двуклочной и т.п. рассыпухи А практически - надо смотреть, из каких сигналов какая логика там формируется, будут ли гонки в асинхронной части, приводящие к глитчам, могущим испортить жизнь. Того фрагмента, что Вы привели, совершенно недостаточно, чтобы понять, можно, или нет. Нужна полная схема асинхронного пути от всех стартовых точек сигналов, участвующих в нем, а также понимание, к чему будут приводить глитчи на асинхронном выходе, если таковые будут. Ну, и как сказали выше, в один процесс это все не надо пихать. Надо сделать синхронный процесс отдельно, а за ним уже мультиплексор - отдельно. Это уже с точки зрения синтезируемости конструкции на множестве элементов ПЛИС (следует изучить ее внутреннее устройство, чтобы понять, что в ней можно физически реализовать, и как, а что - нельзя). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 1 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба А какой ожидаете результат? "Интерес" или "Работает"? Есть такое определение: "процесс, который ведется ради самого процесса называется игра"... А то, что я написал - это CDC, и об этом у меня в "Кратком Курсе" есть глава... И когда я даю уроки, то об этом говорю очень подробно... Мне в данном случае придется много переписывать и менять, этого я хотел избежать, но видимо проще все равно не получится. Это все что я хотел узнать, спасибо всем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
topor_topor 0 26 августа, 2014 Опубликовано 26 августа, 2014 · Жалоба Всем привет! Сталкивался ли кто-нибудь со следующей задачей - по сигналу с верхнего уровня на нижнем переключаться то на синхронную, то на асинхронную схему А что это должно быть в результате? Синхронный тиригер и асинхронный латч в одном флаконе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 1 26 августа, 2014 Опубликовано 26 августа, 2014 · Жалоба А что это должно быть в результате? Синхронный тиригер и асинхронный латч в одном флаконе? Это просто участок стыковки моих старого и нового кодов, сакрального смысла конкретно этот момент не имеет). Но я уже переписал все на синхру) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
topor_topor 0 27 августа, 2014 Опубликовано 27 августа, 2014 · Жалоба Это просто участок стыковки моих старого и нового кодов, сакрального смысла конкретно этот момент не имеет). Но я уже переписал все на синхру) В цифровой технике никокого "програмирования на VHDL" и никаких "стыковок кода" быть не может :) Только описание схемы на языке (просто вместо рисования) Поэтому, описанный фрагмент, должен превратится в конкретный схемотехнический элемент (как минимум в голове дизайнера :)) Иначе обсуждение того, как это реализовать - не имеет смысла..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 27 августа, 2014 Опубликовано 27 августа, 2014 · Жалоба ничего он никому не должен, правильнее считать что VHDL описывает не схему а поведение, если обращаться к ПЛИС, то в зависимости от того из чего она состоит и какие элементы имеет так и будет собрана схема. Есть RS триггеры будут они, нету их будут LUT или ячейки от альтеры (не помню как они там зовутся) что касается данного вопроса,если очень надо схему то это 2 схемы синхронная и асинхронная, с переключателем между ними Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
topor_topor 0 27 августа, 2014 Опубликовано 27 августа, 2014 · Жалоба ничего он никому не должен, правильнее считать что VHDL описывает не схему а поведение... что касается данного вопроса,если очень надо схему то это 2 схемы синхронная и асинхронная, с переключателем между ними Вот по этой причине и вышло что "rd_detect" одновременно описан и как синхронный тригер и как латч... а вот если думать о схеме, то так не получится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 27 августа, 2014 Опубликовано 27 августа, 2014 · Жалоба что касается данного вопроса,если очень надо схему то это 2 схемы синхронная и асинхронная, с переключателем между ними Стыдно Вам должно быть! Это опять в Вас просыпается программист. Ни хрена не возможно это - "VHDL описывает не схему а поведение, если обращаться к ПЛИС"... Поведение ПЛИС зависит в первую очередь от приложенных воздействий и только потом от описания структуры. И это описание все равно превращается в эквивалент "схемы", а не в "поведение"... Если грубо, то Микроконтроллер или ПЛИС и пррограмма - так это забор и на нем наклеенные объявления. Что наклеили, то и прочтете. А забор не знает, что на него наклеют... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 27 августа, 2014 Опубликовано 27 августа, 2014 · Жалоба и как синхронный тригер и как латч... а вот если думать о схеме, то так не получится... Ну почему же? Если думать о схеме, то это обычный триггер с асинхронной загрузкой. Вполне себе получится. Главное, описать его так, как его описывать положено, чтобы синтезатор понял, какой элемент от него хотят. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться