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

    

GriXa

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
  1. Это анализатор протокола Summit T24 от Teledyne. Софт - Teledyne LeCroy PCIe Protocol Suite
  2. Добрый день! Возникла следующая проблема. ПЛИС Lattice ECP5UM, PCIExpress Core v6.5 подключен к COM-модулю. В ПЛИС работает таймер, который вызывает прерывание 0. После прерывания необходимо сбросить флаг состояния. Если писать в этот регистр напрямую через JTAG, всё работает нормально. Если это происходить при загрузке ОС, ПЛИС шлёт третее прерывание с неправильным номером пакета на Data Link уровне. Картинка с анализатора прикреплена ниже. После отправки пакета с неправильным номером, CPU отвечает NAK-пакетом. ПЛИС повторяет попытку еще два раза, затем уходит в LinkTraining, затем повторяет попытку с неправильным номером и так до бесконечности. Абсолютно не понятно, почему ядро в этом случае пропускает один номер. И всегда на третьем прерывании. Кто-нибудь сталкивался с подобным поведением?
  3. Да, именно так. С помощью этого скрипта так же автоматически увеличивается номер версии и дата компилляции. Удобно при чтении регистров узнавать какая именно версия загружена в ПЛИС.
  4. Для таких случаев использую отдельный *_pkg.vhd файл, в котором указываю необходимые константы. Tcl-скрипт парсит этот файл, подставляет нужные значения, и, к примеру, запускает компилляцию. В проекте в качестве generic-значения присваиваю эту константу. Можно так же и в top-файле это делать, но на мой взгляд настраиваемые переменные удобнее держать в одном файле.
  5. В своих проектах использую tcl скрипты для автоматического добавления номера версии и времени компиляции проекта. К примеру, в регистре сохраняется версия прошивки и дата-время компиляции. Для golden и working версии она может быть разная. Пример такого файла на vhdl Цитата-- created at 07/Dec/2017-13:15:15 -- DO NOT EDIT THIS FILE library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package compile_time_pkg is constant VER_VALUE : string := "30"; constant COMPILE_TIME : integer := 1512648915; end package compile_time_pkg; Скрипт создает этот файл, потом запускает компиляцию. При каждой последующей компиляции увеличивает, к примеру, счетчик версий и изменяет время на текущее. После успешной компиляции - копирует текущую прошивку в отдельную папку с названием, соответствующим данной прошивке. Что-то типа name_working_v12.bit
  6. Прошу feedback по резюме

    Добрый день! Содержание документа не смотрел, но рассылать резюме было бы предпочтительнее в pdf-формате.
  7. Цитата(syoma @ Dec 18 2017, 00:50) Мы используем Teledyne/Lecroy Summit T28. Пытаемся выловить баги в Virtex-7 PCIe корке, но пока только обнаружили баги в ПО самого анализатора. А что такое Verification IP? Недавно мы также применили аппноту от того же Ксайлинкса, которая позволяет произвести eye scan прямо в рабочем линке. Оказалось, что не все слоты одинаковые и настройки трансиверов очень влияют на размеры глаза. Поделитесь, пожалуйста, какие именно баги в работе ПО анализатора Summit T28 Вы обнаружили?
  8. Есть замечательная книга под названием "Advanced FPGA Design Architecture, Implementation, and Optimization" Steve Kilts. ISBN 978-0-470-05437-6 В книге показано на примерах, как структура дизайна влияет на скорость/пропускную способность/задержки в проекте. Мне показалось, что там подробно расписано, в каких случаях удобно использовать FSM, где лучше использовать тонну комбинаторной логики, а где кучу маленьких процессов. Если для описания используется VHDL, то Вам, возможно, было бы интересно обратить внимание еще на Two Process Method (Jiri Gaisler).
  9. Добрый день! Использую ПЛИС от Lattice (MACHXO3). В верхнем модуле в качестве входов-выходов хочу использовать type record. Проблема в том, что если в Diamond установить в качестве синтезатора Sinplify, он не сохраняет название сети. К примеру, есть *_pkg.vhd, где у меня описан type: Код  package pkg1 is          type t_my_type is record           test_input_1    : std_logic;           test_input_2    : std_logic;           test_input_3    : std_logic;         end record   end package pkg1; В *_top.vhd использую этот тип: Код       entity test is        port (           ....           ....           group1          : out t_my_type;           ....         );         end entity test; В итоге, после синтеза имею для этих выходов следующие имена цепей: group1[0] group1[1] group1[2] А хотелось бы, что бы сохранялось полное имя типа group1.test_input_1 group1.test_input_2 group1.test_input_3 Lattice LSE сохраняет имена как надо, но можно ли сделать подобное в Synplify?
  10. ЦитатаА их логический анализатор (Reveal) поддерживает SystemVerilog? Не могу ответить на этот вопрос. Работаю только с VHDL. Про SV пишут следующее. Так что высока вероятность, что нет. ЦитатаЗЫЖ и как по мне использование синплифай это достоинство, а не недостаток (учитывая что он достаётся нахаляву). Использование синплифай это, безусловно, достоинство. Вот только если через годик-другой они его вдруг выкинут из Diamond'а, то могут появиться проблемы со старыми дизайнами. Результаты синтеза Синплифая и Даймонда отличаются как по используемым в ПЛИС ресурсам, так и по времянкам.
  11. Все в Лэтисах хорошо, только 1. Сырой родной софт для синтеза. Поэтому они встраивают в свой Даймонд Синплифай. Часто Синплифай дает лучшие результаты. Есть весьма забавный баг с FSM в LSE-синтезаторе. Будут ли они в будущем отказываться от Синплифая - неизвестно. И эта неизвестность немножко напрягает. 2. Очень мало примеров и обучающих материалов. Не сравниться с Ксайлинксом или Альтерой. 3. Сыроватая документация. Можно встретить в двух разных документах противоречащие утверждения. 4. Недоработанная автоматизация сборки проекта. Невозможно с помощью скрипта генерировать IP ядра для ECP5. Вот-вот должно выйти обновление для Даймонда. Быть может часть недоработок в ней будет исправлена. Но в итоге вполне себе хорошие ПЛИСЫ по очень приятной цене.
  12. А если взять ПЛИС с PCIExpress и прописать в Configruation Header Class Code 0x07 - Simple Communication Controller, Sub-Class 0x00 Interface 0x01 ... 0x06 16xxx-compatible А дальше к нему прикрутить контроллер, к примеру контроллер 16650, то может он сможет автоматически распознаваться в UEFI?
  13. Вы имеете в виду гербера? Они есть в формате pdf на официальном сайте
  14. По поводу библиотек, как уже написал Tausinov, нельзя совместно использовать ieee.numeric_std и std_logic_arith. Как пишут здесь, "The alternative numeric package ieee.std_logic_arith should not be used for new designs" Ну и тут подробнее: http://insights.sigasi.com/tech/deprecated...-libraries.html. Для преобразовываете std_logic_vector в signed или unsigned и наоборот, удобно пользоваться шпаргалкой.
  15. Добрый день. Проблема может быть в неправильной времянке, неправильно подключеных пинах и еще во многом другом. Я бы Вам посоветовал пощупать это дело осциллографом, чтобы убедиться, что все остальное функционирует соглсано ожиданиям.