7月 102013
 

Takaです。
今日はNiosII関連について。

さて、唐突にFlashメモリを使ってみたくなりました。
というのも、NiosのCPUをOnchipメモリからSDRAMに載せかえた為、
新しくバッファメモリを調達しなければならなくなったのです。

今まではCPUをOnchip、バッファメモリをSDRAMにそれぞれ割り当てていました。
実際に載せかえてから気がついたのですが、CPU用に割り当てたメモリって容量一杯に領域を確保するんですね。
CPU載せた余りの部分をバッファメモリとして再利用出来ないかなー、と思っていたのですが。
完全に素人考えでした。反省。

そんな訳で、バッファメモリの新しいお家を探してあげなければなりません。
諸事情の為、Onchipは別のメモリに使用する予定です。よって他をあたります。
候補としては、DE2-115に実装されている外部メモリ、FlashメモリとSRAMのどちらか。

とりあえず、今回はFlashメモリに挑戦してみることにしました。

作業内容

Niosで使用するので、SOPCかQsysでデザインを構成します。
今回はSOPCを使用しましたが、Qsysでも作業内容は同じだと思います。

1. SOPCを開いて以下の2つのコンポーネントを追加

(A) Avalon-MM Tristate Bridge (/Bridges/Memory-Mapped)
(B) Flash Memory Interface(CFI) (/Memories and Memory Controllers/External Memory Interfaces/Flash Interfaces)

2. (A)、(B)のコンポーネントの設定

以下の通りに設定しました。設定内容については、DE2付属のデモンストレーションファイルを参考にしました。
(A) Avalon-MM Tristate Bridge

(A) Avalon-MM Tristate Bridge


(B) Flash Memory Interface(CFI)

(B) Flash Memory Interface(CFI)

3. (A)、(B)のそれぞれの配線を以下のように設定

(A) Avalon-MM Tristate Bridge
.clk … システムクロック(100MHz)
.avalon_slave … (CPU).data_master
.tristate_master … (Flash Memory Interface).s1

(B) Flash Memory Interface(CFI)

.clk … システムクロック(100MHz)
.s1 … (Avalon-MM Tristate Bridge).tristate_master

後はFlashメモリのベースアドレスを適切な値に設定すれば完成。
と、思いきや。何だか不穏なエラーメッセージがウインドウ下部のダイアログに残っています。

謎のエラー

謎のエラー

何のこっちゃ。
ざっと流し読みしたところ、何だか配線のデータ幅の不一致が原因らしいです。
しかし、Flashメモリの方はともかく、Tristateブリッジの方にはそんな設定項目は一切見当たりません。
Alteraフォーラムから個人ブログまでくまなく探しましたが、このような問題の報告は見当たりませんでした。
QuartusやNiosの主要なエラーなら、Google先生が必ずAlteraフォーラムのポストを引っ張ってくる筈。
(正直それもどうかと思いますけどね)

Alteraの公式リファレンス等も小一時間漁ってみましたが、結局有力な情報はゼロ。
もう詰んだかと思いましたが、意外な方法で解決しました。

4. F5でシステムの更新を実行

綺麗さっぱりエラーは消えてなくなりました。
こういう無慈悲なブービートラップを各所に仕掛けてあるからNiosソフトウェア群は信用なりません。
ほんとに。

これでNiosシステム上の構築は完了です。
後はQuartusでピンアサインを済ませてコンパイルするだけです。

5. ピンアサインの設定

マニュアル若しくはシステムビルダーを参考にしてピンアサインを済ませます。
ここで出力電圧をデフォルトの2.5Vから3.3Vに変更するのを忘れずに。

6. コンパイル

あとはNiosでデータの読み書きを試してみるだけです。

7. 実証実験

8bitデータを読み書きする簡単なプログラムを作成して実行してみました。
しかし、全く意図した値を得られませんでした。
これはおかしいと思い、デバッガにて該当するアドレスの値を確認してみました。
すると、CFIにアクセスはしてましたが、書き込みが通っていませんでした。
あれこれ試行錯誤を繰り返しましたが、ここでギブアップ。
CFIをバッファメモリとして使用するのは一旦中断することにしました。

感想

改めて見返してみても特に問題は見当たらないのですが…。
次はSRAMを試してみようと思います。
 Posted by at 13:59

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  プロフィール  PR:無料HP  合宿免許 二輪  売掛金 高価買取  アニメクリエイター 専門学校  WPサスペンション  中古ホイール 愛知  タイヤ VOXY 激安  ブライダル 専門学校  M-TEC  民泊 デメリット  物流 東京  TMJ投資顧問 口コミ  バイクパーツ  名簿販売