FC2カウンター FPGAの部屋 ZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラ IP4(BUFIO, BUFR)
FC2ブログ

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

FPGAの部屋

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

ZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラ IP4(BUFIO, BUFR)

ZYBO Base System Design(ISE14.7版)”では、OSERDESE2 のクロック供給源として、BUFIO, BUFRが使用されていた。

Digilent社のSpartan-6 ボード、Atlysボード用のHDMIをサポートするDigilent社製のVHDLコードを自分で修正して、ZYBOで、キャラクタ・ディスプレイ・コントローラの出力をHDMIとVGAに出力していた。しかし、BUFGのみを使用したHDMI出力では、VGAとSVGA しか出力することが出来なかった。(”ZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラ IP3(SVGA以外の解像度)”参照)それを、BUFIO と BUFR に対応させることにした。

ピクセルクロックの5倍の周波数のクロックは BUFIO に入力して、OSERDESE2 に供給する。ピクセルクロックは、BUFRに入力して5分周する。
ZYBO_CDC_AXI_slave_48_140501.png

これで、論理合成、インプリメントを行ったところ、MAPでエラーになった。
ZYBO_CDC_AXI_slave_45_140430.png

エラー内容を下に示す。

PhysDesignRules:2309 - The PLLE2_ADV block is using an output pin that does not use dedicated connectivity. Routing from the pin to a BUFIO buffer type is not supported.

PLLE2_ADVからBUFIO に行く配線はないそうだ。

ZYBO Base System Design を見ると、制約ファイルでMMCM が制約されていた。制約ファイルを引用する。

INST "*/USER_LOGIC_I/USE_BUFR_DIV5.Inst_mmcme2_drp/mmcm_adv_inst" LOC = "MMCME2_ADV_X0Y1";

MMCMを X0Y1 に配置していた。PLLも X0Y1 に制約することにした。

Project Navigator のProcesses ウインドウのUser Constraints を展開して、I/O Pin Planning(PlanAhead) - Post-Syntesis をダブルクリックして、PlanAheadを立ちあげた。

PLL_BASE_PIXELのインスタンスを見つけて、X0Y1 の位置に固定した。
ZYBO_CDC_AXI_slave_46_140430.png

生成された制約を示す。

INST "system_i/cdc_axi_slave_0/cdc_axi_slave_0/dvi_disp_inst/PLL_BASE_PIXEL" LOC = PLLE2_ADV_X0Y1;


これで再度、インプリメントを行ったところ、やはり同様にエラーが出てしまった。
ZYBO_CDC_AXI_slave_47_140501.png

”7 シリーズ FPGA クロッキング リソースユーザーガイド UG472 (v1.8) 2013 年 8 月 7 日”の45ページに、BUFIO を駆動するクロックとして、”同じクロック領域内の HPC を駆動する場合は、MMCM クロック出力 0 ~ 3”と書いてあった。PLLの記述はなかったので、接続できないのかもしれない。

PLLをMMCMに変更することにした。
  1. 2014年05月01日 05:14 |
  2. ZYBO
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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