![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
fguy
Свой-
Постов
380 -
Зарегистрирован
-
Посещение
Весь контент fguy
-
si570
fguy ответил Art55555 тема в Работаем с ПЛИС, области применения, выбор
насколько помню иначе фокус не проходит сбрасывает частоту на базовую -
si570
fguy ответил Art55555 тема в Работаем с ПЛИС, области применения, выбор
Однако - обычно с этим сталкиваются еще на этапе отладки что бы не дергать питание при повторном запуске софта. Делается все просто - читаем регистры, посылаем сброс и опять читаем регистры - далее программируем от базовой частоты. "Быстрая" перестройка частоты для этих силабсов доступна только в небольшом диапазоне. -
Вы понятие "латентность" ни с чем не путаете? Латентность у кордика и так не маленькая будет особенно у вас в пайплайне. Если вы выравниваете результат с кордика по времени с какими то еще потоками, то по любому ставите фифо на них, а в 2-х канальном варианте вам это фифо придется сделать несколько больше только и всего, но при этом сохранится возможность обработки ваших данных кордиком каждый такт 300 МГц. Конечно же ресурсов такой вариант съест больше чем одно ядро кордика, но в масштабах среднего кинтекса 7 это практически ничто.
-
Есть допотопный алгоритм для решения всех проблем - разделяй и властвуй. В вашем случае стрим на 300 МГц делим на 2 по 155 (с запасом) и ставим 2 ядра кордика, результаты собираем обратно в стрим 300 МГц - делается за час с использованием хлс и штатных ядер.
-
ISE 14.7 на Windows 10.
fguy ответил EpLeon тема в Среды разработки - обсуждаем САПРы
http://www.xilinx.com/support/answers/62380.html -
А в чем проблема реализовать каждую функцию отдельным ядром, в параметрах функций прописать по одному порту блокрама и соединить их в блокдизайне? По своему опыту использования хлс и плис могу сказать что использование адресуемой памяти в обработке это зло и допустимо лишь когда иначе ну совсем никак - типа транспонирования огромных матриц. Постарайтесь адаптировать алгоритм к конвейеру без применения адресуемой памяти, а для выравнивания потоков и/или буферизации данных между ядрами используйте фифо.
-
Vivado 2017.3
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
оболочки все равно разные, а библиотеки поддержки чипов хлс и так брал из вивады - если какой то тип не был установлен то и синтез ядер под него не делался в идеале конечно бы хотелось чтобы хлс вызывался из вивады - вставил или выбрал ядро в бд и открылся редактор кода интел-альтера то же сделали хлс - надеюсь конкуренция даст ходу этой технологии - вещь полезная для сложных алгоритмов и математики есть такое - из сдк 2017.3 прошить флэшку qspi на цинке не вышло - тупо требует какой то загрузчик в эльфе - видимо это в связи с поддержкой ультрацинков вылезло -
почти рабочий вариант - из минусов некорректно генерит секцию Base Definition согласно VITA57.1 пункт 5.5.1 - описание FMC модуля есть еще софт с примерами от аналог девайс https://github.com/analogdevicesinc/fru_tools но это парсер в исходниках с примерами - то же не без изъяна - рассчитан на еепром 256 байт
-
Vivado 2017.3
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
а с чего вы взяли что там что то объединили - хлс как был в эклипсе, так в нем и остался вместе с сдк, а оболочку вивады в 2017х редизайнили под вин10 кстати хлс-у в этом году не везет - первые две падали на симуляции в отладчике, в 3й это наконец то исправили, зато сломали синтез ядер - под 7ю серию выдает какую то неработоспособную чушь -
Vivado 2015.4
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
Обновление на виваду 2015.4.1 скачалось, а новый SDSoC никак не дается - ни веб ни полный - у всех так? Упс - разобрался - похоже оперу стошнило, а через эксплорер качает нормально. -
Vivado Design Suite - 2015.3
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
что то не заметил - проект который на 2015.2 собирался 40 минут, на 2015.3 - вышел на час - дольше стал имплемент - 36 мин против 16 - настройки в обоих дефолтные так же умер лвип на цинке - причину еще не искал - может кто уже нашел? -
конечно можно, в ртос запустить второй проц не проблема, а разделять нужно по памяти - в меморискриптах выделяете не пересекающиеся области ддр для каждого цпу
-
фсбл грузит плис и оба цпу (если есть прошивки), а запускает софт только на первом, а он в свою очередь должен запустить второй цпу
-
Возьмите лучше последнюю виваду - там все наглядно и понятно и ядер свежих куча под 7-ку - для цинков лучшего решения нет
-
смотря как и что собираетесь делать - если проект 100% на VHDL/verilog и нужна хорошая оптимизация то может симплифай и будет предпочтительнее, а если это цинк с кучей готовых ядер + свои на Си/VHDL без претензий к пиковой производительности (потоки в предела 120-150 МГц) то быстрее и проще будет в виваде
-
если вы хотите вывести ноги встроенных в проц цинка ядер внутрь плиса, то нужно в конфигураторе ядра цинка указать для этих ядер вывод на EMIO, тогда они появятся как дополнительные выводы на ядре и вы сможете подключить к ним свои ядра и логику внутри плиса
-
По опыту если в бд появились фантомные ядра то помогает сделать для него Reset Output Product перед разводкой. Так же практически у всех вивад есть большой косяк - после использования чипскопа ни в коем случае не лезем сразу править бд - только после перезапуска вивады - иначе портятся настройки клоков в ядрах связанных с их генерацией - цинк, клок визард и т.п. - лечится перезапуском вивады и прописыванием настроек по-новой.
-
Vivado Design Suite - 2015.2
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
напишите сюда имя файла и его размер на местном фтп (у меня нет доступа) скачать нужную версию с офсайта проблемы так же нет - регистрация и часик-два ожидания на скачку на офсайте полные версии менее 5 Гб под линукс Xilinx_Vivado_SDK_Lin_2015.2_0626_1.tar.gz или винду Xilinx_Vivado_SDK_Win_2015.2_0626_1.tar.gz, а универсальная больше 5 Гб Xilinx_Vivado_SDK_2015.2_0626_1.tar.gz -
хлс он пониже уровнем будет - с матлабом не связывался
-
пользуюсь хлс-ом для написания различных ядер - есть опыт по обработке данных из стрим в стрим и из стрим в ахи-фулл-мастер с прямой записью в ддр (и обратный вариант то же), "особенностей" у него много и прежде чем получится так как хочется придется изрядно попотеть, но результаты получаются вполне приличные и работают стабильно из минусов - все ядро работает в тактах шины управления, получить рабочие такты выше 120 МГц на более менее сложном ядре нереально
-
Vivado Design Suite - 2015.2
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
не знаю что там залито на фтп, но можете легко сравнить размер и имя с тем что лежит на офсайте http://www.xilinx.com/support/download.html -
Vivado Design Suite - 2015.2
fguy ответил Alex77 тема в Среды разработки - обсуждаем САПРы
В довесок выложили долгожданный SDSoC 2015.2 основанный на этой же виваде. К сожалению чуда не произошло и мы получили всего лишь возможность писать код для HLS прямо в сдк и оттуда же его компилить, а так же автоматическую генерацию проекта плис для вивады под это ядро. Проект для вивады можно легко открыть и оценить схему подключения ядра. Учитывая что это все делается через виваду, то никаких супер-быстрых компиляций не получилось - все так же долго в зависимости от сложности вашего ядра. Все заточено под готовые платы на цинках. Каким образом интегрировать в проект работу с внешним железом не понятно. В итоге имеем мастер переноса С/С++ кода в плис для тех кому лень разбираться с вивадой и хлс-ом, хотя особенности последний все равно придется освоить во всех тонкостях для написания эффективного кода. -
а зачем тут дма, если ддр видна в полном объеме с обоих цпу, если только копию данных делать, но для "больших" данных это накладно по времени, да и двойной-тройной буфер для обмена сделать не проблема - пока слэйв обрабатывает один буфер - заполняем второй и т.д.
-
1. Выделить участок памяти ддр для обмена - для надежности что бы не попадал в выделенные области для обоих цпу 2. На мастере положить данные в этот участок 3. Вызвать Xil_DCacheFlush для всей или Xil_DCacheFlushRange для участка 4. Дать прерывание слэйву 5. По прерыванию на слэйве вызвать Xil_DCacheInvalidate для всей или Xil_DCacheInvalidateRange для оговоренного участка 6. Использовать данные из ддр на слэйве
-
Не забываем про синхронизацию кэша для ддр - на передающем нужно скинуть кэш, а на приемном обновить смотрите функции в xil_cache.h процедура не быстрая - может занимать 10-ки мкс