Receber por email
← Voltar para o catálogo

formal-verification

Habilidade de verificação formal de propriedades e model checking para designs de FPGA.

1.4kestrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add a5c-ai/babysitter

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/formal-verification/svg)](https://www.skillteca.com.br/skills/formal-verification)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Formal Verification Skill

Overview

Expert skill for formal property verification and model checking, enabling exhaustive verification of FPGA design properties without simulation.

Capabilities

  • Write properties for formal verification
  • Configure formal tool constraints
  • Analyze formal counterexamples
  • Apply bounded model checking
  • Configure cover and assume directives
  • Debug formal failures
  • Integrate formal with simulation flows
  • Support JasperGold and VC Formal flows

Target Processes

  • sva-development.js
  • cdc-design.js
  • constrained-random-verification.js

Usage Guidelines

Property Types

  • assert property: Must always hold
  • assume property: Environment constraints
  • cover property: Reachability goals
  • restrict property: Strong constraints

Formal Approaches

  • Bounded Model Checking: Check properties up to N cycles
  • Unbounded Proof: Complete verification when possible
  • Induction: K-induction for liveness properties
  • Abstraction: Reduce complexity for scalability

Writing Effective Properties

// Safety property
assert property (@(posedge clk) disable iff (rst)
  req |-> ##[1:5] gnt);

// Liveness property (bounded)
assert property (@(posedge clk) disable iff (rst)
  req |-> s_eventually gnt);

// Assumption for formal
assume property (@(posedge clk)
  $onehot0(req_vec));

Constraint Development

  • Model input protocol constraints
  • Constrain unrealistic scenarios
  • Avoid over-constraining
  • Use helper logic for complex constraints
  • Document constraint rationale

Counterexample Analysis

  • Load counterexample trace
  • Identify root cause
  • Distinguish bug vs. missing constraint
  • Create regression test from counterexample
  • Update constraints or fix RTL

Tool Integration

  • Configure engine selection
  • Set proof bounds appropriately
  • Use proof acceleration techniques
  • Integrate with regression flows
  • Archive proof results

Dependencies

  • Formal tool awareness (JasperGold, VC Formal)
  • SVA expertise
  • Model checking theory knowledge
Compartilhar X LinkedIn