Разделите два уровня

SpinalHDL использует Scala для описания аппаратуры и генерации HDL. Успешная компиляция Scala — только один этап: требуется elaboration и проверка полученной схемы. Начните с официального шаблона и сохраните рабочую конфигурацию. Попросите ИИ явно различать вычисления во время генерации и логику, которая должна существовать в аппаратуре.

Ограничьте параметры

Для генератора регистра или FIFO запишите допустимые разрядности и глубины, поведение сброса и протокол передачи. Определите, что делать с недопустимой конфигурацией. Попросите ИИ составить матрицу минимальных, обычных и граничных значений. Не добавляйте поддержку произвольной глубины, если архитектура фактически требует степени двойки; это должно быть видно в контракте.

Генерируйте воспроизводимо

В официальном шаблоне пример использует точку входа projectname.MyTopLevelVerilog. Команда ниже запускается из корня подготовленного шаблона; для другого проекта замените имя класса. Сохраните версии зависимостей, параметры и каталог результата. Разберите диагностику elaboration, затем просмотрите порты, разрядности и блоки сброса в сгенерированном RTL перед подключением к остальной системе.

sh
sbt "runMain projectname.MyTopLevelVerilog"

Проверяйте каждую конфигурацию

Для выбранной матрицы выполняйте генерацию, самопроверяющуюся симуляцию и синтез подходящим инструментом. Сопоставляйте протокол, задержку и ресурсы, а не только отсутствие ошибок. Просите ИИ предложить дополнительные крайние случаи по реальному отчёту. Сохраните конфигурацию с каждым результатом: проверенный вариант на 8 бит не подтверждает автоматически вариант на 32 бита.

Что проверить перед принятием результата

Единица проверки генератора — конкретная конфигурация вместе с её RTL и отчётами.

Источники