fguy 5 4 февраля, 2019 Опубликовано 4 февраля, 2019 · Жалоба 34 minutes ago, RobFPGA said: Приветствую! Мне жаль что у вас такой маленький ... опыт. Но если вы и ваши коллеги будут симулировать код в симуляторе а синтезировать в синтезаторе то опосля, уверяю вас, результаты имплементации в имплементаторе вас приятно удивят. Удачи! Rob. опыт не маленький и для "классики" на VHDL отладка в альдеке была и остается штатным методом работы многая лета у коллег, но исключения увы бывают и как ни странно ни в каких то огромных проектах, а на сравнительно небольших ядрах, а синтез ядер в HLS это вообще лотерея с полным неадекватом на самом ровном месте, а результаты имплемента его творений иногда (одно радует что редко) жгут просто не по-детски - давеча пару последних вивад стошнило на простом бесконечном цикле с выводом счетчика в стрим - синтезатор hls тупо талдычит невнятную ошибку - поиск ничего не дал - видимо я первым наступил - "непосильную" задачу осилила только версия 2017.4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба 9 hours ago, fguy said: симуляторы судя по своему опыту с hls и коллег с VHDL имеют сомнительную ценность при текущем положении дел с имплементацией - работоспособность полученного опосля синтеза в симуляторе не дает никаких гарантий что на чипе все будет так же красиво Корявый неграмотный дизайн вполне может хорошо и правильно симулиться, зато потом хромать после имплемента, это я по своим поделкам понимаю. Но что если создавать чистую аккуратную структуру проектов? Они и симулиться и имплементиться будут славненько. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба Приветствую! Мой печальный опыт говорит мне что адекватная модель окружения при симуляции/верификации показывает 99% проблем дизайна. И это на функциональном уровне. Если сюда добавить post-synthesis/post-P&R верификацию то эта цифра вырастет до 99.9%. Оставшийся 0.1% это обычно либо проблемы внешних интерфейсов (опять же неадекватные, неполные модели) И именно на это чаще всего тратится куча времени при ползание по кристаллу с помощью ChipScope/SignalTap/... Либо глюки самого чипа . Основная засада в том что создание адекватной модели для симуляции/верификации занимает как минимум в 2 раза больше времени чем собственно сам дизайн. Поэтому так велик соблазн проверить только самое важное/интересное а остальное и так вроде работать должно. А потом, когда пора сдавать дизайн, а оно в чипе глючит "непонятно" почему начинаются собачьи бега по кругу - влепили SignalTap - скомпилировали - чей то увидели - чей то поменяли - и опять на новый круг. Что касается HLS - инструмент этот относительно нов и естественно там много еще глюков. Но из своего опыта работы с ним первое что я понял это то что относится к нему как чистому C/C++ нельзя. Надо все же помнить что писанная программа буде реализована в физ. железо (а не работать на нем). А вы тут для бесконечного цикла взяли и unroll сделали . Ну и опять же - после синтеза в HLS нужно как минимум проверить полученный RTL результат в симуляторе. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба 2 hours ago, AVR said: Корявый неграмотный дизайн вполне может хорошо и правильно симулиться, зато потом хромать после имплемента, это я по своим поделкам понимаю. Но что если создавать чистую аккуратную структуру проектов? Они и симулиться и имплементиться будут славненько. за качество кода коллег в VHDL ни чего не скажу по причине отсутствия опыта, а в HLS иногда приходится писать полный бред на С-ях, т.к. адекватные и красивые конструкции превращаются либо в непотребное по ресурсам, либо в неработоспособное Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prostoRoman 0 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба 3 minutes ago, fguy said: а в HLS иногда приходится писать полный бред на С-ях, т.к. адекватные и красивые конструкции превращаются либо в непотребное по ресурсам, либо в неработоспособное Разумно. Си принципиально для другого предназначен - controlflow против dataflow. Поэтому если и можно писать на Си, то с очень сильно огладкой на целевую платформу (нелепо же будет без надобности, а просто потому, что можно использовать long long double на каком-нибудь pic12...) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба 1 hour ago, RobFPGA said: Что касается HLS - инструмент этот относительно нов и естественно там много еще глюков. Но из своего опыта работы с ним первое что я понял это то что относится к нему как чистому C/C++ нельзя. Надо все же помнить что писанная программа буде реализована в физ. железо (а не работать на нем). А вы тут для бесконечного цикла взяли и unroll сделали . Ну и опять же - после синтеза в HLS нужно как минимум проверить полученный RTL результат в симуляторе. Уж лет 5 этой новинке и вполне успешно использовался в 2014 году. Понимать как работает железо нужно при любом кодинге под него. Никаких других прагм кроме PIPELINE в цикле я не добавлял, а добавление UNROLL проблему то же не решило в 2018.3 - видимо это очередной косяк синтезатора HLS. Уже заметил что в некоторых случаях 2018.3 требует написание прагм по ресурсам, которые в 2017.4 были само собой разумеющимся. Возможно и этот косяк решается каким либо хитрым сочетанием прагм. Вивадовский симулятор как раз и освоил для симуляции полученных ядер, но как уже писал выше столкнулся с неадекватностью на железе - не часто но случается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба Приветствую! 45 minutes ago, fguy said: Уж лет 5 этой новинке и вполне успешно использовался в 2014 году. Понимать как работает железо нужно при любом кодинге под него. Я еще лет 10 назад пытался что то делать на Catapult C. А о разных способах натянуть сову High Level на глобус RTL слышал начиная с 2000ных. И эти модные веяния периодически накатывали волнами разбиваясь о скалы специфики применения - куча ограничений синтаксиса языка, не синтезируемость некоторых абстракций, не оптимальность результата по ресурсам. И самое главное - необходимость смены парадигмы мышления программистов!. Vivado HLS это очередная волна которая попала на гальку пляжа (оставшуюся поле разбитых скал). Но пляж этот пока еще на небольшом островке. Хорошо что уже обитаемом . Поэтому о конкретных особенностях/глюках/практике применения будет с кем поговорить. Но лучше конкретно с примерами кода и логами Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 5 февраля, 2019 Опубликовано 5 февраля, 2019 (изменено) · Жалоба 10 hours ago, RobFPGA said: Я еще лет 10 назад пытался что то делать на Catapult C. А о разных способах натянуть сову High Level на глобус RTL слышал начиная с 2000ных. И эти модные веяния периодически накатывали волнами разбиваясь о скалы специфики применения - куча ограничений синтаксиса языка, не синтезируемость некоторых абстракций, не оптимальность результата по ресурсам. И самое главное - необходимость смены парадигмы мышления программистов!. Vivado HLS это очередная волна которая попала на гальку пляжа (оставшуюся поле разбитых скал). Но пляж этот пока еще на небольшом островке. Хорошо что уже обитаемом . Поэтому о конкретных особенностях/глюках/практике применения будет с кем поговорить. Но лучше конкретно с примерами кода и логами кзаленс уже и так изменил парадигму в виваде - от антикварных ядер с СЕ перешел на повсеместное использование акси-стримов как для дсп и видео, так и для езернета и в довесок куча ядер для удобств работы со стримами - а для написания ядер обрабатывающих стримы хлс подходит как родной Изменено 5 февраля, 2019 пользователем fguy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба Приветствую! 9 hours ago, fguy said: кзаленс уже и так изменил парадигму в виваде - от антикварных ядер с СЕ перешел на повсеместное использование акси-стримов как для дсп и видео, так и для езернета и в довесок куча ядер работы со стримами - а для написания ядер обрабатывающих стримы хлс подходит как родной Смена типа шин это не смена парадигмы а просто хорошее чутье - архитектура ARM уже мега-популярна и тянуть воз PowerPC самому будет тяжко. Ну а лепить PLB bus к ARM CPU как то не феншуйно. А HSL ядрам пофиг какая шина. Даже больше - "родной" stream интерфейс для HLS ядер это простое FIFO. А AXI stream уже лепится к нему как прослойка. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 5 февраля, 2019 Опубликовано 5 февраля, 2019 · Жалоба 11 часов назад, RobFPGA сказал: Приветствую! Я еще лет 10 назад пытался что то делать на Catapult C. А о разных способах натянуть сову High Level на глобус RTL слышал начиная с 2000ных. И эти модные веяния периодически накатывали волнами разбиваясь о скалы специфики применения - куча ограничений синтаксиса языка, не синтезируемость некоторых абстракций, не оптимальность результата по ресурсам. И самое главное - необходимость смены парадигмы мышления программистов! А как же Adreno ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 6 февраля, 2019 Опубликовано 6 февраля, 2019 · Жалоба Приветствую! 8 hours ago, a123-flex said: А как же Adreno ? ... слышал звон, да не знает где он .... Это вы к чему? Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 6 февраля, 2019 Опубликовано 6 февраля, 2019 · Жалоба 19 минут назад, RobFPGA сказал: Это вы к чему? Если верить рекламной статейке, получается что BitBoys разработали что-то вроде собственного катапульта, и он у них работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 6 февраля, 2019 Опубликовано 6 февраля, 2019 · Жалоба Приветствую! 34 minutes ago, a123-flex said: Если верить рекламной статейке, ... Повторюсь - Это вы к чему? Вы знаете название инструмента которым эти ребята пользовались? Его характеристики? Внутренние инструменты/технологии многих компаний могут многое. Но говорить о них можно когда они выходят наружу в виде инструментов или стандартов. А так я тоже могу говорить что у меня в 99 был скрипт TCL которые генерил мне модули на AHDL по описанию логики из .txt файла. Чем не HLS (тиснуть что-ли рекламную статейку куда либо может кто поверит ...). Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 6 февраля, 2019 Опубликовано 6 февраля, 2019 · Жалоба 11 hours ago, RobFPGA said: Смена типа шин это не смена парадигмы а просто хорошее чутье - архитектура ARM уже мега-популярна и тянуть воз PowerPC самому будет тяжко. Ну а лепить PLB bus к ARM CPU как то не феншуйно. А HSL ядрам пофиг какая шина. Даже больше - "родной" stream интерфейс для HLS ядер это простое FIFO. А AXI stream уже лепится к нему как прослойка. Передача данных по СЕ это даже не шина - это тупое навязывание данных мастером слэйву без учета готовности последнего - отсих у "классиков" кошмары на латентность и желание все сделать за один такт. По факту AXI-stream это простое расширение шины фифо с добавлением дополнительных линий (last, user, strb/keep и т.п.). Учет готовности слэйва мастером это уже смена парадигмы - вы перестаете шарахаться от латентности, можно менять интервалы обработки данных, варьируя ширину шины и частоту. Вместо потери данных, которую легко не заметить, получаете тормоза на входе конвейера, которые замечательно отслеживаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 6 февраля, 2019 Опубликовано 6 февраля, 2019 · Жалоба 2 часа назад, RobFPGA сказал: Приветствую! Повторюсь - Это вы к чему? Вы знаете название инструмента которым эти ребята пользовались? Его характеристики? Внутренние инструменты/технологии многих компаний могут многое. Но говорить о них можно когда они выходят наружу в виде инструментов или стандартов. А так я тоже могу говорить что у меня в 99 был скрипт TCL которые генерил мне модули на AHDL по описанию логики из .txt файла. Чем не HLS (тиснуть что-ли рекламную статейку куда либо может кто поверит ...). Тиснуть вы конечно можете. Только у них, помимо статейки, еще и Adreno. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться