Executar e verificar RTL empacotado na CPU

Envie uma solicitação de netlist combinacional com limites definidos e reproduza seu resultado salvo de forma independente.

Use o Altifigence CLI 0.1.9 no Linux para este fluxo de trabalho local.

Exija o status de saída 0 antes de ler um resultado salvo. Mantenha a saída de erro padrão separada e inspecione os campos do resultado descritos abaixo.

Salvar uma solicitação completa para CPU

Crie packed-request.json com o documento completo abaixo. Este exemplo usa uma lane e um frame: a palavra de entrada define o único bit de entrada, e a célula buffer o copia para a saída. O backend é explícito. Uma solicitação para CPU usa um orçamento de memória de dispositivo igual a zero. Mantenha o esquema e a estrutura da netlist intactos ao experimentar o exemplo pela primeira vez e ajuste depois o estímulo limitado para sua própria netlist combinacional.

{
  "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
}

Executar e salvar o resultado nativo

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

Leia packed-result.json após um comando bem-sucedido. O resultado nativo inclui a solicitação, seu resumo criptográfico, um relatório de simulação, output_words e net_toggle_counts. Para esta solicitação de buffer de um bit, output_words é [1]. Preserve o arquivo de resultado inteiro: a verificação consome o artefato completo, em vez de um trecho. A saída de erro padrão contém o comprovante de execução da CLI separadamente do JSON nativo gravado na saída padrão.

Reproduzir o resultado salvo

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

O documento de verificação exibido é um trecho; o documento completo também inclui o resumo criptográfico do artefato. A verificação reproduz o resultado matemático salvo na CPU. Mantenha essa saída junto da solicitação e do resultado originais para que outro revisor possa repetir a mesma verificação.

Corrigir um erro de contagem de lanes

Alterar lanes para 0 nesta solicitação produz o código de erro resource-limit com a mensagem packed request exceeds count, time or explicit device budget limits. Restaure lanes para 1 em packed-request.json, mantendo os demais campos do exemplo intactos. Em seguida, gere novamente o resultado completo e verifique-o usando estes comandos.

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