Перейти к содержанию
    

Vivado Design Suite - HLx Editions - 2020.3

15 hours ago, Dr.Alex said:

А что это такое? Даже гугл не знает.

Странно, Data Width Conversion память. пишем байтами, читаем словами и наоборот. Штатная фича аппаратных блоков памяти у основных вендоров)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, des00 said:

Странно, Data Width Conversion память. пишем байтами, читаем словами и наоборот. Штатная фича аппаратных блоков памяти у основных вендоров)

А я уж подумал - Dynamic Write Consolidation :-))))

Но так или иначе, в Артиксе этого нет :-о

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, Dr.Alex said:

Но так или иначе, в Артиксе этого нет :-о

очень странно, т.к. в артиксе у меня это работает) при этом в ds180 и ug473 написано как это работает). 

ЗЫ. это еще в спартанах 3 и сыклонах 1 было) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, des00 сказал:

это еще в спартанах 3 и сыклонах 1 было

Это было еще в Виртексе (без номера), где блочная память и появилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/23/2021 at 12:05 AM, fguy said:

Наконец то вышла очередная 2021.1 под все чипы...

Хорош. Наконец-то потрудились над качеством самих GUI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29.06.2021 в 13:07, dmitry-tomsk сказал:

Хорош. Наконец-то потрудились над качеством самих GUI.

По сравнению с 2020.2 в новой добавили конвертацию старого проекта в новый формат каталогов (когда в srcs только исходники проекта), а так же вернули экспорт в сдк в "старом" компактном формате (без упаковки всего проекта). К сожалению хлс продолжают гробить ударными темпами - к испорченному в 2020.2 axis добавили еще косяк с генерацией выходных портов типа ap_none.

Изменено пользователем fguy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, fguy said:

По сравнению с 2020.2 в новой добавили конвертацию старого проекта в новый формат каталогов (когда в srcs только исходники проекта), а так же вернули экспорт в сдк в "старом" компактном формате (без упаковки всего проекта). К сожалению хлс продолжают гробить ударными темпами - к испорченному в 2020.2 axis добавили еще косяк с генерацией выходных портов типа ap_none.

 

Самое неприятное, что для axis поменяли формат и теперь нельзя для axis делать non-blocking write/read, только для ap_fifo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 минут назад, dmitry-tomsk сказал:

Самое неприятное, что для axis поменяли формат и теперь нельзя для axis делать non-blocking write/read, только для ap_fifo

Дык старые вольности с описанием axis прикрыли - может поэтому и не работает - описывайте формат порта через штатные типы ap_axis/ap_axiu из ap_axi_sdata.h - может все и заработает опять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, fguy said:

Дык старые вольности с описанием axis прикрыли - может поэтому и не работает - описывайте формат порта через штатные типы ap_axis/ap_axiu из ap_axi_sdata.h - может все и заработает опять.

Нет, не помогает, синтезатор ясно пишет - используйте fifo интерфейс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, dmitry-tomsk сказал:

Нет, не помогает, синтезатор ясно пишет - используйте fifo интерфейс

Я неблокирующее чтение делаю через обычное (блокирующее) с проверкой наличия данных inp_port.empty() - при наличии данных читаю и обрабатываю, иначе делаю что то другое. Неблокирующая запись легко меняется на блокирующую, а по выходу на tready вешается 1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, fguy said:

Я неблокирующее чтение делаю через обычное (блокирующее) с проверкой наличия данных inp_port.empty() - при наличии данных читаю и обрабатываю, иначе делаю что то другое. Неблокирующая запись легко меняется на блокирующую, а по выходу на tready вешается 1.

если так написать и при этом ii=1, то hls распознаёт неблокирующее чтение-запись и требует ap_fifo. Хотя в 2019 работало как надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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);
	}
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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, соединить напрямую и прописать интерфейсы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/29/2021 at 1:07 PM, dmitry-tomsk said:

Хорош. Наконец-то потрудились над качеством самих GUI.

И что изменилось-то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...