Eseguire e verificare RTL packed sulla CPU

Invia una richiesta di netlist combinatoria con limiti definiti e riproducine in modo indipendente il risultato salvato.

Utilizza Altifigence CLI 0.1.9 su Linux per questo flusso di lavoro locale.

Verifica che lo stato di uscita sia 0 prima di leggere un risultato salvato. Conserva separatamente l'output di errore standard e ispeziona i campi del risultato descritti di seguito.

Salvare una richiesta CPU completa

Crea packed-request.json con il documento completo seguente. Questo esempio utilizza una lane e un frame: la parola di input imposta il singolo bit di input e la cella buffer lo copia sull'output. Il backend è esplicito. Una richiesta CPU utilizza un budget di memoria del dispositivo pari a zero. Mantieni intatti lo schema e la struttura della netlist quando provi l'esempio per la prima volta, quindi adatta lo stimolo con limiti definiti alla tua netlist combinatoria.

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

Eseguire e salvare il risultato nativo

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

Leggi packed-result.json dopo un comando riuscito. Il risultato nativo include la richiesta, il relativo digest, un rapporto di simulazione, output_words e net_toggle_counts. Per questa richiesta di buffer a un bit, output_words è [1]. Conserva l'intero file del risultato: la verifica utilizza l'artefatto completo anziché un estratto. L'output di errore standard contiene la ricevuta di esecuzione della CLI separatamente dal JSON nativo scritto sull'output standard.

Riprodurre il risultato salvato

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

Il documento di verifica visualizzato è un estratto; il documento completo include anche il digest dell'artefatto. La verifica riproduce sulla CPU il risultato matematico salvato. Conserva questo output accanto alla richiesta e al risultato originali affinché un altro revisore possa ripetere lo stesso controllo.

Correggere un errore nel numero di lane

La modifica di lanes a 0 in questa richiesta produce il codice di errore resource-limit con il messaggio packed request exceeds count, time or explicit device budget limits. Ripristina lanes a 1 in packed-request.json, mantenendo intatti gli altri campi dell'esempio. Quindi rigenera il risultato completo e verificalo utilizzando questi comandi.

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