PCIe-DDR2-DMAがエラーなくできた
Spartan-6LXTのPCI Express評価ボード「EXPARTAN-6T」で、PCI Expressから、DDR2メモリへのDMA転送がエラーなくできるようになりました。
いままでうまくいかなかった(DDR2メモリの書き込みシーケンスが起動しなかった)原因は、クロックのドメインが異なる領域(PCIe系とDDR2系)をまたぐ制御信号の受け渡しの問題でした。
クロックのドメインをまたぐ場合、1つの信号が2つ以上のレジスタの入力に使われると誤動作を起こしますが、まさにそれでした。レジスタを1個追加することで解決したように見えます。
こんな感じで、4MBytesの乱数データを読み書き照合しています。

Windows7のx32版でも動作することができましたが、XPの場合よりもパフォーマンスが若干遅いのが気になります。まだまだ改善すべき点があるのでしょう。
さて、これから一晩かけてヒートランを行うことにしましょう。
| 固定リンク


コメント