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

alexadmin

Свой
  • Постов

    774
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент alexadmin


  1. Если eeprom нет совсем - то питание на соотвествующие банки FPGA просто не подается, дальше их можно разрешить вручную через консоль system monitor. Если пустая - фиг знает, вероятно тоже.
  2. Проще всего после компиляции проекта запустить тайминг визард - он сам найдет не обконстрейненные клоки и предложит их задать. По крайней мере оттуда можно взять их имя и написать констрэйн самому. Или просто из репорта - там обычно тоже все найденные клоки проекта есть.
  3. Если память двухклоковая, то обращение из разных портов к одному адресу приводит к неопределенному результату. Вроде как запись гарантируется, а чтение - нет.
  4. 5 копеек в кассу: по поводу временного анализа в плане setup-hold и т.п. у xilinx намного толковее написано чем у альтеры. По крайней мере у меня сложилось такое ощущение, когда читал...
  5. Ну в этом смысле все не так фатально - достаточно подать биты со счетчика на выходные интерфейсы или собрать все входы логикой и вывести на любой неиспользуемы пин - и соптимизировать уже не получится (ну либо кнстрэйны специальные наложить, запрещающие оптимизацию). Если говорить об о скоростных интерфейсах на обычных i/o, то основная проблема - в зависимости от выбранной схемы реализации могут быть разные требования к тактированию (разные буферы, разные пути прихода клока). И тогда уже "затычки" может не хватить, а нужно разработать полноценный интерфейс. Если у вас уже такой есть под текущее семейство FPGA - тогда вопрос действительно на час-два, а если нет - то пока в живую не заработает наверняка и не скажешь ;)
  6. Чисто технически (с точки зрения RTL-разработчика) - надо взять всю вашу периферию, особенно высокоскоростную, посмотреть в каких режимах она подключена и сделать соответсвующий проект-затычку, содержащий все ip-ядра, клоки, скоростные интерфейсы и т.п. Час-два это излишне оптимистично (разве что ничего специфического нет, но ваш случай выглядит сложнее), но неделя - вполне разумная величина с запасом, чтобы накидать нечто проходящее компиляцию. Другое дело, что вам ведь требуется не проверить имеющуюся раскладку, а спланировать - а тут уже надо влезать в вопросы выбора питания банков, трассировки платы, габаритов и т.п. Возможно потому никто и не хочет заморачиваться.
  7. Судя по картинке, в данном конкретном случае регистр инициализируется все так же нулями. А перед ним и после него стоят инверторы ;) Можно делать как больше нравится, однозначного ответа тут нет. Кто-то все явно инициализирует в ноль, чтоб наверняка. Кто-то приделывает схему сброса (такой вариант, кстати, используется для asicов, там инициализации нет вроде как в стандартных бибилиотеках). В каких-то случаях и вовсе неважно начальное состояние. Кстати, стоит иметь в виду что в квартусе есть опция power-up don't care, которая разрешает квартусу устанавливать начальное значение любым, если оно явно не указано.
  8. Подбросим в топку: Размер элемента захардкодил для краткости. Вериложники, ваш ход ;)
  9. Про in-system не расскажу, не приходилось еще работать. TRansceiver wizard - да, этот оно в простейшем виде. Можно и непосредственно с аппаратными макросами работать, но это на любителя. В трансивере есть порты управления и статуса PRBS тестов - можно включать разный PRBS, управлять лупбэками, прочитать из регистров количество обнаруженных ошибок на стандартных PRBS-последовательностях. В общем это отдельная большая работа.
  10. Xilinx вроде как не раскрывает программные интерфейсы для общения с ядром IBERT (да и само ядро закрыто). Так что трансивер в руки и вперед - сделать систему управления трансивером, протокол обмена с внешним миром, свое GUI на удаленной машине. В общем полностью пройти цепочку аналогично IBERT/Vivado. Даже если расшифровать ядро ibert, то исходников программы под Microblaze все равно не будет...
  11. Смотрите на аттрибут 'POS. Ну и константу, естественно, надо задавать в целом виде, например 16#40#.
  12. Может я чего не понял, но первое задание - это в чистом виде сгенерировать example design на базе ядра MIG.
  13. Вероятно девайс оставался в общем ресете и не переходил в user mode, как-то так это кажется и реализуется, если не ошибаюсь.
  14. Может проще пропустить клок через ту самую перемычку?
  15. Открыть Implemented design и запустить timing report - он его выполнит на базе новых констрэйнов, насколько я помню.
  16. Хотел бы я увидеть реакцию компьютера, которому скажут что в модуле аж целых 128 кб памяти! ;)
  17. Хорошо бы уточнить что значит "плыть". А так смотреть на используемый стандарт, параметры входного сигнала и "связность" земель двух плат.
  18. Я бы задумался почему сбои приходятся ровно на спад regb[5]. Попробуйте скорость передачи уменьшить процентов на 20-30 и сравнить.
  19. Ctrl-S в редакторе нажмите ;) У вас файл не сохранен, компилятор main не видит. Об этом говорит звездочк "*" в заголовке редактора в ервой картинке поста.
  20. Там между перезапусками большой временной интервал обусловленный обменом с квартусом через JTAG. Так что из пачки он захватит 2-3 пакета.
  21. Тихо, в сторону, как говорится в пьесах: Я уж не стал добавлять "демонстрируя абсолютное непонимание основ", чтоб никого не расстроить
  22. Обожаю такие темы. Студент задавший вопрос, который и сам не понял, давно уже свалил, а мужики с 10+ опытом уже неделю рвут друг друга на лоскуты, хотя говорят об одном и том же, только разными словами.
  23. Хочу задать наводящий вопрос: коллеги, вы в курсе что I2C и I2S - разные интерфейсы?
  24. По идее это должно как-то прагмами в самом C коде настраиваться. Причем вряд ли напрямую. Скорее нужно создать дополнительный сегмент, положить его по нужному адресу, потом положить переменную в данный сегмент. Как это точно делается - черт его знает.
×
×
  • Создать...