Jump to content

    
Sign in to follow this  
des00

Проясните про виваду

Recommended Posts

может тут?

serv_dat_line >> 2

есть дикая идея, что вивада воспринимает это не как сдвиг, а как арифметику... в духе serv_dat_line >> serv_dat_count, с расчетом что serv_dat_count - переменная

если переписать эту куски явно с битовой разрядностью?

Share this post


Link to post
Share on other sites

Интересно было бы в Chipscope вывести и сигналы serv_val_line(всю шину, она похоже в srl при вашем описании не map-ится) и ireset и iclken. Вы пытаетесь размножить сигнал ival на 4 такта? Ну или я не правильно понял что не так работает.

Share this post


Link to post
Share on other sites

Вопрос немного в сторону: у самого xilinx спрашивали про сию проблему? при некоторой сноровки можно добиться ответа...

ну или выложите тесткасе проекта

Share this post


Link to post
Share on other sites
Интересно было бы в Chipscope вывести и сигналы serv_val_line(всю шину, она похоже в srl при вашем описании не map-ится) и ireset и iclken. Вы пытаетесь размножить сигнал ival на 4 такта? Ну или я не правильно понял что не так работает.

он там есть, смотрите внимательнее. По логике именно так. Мне нужно разобрать 1 байт на 4 дебита.

 

есть дикая идея, что вивада воспринимает это не как сдвиг, а как арифметику... в духе serv_dat_line >> serv_dat_count, с расчетом что serv_dat_count - переменная

если переписать эту куски явно с битовой разрядностью?

была такая идея, но биты валидности тут причем ? тогда либо были всегда 1цы. А тут вместо 4'b1111 идет 4'b0101.

 

 

Вопрос немного в сторону: у самого xilinx спрашивали про сию проблему? при некоторой сноровки можно добиться ответа...

ну или выложите тесткасе проекта

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

Share this post


Link to post
Share on other sites
как бы вивада не совсем фри, полагаю что спросить не получиться.

она фри для половины типов плис.

а посему "можно" изваять пример для фри вивадо (если это конечно не зависит от типа плис). а можно получить тестовую офиц.лицензию на месяц (вроде было раньше такое) и от неё плясать - типа хочу а оно не работает. не работает - значит не буду покупать плис на $100000 в месяц. примерно так. вот только желательно не светит конторскими адресами и выполнеными проектами.

Edited by Alex77

Share this post


Link to post
Share on other sites
была такая идея, но биты валидности тут причем ? тогда либо были всегда 1цы. А тут вместо 4'b1111 идет 4'b0101.

всегда 1цы - не согласен.

имхо, он определил, что всегда 4'b0101

 

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

в этом контексте отсутствие в ILA этого сигнала может тоже кое-что значить ;-)

Share this post


Link to post
Share on other sites
всегда 1цы - не согласен.

имхо, он определил, что всегда 4'b0101

На основе какой информации ? Давайте по фантазируем. Не может такого быть. там четко написано загрузить 4'b1111 в 4-х битный регистр и выдать друг за другом во фреймер.

 

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

в этом контексте отсутствие в ILA этого сигнала может тоже кое-что значить ;-)

там стоит 1'b1. Это сделано для унификации описания.

 

она фри для половины типов плис.

а посему "можно" изваять пример для фри вивадо (если это конечно не зависит от типа плис). а можно получить тестовую офиц.лицензию на месяц (вроде было раньше такое) и от неё плясать - типа хочу а оно не работает. не работает - значит не буду покупать плис на $100000 в месяц. примерно так. вот только желательно не светит конторскими адресами и выполнеными проектами.

хмм, ну так то вариант, мы так скидку выторговали неплохую на артиксы :)

Share this post


Link to post
Share on other sites

Схема показана после имплементации?

Потому как сдвиговая логика работает нормально, что serv_dat_line, что serv_val_line движется верно.

Проблема в присвоении framer__ival <= serv_val ? Странно, слишком простое место. И что такое u_ila_0_framer__ival? почему не .../serv_enc/framer__ival?

 

И кто такие serv_sop, serv_val, serv_dat, framer__ival, framer__isop, framer__idat?

Как может быть, что на 102 такте выполняется условие ival & isop, а serv_sop нигде не наблюдается?

Share this post


Link to post
Share on other sites
Схема показана после имплементации?

Потому как сдвиговая логика работает нормально, что serv_dat_line, что serv_val_line движется верно.

Проблема в присвоении framer__ival <= serv_val ? Странно, слишком простое место. И что такое u_ila_0_framer__ival? почему не .../serv_enc/framer__ival?

да. после имплементации. И кучку таких мест я уже пофиксил молотком в течении недели. Осталось еще несколько. Имя другое потому что вивада так делает, игнорируя keep

И кто такие serv_sop, serv_val, serv_dat, framer__ival, framer__isop, framer__idat?

Как может быть, что на 102 такте выполняется условие ival & isop, а serv_sop нигде не наблюдается?

Вот такова она мощь вивады, зайлинкса грандиозного. Это все сигналы управления турбокодером. Который на этом сайте выложен.

 

откуда мы это видим?

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

post-3453-1470766288_thumb.png

Share this post


Link to post
Share on other sites
Вот такова она мощь вивады, зайлинкса грандиозного. Это все сигналы управления турбокодером. Который на этом сайте выложен.

И таки где определения этих сигналов?

Где-то должна быть бага, и связана она, похоже, с framer__xxx сингалами, т.к. до них все работает нормально.

И что за LUT3 между регистрами на схеме? Их логическая функция O=I2?

 

По-идее, если вивадо неправильно засинтезировала SV, моделирование после синтеза должно выявить проблему.

 

Если бы такие простые вещи, как a <= b не работали в вивадо, ей было бы совершенно невозможно пользоваться. А это не так.

 

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

 

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

Share this post


Link to post
Share on other sites
если бы он был равен нулю, то вообще бы ничего не работало. А если там был б сигнал, на вейвформе явно бы данные каждый такт не изменялись

ага, или меандр подан был. тоже много всего понафантазировать можно было.

ещё раз: откуда мы это видим?

 

 

работать с абстрактными конями в вакууме дальше неинтересно.

 

мб выложите проект?

Share this post


Link to post
Share on other sites

Если подозрение на Vivado то Flood правильно вам предложил проверить модель после синтеза. Если там все ок то у вас либо времянка не проходит либо проблемы с аппаратной частью или тактами.

Share this post


Link to post
Share on other sites

проблема решилась прибиванием гвоздями. ндя.

 

мб выложите проект?

Проект стоит под 250к зелени, меня расстреляют за такое.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this