FC2カウンター FPGAの部屋 NiosⅡ 9.0 IDE を使ってみる5(NiosⅡの設定を変更してみる)
FC2ブログ

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

FPGAの部屋

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

NiosⅡ 9.0 IDE を使ってみる5(NiosⅡの設定を変更してみる)

NiosⅡ 9.0 IDE を使ってみる4(インターフェースボードのLEDの点灯テスト)”でスマートじゃないけどLEDのテストも出来たので、一旦NiosⅡのコアを入れ替えてみることにした。NiosⅡにコアは3種類あって、それぞれ機能が違っている。今は一番機能の多く、一番ロジックを使用するコアを使用してる。今回は2番目のNiosⅡ/sに変更した。これはいままでのNiosⅡ/f に比べて、データキャッシュやバレルシフタなどがない。
Nios2_IDE_90_22_090818.png

これでSOPC Builder で生成して、QuartusⅡでコンパイルした。するとやはり以前より小さくなった。Total logic elements が77%になった。(SignalTapⅡが入っている状態)以前は92%だった。下がNiosⅡ/s を実装した時のFlow summary。(ただし、SignalTapⅡが入っている状態)
Nios2_IDE_90_23_090818.png

下がNiosⅡ/f を実装した時のFlow summary。(ただし、SignalTapⅡが入っている状態)
Nios2_IDE_90_25_090818.png

SignalTapⅡで最初のSDRAMのReadをキャプチャしているのが、NiosⅡ/fの時にはバーストでアクセスされていたが、NiosⅡ/s を実装した時にはシングル転送だった。データキャッシュが入っていないせいだろうか?
Nios2_IDE_90_21_090818.png

下がNiosⅡ/fを実装した時の最初のSDRAMのReadのキャプチャ。
Nios2_IDE_90_15_090815.png

NiosⅡ/s を実装した時は、Nios2 9.0 IDE の下のコンソールペインにNiosⅡTerminal Windowが表示された状態では(キーを入力しなければ)SDRAMのReadは発生しない。これは命令キャッシュが入っているので当然だと思う。キー待ちのポーリング時はSDRAMにアクセスは発生しないはず。a キーを押すとSDRAMのReadアクセスが発生する。下図参照。
Nios2_IDE_90_24_090818.png

緑色で囲ったBurst Readの部分と黄色で囲ったSingle Readの部分が見える。たぶん、Burst Readの部分は命令、Single Readの部分はデータだと思われる。Single Readの部分はずいぶん上の方のアドレスを使用している。

下にNiosⅡ/fを実装した時、a キーを押した時のSDRAMのReadアクセスを示す。
Nios2_IDE_90_26_090818.png

Burst Readばかり。

最後にNiosⅡ/fを実装してSignalTapⅡを実装していない場合のTotal logic elements は79%だった。
SOPC_Builder_19_090806.png

256サンプルのSignalTapⅡに590のlogic elementsと9,728のmemory bitsを使用している。


(2009/08/19:追記)
くりさんに教えていただいて、SOPC BuilderのNiosⅡ CPUの設定項目のうちのCaches and Memory Interfaces で、Enable Bursts をチェックしてみた。デフォルトではチェックはされていないようだ。実はEnable Burstsにチェックを入れると、一番大きなNiosⅡ/fでは、リソースが多すぎてコンパイルができない。よって、NiosⅡ/sだけでやってみた。
Nios2_IDE_90_27_090819.png

Enable Burstsにチェックを入れて、SOPC BuilderでGenerateし、QuartusⅡでコンパイルする。NiosⅡ9.0 IDEからBuild Projectして、SignalTapⅡでコンフィグし000番地のReadアクセスでトリガをかけ、NiosⅡ9.0 IDEでRun As -> NiosⅡHardware を選択して、最初にSignalTapⅡにかかった波形が下の波形だ。
Nios2_IDE_90_28_090819.png

バーストReadしている。やはりEnable Burstsにチェックを入れるとバーストするようだ。次に、a キーを押した時にSignalTapⅡで000番地のReadアクセスでトリガをかけたらどんな波形が見えるかを見てみる。下の図画素の波形。
Nios2_IDE_90_29_090819.png

かなりバーストReadするようになった。0番地からF番地までバーストReadしているので、16バースト、32バイトを一度に読み込んでいる。
ちなみに上のSDRAM波形のコマンドは、最初からプリチャージ、プリチャージ、リフレシュ、アクティベート、バーストRead、プリチャージ、アクティベート、シングルRead、シングルRead、シングルRead、シングルRead。
やはり、Enable Burstsにチェックを入れる以前よりはバースト長が長い。でも、以前も4バーストReadはしていたようなので、Enable Burstというよりは、きっちり32バイト読み込むというイネーブルビットなのだろうか?
最後にどのくらい使用リソースが増えたかというと、下の図がQuartasⅡのFlow Summary。
Nios2_IDE_90_30_090819.png

Total logic elements が77%のところ85%になった。344個、logic elementsの使用が増えた。
やはりこのデバイスではNiosⅡをいろいろ試すのには小さいようだ。
  1. 2009年08月18日 06:19 |
  2. NiosⅡ EDS
  3. | トラックバック:0
  4. | コメント:2

コメント

再び、こんにちは。

>NiosⅡ/fの時にはバーストでアクセスされていたが、NiosⅡ/s を実装した時にはシングル転送だった。データキャッシュが入っていないせいだろうか?

 うーんと、Nios CPUのEditの中のCaches and Memory Interfaces で、Enable Bursts はチェックされてますか?もし未チェックならば、一度チェックして、(何も変化しないかも知れませんが^^;)やって見て頂けませんか?

  1. 2009/08/18(火) 12:42:06 |
  2. URL |
  3. くり #mQop/nM.
  4. [ 編集 ]

くりさん、いつもありがとうございます。
Nios CPUのEditの中のCaches and Memory Interfaces で、Enable Bursts はチェックされていませんでした。チェックしてみたところ、NiosⅡ/f ではリソースが足りないようでした。
NiosⅡ/s でInstraction Master だけチェックを入れてやってみたところ、最初に引っ掛かるアドレス0番地へのReadはバーストになりました。記事に追加しておきます。ありがとうございました。
  1. 2009/08/19(水) 05:15:43 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

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