Altifigence Academy

35 / 37 · Conceito

Compilação, lint e síntese: alcance dos diagnósticos

Fixe fontes, top e linguagem e diferencie sintaxe, largura, latches e verificação funcional.

Defina o que foi pedido à ferramenta

O resultado depende de fontes, top, parâmetros, linguagem e versão. Compile DUT com dependências e banco como top separado. Não sintetize seu gerador de clock nem confunda módulo não instanciado com o testado. Os exemplos usam subconjunto sintetizável prático; simulador e motor de produto podem suportar partes diferentes. .sv não ativa magicamente todos os recursos.

Compilar e simular têm alcances distintos

Compilação pode rejeitar sintaxe, módulos ausentes e referências inválidas, não prova aritmética nem prioridade. Simulação compara cenários exercitados; PASS vale para essas comparações e fonte. No laboratório:

text
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvp

Registre ambos status. Executar sim.vvp antigo após compilação falha pode gerar PASS enganoso. Gere arquivo novo por configuração e pare se não compilar.

Examine as causas

DiagnósticoPergunta
Módulo ausenteArquivo e nome corretos?
TruncamentoQuais bits, carry ou sinal se perdem?
Latch inferidoQual caminho combinacional não atribui?
Múltiplos acionamentosQuem é dono da variável?
Sinal não usadoIntencional ou conexão ausente?
Laço combinacionalRetorna à entrada sem registrador?

Não silencie tudo para limpar log. Corrija ou documente exceção restrita, intencional e testada. Categorias variam por versão. A referência oficial de avisos do Verilator explica WIDTH, LATCH. Se instalado, uma opção adicional:

text
verilator --lint-only --top-module periodic_accumulator modulo_tick.sv periodic_accumulator.sv

Esse é caminho sugerido, não prova de execução. Distinga comandos usados dos propostos.

Síntese é outra fronteira

Uma checagem genérica de Yosys:

text
yosys -p 'read_verilog -sv modulo_tick.sv periodic_accumulator.sv; hierarchy -check -top periodic_accumulator; proc; opt; check -assert; stat'

Confere front end e estrutura genérica, não recursos de FPGA específica, posicionamento, roteamento, fechamento temporal ou fabricação. Mapeamento tecnológico e restrições são trabalho adicional.

Prática: mantenha falhas fora do DUT entregue

Crie três cópias descartáveis: nome filho errado, soma de nove bits em oito, atribuição combinacional ausente. Veja o que cada ferramenta detecta e o que exige teste funcional. Largura pode ser intencional e latch pode compilar; compare com requisitos. Guarde uma falha relevante junto da fonte restaurada. Diagnósticos sem explicação continuam pendentes.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.