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

Kopart

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Kopart

  • Звание
    Знающий
    Знающий

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

3 598 просмотров профиля
  1. Предположение: у многих PHY есть требование на длительность сигнала ресет. Такая задержка есть во всех примерах с использованием ядра TSE. Ваш nRST FPGA напрямую подключен к пину PHY reset?
  2. Этот вариант с одной стороны выглядит проще, но 1. приведет к лишней дополнительной логике для enable-сигналов. (При работе на основной частоте можно много где обойтись без них, что не увеличит тайминг пути) 2. нужно будет на все такие пути прописывать кратный multicycle, тк (скорей всего) основная логика и так упирается в основную частоту. А я бы поставил на вариант В. По сравнению с С, в нем задержки двух выходов pll смогут автоматически подстроится оптимальным образом для двух клоков деревьев. А в варианте С нет возможности так гибко двигать задержкой клока после делителя (особенно с учетом требования синхронной передачи данных в обе стороны между клоковыми доменами).
  3. Напишите в этой теме, если кто столкнется с подобным или у кого с DDR3 HiLO платой все работает правильно. Пока нашел такое решение: Заменил плату HiLO на DDR4, перенастроил IP Arria10 EMI и пины не меняя остальную логику проекта. В итоге сразу заработал правильно на 1066МГЦ с DDR4. Мне не принципиален тип внешней памяти и достаточно объема DDR4 на плате HiLO.
  4. Arria 10 GX FPGA Development Kit (DevKit Terasic/Intel) Quartus 17.0.2 Проблемное IP в Qsys - Arria 10 EMI (External memory interfaces) при подключении DDR3 HILO Наблюдаю по факту и в SignalTap (по клоку emif_usr_clk), что если повторять вычитывание 32-битных данных из DDR3-памяти, то может вычитаться неправильное значение из памяти. Те просто несколько раз вычитываем данные по одним и тем же адресам и видим в SignalTap на выходе контроллера emi|amm_readdata_0[511..0], что некоторые биты а 512-битном слове могут менятся при чтении. (При этом в памяти данные не меняются, наличие/отсутствие ECC никак не сказывается). Это наблюдается и при Memory clock 1066.66МГц и при 533.33 МГц (ref clock 133.33МГц). Нарушений по таймингам при сборке всего проекта нет. Для настройки конфигурации контроллера EMI используется preset для DevKit Уже перепроверил много вариантов, но так и не смог понять по какой причине Hard-контроллер памяти Arria10 может выдавать частично неправильные данные. Кто сталкивался?
  5. Тут все становится понятно и логично, когда с таким столкнешься и поищешь способы исправления "таких различий". Это из-за специфики нетлиста ASIC и Х-состояния. Здесь описано почему такая рекомендация не позволяет "выстрелить себе в ногу" лишний раз http://www.verilogpro.com/systemverilog-ve...mism-pessimism/ Но никто не будет всё переписывать только через "condition ?", поэтому в VCS добавлена отдельная опция xprop=tmerge/xmerge. Она позволяет избавится от различий при симуляции описании содержащих if else. Но есть глюки и заметно снижает скорость симуляции. Здесь подробнее про нее написано: http://www.verilogpro.com/x-propagation-with-vcs-xprop/
  6. В этом случае он спрашивает открыть устаревший дизайн. И, по все видимости, открывает со старым файлом, либо предлагает перекомпилировать.
  7. В TimeQuest Квартуса есть возможность обновить sdc и применить новые настройки для анализа таймингов. Не очень знаком с Vivado, но не нашел такой возможности в GUI, кроме как при пересинтезе. Или какой tcl-командой это делается?
  8. Либо не использовать версию nios (и возможно другие IP с лицензией), либо "найти" лицензию. Тут есть темы и кто может помочь с этим. А когда будет не time limited sof - можно будет сконвертировать его в jic в квартусе.
  9. В примере указана ES микросхема 10AX115N3F40E2SG Дабы исключить тайминги ES проверил пример с индастриал микросхемой, установленной на поставляемом DevKit'e (10AX115S2F45I1SG). Кардинально ситуация не изменилась - улучшение тайминга сопоставимо с более быстрым speedgrade внутри семейства. 6.134; 1.761; FF; uTco; 2 ; EC_X70_Y88_N1;; g_ram_test_engine[0].ram_test_engine|mem|altsyncram_component|auto_generated|ram_block1a1|portbd ataout[0] Блок памяти можно сделать двух типов: когда задержка на выборку данных входит во входной путь адреса или когда в выходной путь данных. Те триггер может защелкивать либо выходные данные, либо входной адрес. Такая маленькая задержка в этом в пути в StratixV IMHO говорит только об одном, что на выходе стоит триггер, который и разрывает путь чтения данных. *Для ASIC можно сгенерировать такие блоки памяти в которых будет разные тайминги для разных портов. Один будет ориентирован на записи (уменьшен setup по входам), а другой на чтение (меньше setup по выходу данных)
  10. Почитайте статьи des333 на Хабре про SoC Altera (в частности конфигурирование шин между fpga и HPS). По шине fpga2hps можно залезть по Avalon в любой IP блок HPS (UART, EMAC, ...) и управлять им напрямую. Единственное, что может понадобится "разблокировать внешний доступ к IP-блоку HPS", тк он может после ресета быть залочен "только для HPS" или отключен.
  11. А вы при компиляции используете один Multiple File Compilation Unit (-mfcu)?
  12. Во-первых он с маленькой буквы (modelsim.ini), хотя в винде это и не важно. Не использовал .mpf, но при запуске vsim - используется modelsim.ini из папки запуска, если он там есть. (а иначе копируется туда основной) Думаю, что имеет значение из какой папки запускается, а не где лежит .mpf
  13. Это не в настройках. Это отдельной командой: VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
  14. Это значит заход и выход в пределах дельта-цикла симуляции? (Например через х для полного case) Я предположил вариант, который укажет, что этот default невозможен.
×
×
  • Создать...