-
Постов
161 -
Зарегистрирован
-
Посещение
Весь контент svedach
-
Извините, что целый день отсутствовал, работа... Интересный разговор начался... Сразу конечно стоило оговорить: продукт мелкосерийный, с высокой добавленной стоимостью... Так что передача UID и синтез с ним - не проблема. Вопрос, который я подразумевал, но открыто не задал - что делать, если таких ядер несколько и каждое будет использовать Altera Unique Chip ID IP Core, что делать? Доступа ко всему проекту нет... Неужели все так и передают - сколько хочешь, столько и копируй? Неужели никто подобными вещами не озадачивался?
-
Привет всем. Появилась задача защиты своего IP-ядра при продаже. Лучший вариант - продавать синтезированный Квартусом файл, но нужно что бы его можно было использовать только один раз для конкретного чипа. Прочитал, что ПЛИС Alter-ы имеют уникальный идентификатор, его можно использовать... заказчик ядра передает мне идентификатор микросхемы, я подставляю его в исходники, синтезирую и передаю результат заказчику. Вот только непонятно, как читать этот идентификатор? Нашел, что есть специальная корка, но возможно ли ее интегрировать в свое ядро и нормальный ли это подход? Спасибо!
-
Снимаю шляпу, добрейший. Буду разбирать и делать конвеер, как сделаю - выложу сюда.
-
Не хочется изобретать велосипед, может кто-то уже писал подобный модуль и готов поделиться... Буду очень признателен....
-
Я по AXI в регистр в своей корке пишу адрес статического массива (это и есть распределенная память :)) и с этого адреса начинаю читать...
-
В общем это действительно был какой-то специфический регион... Задал смещение в распределенную в SDK память и всегда 0x80.
-
У меня сейчас sts_tdata периодически становится 0x40 - ошибка от слейва... Не сталкивался с таким? При чем после того, как восстанавливается 0x80 (в конце времянки) дальше всегда вроде 0x80. Похоже на то, что какой-то регион памяти недоступен для чтения, или я не правильно понимаю? P.S. Адреса чтения пока - просто последовательность о 0 до 2621440, заданы только для теста....
-
Все, разобрался, оказывается шину статуса тоже обязательно надо читать (или хотя бы установить *_sts_tready в "1")...
-
Алексей, привет! Наблюдаю следующую картину: Это первый запрос пачки данных, после того, как MM2S_CMD_Ready упал последний раз - больше не поднимается... Не могу понять, что не так...
-
Я тоже генерирую команды датамуверу из логики, почитал доки - структура команд простая:) + есть фифо команд. Он кстати удобно перекладывает прочитанные данные в АКСИ Стрим + можно указывать последний запрос - по нему будет генериться tlast. По этому стробу удобно запускать обработку принятых данных... Делаю автомат состояний для генерации команд, попробую - отпишусь что да как...
-
Алексей, привет! Проясни "Датамувер это движок sg dma"... Что значит движок? Датамувер вроде неплохо подходит - кенеришь ему команды и на выходе получаешь поток данных, если я правильно понял...
-
Кажется нащупал верный путь: DataMover!!! Буду пробовать...
-
Здравствуйте! Столкнулся с проблемой чтения данных из DDR, подключенной к Zynq. Т.е. работа предполагается такая: при старте системы процессор из флешки копирует определенный массив значений, эти значения используются кастомным ядром в PL. При этом выборка значений случайная (массив большой)... Писать поток (тоже надо) в DDR через DMA я умею и прекрасно с этим справляюсь, но вот чтение да еще не поточное а по случайным адресам пока толком не понимаю как сделать... Есть предположение использовать CDMA, при этом к порту S_AXI_LITE подключается моя корка и генерит запросы чтения по нужным адресам (или пишет в регистры CDMA что и откуда прочитать...???)... Это будет работать? Или это не правильный путь? Может есть способ проще?
-
kosek8, Вы вроде все делаете правильно, просто Vivado - это мегакосячная среда... Возможно лучше сохранить кастомные исходники, удалить всю папочку SDK, заново все экспортировать, создать и настроить проект и потом добавить свои исходники...
-
Это классно. Я давно использую фриРТОС. Очень нравится...
-
Так у тебя все получилось? Мне интересно на перспективу...
-
http://www.freertos.org/Free-RTOS-for-Xili...tan-6-FPGA.html Тут вроде все есть, или то, что там написано - пройденный этап? Мне тоже интересна данная тема...
-
Как минимум таймер должен быть, и скорее всего он должен быть заведен на прерывание... Какие конкретно ошибки выдает SDK? P.S. Шевяков....
-
Vivado 2016.4
svedach ответил Koluchiy тема в Среды разработки - обсуждаем САПРы
Интересно... Спасибо, Doka. Есть ли туториал по такой схеме работы? -
Vivado 2016.4
svedach ответил Koluchiy тема в Среды разработки - обсуждаем САПРы
Кстати, переходите на 2017.1 или .2 - прогресс относительно 2016 есть. -
Vivado 2016.4
svedach ответил Koluchiy тема в Среды разработки - обсуждаем САПРы
Долго работаю с Vivado... Это худший софт в котором доводилось работать... Привыкайте... Интерфейс - ужас, куча окон в окне... Отзывчивость нулевая (комп у меня нормальный...). ILA по сравнению с ChipScope - боль... Извините, накипело... -
По поводу чтения как раз и стоит вопрос - вешать это на проц или писать свою корку... Что такое "алгоритм чтения" не совсем понял, чтение выполняется по случайным адресам из заданного диапазона (пока в ДДР это обычный большой статический массив интов...) и перекладывание прочитанного слова в BRAM в PL по адресу, который инкрементируется. Адрес чтения из большого массива берется из BRAM. Это получается что-то вроде гигантской LUT... Если Вы имеете в виду непосредственный обмен с памятью, то туда не лажу...
-
Простите мне мое невежество, но насколько я разобрался из даташитов (я с флешкой раньше не работал) там чтение выполняется бурстом (т.е. сразу передается страница) и передача этого бурста займет много более 70нс? Или там все-таки можно организовать чтение только слова по случайному адресу за время не более 70нс (с учетем задела на будущее)?
-
Если можно, про п.2 доскажите подробнее, нашел флешки только со временем доступа около 70 нс, что многовато...
-
Спасибо за наводку, буду изучать...