I2S IPをvivadoでIP化してzybo_base_systemのblock designを基にして実装してみた。
SynthesisとImplementationは旨く言った。ただし、このデザインの場合AXIスレーブとAXIマスタは別クロックになっている。I2S IPはこの他にI2S I/F用のクロックでも動作する部分がある。そのため、合成制約のクロックドメイン間のfalse_path設定は以下のようにした。
Implementation後bit fileを生成し、Hardware情報をExportしてSDKの立ち上げた。
まず、手始めに以下のようなI2S IPのレジスタを読んで表示するプログラムを書いて動かしてみた。
XPAR_I2S_CTL_0_BASEADDRはxparameters.h内で定義されているI2S IPのAXIスレーブポートのベースアドレスである。
値は0x43C00000になってるのだが、Eclipseでは何故か0x43C10000と表示されてしまう。
プログラムを実行させてデバッガで確認するとpI2Sの値は0x43C00000になっているのでEclipseのバグ(?)なのかも知れない。
プログラムを最後まで実行させると以下のようにレジスタ値が表示された。
レジスタの値がRTLのspec値と一致しているのでリード出来ているようだ。
0 件のコメント:
コメントを投稿