今日じゃなくって、ずっと前だけど、
実習・FPGAベースの組み込みシステム開発
http://seminar.cqpub.co.jp/ccm/ES13-0104
で学んだことのメモメモ
■FPGAでファイルを扱う
方法
・FATファイルシステム用のIPがある
→NIOSでも動かせるが、保証されたものは有償
・HALで、リードオンリーの非圧縮ZIPファイルが読める
今回は、後者を利用、Flashメモリから、非圧縮ZIPファイルを読み込む
■トライステート関連ブロック
Flashメモリなど、双方向端子をもつものの接続では、
3つのTri-State関連ブロックを利用する
・Generic Tri-State Controller
Flash用、SRAM用がある
・Tri-State Conduit(こんじっと)Pin Sharer
実体はセレクタ
・Tri-State Conduit(こんじっと)Bridge
実体は双方向バッファ
■手順
(1)Qsysで
・[Component Library]から、
[Qsys Interconnect]
[Try-State Component]の
Generic Tri-State Controller
Tri-State Conduit Pin Sharer
Tri-State Conduit Bridge
の3つを選択して、
・Qsys[System Compornents]の線をつなぐところで、
各ブロックのマスタ→スレーブになるよう、
すなわち [tcm]→[tcs]になるように、各ブロック間を接続
・[Generic Tri-State Controller]のウインドウ
プリセット値を用意するが、該当無ければ類似品
[Signal Selection]
ビット幅とメモリに接続する信号
タイミング、メモリサイズ
[Signal Timing]
タイミング
[Signal Polarities]
ローアクティブ信号
(2)NIOSⅡ EDS
・プロジェクト作成
テンプレートをHello Worldで
(Hello World smallにすると、縮小ライブラリでコンパイルされ、
エラーになる)
・プログラム作成
後述ro_zipfs_nameのファイルを読みこみ、なにかするプログラムを書く
・NIOSⅡライブラリ追加
BSPエディターで、[Software Package]の
altera_ro_zipfsにチェック
altera_ro_zipfsの
ro_zipfs_baseにQsysの{system component]で設定された先頭番地
ro_zipfs_nameにファイル名
ro_ips_offsetは0x0
でGenerate BSPして、ビルドする
(3)FPGA側コンフィグレーション
FPGAに電気を入れる
コンパイル
コンフィグレーション
(4)ZIPファイル書き込み
・NIOSⅡEDSのFlash Programmerを起動
・用意した非圧縮ZIPファイルをAdd
・Startで転送
■非圧縮ZIPファイル
ZIPファイルは圧縮するが、圧縮しない場合、ようするに、
書庫(複数ファイルを1つにまとめる)として利用する
ことになる
http://oshiete.goo.ne.jp/qa/2761413.html
参照。
実習・FPGAベースの組み込みシステム開発
http://seminar.cqpub.co.jp/ccm/ES13-0104
で学んだことのメモメモ
■FPGAでファイルを扱う
方法
・FATファイルシステム用のIPがある
→NIOSでも動かせるが、保証されたものは有償
・HALで、リードオンリーの非圧縮ZIPファイルが読める
今回は、後者を利用、Flashメモリから、非圧縮ZIPファイルを読み込む
■トライステート関連ブロック
Flashメモリなど、双方向端子をもつものの接続では、
3つのTri-State関連ブロックを利用する
・Generic Tri-State Controller
Flash用、SRAM用がある
・Tri-State Conduit(こんじっと)Pin Sharer
実体はセレクタ
・Tri-State Conduit(こんじっと)Bridge
実体は双方向バッファ
■手順
(1)Qsysで
・[Component Library]から、
[Qsys Interconnect]
[Try-State Component]の
Generic Tri-State Controller
Tri-State Conduit Pin Sharer
Tri-State Conduit Bridge
の3つを選択して、
・Qsys[System Compornents]の線をつなぐところで、
各ブロックのマスタ→スレーブになるよう、
すなわち [tcm]→[tcs]になるように、各ブロック間を接続
・[Generic Tri-State Controller]のウインドウ
プリセット値を用意するが、該当無ければ類似品
[Signal Selection]
ビット幅とメモリに接続する信号
タイミング、メモリサイズ
[Signal Timing]
タイミング
[Signal Polarities]
ローアクティブ信号
(2)NIOSⅡ EDS
・プロジェクト作成
テンプレートをHello Worldで
(Hello World smallにすると、縮小ライブラリでコンパイルされ、
エラーになる)
・プログラム作成
後述ro_zipfs_nameのファイルを読みこみ、なにかするプログラムを書く
・NIOSⅡライブラリ追加
BSPエディターで、[Software Package]の
altera_ro_zipfsにチェック
altera_ro_zipfsの
ro_zipfs_baseにQsysの{system component]で設定された先頭番地
ro_zipfs_nameにファイル名
ro_ips_offsetは0x0
でGenerate BSPして、ビルドする
(3)FPGA側コンフィグレーション
FPGAに電気を入れる
コンパイル
コンフィグレーション
(4)ZIPファイル書き込み
・NIOSⅡEDSのFlash Programmerを起動
・用意した非圧縮ZIPファイルをAdd
・Startで転送
■非圧縮ZIPファイル
ZIPファイルは圧縮するが、圧縮しない場合、ようするに、
書庫(複数ファイルを1つにまとめる)として利用する
ことになる
http://oshiete.goo.ne.jp/qa/2761413.html
参照。