Что изменилось с прежней редакции

Разбор прежней инструкции по установке ПО: что стало неверным, что нужно уточнить и чего не хватает

Другие языки: Русский · English · Português (BR)
14неверно сейчас
11требует уточнения
15отсутствует
3опечатки в задании

наверх ↑ А А. Сведения, которые сейчас неверны

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

В прежней редакцииКак сейчасРаздел новой инструкции
«Intel Quartus Prime Lite», «Intel Altera», «FPGA от Intel Altera» — в заголовках и по всему тексту.Подразделение снова называется Altera: Intel продала контрольную долю в 2024 году. Новые выпуски Quartus Lite ставятся в каталог altera_lite, а Quartus Pro — в altera_pro (прежние — в intelFPGA_lite и intelFPGA_pro). Скрипты ищут все восемь вариантов имён.4.1.1, 4.1.1.4
«Добавьте следующие переменные среды в файл ~/.bashrc»: QSYS_ROOTDIR, QUARTUS_ROOTDIR и дополнение PATH — как обязательный шаг.Шаг больше не обязателен: скрипты сами находят Quartus по QUARTUS_ROOTDIR, затем по PATH, затем по каталогам производителя в $HOME, /opt и /tools. Переменные нужны только при установке в нестандартное место или при выборе одной из нескольких версий.4.1.1.4, 4.2.1.4, 12
В том же примере: QUARTUS_ROOTDIR указывает на intelFPGA_lite/21.1, а PATH — на intelFPGA_lite/20.1.Это опечатка в самой прежней инструкции: номера версий в соседних строках не совпадают, и в PATH попадает несуществующий каталог. Поскольку переменные теперь не нужны, пример убран.4.2.1.1
«Установка Icarus Verilog 12» — в заголовках разделов 1.6 и 2.4 прежней инструкции.Нужна версия 13, лучше 14: часть примеров использует конструкции SystemVerilog, которых версии 11 и 12 не понимают. Скрипты проверяют версию и предупреждают.4.1.5, 4.2.5
Весь раздел 3 — установка OpenLane через Docker: git clone The-OpenROAD-Project/OpenLane, make, make test, make mount.В basics-graphics-music OpenLane заменён на LibreLane — его продолжение. Устанавливается через Nix, Docker не нужен; запуск — ./07_synthesize_for_asic.bash из каталога примера, а не make из каталога OpenLane. Раздел переписан полностью.4.1.11, 4.2.11
«OpenLane можно поставить только на Linux, поэтому если у вас Windows — поставьте вторую ОС или виртуальную машину».Под Windows достаточно WSL 2 — отдельный раздел диска или виртуальная машина не нужны. Nix и LibreLane работают внутри WSL, и это штатный способ.4.1.11
Репозиторий домашних заданий: git clone https://gitflic.ru/project/yuri-panchul/systemverilog-homework.git.Адрес устарел. Для занятий Школы используйте github.com/chipdesignschool/systemverilog-homework.1.3, 9
Репозиторий примеров: git clone https://github.com/yuri-panchul/basics-graphics-music.git.Копия yuri-panchul — рабочая, в неё попадают экспериментальные изменения. Для занятий Школы предназначена копия github.com/chipdesignschool/basics-graphics-music, для международных семинаров — verilog-meetup.1.2
Упоминание репозитория valid-ready-etc на gitflic (в разделе про обновление репозиториев на SSD).Репозиторий устарел; его материал вошёл в basics-graphics-music, раздел 4_microarchitecture.6.3
Пути к примерам вида labs/01_and_or_not_xor_de_morgan.Примеры сгруппированы по разделам курса: labs/1_basics/1_01_and_or_not_xor_de_morgan, labs/2_graphics/… и так далее.6.4, 8.1
FAQ: «Список поддерживаемых плат … На момент сентября 2024» — 39 плат.Сейчас поддерживается 54 платы (112 каталогов — это те же платы в разных конфигурациях). Список в этой редакции взят прямо из файла boards/README.csv репозитория, поэтому не расходится с кодом.3
«Для установки Vivado или Gowin IDE вы можете воспользоваться доступной в интернете информацией» — то есть инструкции нет.Разделы написаны: установка Vivado и Gowin EDA под все системы, драйверы программаторов, правила udev, и объяснение, как скрипты находят каждый из этих САПР.4.1.2, 4.1.3, 4.2.2, 4.2.3
«Распространяется бесплатно … копии размещены в облаке Я.Диск» — и ссылки на Яндекс.Диск как основной способ скачивания.Ссылки на облачные копии недолговечны и в тексте инструкции быстро устаревают. В этой редакции указаны официальные источники, а раздачи Школы упоминаются как вспомогательный вариант, без конкретных ссылок.4.1.1, 11
RARS: «понадобится как минимум Java …», далее — установка OpenJDK вручную, JAVA_HOME и %JAVA_HOME\bin в PATH.В записи %JAVA_HOME\bin не закрыт процент — правильно %JAVA_HOME%\bin. Под Linux Java ставится одной командой sudo apt install default-jre, и переменные не нужны.4.1.9, 4.2.9

