Jump to content

    

Strob

Участник
  • Content Count

    145
  • Joined

  • Last visited

Everything posted by Strob


  1. А если в настройках Debug configuration поставить галочку Reset entire system, результат какой будет?
  2. Сколько процентов от стоимости изделия приходится на стоимость кристалла ПЛИС? Сколько будет приходиться, если заменить на более свежий кристалл? В некоторых тиражируемых изделиях стоимость ПЛИС меньше стоимости технологического запаса винтов и гаек. Вполне возможно, что если мы говорим не о миллионах изделий, окупать выгоду от перехода на асик придется раз в 5 дольше, чем потребуется изделию, чтобы морально даже не устареть, а тотально разложиться
  3. Сначала лучше понять, уменьшение количества тактов, это цель, или средство достижения цели?
  4. Конечно украшательство. Причем для широкого спектра задач совершенно бесполезное. Сильно сомневаюсь что ТС собрался 100 ракурсов снимать для людей. Небось конечная цель, построение 3д модели.
  5. Не надо путать качество и украшательства под восприятие картинки глазом человека.
  6. Фотокачество достигается правильным соотношением параметров сенсора и оптики. Все остальное - хорошая мина при плохой игре.
  7. В целом, с точки зрения матрицы, видео равносильно фото. Никогда не видел, чтобы именно на уровне матрицы что-то отличалось. 1) OpenCV? Но, имхо проблема не в ПО и не в матрице. 2) мне кажется к проблеме это отношения не имеет. 3) обычно видео и фото не разделяют. Чаще всего различия только в быстродействии интерфейсов и узлов вне матрицы. Видео надо обрабатывать быстро, записывать на носитель. С фото задержка в 1 секунду роли не играет. Мне кажется к делу имеет отношение исключительно качество оптики и юстировка. Какой объектив используете? Нет ли боковых засветок?
  8. Может конечно и да, но что-то я сильно сомневаюсь, что есть хоть какая-то разница в скорости.
  9. Не ведаю. Просто не думаю, что стоит акцентировать внимание именно на быстродействии. Все от задачи расти будет. ТЗ, с инженерной точки зрения )
  10. У xilinx в документации на синтезатор прописаны ограничения для проектов с несколькими языками. Что то мне подсказывает, что у остальных должно быть что-то подобное.
  11. А что критиковать? Главная выгода - финансовая. В крупной серии экономия на стоимости 1 кристалла окупит вложения в ASIC
  12. Мне кажется как раз направление задано ошибочно. Попробуйте отключить кэширование. Я не большой спец в этих вопросах, но как альтернативу, попробуйте не использовать xil_in32, а читать и писать явно по указателю. В этой функции используется волатильная переменная. Возможно это приводит к кэширование.
  13. И все же это не так. MCS - это особый случай, прибитый гвоздями вариант, в котором как разработчики поставили адреса, так и будет. Возможно ограничения и есть, но точно не 0х8000_0000. На этот адрес автоматом обычно DDR встает, если есть в проекте.
  14. Не читал все, если повторю чьи-то слова, пардон. А в симуляторе точно повторено поведение железного мастера? Сравнение с осциллографом было сделано? Многое может пойти не так.
  15. Уже писал выше, на другой плате не работал другой канал. Аналогичные симптомы. Но канал другой. Проблему кажется удалось устранить. Она была не в пайке. По какой-то причине кратковременные пропадания клока приводили к залипанию корки. После исправления клоков все заработало как должно. Спасибо всем за советы.
  16. Вот и я сижу, и не понимаю что не так... Не знаете, есть ли возможность понять, на какие шары смотреть в первую очередь, если по разводке локализовать регион кристалла с проблемным узлом? Есть ли тут связь? Может быть есть какое-то ограничение по нагрузочной способности у глобал буфера? Также тут на форуме кажется было сообщение что при большой загрузке кристалла вивада трюки выкидывает. Хотя может быть мне просто кажется...
  17. На входах/выходах все хорошо. Сигнал внутри кристалла прослеживается вплоть до корки. Но на выходе корки ни валида, ни данных.
  18. Проверил, перестал работать ещё один канал. Попробую проверить, хотя пока не знаю как это можно сделать.... или сразу в печь нести... Спасибо.
  19. Спасибо, поставил разводить. Завтра проверю. Корки идентично подключены. На самом деле они входят в состав модуля, который собственно и размножен в проекте. В модуле перед ними есть другие модули, с их выхода всё идёт как надо. Сегодня была ещё одна странность, на другой плате, при той же прошивке аналогичная проблема в другом канале. А канал неработающий на первой плате работает. Все это при комнатной температуре.
  20. Добрый день коллеги. Помогите советом. Есть IP фильтра(Xilinx, Vivado, FIR Compiler), возможна ли ситуация, при которой данная корка разводится с учетом иных ограничений таймингов, нежели те, что указаны в файле констрэйнов на проект? Немного комментариев... В проекте вставлено несколько инстансов данной корки. Большинство работает как и задумано, а одна нет. На вход к ней приходят данные и строб(смотрел через ILA), а на выходе никогда ничего не появляется(также, по ILA). Подключение у всех идентичное(с точностью до разных источников данных). Работают от одного клока. Провалов по таймингам нет, хотя запас скромный, 0.06нс.
  21. При такой постановке вопроса (ищем именно язык) кажется нет ничего. А так, "catapult c" и "hls".
  22. Наверное стоит обратить внимание на внезапно асинхронный счётчик..
  23. Код из первого поста вроде должен работать, если case поместить в else условия сброса.
  24. Возможно так? mem <= (data'High downto data'Low=> data, others => "00000000000000000000000000000000"); Дико извиняюсь за оффтоп, однако меня просто сводит с ума одна проблема. Не буду тему создавать отдельно... в подобной функции вивада выдает варнинг на каждый проход цикла, ругается на то что ожидает unsigned. Все. Больше инфы не дает. Можно конечно игнорить их, но рука как то не поднимается отправить в игнор 999+ варнингов. Пробовал разные преобразования типов, не помогает. вот код ----- ----- ----- constant hi_angle_width : integer := angle_width / 2; --ширина шины адреса памяти грубых углов constant low_angle_width : integer := angle_width - (angle_width / 2); --ширина шины адреса памяти точных углов constant real_to_integer_transform_coeff : real := (2 ** real(sin_cos_width - 1)) - 1.0; --коэффициент преобразования синуса углов в целочисленное представление constant worst_angle_resolution : real := (2.0 * MATH_PI) / (2 ** real(hi_angle_width)); --величина (в радианах) младшего разряда грубого угла constant fine_angle_resolution : real := worst_angle_resolution / (2 ** real(low_angle_width)); --величина (в радианах) младшего разряда точного угла ----- ----- ----- type hi_angle_rom is array ((2 ** hi_angle_width) - 1 downto 0) of signed(sin_cos_width - 1 downto 0); type low_angle_rom is array ((2 ** low_angle_width) - 1 downto 0) of signed(sin_cos_width - 1 downto 0); --Инициализация памяти синусов грубых углов function init_hi_sin_rom return hi_angle_rom is variable tmp : hi_angle_rom := (others => (others => '0')); begin for addr_pos in 0 to (2 ** hi_angle_width) - 1 loop tmp(addr_pos) := to_signed(integer(real_to_integer_transform_coeff * sin(real(addr_pos) * worst_angle_resolution)), sin_cos_width); end loop; return tmp; end init_hi_sin_rom; ---- ---- ---- sin_cos_width к natural преобразовывал. Не помогло. Раньше вроде не было такого. Гугление решения как то не дало. Я что-то упускаю может быть...