FC2カウンター FPGAの部屋 Partitionの設定
FC2ブログ

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

FPGAの部屋

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

Partitionの設定

”Xilinxのウェブセミナで書いた”モジュールごとのパーティションの設定について書いてみようと思う。
プロジェクトは”スパルタン3EスターターキットのLCD表示回路5”で使用したスパルタン3EスターターキットのLCD表示回路を使用する。
プロジェクトを開いてinstrom.vhd(instrom_inst)にパーティションを設定する。PicoBlazeのプログラムだけを変えたときにそこだけ変更してくれれば良いと思ったからである。instrom.vhdを右クリックしてメニューを出し、その中から"New Partition"をクリック。
partition_1_061220.png

そうするとinstrom.vhdのアイコンの横にオレンジ色の循環している矢印がついた新たなアイコンがつく。TOPのVHDLファイルTest_LCD4HexDisp.vhdにもチップの上にオレンジ色の循環している矢印がついた新たなアイコンがつく。
partition_2_061220.png

通常のコンパイルと一緒にProcessesペインでGenerate Programming Fileをダブルクリックしてbitファイルまで生成する。そうすると緑チェックのついたアイコンに変わる。これでインプリメントできたようだ。
partition_4_061220.png

次にinstrom.vhdをほんの少し変更する。コメントをちょっと減らすだけでも良い。
そうするとinstrom.vhdのアイコンだけがオレンジ色の循環している矢印がついたアイコンの状態に戻るので、再度ProcessesペインでGenerate Programming Fileをダブルクリックしてbitファイルまで生成する。そうするとパーティションを設定したinstrom.vhdだけ変更して論理合成インプリメントしてくれる予定だ。これでインプリメントが速くなると良いけど。。。
partition_5_061220.png

更にDesign SummaryのFPGA Design SummaryのDetailed Reportsの各ReportsにPartionのReportが出てくる。例えばSynthesis Reportはこんな感じ。
partition_6_061220.png

最後にPartitionをinstrom.vhdに設定しない時と最初に設定したとき、instrom.vhdだけを変更してそこだけを論理合成する場合の時間をXSTレポートから見てみる。

partitionなしXST 18秒
partitionありXST 25秒
partition設定しVHDLの変更のときのXST 22秒


というわけでPartitionを設定しないほうが論理合成が速いようだ。サンプルが小さいファイルなので有効性は確認できないようだ。オーバーヘッドのほうが大きくなっているのであろう。それにinstrom.vhdはPlcoBlazeのアセンブラが出力するプログラムを初期化で入れたBRAMだけインスタンスしてある特殊なファイルだし。それだけにプログラムを書き換えたときに速くなるとうれしいのだが、もっと大きなプロジェクトで試してみなくてはだめなようだ。
実は最初にDDR SDRAMコントローラのプロジェクトでPartitionを確かめてみようと思ったがプロジェクトにDDRレジスタが入っていると怒られてPartitionを設定できないようだった。DDRレジスタが入っている.vhdファイルにPartitionを設定していなくてもだめだったのでプロジェクトにDDRレジスタが入ってるデザインがあったらだめなのか?
もっと大きなプロジェクトで試してみたいが大きいのはほとんどSynplify Proのプロジェクトなので"New Partition"がハイドされて選択できないようだ。後でXSTに変えてやってみようと思う。

本当にXilinxのISEは人知れず(みんな知っているのかな?)機能が追加されていて探検するのが興味深いツールだと思う。
  1. 2006年12月20日 22:03 |
  2. Xilinx ISEについて
  3. | トラックバック:0
  4. | コメント:4

コメント

かなりお手軽に使える機能のようですね。partition毎にngcファイルができているようなので、blackboxが簡単にできるようになったのかなと思いました。小さな階層だとかえって時間がかかるといったノウハウはとても重要ですね。ところで条件はよく分かりませんが、何かの拍子にpartitionの設定がなくなることがあるみたいです。
  1. 2006/12/22(金) 00:08:10 |
  2. URL |
  3. Sim #mQop/nM.
  4. [ 編集 ]

こんにちは。いつもコメントありがとうございます。
本当にお手軽ですよね。以前はエリア制約をかけてやらなくちゃだめとセミナで言ってたんですけど。もう少し試してみようと思います。
しかしISE8.2iSP3は怪しいですよね。私のところではいまだにプロジェクトの1つがISEからだとTCLエラーで落ちてしまいます。
  1. 2006/12/22(金) 05:46:06 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

Partitionの記事の中で、Synplify Proだと使えないという内容があったので気になりました。
実は今Synplify Proの導入を検討しているのですが、こういうデメリットもあるのですか。
Synplify Proを使ったときのプロジェクトの管理方法がまだよく把握していないのですが、ISEが主で、論理合成エンジンとしてSynplifyを呼び出すという感じですか?
確か、1年ぐらい前にSynplify Proの評価版を少しだけ使ったことがあるのですが、論理合成のときはSynplify Proだけで進めて、ネットリストが出来上がったところで続きをISEで行うといったやり方だったと記憶しています。
Partionの設定があくまでISEのSorcesウィンドウのソース単位でしか行えないとすると、モジュール単位でSynplify Proでネットリスト化しておいて、Implementの前段階でネットリスト単位でPartitionを設定というような使い方ってできないんでしょうかね。
  1. 2007/11/21(水) 09:40:23 |
  2. URL |
  3. Fwara #2YqjeuT.
  4. [ 編集 ]

ISE9.2SP3でもSynplify Proを使うとやはりNew Partitionは選べません。
Use SmartGuideは選べます。
Synplify ProはISEに統合されるので、ISEの統合環境からXSTと同様に使えます。ただ、エラーを見るときは、単体で立ち上げてみています。
  1. 2007/11/21(水) 12:00:29 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

コメントの投稿


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

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