Problema crítico
Devido a um problema na versão 22.3 ou anterior do software Intel® Quartus® Prime Pro, você pode ver loops sendo relatados para memórias que contêm a funcionalidade de habilitação de leitura que estão sendo implementadas em MLABs por um dos seguintes métodos de relatórios:
- Avisos "Found combinational loop of * nodes" no relatório do Analisador de temporização.
- "LNT-30011 - Design contém violações de regras de loops combinados" no relatório do Design Assistant (sintetizado).
- "TMC-20017 - Loops Detectou" violações das regras no relatório do Design Assistant (Signoff).
- "Loops" reportado ao executar o relatório "check_timing" no Analisador de temporização.
- "Nó: * foi determinado que era um clock, mas foi encontrado sem uma atribuição de clock associada." aviso no relatório do Analisador de temporização.
As loops relatadas resultam de uma trava sendo implementada na saída do MLAB para suportar a funcionalidade de habilitação de leitura. Esta trava não é analisada corretamente por tempo, o que significa que a funcionalidade não pode ser garantida no hardware.
Esse problema pode ocorrer para os seguintes estilos de implementação de memória, que são colocados em blocos de memória MLAB:
- Código RTL que infere diretamente uma memória contendo funcionalidade de habilitação de leitura.
- Instanciação direta da memória, incluindo a funcionalidade de ativação de leitura e uma configuração ram_block_type do MLAB ou AUTO
Para contornar esse problema, faça um dos seguintes:
- Evite o uso da funcionalidade de habilitação de leitura.
- Para memórias inferidas pelo RTL, use o atributo ram notebook para forçar a memória a entrar em blocos de memória M20K.
- Para instanciação direta da memória, defina aam_block_type r para M20K
- Use a seguinte atribuição de QSF para evitar o mapeamento de memórias M20K para MLABs: "set_global_assignment -name BLOCK_RAM_TO_MLAB_CELL_CONVERSION OFF"
Esse problema está programado para ser corrigido em uma versão futura do software Intel® Quartus® Prime Pro Edition.