наверх ↑ Б Б. Сведения, которые нужно уточнить или дополнить

Здесь прежний текст не ошибочен, но неполон: он верен для одного случая и молчит об остальных, либо даёт указание без объяснения, из-за чего читатель не понимает, когда от него можно отступить.

В прежней редакцииКак сейчасРаздел новой инструкции
Quartus назван «21.1 Lite» как единственная версия.21.1 Lite остаётся рекомендуемой, но нужны оговорки: платы на Cyclone II требуют Quartus II 13.0sp1, на Cyclone III — 13.1 (в 21.1 эти семейства уже не поддерживаются), а DE23-Lite требует Quartus Pro с бесплатной лицензией. Новые выпуски (24.1, 25.1) тоже подходят для современных плат.3.1, 4.1.1
«Путь для установки программы оставьте по умолчанию».Совет верный, но стоит объяснить, почему это важно и когда можно отступить: в пути не должно быть пробелов и русских букв, а при установке в нестандартный каталог придётся задать QUARTUS_ROOTDIR.4.1.1, 4.2.1.1
Драйвер USB Blaster: описаны USB Blaster и USB Blaster II.Нужен ещё USB Blaster III — он применяется в DE23-Lite. Под Linux это дополнительная строка правила udev с idProduct 6022; без неё плата не прошивается.4.1.1.2, 4.2.1.2
Правило udev приводится одним блоком, без объяснения.Полезно объяснить поведение udev: читаются все файлы *.rules, порядок — по имени файла, а оператор := запрещает дальнейшее изменение значения. Поэтому собственный файл и файл из комплекта Quartus не конфликтуют, но побеждает тот, что идёт раньше по алфавиту.4.2.1.2
VS Code: рекомендовано одно расширение — SystemVerilog - Language Support.Стоит добавить Surfer — расширение для просмотра временных диаграмм прямо в редакторе, без переключения в отдельную программу.4.1.6, 4.1.7
GTKWave назван единственным просмотрщиком диаграмм.Появилась альтернатива — Surfer; она выбирается переменной WAVE_VIEWER=surfer и под macOS удобнее, так как ставится обычным исполняемым файлом. На Apple Silicon скрипты и вовсе рассчитывают на Surfer.4.1.7, 4.3
Vivado: «образ установщика весит более 80 ГБ», рекомендована версия 2022.2.Размер зависит от набора устройств — при выборе только нужных серий загрузка существенно меньше. Скрипты работают с любой версией от 2018 и новее и, начиная с 2024.2, понимают новую раскладку каталогов (<родитель>/<вендор>/<версия>/Vivado вместо прежней <родитель>/<вендор>/Vivado/<версия>).4.1.2
Загружаемый SSD: сказано «начать нажимать одну из клавиш для входа в BIOS».Клавиша нужна для входа в меню загрузки, а не в BIOS — это разные вещи, и на части компьютеров клавиши разные. Также стоит объяснить, зачем скрипт стирает резервную таблицу GPT.6.1, 6.2
Виртуальная машина для верификации: «Пароль пользователя» без указания логина; у образа SSD логин и пароль verilog, у ВМ для верификации пароль 1234.Два разных образа с разными учётными данными легко перепутать, поэтому в новой редакции они указаны рядом с каждым образом отдельно.5, 6.2, 7
Шаги 1.1–1.3 (Win) и 2.1–2.3 (Linux) «можно пропустить», если плата не Altera.Верно, но теперь лучше сказать иначе: ставьте тот САПР, который соответствует вашей плате, а таблица в разделе 3 прямо указывает, какой именно. Без платы не нужен ни один САПР.3, 12
«Инструкция может обновляться, проверяйте новости на сайте и в телеграм-канале» — и ссылка на канал.Стоит добавить, что в самом репозитории есть каталог docs/ с отдельными файлами по Quartus, Gowin EDA, Yosys, Vivado, WSL и QEMU — он обновляется вместе с кодом и потому всегда актуальнее любой инструкции.11

