この問題は、Quartus® II ソフトウェア・バージョン 2.2 で修正されています。
シミュレーション・ネットリストが問題の影響を受けないため、シミュレーションでは ROM が正しく機能します。Quartus® II フィッターは、ROM と RAM を ESB メモリーブロックにパックしてデバイスリソースを最適化することができ、ほとんどの場合、すべての信号は両方のメモリーブロックに対して有線で修正されます。ただし、Quartus® II ソフトウェア・バージョン 2.1 SP1 以下では、ROM に別の ROM またはシングルポート RAM が詰め込まれている場合、プログラミング・ファイルは ROM のアドレスラインを正しく配線しません。このため、APEX II デバイスがボード上で正しく機能しません。例えば、APEX II がプログラムまたは設定されている場合、すべての ROM アドレスからゼロを読み取ることがあります。
回避策として、次のいずれかの方法を実行してください。
- エンベデッド・システム・メモリー (ESB) ではなく、ロジックエレメント (LE) に ROM を実装 blocks) - 合成ツールで RAM 推論をオフにする必要がある場合があります。
- 各 ROM とシングルポート RAM に個別の ESB ロケーションを割り当ててください。 を使用して、Quartus® II フィッターが同じ ESB に配置しないことを確認します。
- ライト・イネーブル・セットをグランド (GND) にして、すべての ROM をシングルポート RAM に変換します。