FC2カウンター FPGAの部屋 2つの AXI4 Master ポートを持つ XPS 用 IP の書き方(ISE14.7 の XPS)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

2つの AXI4 Master ポートを持つ XPS 用 IP の書き方(ISE14.7 の XPS)

ISE14.7 の XPS で2つのAXI4 Master ポートを持つ XPS 用 IP の書き方の覚書です。

2つのAXI4 Masterポートを下のようにMPDファイルで定義します。

BUS_INTERFACE BUS = M_AXI_0, BUS_STD = AXI, BUS_TYPE = MASTER
BUS_INTERFACE BUS = M_AXI_1, BUS_STD = AXI, BUS_TYPE = MASTER


AXI4バスのパラメータを下のように書いて、M_AXI_0, M_AXI_1 で共用していました。

PARAMETER C_M_AXI_ADDR_WIDTH = 32, DT = integer, ASSIGNMENT = CONSTANT, BUS = M_AXI_0:M_AXI_1
PARAMETER C_M_AXI_DATA_WIDTH = 128, DT = integer, RANGE = (32, 64, 128, 256), BUS = M_AXI_0:M_AXI_1


そうすると、一見うまく行っているように見えます。32ビットデータバス幅では、AXIインターコネクトを通して、DDR3 SDRAMへWrite できていましたが、64ビットデータバス幅、128ビットデータバス幅だと、BVALIDが帰って来ません。DDR3 SDRAMへのData Write ができていないようです。
担当するAXIインターコネクトの設定を見ると、Master Information を表示させた時に、該当するAXI4 Master Port が表示されません。論理合成やインプリメントで通っても、おかしくなっているようです。

そこで、同じ2つのAXI4 Masterポートを定義しても、それぞれのパラメータを定義して使用すると問題なく BVALIDが帰ってきました。データ Write も問題ないようです。
こんな感じです。

PARAMETER C_M_AXI_0_ADDR_WIDTH = 32, DT = integer, ASSIGNMENT = CONSTANT, BUS = M_AXI_0
PARAMETER C_M_AXI_0_DATA_WIDTH = 64, DT = integer, RANGE = (32, 64, 128, 256), BUS = M_AXI_0
・・・・・
PARAMETER C_M_AXI_1_ADDR_WIDTH = 32, DT = integer, ASSIGNMENT = CONSTANT, BUS = M_AXI_1
PARAMETER C_M_AXI_1_DATA_WIDTH = 64, DT = integer, RANGE = (32, 64, 128, 256), BUS = M_AXI_1


こうすると、担当するAXIインターコネクトの設定のMaster Information に、該当するAXI4 Master Port が表示されました。
当然、HDLも同様にパラメータを増やしました。
  1. 2014年08月21日 11:15 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2907-e5bef643
この記事にトラックバックする(FC2ブログユーザー)