наверх ↑ В В. Сведения, которых не хватает

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

В прежней редакцииКак сейчасРаздел новой инструкции
Поддержка macOS.Прежняя редакция описывает только Windows и Linux. Под macOS нет ни Quartus, ни Vivado, поэтому платы Altera и Xilinx требуют виртуальной машины; зато Gowin EDA, OSS CAD Suite, Icarus, Surfer и LibreLane работают. Есть и свои особенности: Gowin EDA только на Apple Silicon, приложение вместо каталога (Contents/Resources/Gowin_EDA), атрибут com.apple.quarantine и выбор просмотрщика диаграмм в зависимости от процессора.4.3
OSS CAD Suite.Единый архив с Yosys, nextpnr, Icarus Verilog, GTKWave и программаторами. Закрывает платы Lattice и Gowin без проприетарного САПР и даёт свежий Icarus там, где в дистрибутиве лежит старый. Достаточно распаковать в ~/oss-cad-suite.4.1.4, 4.2.4
Surfer — программа и расширение VS Code.Альтернатива GTKWave для просмотра диаграмм.4.1.7
XPACK RISC-V GCC.Компилятор C и ассемблера для программ, исполняемых на процессорных ядрах внутри ПЛИС — в том числе на ядре aps из МИЭТ. Без него разделы курса про программирование собственного процессора невыполнимы.4.1.10, 4.2.10
Терминальные программы: minicom, picocom, putty.Нужны, чтобы загрузить программу в плату через UART и общаться с процессором. Под Linux требуется ещё включение пользователя в группу dialout.4.2.10, 8.2
Выбор ядра RISC-V: aps (МИЭТ), yrv, picorv32.Переключается скриптом 13_choose_another_riscv_core_for_software.bash.8.1, 8.2
Таблица плат с указанием САПР и допустимых версий.В прежней редакции список плат в FAQ приводил только название и семейство ПЛИС. Новая таблица на 54 платы указывает производителя ПЛИС и платы, семейство, нужный САПР с диапазоном версий, наличие TM1638 и способ вывода графики.3
Объяснение того, как скрипты находят САПР.Самая частая причина обращений в чат — «скрипт не находит Quartus» или «находит не ту версию». В новой редакции порядок поиска описан для Quartus, Vivado и Gowin EDA, вместе с правилом выбора версии по микросхеме платы и кэшем в ~/.cache/basics-graphics-music.4.1.1.4, 4.1.2, 4.1.3
Перечень скриптов примера и порядок работы с ними.Прежняя редакция заканчивалась проверкой установки и не объясняла, что делать дальше. Теперь описаны все 14 скриптов — от 01_clean до 14_run_terminal_program.8.2
Состав курса: разделы basics, graphics, music, microarchitecture, cpu.Карта того, что в каком разделе и что получается на плате, — чтобы было понятно, ради чего ставится всё это ПО.8.1
Отдельный раздел про systemverilog-homework.Прежде репозиторий упоминался одной строкой с устаревшим адресом. Между тем для него нужны только Icarus Verilog и Git — ни платы, ни САПР, — поэтому с него удобно начинать, не дожидаясь платы.1.3, 9
Tiny Tapeout — изготовление примера в виде настоящей микросхемы.Шаблон берёт из примера модуль lab_top, тот же, что отлаживался на плате; изготовление на фабрике IHP. Локальная проверка — ./07_synthesize_for_asic.bash.10
Icarus из OSS CAD Suite и сборка из исходников.Два дополнительных способа получить Icarus 13 или 14, если в репозиториях дистрибутива только версия 11 или 12.4.1.5, 4.2.5
FAQ по установке.Прежний FAQ состоял из одного пункта — списка плат. Новый отвечает на вопросы, которые действительно задают: какой САПР ставить, можно ли без платы, нужен ли PATH, почему не подходит ни одна версия Quartus, почему скрипты не идут из cmd.exe, что делать с карантином macOS.12
Выбор платы одним скриптом../check_setup_and_choose_fpga_board.bash проверяет установленное ПО и запоминает выбор платы на весь репозиторий — в прежней редакции этот шаг не описан, хотя без него примеры не собрать.6.4, 8.2

