des00 25 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба 15 hours ago, Dr.Alex said: А что это такое? Даже гугл не знает. Странно, Data Width Conversion память. пишем байтами, читаем словами и наоборот. Штатная фича аппаратных блоков памяти у основных вендоров) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.Alex 0 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба 4 hours ago, des00 said: Странно, Data Width Conversion память. пишем байтами, читаем словами и наоборот. Штатная фича аппаратных блоков памяти у основных вендоров) А я уж подумал - Dynamic Write Consolidation :-)))) Но так или иначе, в Артиксе этого нет :-о Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба 30 minutes ago, Dr.Alex said: Но так или иначе, в Артиксе этого нет :-о очень странно, т.к. в артиксе у меня это работает) при этом в ds180 и ug473 написано как это работает). ЗЫ. это еще в спартанах 3 и сыклонах 1 было) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 15 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба 8 минут назад, des00 сказал: это еще в спартанах 3 и сыклонах 1 было Это было еще в Виртексе (без номера), где блочная память и появилась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 29 июня, 2021 Опубликовано 29 июня, 2021 · Жалоба On 6/23/2021 at 12:05 AM, fguy said: Наконец то вышла очередная 2021.1 под все чипы... Хорош. Наконец-то потрудились над качеством самих GUI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 6 июля, 2021 Опубликовано 6 июля, 2021 (изменено) · Жалоба 29.06.2021 в 13:07, dmitry-tomsk сказал: Хорош. Наконец-то потрудились над качеством самих GUI. По сравнению с 2020.2 в новой добавили конвертацию старого проекта в новый формат каталогов (когда в srcs только исходники проекта), а так же вернули экспорт в сдк в "старом" компактном формате (без упаковки всего проекта). К сожалению хлс продолжают гробить ударными темпами - к испорченному в 2020.2 axis добавили еще косяк с генерацией выходных портов типа ap_none. Изменено 6 июля, 2021 пользователем fguy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 6 июля, 2021 Опубликовано 6 июля, 2021 · Жалоба 4 hours ago, fguy said: По сравнению с 2020.2 в новой добавили конвертацию старого проекта в новый формат каталогов (когда в srcs только исходники проекта), а так же вернули экспорт в сдк в "старом" компактном формате (без упаковки всего проекта). К сожалению хлс продолжают гробить ударными темпами - к испорченному в 2020.2 axis добавили еще косяк с генерацией выходных портов типа ap_none. Самое неприятное, что для axis поменяли формат и теперь нельзя для axis делать non-blocking write/read, только для ap_fifo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 6 июля, 2021 Опубликовано 6 июля, 2021 · Жалоба 28 минут назад, dmitry-tomsk сказал: Самое неприятное, что для axis поменяли формат и теперь нельзя для axis делать non-blocking write/read, только для ap_fifo Дык старые вольности с описанием axis прикрыли - может поэтому и не работает - описывайте формат порта через штатные типы ap_axis/ap_axiu из ap_axi_sdata.h - может все и заработает опять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 6 июля, 2021 Опубликовано 6 июля, 2021 · Жалоба 1 hour ago, fguy said: Дык старые вольности с описанием axis прикрыли - может поэтому и не работает - описывайте формат порта через штатные типы ap_axis/ap_axiu из ap_axi_sdata.h - может все и заработает опять. Нет, не помогает, синтезатор ясно пишет - используйте fifo интерфейс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 7 июля, 2021 Опубликовано 7 июля, 2021 · Жалоба 15 часов назад, dmitry-tomsk сказал: Нет, не помогает, синтезатор ясно пишет - используйте fifo интерфейс Я неблокирующее чтение делаю через обычное (блокирующее) с проверкой наличия данных inp_port.empty() - при наличии данных читаю и обрабатываю, иначе делаю что то другое. Неблокирующая запись легко меняется на блокирующую, а по выходу на tready вешается 1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 7 июля, 2021 Опубликовано 7 июля, 2021 · Жалоба 8 minutes ago, fguy said: Я неблокирующее чтение делаю через обычное (блокирующее) с проверкой наличия данных inp_port.empty() - при наличии данных читаю и обрабатываю, иначе делаю что то другое. Неблокирующая запись легко меняется на блокирующую, а по выходу на tready вешается 1. если так написать и при этом ii=1, то hls распознаёт неблокирующее чтение-запись и требует ap_fifo. Хотя в 2019 работало как надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fguy 5 7 июля, 2021 Опубликовано 7 июля, 2021 · Жалоба 44 минуты назад, dmitry-tomsk сказал: если так написать и при этом ii=1, то hls распознаёт неблокирующее чтение-запись и требует ap_fifo. Хотя в 2019 работало как надо. Кто старое помянет - хорошо версали запускать не надо и можно сидеть в 2018.3 - там все вольности работают. В 2021.1 по крайней мере синтезит без ошибок только такой вариант без блокировок (по выходу на tready подать 1): #include "hls_stream.h" #include "ap_axi_sdata.h" typedef ap_axiu<16, 0, 0, 0> AXIS_CMD; void test_axis ( hls::stream<AXIS_CMD> &inp_cmd, hls::stream<AXIS_CMD> &out_cmd ) { #pragma HLS INTERFACE mode=axis register_mode=both port=inp_cmd register #pragma HLS INTERFACE mode=axis register_mode=both port=out_cmd register while(1) { #pragma HLS PIPELINE II=1 AXIS_CMD data_cmd; if (inp_cmd.empty()) { // Данных нет data_cmd.data = 0xA55A; } else { // Данные есть data_cmd = inp_cmd.read(); } out_cmd.write(data_cmd); } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 7 июля, 2021 Опубликовано 7 июля, 2021 · Жалоба 24 minutes ago, fguy said: Кто старое помянет - хорошо версали запускать не надо и можно сидеть в 2018.3 - там все вольности работают. В 2021.1 по крайней мере синтезит без ошибок только такой вариант без блокировок (по выходу на tready подать 1): #include "hls_stream.h" #include "ap_axi_sdata.h" typedef ap_axiu<16, 0, 0, 0> AXIS_CMD; void test_axis ( hls::stream<AXIS_CMD> &inp_cmd, hls::stream<AXIS_CMD> &out_cmd ) { #pragma HLS INTERFACE mode=axis register_mode=both port=inp_cmd register #pragma HLS INTERFACE mode=axis register_mode=both port=out_cmd register while(1) { #pragma HLS PIPELINE II=1 AXIS_CMD data_cmd; if (inp_cmd.empty()) { // Данных нет data_cmd.data = 0xA55A; } else { // Данные есть data_cmd = inp_cmd.read(); } out_cmd.write(data_cmd); } } Проверил на своём коде, да, действительно read_nb проходит, write_nb нет. У меня были оба, поэтому я решил, что оба и не работают. Очень странно, ведь ap_fifo ничем не отличается от axis, только названиями сигналов. Если нужен tlast, то это просто дополнительный бит данных. У меня была идея сделать переходник на hdl, соединить напрямую и прописать интерфейсы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.Alex 0 10 июля, 2021 Опубликовано 10 июля, 2021 · Жалоба On 6/29/2021 at 1:07 PM, dmitry-tomsk said: Хорош. Наконец-то потрудились над качеством самих GUI. И что изменилось-то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 11 июля, 2021 Опубликовано 11 июля, 2021 · Жалоба 9 hours ago, Dr.Alex said: И что изменилось-то? Да всё! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться