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