Выполнение и проверка упакованного RTL на CPU

Отправьте запрос комбинационного списка соединений с ограничениями и независимо воспроизведите сохранённый результат.

Для этого локального рабочего процесса используйте Altifigence CLI 0.1.9 в Linux.

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

Сохранение полного запроса для CPU

Создайте packed-request.json с полным документом, приведённым ниже. В этом примере используются 1 полоса и 1 кадр: входное слово устанавливает единственный входной бит, а буферная ячейка копирует его на выход. Вычислительный механизм указан явно. Запрос для CPU использует нулевой бюджет памяти устройства. При первом запуске примера сохраните схему и структуру списка соединений без изменений, затем адаптируйте ограниченные входные воздействия для собственного комбинационного списка соединений.

{
  "schema": "altifigence.rtl.packed-request.v1",
  "backend": "cpu",
  "netlist": {
    "schema": "logic-netlist-0",
    "top": "buffer",
    "input_sha256": "ce4c5490bac02643968670ee055c3575a7ed23bad13bd33b1057e8d9b17a1c3a",
    "ports": [
      {
        "name": "a",
        "direction": "input",
        "bits_lsb0": [
          {
            "net": 0
          }
        ]
      },
      {
        "name": "y",
        "direction": "output",
        "bits_lsb0": [
          {
            "net": 1
          }
        ]
      }
    ],
    "nets": [
      {
        "id": 0
      },
      {
        "id": 1
      }
    ],
    "cells": [
      {
        "id": 0,
        "name": "buffer",
        "output": 1,
        "kind": {
          "op": "buf",
          "a": {
            "net": 0
          }
        }
      }
    ]
  },
  "lanes": 1,
  "frames": 1,
  "stimulus": [
    1
  ],
  "timeout_ms": 1000,
  "device_memory_bytes": 0
}

Запуск и сохранение исходного результата

alti compute rtl-capabilities
alti compute rtl-simulate --request packed-request.json > packed-result.json

После успешного выполнения команды прочитайте packed-result.json. Исходный результат содержит запрос, его хеш, отчёт моделирования, output_words и net_toggle_counts. Для этого запроса однобитного буфера output_words равен [1]. Сохраните весь файл результата: проверка использует полный артефакт, а не выдержку. Стандартный поток ошибок содержит квитанцию выполнения CLI отдельно от исходного JSON, записанного в стандартный поток вывода.

Воспроизведение сохранённого результата

alti compute rtl-verify --request packed-result.json
{"schema":"altifigence.rtl.packed-verification.v1","valid":true,"cuda_executed":false}

Показанный документ проверки представляет собой выдержку; полный документ также содержит хеш артефакта. Проверка воспроизводит сохранённый математический результат на CPU. Храните этот вывод рядом с исходным запросом и результатом, чтобы другой проверяющий мог повторить ту же проверку.

Исправление ошибки количества полос

Изменение lanes на 0 в этом запросе приводит к коду ошибки resource-limit с сообщением packed request exceeds count, time or explicit device budget limits. Верните lanes значение 1 в packed-request.json, сохранив остальные поля примера без изменений. Затем заново создайте полный результат и проверьте его следующими командами.

alti compute rtl-simulate --request packed-request.json > packed-result.json
alti compute rtl-verify --request packed-result.json