FC2カウンター FPGAの部屋 2011年08月19日
FC2ブログ

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

FPGAの部屋

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

Spartan-3A Starter KitでEDKを使ってカメラ表示2(試しにインプリメント)

Spartan-3A Starter KitでEDKを使ってカメラ表示1(BSB Wizard)”の続き。

前回で、XPSのプロジェクトができたので、Project Navigatorに戻って、トップファイルを生成して、インプリメントしてみた。その結果のMAPレポートの一部を下に示す。

Release 13.2 Map O.61xd (nt)
Xilinx Mapping Report File for Design 'system_top'

Design Information
------------------
Command Line   : map -intstyle ise -p xc3s700a-fg484-4 -cm area -ir off -pr off
-c 100 -o system_top_map.ncd system_top.ngd system_top.pcf 
Target Device  : xc3s700a
Target Package : fg484
Target Speed   : -4
Mapper Version : spartan3a -- $Revision: 1.55 $
Mapped Date    : FRI 19 AUG 13:0:46 2011

Design Summary
--------------
Number of errors:      0
Number of warnings:  260
Logic Utilization:
  Number of Slice Flip Flops:         4,223 out of  11,776   35%
  Number of 4 input LUTs:             5,107 out of  11,776   43%
Logic Distribution:
  Number of occupied Slices:          4,155 out of   5,888   70%
    Number of Slices containing only related logic:   4,155 out of   4,155 100%
    Number of Slices containing unrelated logic:          0 out of   4,155   0%
      *See NOTES below for an explanation of the effects of unrelated logic.
  Total Number of 4 input LUTs:       5,251 out of  11,776   44%
    Number used as logic:             4,453
    Number used as a route-thru:        144
    Number used as 16x1 RAMs:             4
    Number used for Dual Port RAMs:     474
      (Two LUTs used per Dual Port RAM)
    Number used as Shift registers:     176

  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.

  Number of bonded IOBs:                 90 out of     372   24%
    IOB Flip Flops:                      34
    IOB Master Pads:                      3
    IOB Slave Pads:                       3
  Number of ODDR2s used:                 24
    Number of DDR_ALIGNMENT = NONE       24
    Number of DDR_ALIGNMENT = C0          0
    Number of DDR_ALIGNMENT = C1          0
  Number of BUFGMUXs:                     6 out of      24   25%
  Number of DCMs:                         2 out of       8   25%
  Number of BSCANs:                       1 out of       1  100%
  Number of BSCAN_SPARTAN3As:             1 out of       1  100%
  Number of MULT18X18SIOs:                3 out of      20   15%
  Number of RAMB16BWEs:                  17 out of      20   85%

  Number of RPM macros:            1
Average Fanout of Non-Clock Nets:                3.35

Peak Memory Usage:  223 MB
Total REAL time to MAP completion:  22 secs 
Total CPU time to MAP completion:   17 secs 


LUTsを43パーセント使用していて、かなり使われている。問題は、Number of RAMB16BWEsで20個の内の17個使われている。残り3個だが、前回のカメラ表示回路では、5個のBRAMを使用したので、この分は空けたい。Etherをサクl除して、Data Cacheを削減することにした。Data Chacheは、分散RAMにしようと思う。下は、FPGA EditorでみたBRAMのリスト。
Spa3A_SKit_OV7670_13_110819.png

XPSでmicroblaze_0をダブルクリックすると、MicroBlazeのConfiguration Wizardが開く。
Spa3A_SKit_OV7670_14_110819.png

4ページ目のChaches の設定画面でData Chacheを1KBに設定した。これで使用するBRAMは1個減った。なるべくバスの負荷を下げてDMAをやり安くするためにキャッシュは確保したい。OKボタンをクリックする。
Spa3A_SKit_OV7670_15_110819.png

Ethernet_MACをDelete Instanceした。
Spa3A_SKit_OV7670_16_110819.png

Ethernet_MACのポートをUCFから削除した。
Spa3A_SKit_OV7670_17_110819.png

ProjectメニューからRescan User Repositories を選択して、リポジトリを作りなおした。

XPSを閉じて、もう一度、Project Navigatorで、ポートが変更されているので、EDKのトップファイルを作りなおしてから、インプリメントした。
MAPリポートを下に示す。

Release 13.2 Map O.61xd (nt)
Xilinx Mapping Report File for Design 'system_top'

