guruguru123’s diary

かなり雑な作業日記です。

SerDes受信ブロックの検討(3)

SerDes受信ブロックの検討(2) - guruguru123’s diaryで記述したVHDLで実機が上手く動かなかったため見直し。前回のものだと、イネーブルがアクティブになった瞬間にREQ_Wが立ち上がってしまっていたため、新たにカウンタを設け、イネーブルがLow,ストローブHighでカウントアップし、8回受信した時にREQ_Wを立ち上げるようにした。以下は64bitデータを3回受信するときのシミュレーション。

f:id:guruguru123:20171210165605p:plain

これをPapilioへ書き込み、動かしてみたところ問題なく64bitデータをSDRAMへ書き込みができるかと思いきや、読み出すデータがなぜかずれていた。

SerDes機構は問題ないはずであるため、念のためSDRAMコントローラを確認してみると、クロック周りだけ改善が反映されていた。そのため、読み出しが1ステップ足りておらず、読み出しデータのずれが起こっていた。

これを直すと問題なくデータが書き込み、読み出しが行えて、AD9851も駆動することができた。