-
- Сдаётся мне, что такая схема логичнее выглядит: =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)