Design Information
------------------
Command Line   : map -intstyle ise -p xc3s700a-fg484-4 -cm area -ir off -pr off
-c 100 -o system_top_map.ncd system_top.ngd system_top.pcf 
Target Device  : xc3s700a
Target Package : fg484
Target Speed   : -4
Mapper Version : spartan3a -- $Revision: 1.55 $
Mapped Date    : FRI 19 AUG 22:55:42 2011

Design Summary
--------------
Number of errors:      0
Number of warnings:  205
Logic Utilization:
  Number of Slice Flip Flops:         3,555 out of  11,776   30%
  Number of 4 input LUTs:             4,493 out of  11,776   38%
Logic Distribution:
  Number of occupied Slices:          3,621 out of   5,888   61%
    Number of Slices containing only related logic:   3,621 out of   3,621 100%
    Number of Slices containing unrelated logic:          0 out of   3,621   0%
      *See NOTES below for an explanation of the effects of unrelated logic.
  Total Number of 4 input LUTs:       4,614 out of  11,776   39%
    Number used as logic:             3,697
    Number used as a route-thru:        121
    Number used for Dual Port RAMs:     620
      (Two LUTs used per Dual Port RAM)
    Number used as Shift registers:     176

  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.

  Number of bonded IOBs:                 73 out of     372   19%
    IOB Flip Flops:                      23
    IOB Master Pads:                      3
    IOB Slave Pads:                       3
  Number of ODDR2s used:                 24
    Number of DDR_ALIGNMENT = NONE       24
    Number of DDR_ALIGNMENT = C0          0
    Number of DDR_ALIGNMENT = C1          0
  Number of BUFGMUXs:                     6 out of      24   25%
  Number of DCMs:                         2 out of       8   25%
  Number of BSCANs:                       1 out of       1  100%
  Number of BSCAN_SPARTAN3As:             1 out of       1  100%
  Number of MULT18X18SIOs:                3 out of      20   15%
  Number of RAMB16BWEs:                  14 out of      20   70%

  Number of RPM macros:            1
Average Fanout of Non-Clock Nets:                3.40

Peak Memory Usage:  217 MB
Total REAL time to MAP completion:  18 secs 
Total CPU time to MAP completion:   15 secs 


Number of 4 input LUTsが43パーセントから、38パーセントに減っている。BRAMが17個から14個に減っている。これならば、大丈夫だと思う。

  1. 2011年08月19日 23:04 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

Spartan-3A Starter KitでEDKを使ってカメラ表示1(BSB Wizard)

SP605を使ってEDKの使い方を勉強してきたが、今回は、本格的にEDKで回路を構成してみようと思う。
Spartan-3A Starter KitでEDKを使って、カメラ表示回路を作ってみようと思う。使用するEDKのバージョンは13.2。

1.まずは、ISEのプロジェクトを作成した。
Spa3A_SKit_OV7670_1_110819.png

2.Hierarchyウインドウで右クリックメニューからNew Source... を選択する。
3.New Source Wizard が開く。
4.Fine Name:にsystem と入力する。
Spa3A_SKit_OV7670_2_110819.png

5.Summaryが表示されるので、Finishボタンをクリックする。
Spa3A_SKit_OV7670_3_110819.png

6.Xilinx Platform Studio(XPS) が立ち上がって、ダイアログが開きBSB Wizard を行うかを聞いてくるので、Yesボタンをクリックする。
Spa3A_SKit_OV7670_4_110819.png

7.Base System Builder - Welcomeダイアログが表示される。I would like to create a new design(デフォルト)のラジオボタンが選択されている。
Spa3A_SKit_OV7670_5_110819.png

8.Board Selection では、すでにSpartan-3A Starter Kit が選択されていた。
Spa3A_SKit_OV7670_6_110819.png

9.System Configuration でSingle-Processor System (デフォルト)を選択する。
Spa3A_SKit_OV7670_7_110819.png

10.Processor Configurationで、Locka Memory を16KBに変更した。System Clock Frequency は62.5MHzでデフォルト値とした。
Spa3A_SKit_OV7670_8_110819.png

11.Peripheral Configuration でデフォルトの状態からxps_timer を追加した。Use Interrrupt にチェックを入れる。
Spa3A_SKit_OV7670_9_110819.png

12.Cache Confguration でInstruction Cache とData Cacheを2KBずつ入れた。(これは、DMACでDMAするときになるべくバスが空いているようにするためだ)
Spa3A_SKit_OV7670_10_110819.png


13.Summaryが表示された。Finishボタンをクリックする。
Spa3A_SKit_OV7670_11_110819.png

14.XPSの画面に、今まで設定してきたシステムが表示された。
Spa3A_SKit_OV7670_12_110819.png
  1. 2011年08月19日 05:09 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0