Миграция в китайскую тулкит-цепочку FPGA PDS: конкретные шаги от Vivado к Pango/FudanMicro
Многие думают, что локальная миграция — это прежде всего смена микросхемы, но на самом деле первая преграда — тулкит. Переход от Vivado к PDS от Pango или к EDA от FudanMicro меняет то, как открывается проект, пишутся ограничения, инстанцируется IP и закрывается тайминг. Статья разбирает миграцию по шагам — что меняется на каждом шаге, с какими граблями мы столкнулись и сколько усилий это обычно требует.
Сначала понять: Pango и FudanMicro — не один и тот же путь миграции
При переходе от Vivado к локальному тулкиту многие считают, что это «просто другая EDA». На деле Pango и FudanMicro сильно различаются. Сначала выясните, какая линия перед вами:
| Целевой чип | Тулкит | Открытие проекта | Сложность миграции |
|---|---|---|---|
| Pango Titan3 / Kosmo-2 | Pango Design Suite (PDS) | Структура проекта, библиотека IP и синтаксис ограничений отличаются от Vivado | Средняя, процесс похож на Vivado, но проект нужно перестроить |
| Серия FudanMicro JFM7 | EDA от FudanMicro | Совместимые с серией 7 устройства, похожая структура проекта | Средне-низкая, библиотеку IP нужно переотобразить |
Pango идёт путём «новая архитектура + свой PDS», поэтому проект Vivado по сути нужно перестроить; FudanMicro идёт путём «совместимость с серией 7 + похожий процесс», поэтому можно переиспользовать больше. Шаги ниже универсальны и применимы к обоим.
Шаг первый: разобрать проект Vivado, а не переносить целиком
Файл проекта Vivado `.xpr` не открывается в локальном тулките. Правильно — разобрать проект на «пересобираемые» части:
1. RTL-исходники: файлы `.v` / `.vhd` — обычный текст и переиспользуются как есть, без изменений (если не зависят от частных примитивов Xilinx).
2. Ограничения: большая часть синтаксиса `.xdc` читаема, но назначение пинов и определения тактов нужно переписать под новый чип.
3. IP-ядра: IP FIFO/BRAM/PCIe/DDR от Xilinx нельзя использовать напрямую; вместо него инстанцируется соответствующее IP локального производителя.
4. Симуляция и тест: стенд `tb` переиспользуется, но пути к библиотекам IP для симуляции меняются.
Объём работы
Команда из 3–5 инженеров FPGA обычно тратит 3–5 рабочих дней на разбор проекта и пересборку каркаса в локальном тулките. Реальные затраты не здесь, а в ограничениях и IP ниже.
Шаг второй: файл ограничений — первая ловушка
Синтаксис `.xdc` очень близок к Vivado, но детали различаются и вызывают больше всего граблей:
- Назначение пинов: BGA Ball Map различается, поэтому `set_property PACKAGE_PIN` нужно переделать под новый чип. Pango использует инструмент `PACE` в PDS, FudanMicro — похожий процесс.
- Тактовые ограничения: синтаксис `create_clock` / `create_generated_clock` совместим, но имена ресурсов источника тактов (кварц, MMCM/PLL) меняются.
- IO-стандарты: LVDS, LVCMOS и напряжения банков задаются заново по даташиту нового чипа.
Практический совет: сначала сделайте назначение пинов в PDS через `PACE` или в инструменте пинов FudanMicro, затем экспортируйте ограничения. Это надёжнее ручного написания `.xdc` и экономит несколько итераций.
Шаг третий: переинстанцирование IP (ядро затрат)
Это крупнейшая часть стоимости миграции. Объём сильно зависит от типа IP:
| Тип IP | Нативно в Vivado | Локальная альтернатива | Объём |
|---|---|---|---|
| Контроллер DDR | MIG (DDR3/DDR4) | Локальный DDR-PHY + контроллер | Высокий: тайминг, калибровка, тренировка отличаются |
| Жёсткое ядро PCIe | Integrated Block for PCIe | Локальный PCIe-PHY + энумерация | Средний: параметры настраиваются заново, логика переиспользуется |
| Высокоскоростные трансиверы | GTX / GTH / HSST | Локальный PHY трансивера | Высокий: опорный такт, преэмфазис, эквализация настраиваются заново |
| FIFO / BRAM / DSP | IP генераторов | IP локального производителя | Низкий: перегенерировать, логика переиспользуется |
| PLL / MMCM | Clocking Wizard | Локальное тактовое IP | Низкий: параметры ввести заново |
Любое IP высокоскоростного интерфейса (DDR, PCIe, SerDes) — это не «изменить параметр и готово», это целостность сигнала на плате. PCB разведена по референс-дизайну Xilinx; после смены на локальный PHY нужно заново измерить глазковую диаграмму, подобрать эквализацию и заново запустить тренировку линии. Это обычно самая неконтролируемая часть миграции, поэтому заложите не менее 2–4 недель.
Шаг четвёртый: закрытие тайминга и итерации
Локальные FPGA того же класса обычно оставляют меньше запаса по таймингу, чем Xilinx; дизайн на 100 МГц с запасом 20 % после миграции может иметь лишь 5–10 %. Что делать:
1. Заново синтезировать и выполнить place-and-route в локальном тулките и прочитать отчёт по таймингу (PDS `Report Timing` / аналог FudanMicro).
2. Найти критический путь, оптимизировать RTL или добавить конвейерные ступени.
3. Итерировать синтез, пока тайминг не закроется.
Это обычно занимает 1–2 недели в зависимости от сложности дизайна и исходного запаса.
Чек-лист внедрения и типовой график
Миграция «Vivado → локальный тулкит», объединяющая четыре шага выше, обычно выглядит так:
| Шаг | Содержание | Типовое время |
|---|---|---|
| Разобрать проект | Переиспользовать RTL, пересобрать каркас | 3–5 дней |
| Переписать ограничения | Заново назначить пины/такты/IO-стандарты | 3–5 дней |
| Переинстанцировать IP | Доминируют DDR/PCIe/трансиверы | 2–4 недели |
| Закрытие тайминга | Синтез + трассировка + итерации | 1–2 недели |
| Верификация на плате | Запуск, глазковая диаграмма, регрессия линий | 2–4 недели |
Проект средней сложности суммарно занимает около 1–2 месяцев, затраты сосредоточены в переинстанцировании IP и закрытии тайминга.
Рекомендация по выбору: как собрать локальный набор плат
При выборе платы для миграции сначала определите, на какой чиповой линии цель, затем выберите подходящую плату:
- FudanMicro JFM7VX690T (DUF7690T): ресурсы уровня Virtex-7, корпус, совместимый с серией 7, для pin-to-pin миграции с Xilinx 7-серии, промышленный температурный диапазон.
- Pango Titan3 (PG3T500): высококлассная платформа с новой архитектурой, для дизайнов, которым нужны большие ресурсы и процесс PDS.
- Pango Kosmo-2 (PG2K400): ARM + FPGA гетероген, для дизайнов уровня ZYNQ/MPSoC, переходящих на локальный SoC.
Настоящий барьер при миграции в локальный тулкит — не то, можно ли перенести RTL, а то, что ограничения, IP и тайминг нужно пройти заново. Сначала разберите проект, перепишите ограничения, сосредоточьте усилия на IP и закрытии тайминга и планируйте график и бюджет из расчёта «1–2 месяца, IP — самый крупный пункт» — тогда миграция ляжет по плану, а не сорвётся на полпути.
Читать также
- [Реальная стоимость локальной миграции: TCO-каркас](/article/china-fpga-migration-tco-cost-framework/)
- [Локальная замена ZYNQ на практике: от XC7Z020 к PBC7Z020G/021G](/article/zynq-china-replacement-pbc7z020-practical/)
- [Как выбрать FPGA: матрица решений из ресурсов, трансиверов и цены](/article/fpga-selection-decision-matrix/)
