-
- Примерами к своей макетке и хорошими книжками могу помочь ali00ff(397 знак., 28.06.2015 04:23 - 04:59)
- hint - посмотри "нетлист" того что получилось. самый лучший софт для этого - synplify. если синтезатор не ругнулся, что "поведение синтезируемой схемы может отличаться", то это описана схема с хитрой логикой по сбросу - то есть на асинхронные ыыыыыыыы(536 знак., 25.05.2015 12:32, )
- а ты попробуй сам по своему описанию схему составить. у тебя анализ в case происходит после срабатывания события. это ничего, что ты в момент тактового фронта пытаешся анализировать состояние этого же сигнала? - Mahagam(24.05.2015 22:47)
- Ровно о том и говорю (см. ссылку). Но в букварях это считается нормой. Но! .. для двух сигналов. А у меня три, отчего косяки. Пока не могу сообразить как сделать по-другому... POV(303 знак., 24.05.2015 23:17 - 23:22, ссылка)
- потому что оно типично представляется типичным триггером в типичной плисине. а ты хочешь нереального. - Mahagam(24.05.2015 23:23)
- Хм.. и нафига тогда такой язык если он дозволяет нереалистичные конструкции? .. но это так.. глас раздражения. Буду думать как решить по-другому. - POV(24.05.2015 23:39)
- и 95% процентов кода на Verilog - это верификация. там есть такое расширение SV (что в нынешнем 2015 году и называется верилогом), в котором классы, динамическая память, фабрики объектов и т.п., что в железе вообще никак не воплотимо - ыыыыыыыы(25.05.2015 12:20, )
- если хочется чего-то такого этакого, то есть всякие высокоуровневые трансляторы: Catapult, HLS (Vivado), кучи их. с Матлаба и симулинка можно генерить, еще есть среды, где транслируется картинка-hdl. а Verilog - это как бы ассемблер, позволяет ыыыыыыыы(134 знак., 25.05.2015 12:16, )
- Хм.. и нафига тогда такой язык если он дозволяет нереалистичные конструкции? .. но это так.. глас раздражения. Буду думать как решить по-другому. - POV(24.05.2015 23:39)
- потому что оно типично представляется типичным триггером в типичной плисине. а ты хочешь нереального. - Mahagam(24.05.2015 23:23)
- Ровно о том и говорю (см. ссылку). Но в букварях это считается нормой. Но! .. для двух сигналов. А у меня три, отчего косяки. Пока не могу сообразить как сделать по-другому... POV(303 знак., 24.05.2015 23:17 - 23:22, ссылка)
- советую на электрониксе поискать - типовая ошибка. вкратце: на верилоге ты описываешь существующее устройство (а не фантазируешь с синтаксисом) - если нужен триггер, то его описания строго систематизерованы - нужно смотреть "ситнезируемое ыыыыыыыы(140 знак., 24.05.2015 21:42, )
- Чего и куда там ложиться должно? С виду код кажется некорректным, хотя во всех источниках в инете именно такое и приводится (исключительно для двух сигналов)... POV(498 знак., 24.05.2015 21:58 - 22:06)
- язык верилог позволяет описывать совершенно несинтезируемые конструкции. а ты просишь от синтезатора сделать невозможное. я тебе на верилоге легко опишу триггер с любым количеством тактовых входов, но это не значит, что его сегодня можно Mahagam(22 знак., 24.05.2015 22:09)
- Нашёл один пример.. согласно ему переписал блок... POV(368 знак., 25.05.2015 12:11)
- Сдаётся мне, что такая схема логичнее выглядит: =AlexD=(162 знак., 25.05.2015 12:39)
- Не, не компилится ))) - POV(25.05.2015 12:42)
- Непести =AlexD=(391 знак., 25.05.2015 13:00)
- Error (10200): ... cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct... POV(199 знак., 25.05.2015 13:02)
- Чо ты мне какую-то х-ню суёшь, я тебе вполне нормальный код показал. - =AlexD=(25.05.2015 13:06)
- Хм, у тебя один сигнал в always - так работает. - POV(25.05.2015 13:12)
- Так там кроме клока и не должно ничего быть, у тебя ж почти классическое ALU, ты вообще можешь задать код [1:0] , и свичем выбирать действие, будет гораздо нагляднее. - =AlexD=(25.05.2015 13:46)
- Вот так вот смог сделать чтобы блок реагировал на два фронта независимо друг от друга (ценой дополнительных ячеек)... POV(530 знак., 28.05.2015 11:19 - 11:24)
- уже лучше. теперь перепишем это немного лаконичнее. Mahagam(956 знак., 28.05.2015 11:38)
- По факту работает... симулятор тоже всё показал как надо. Да и схема выглядит логичной. - POV(28.05.2015 11:44)
- пока проект мелкий и работает на низких скоростях - будет работать. и схема все равно от глюков не избавлена. если после сигнала inc через оочень короткий промежуток придёт clock - на выходе будет мешанина. если эти сигналы асинхронные и Mahagam(54 знак., 28.05.2015 11:55)
- Это уже маловажно.. я же знаю что за сигналы там могут быть и какие их характеристики. - POV(28.05.2015 13:11)
- это сегодня. а завтра, когда тебе понадобится подобный модуль в другом проекте, ты не будешь писать заново, а скопипастишь старый говнокод. и начнешь подпирать его костылями. - Mahagam(28.05.2015 13:48)
- Завтра будет другой проект и другой опыт. Решать проблемы надо по мере их появления. - POV(28.05.2015 13:53)
- это желаемое поведение. а получится: "решать проблемы приходится по мере их накопления". Mahagam(138 знак., 28.05.2015 14:06)
- Но тем не менее сути говнокодности я не понял. Если пришли два взаимоисключающих сигнала, то реакции корректной на них и не может быть. - POV(28.05.2015 14:32 - 14:35, ссылка)
- а там нет взаимоисключающих сигналов. если переделывать, то так: Mahagam(561 знак., 28.05.2015 14:59)
- У тебя проект и не синхронный и не комбинационный, хрень гибридная. А ведь достаточно завести отдельный клок с генератора и сделать проект полностью синхронным. - =AlexD=(28.05.2015 14:49)
- Возможно. Но это если мне доведётся ПЛИСками заниматься. Пока я их использую для своих поделий.. ни высоких скоростей, ни здоровенных проектов. - POV(28.05.2015 14:30)
- Но тем не менее сути говнокодности я не понял. Если пришли два взаимоисключающих сигнала, то реакции корректной на них и не может быть. - POV(28.05.2015 14:32 - 14:35, ссылка)
- это желаемое поведение. а получится: "решать проблемы приходится по мере их накопления". Mahagam(138 знак., 28.05.2015 14:06)
- Завтра будет другой проект и другой опыт. Решать проблемы надо по мере их появления. - POV(28.05.2015 13:53)
- это сегодня. а завтра, когда тебе понадобится подобный модуль в другом проекте, ты не будешь писать заново, а скопипастишь старый говнокод. и начнешь подпирать его костылями. - Mahagam(28.05.2015 13:48)
- +1 - =AlexD=(28.05.2015 12:12)
- Это уже маловажно.. я же знаю что за сигналы там могут быть и какие их характеристики. - POV(28.05.2015 13:11)
- пока проект мелкий и работает на низких скоростях - будет работать. и схема все равно от глюков не избавлена. если после сигнала inc через оочень короткий промежуток придёт clock - на выходе будет мешанина. если эти сигналы асинхронные и Mahagam(54 знак., 28.05.2015 11:55)
- По факту работает... симулятор тоже всё показал как надо. Да и схема выглядит логичной. - POV(28.05.2015 11:44)
- уже лучше. теперь перепишем это немного лаконичнее. Mahagam(956 знак., 28.05.2015 11:38)
- Вот так вот смог сделать чтобы блок реагировал на два фронта независимо друг от друга (ценой дополнительных ячеек)... POV(530 знак., 28.05.2015 11:19 - 11:24)
- Так там кроме клока и не должно ничего быть, у тебя ж почти классическое ALU, ты вообще можешь задать код [1:0] , и свичем выбирать действие, будет гораздо нагляднее. - =AlexD=(25.05.2015 13:46)
- Хм, у тебя один сигнал в always - так работает. - POV(25.05.2015 13:12)
- Чо ты мне какую-то х-ню суёшь, я тебе вполне нормальный код показал. - =AlexD=(25.05.2015 13:06)
- Error (10200): ... cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct... POV(199 знак., 25.05.2015 13:02)
- Непести =AlexD=(391 знак., 25.05.2015 13:00)
- Не, не компилится ))) - POV(25.05.2015 12:42)
- жесть. я вообще не понимаю как это работает. покажи кусок схемы что генерится в этом случае? Mahagam(197 знак., 25.05.2015 12:22 - 12:33)
- Ээээ, а шо - есть возможность посмотреть схему в кубиках согласно коду? Янефкурсе )) - POV(25.05.2015 12:46)
- RTL вьювер ищи в меню - =AlexD=(25.05.2015 12:49)
- Оооо, полезнейшая штуковина - нашёл почему именно один косячок имеет место быть. - POV(25.05.2015 13:07 - 13:47)
- RTL вьювер ищи в меню - =AlexD=(25.05.2015 12:49)
- Если дёрнулся клок - сдвиг, если же дёрнулся инк, то либо инкремент, либо при установленном лоад - загрузка :-) - =AlexD=(25.05.2015 12:34)
- ну инк тут идёт на тактовый вход триггера, а как сделать сдвиг асинхронным?? - Mahagam(25.05.2015 12:37)
- А где он тут асинхронный? Вполне синхронный по клоку, не? - =AlexD=(25.05.2015 12:45)
- у нас джва синхронных входа? с каких пор? - Mahagam(25.05.2015 13:44)
- а, ты про это... ну это глупость, понятно - =AlexD=(25.05.2015 13:50)
- у нас джва синхронных входа? с каких пор? - Mahagam(25.05.2015 13:44)
- А где он тут асинхронный? Вполне синхронный по клоку, не? - =AlexD=(25.05.2015 12:45)
- ну инк тут идёт на тактовый вход триггера, а как сделать сдвиг асинхронным?? - Mahagam(25.05.2015 12:37)
- Ээээ, а шо - есть возможность посмотреть схему в кубиках согласно коду? Янефкурсе )) - POV(25.05.2015 12:46)
- {shiftout, q[17:1], q[0]} <= {q[17], q[16:0], shiftin} а так не проще будет {shiftout, q[17:0]} <= {q[17:0], shiftin} ? - =AlexD=(25.05.2015 12:31)
- Сдаётся мне, что такая схема логичнее выглядит: =AlexD=(162 знак., 25.05.2015 12:39)
- Нашёл один пример.. согласно ему переписал блок... POV(368 знак., 25.05.2015 12:11)
- язык верилог позволяет описывать совершенно несинтезируемые конструкции. а ты просишь от синтезатора сделать невозможное. я тебе на верилоге легко опишу триггер с любым количеством тактовых входов, но это не значит, что его сегодня можно Mahagam(22 знак., 24.05.2015 22:09)
- Чего и куда там ложиться должно? С виду код кажется некорректным, хотя во всех источниках в инете именно такое и приводится (исключительно для двух сигналов)... POV(498 знак., 24.05.2015 21:58 - 22:06)