наверх ↑ Г Г. Опечатки в материалах для этой редакции

Три неточности в самом задании и в списке рекомендаций. Перечислены отдельно, чтобы правка не выглядела произвольной: в инструкции написаны исправленные варианты.

ГдеЧто имелось в виду
Задание на эту редакцию, п. 2: «13.0sp1 for Cyclone II boards and 13.1 for Cyclone II boards».Второй раз, очевидно, имелся в виду Cyclone III: 13.0sp1 — последняя версия с Cyclone II, 13.1 — последняя с Cyclone III. В инструкции написано так.
Задание, п. 3: «новые платы, такие как DE3-Lite».Плата называется DE23-Lite (Terasic, Agilex 3). Платы с именем DE3-Lite не существует; есть старая DE3 на Stratix III и DE10-Lite на MAX 10.
Задание, план раздела «Что нового»: «Упомянуть обновление для DE23-Lite, Sound Blaster III».Имелся в виду USB Blaster III — программатор (idProduct 6022), а не звуковая карта. Это же следует из п. 6 списка рекомендаций.

наверх ↑ Как это проверялось

Расхождения найдены сравнением трёх источников:

  1. прежняя редакция Инструкция_по_установке_ПО.pdf (68 страниц) — построчно;
  2. ветка main репозитория basics-graphics-music — скрипты scripts/steps/00_setup_*.source_bash, каталоги boards/ и docs/. Там, где инструкция и код расходятся, прав код: он исполняется;
  3. список рекомендаций от 6 сентября 2026 года — 11 пунктов.

Таблица плат в разделе 3 инструкции не переписана вручную, а построена из файла boards/README.csv репозитория. Поэтому она не может разойтись с кодом так, как разошёлся список из прежнего FAQ: чтобы её обновить, достаточно заново взять этот файл.

Порядок поиска САПР проверялся не только чтением скриптов, но и запусками: определение версии Quartus по микросхеме платы — через Tcl-запросы get_part_list и get_family_list к каждой установленной версии, с проверкой реальным синтезом. Отсюда правило: сборка возможна, если микросхема есть в списке устройств или её семейство есть в списке семейств — одного запроса недостаточно ни того, ни другого.

Разделы, которые не удалось проверить на живом оборудовании, помечены в инструкции как «не проверено». Это macOS, а также сроки и стоимость шаттлов Tiny Tapeout.