Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>fpgabenchNew to Visual Studio Code? Get it now.
fpgabench

fpgabench

pluttan

| (0) | Free
Проверка, синтез и загрузка конфигурации в ПЛИС
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

fpgabench

Расширение для лабораторных работ по ПЛИС на плате с кристаллом EP4CE6E22C8: проверка схемы тестирующими модулями, синтез, чертёж схемы по ГОСТ и загрузка конфигурации в ПЛИС по последовательному порту. Устанавливать Quartus, Icarus Verilog или python не требуется: синтез и моделирование выполняет сборочный сервер, программа загрузки поставляется вместе с расширением.

Начало работы

  1. Открыть в редакторе каталог проекта. Исходные файлы схемы находятся в rtl/, тестирующие модули — в tb/.
  2. Открыть панель fpgabench значком на боковой панели.
  3. Если в каталоге нет паспорта проекта fpgabench.toml, нажать «Создать проект» или взять шаблон на вкладке «Лабораторные». Недостающие файлы создаются из раздела «Образцы файлов»: верхний модуль, модуль, тест.
  4. Адрес сборочного сервера курса подставляется сам; другой адрес задаётся в паспорте проекта ([board] server) или настройкой fpgabench.buildServer. Пароль сервера запрашивается при первом обращении и хранится в хранилище ключей системы. После десяти неверных паролей подряд ввод пароля блокируется до переустановки расширения.
  5. Новые версии расширения устанавливаются автоматически со сборочного сервера: проверка выполняется при запуске редактора и каждые шесть часов, после установки предлагается перезагрузить окно. Отключается настройкой fpgabench.autoUpdate.

Этапы

Этапы работы расположены последовательно. Состояние этапа показывает значок: выполнен, устарел (исходные файлы изменены после выполнения), не выполнен. Развёрнутым отображается первый невыполненный этап. Результаты показываются инфографикой — плитками, шкалами и полосами; подробности выводятся во всплывающих подсказках.

Этап Кнопки Результат
Тестирование выбор теста, «Запустить тест», «Открыть диаграмму» число пройденных и непройденных проверок, формулировки непройденных, временная диаграмма
Синтез «Синтезировать», «RTL» занятые ячейки, предельная частота, файл конфигурации в build/; вкладка RTL с графом модулей и 20 худшими путями
Функциональная схема выбор модуля, «Построить», «Открыть» схема выбранного модуля по ГОСТ 2.743-91 в редакторе, выгрузка в SVG и PNG
Загрузка в ПЛИС выбор порта, «Загрузить в ПЛИС», «Загрузить с ILA», «Монитор», «Загрузчик + схема» схема в ПЛИС, поток байтов из порта
Запись сигналов (ILA) «Запустить», «Открыть диаграмму» временная диаграмма сигналов, записанных в ПЛИС по разделу [ila] паспорта

Тестирующий модуль сообщает результат каждой проверки строкой, начинающейся со слова PASS или FAIL. Тест считается пройденным, если есть хотя бы одна строка PASS и нет ни одной FAIL.

Итог этапа, полученный до последнего изменения исходных файлов, помечается как устаревший. Выполнение этапа можно прервать кнопкой «Остановить».

RTL и задержки

Кнопка «RTL» этапа «Синтез» (команда «fpgabench: RTL и задержки») открывает вкладку со схемой в том виде, в каком её понял синтез. Вид «Модули» — граф экземпляров вложенными рамками: у каждого число ячеек и худший проходящий через него путь, провода между экземплярами подписаны разрядностью; щелчок раскрывает или сворачивает рамку, двойной щелчок открывает RTL модуля. Вид «RTL» — ячейки модуля символами: сумматоры, сравнения, мультиплексоры, регистры с тактовым входом, блоки памяти, подмодули с выводами (двойной щелчок открывает подмодуль); шина рисуется толще и подписана разрядностью. Щелчок по элементу подсвечивает все его провода и элементы, с которыми он соединён; повторный щелчок или щелчок по пустому месту снимает подсветку.

