Este problema é corrigido no software Quartus II versão 2.2.
A ROM funcionará corretamente na simulação porque a netlist de simulação não é afetada pelo seu problema. O fitter Quartus II pode embalar ROM e RAM em blocos de memória ESB para otimizar os recursos do dispositivo, e na maioria dos casos, todos os sinais são corretos com fio para ambos os blocos de memória. No entanto, no software Quartus II versão 2.1 SP1 e inferior, quando uma ROM é embalada com outra ROM ou uma RAM de uma única porta, o arquivo de programação não faz o fio corretamente das linhas de endereço para a ROM. Por este motivo, o dispositivo APEX II não funcionará corretamente na sua placa. Por exemplo, você pode ler zeros de todos os endereços ROM quando o APEX II estiver programado ou configurado.
Como solução alternativa, você pode fazer uma das seguintes:
- Implemente a ROM em elementos lógicos (LEs) em vez de memória de sistema embarcado (ESB blocos) - você pode precisar desligar a inferência de RAM em sua ferramenta de síntese.
- Faça atribuições de localização ESB individuais para cada um de seus ROMs e RAMs de porta única para garantir que eles não sejam colocados no mesmo ESB pelo fitter Quartus II.
- Converta todas as ROMs em RAMs de porta única com a gravação habilitada definida como terra (GND).