No complexo mundo do design de chips, não basta garantir que os "bits" se movam de um ponto a outro corretamente para garantir a integridade do sistema. Vidya Chandiran Darbari e Ashish Darbari, da Axiomise, apresentam uma visão analítica que propõe a adoção da metodologia científica utilizada na biologia molecular para desenvolver métodos mais precisos na verificação de sistemas de silício (Silicon Systems Verification).
Contexto versus apenas conectividade
A grande lacuna reside na crença de que a mera existência de uma conexão entre componentes significa que o sistema funcionará como esperado. Na biologia, não basta saber que existe uma interação entre duas proteínas; é necessário compreender a concentração, a localização, a ligação e o tempo. Da mesma forma, na engenharia de chips, um controlador (Controller) ou um barramento de dados (Interconnect) pode funcionar corretamente sob certas condições, mas o sistema pode colapsar quando as condições ambientais ou a ordem dos eventos mudam.
O artigo enfatiza que os engenheiros precisam tornar o Contexto (Context) uma parte explícita do processo de verificação, definindo os estados adjacentes, os recursos disponíveis e a ordem dos eventos dos quais qualquer garantia técnica depende.
Timing: quando a interpretação falha apesar da integridade dos dados
A análise aponta um problema técnico crítico: os dados (bits) podem chegar perfeitamente intactos, sem qualquer corrupção, e, no entanto, a interpretação do sistema pode estar errada devido a uma falha de timing. Por exemplo, se um controlador combinar dados de um sensor de câmera e de um sensor de distância, e houver uma diferença de tempo não calculada entre as duas leituras, o resultado final será uma representação de um estado que nunca ocorreu na realidade.
Portanto, os requisitos de design devem incluir elementos como:
- associação de carimbos de data/hora (Timestamp association).
- frescor dos dados (Freshness).
- desvio permitido (Allowable skew).
Metodologia de investigação e Verificação Formal (Formal Verification)
Em vez de apenas tentar reproduzir um erro (Reproducing a trace), os autores sugerem a adoção de uma metodologia de "investigação experimental". Em vez de procurar a causa de um sintoma (Symptom), devem ser feitas perguntas que diferenciem as várias hipóteses, como: "O que acontece se o relógio (Clock) continuar funcionando?" ou "A falha persistirá se o serviço abaixo mudar?".
Aqui surge a importância da abordagem de prioridade formal (Formal-first approach), não como um substituto para a simulação, mas como um meio de transformar mecanismos técnicos em obrigações arquitetônicas (Architectural Obligations). Isso significa formular requisitos precisos que garantam que os créditos (Credits) não sejam perdidos, que a ordem seja mantida e que o estado correto seja restaurado durante o reset (Reset).
O que muda na prática?
Para os engenheiros de design e verificação, essa mudança significa passar do foco em "o componente funciona?" para "sob quais condições o componente garante a integridade do sistema como um todo?". Isso requer:
- Vinculação entre camadas: Não se limitar aos dados RTL, mas vinculá-los aos dados de carga de trabalho (Workload) e às medições físicas (Telemetry).
- Propriedade de sistemas cruzados: Quando uma falha ocorre entre o gerenciamento de energia e o controle de movimento de dados, deve haver uma responsabilidade compartilhada que garanta a ausência de dependências circulares (Circular dependencies).
- Verificação de suposições: Não aceitar resultados de simulação bem-sucedidos sem verificar se as suposições utilizadas excluíram estados críticos do ambiente circundante.