Справа — 20 худших путей по оценке Quartus (модель slow 85C): запас, задержка и полоса звеньев — ячейки и провода разным цветом, звенья с наибольшим вкладом выделены. Выбранный путь подсвечивается на обоих видах (щелчок по нему ещё раз снимает подсветку): экземпляры с задержкой в каждом, начальный и конечный регистры и все ячейки и провода между ними. Узлы окрашены по запасу: красный — отрицательный, оранжевый — меньше десятой доли такта. Данные берутся с сервера по заданию синтеза и сохраняются в build/rtl.json: повторное открытие работает без сети. Раскладка графов — ELK (Eclipse Layout Kernel, лицензия EPL-2.0).

Временная диаграмма

Файлы .vcd, .fst и .ghw открываются во встроенной программе просмотра Surfer. Отдельная программа просмотра не требуется; цвета берутся из темы редактора и меняются вместе с ней.

При длительном моделировании основную часть файла временной диаграммы занимает тактовый сигнал: он изменяется каждые полпериода. Поэтому диаграмма записывается через фильтр. Фильтр находит тактовые сигналы — однобитные сигналы, изменяющиеся через равные промежутки времени, — и сохраняет от них признак тактового сигнала, начальное значение и два первых фронта; остальное программа просмотра восстанавливает сама. Если тактовый сигнал отклонился от периода (остановлен, изменена частота), с этого момента он записывается полностью. Изменять тестирующий модуль для этого не требуется.

Нотация lle

Функциональная схема хранится текстом — кодом на элементах библиотеки stde из ldamle, файлом lle/<модуль>.lle.js на каждый лист. Файлы пишутся сами при построении чертежа, и лист вентилями строится по ним: правка текста и сохранение перерисовывают чертёж. Кнопка «Нотация» открывает файл показанного листа. При изменении Verilog файл переписывается, если его не правили руками; правленый остаётся, а при расхождении со схемой по Verilog предлагается «Заменить из Verilog».

Лист строится стандартными элементами. Модуль до 400 вентилей рисуется вентилями и триггерами; модуль крупнее (ядро, АЛУ, делитель) — элементами из RTL-представления по ГОСТ 2.743-91: сумматор SM, вычитатель SUB, умножитель MPL, делитель DIV, компаратор COMP (входы P и Q, выход «=», «<» или «>»), сдвиг — ALU с меткой направления «←», «→», мультиплексор MUX, дешифратор DC, регистр RG. Константа на входе рисуется выводом без линии, значение пишется рядом. В нотации это функции stde: stde.sm(32), stde.comp('<', 32), stde.rg(32, { reset: 'sync' }). Вид «блоки» (логика модуля одним узлом F) выключен и включается строкой blocks = true в разделе [schema] паспорта.

Одинаковые элементы подряд пишутся массивом, повторяющиеся по разрядам связи — циклом, шины собираются сами. Настройки листа (формат, ориентация, крупность, основная надпись) — строка sheet({...}) в том же файле; прежние записи [[sheet]] паспорта переезжают туда сами. Наведение на функцию нотации показывает её описание, на элемент — входы, выходы, откуда и куда идут цепи и позиционное обозначение на листе.

Команда «fpgabench: чертёж по нотации lle» (и кнопка в заголовке файла *.lle.js) строит лист по любому такому файлу без сборочного сервера.

Паспорт проекта

Файл fpgabench.toml в корне проекта описывает название, верхний модуль, каталоги исходных файлов, адрес сервера, способ сборки образа, тесты, назначение выводов и листы чертежа. Без паспорта расширение в каталоге ничего не выполняет и не создаёт файлов; паспорт создаётся кнопкой «Создать проект», образец с пояснениями к каждому ключу — кнопкой «Паспорт проекта» в разделе «Образцы файлов». Настройки редактора fpgabench.* имеют приоритет над паспортом.

Настройки

Настройка Назначение
fpgabench.buildServer адрес сборочного сервера
fpgabench.autoUpdate устанавливать новые версии расширения с сервера автоматически
fpgabench.port последовательный порт платы; пусто — найти переходник автоматически
fpgabench.top верхний модуль; пусто — взять из паспорта, иначе top
fpgabench.localTool только для разработчиков комплекта: собирать собственным инструментом по ssh
fpgabench.toolHost только для разработчиков комплекта: машина для собственного инструмента

Диагностика ошибок

Команда fpgabench: журнал открывает журнал действий расширения; тот же журнал записывается в файл build/fpgabench.log проекта. Неверный пароль сервера удаляется автоматически и запрашивается повторно при следующем обращении к серверу; сохранённый пароль также можно удалить командой fpgabench: забыть пароль сборочного сервера.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft