« FIRフィルタの実機テスト | トップページ | DDR3 DIMMのアクセス不具合の原因を瞬時に発見 »

2017.02.05

Artix-7のDDR3メモリで1066MHz動作

あるお客様から、Artix-7ボードのDDR3メモリで1066MHz動作させるとビットエラーが出るという、ご連絡を受けました。

A7ddr3


特電の用意しているUSB3-AXI-DDR3のリファレンスデザインは、800MHzで動作させています。このリファレンスデザインのMIG設定を変えて試したみたところ、確かに1066MHzにするとエラーが出ます。

Artix-7は、スピードグレードが3段階あって、-1と-2は800MHzまで、-3は1066MHzまで対応できるはずです。Artix-7ボードを最初に作ったときにはMicron製のメモリを使っていたのですが、いつしか入手できなくなったため、Alliance Memory社のDDR3を使うようになりました。Alliance Memory社のDDR3が800MHzまでと書かれていたので、それが原因かと思ったのですが、どうやら800MHzまでというのはクロックであって、データレートは1600MHzまでという意味でした。

つまり、FPGAもメモリも1066に対応しています。

そこで、昔作ったMIGのサンプルデザインを呼び出してきて、試してみると、1066MHzでも動きました。

動いているときの様子をオシロで見てみました。

まずは、クロック。

Ddr3_clock

綺麗な533MHzが見えています。

次は、DQSです。

Dqs_1Dqs_2

おそらく読み書きで波形が違うのですが、こちらも綺麗です。

単純なMIGアプリでは、波形的には全く問題ありませんでした。

では、なぜビットエラーが出たのかというと、おそらくAXIの部分での速度変換が原因です。

XILINXのMIGは、DDR3のデータレートの1/8の速度のクロックでアクセスします。DDR3が1066MHzならば、MIGのユーザポートのクロックは133MHzになります。

特電のAXI-USB3コアは、データレートが100MHzなので、そこでのミスマッチが原因だと思います。Vivadoで論理合成したときにもタイミングエラーが出ていました。

Timing_error


本当はAXIインタコネクトでクロック変換ができるのだと思いますあ、まだ上手くいくデザインを書いたことがありません。

|

« FIRフィルタの実機テスト | トップページ | DDR3 DIMMのアクセス不具合の原因を瞬時に発見 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« FIRフィルタの実機テスト | トップページ | DDR3 DIMMのアクセス不具合の原因を瞬時に発見 »