芳賀/embedded
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[芳賀]]
*Nios II [#c7886e9b]
//-研究で使いそうなので色々とまとめようかなと
//-エンベデッドのまとめにも
-ナイオス、ニオスと呼ばれているが、開発元的にはニオスらしい
#br
**Hardware Part [#kfb585f3]
-Quartus II、SOPC Builderを使用してのハードウェア開発
***Quartus II [#c1d7b983]
-top module
--使用するI/Oピンは全部assignする。(NiosIIの方にポートがないこともある)
-sdram_pll
--SDRAMコントローラを使用してSDRAMを使用するときに必要なモジュール
--MegaWizard Plug-In Managerを使用する
--動作タイミングをずらすらしいが、理由はよくわからない
-メモリ初期化ファイル(.hex)
--フォーマットはIntel HEX
--%%Nios IDEでシミュレーションした場合このファイルが上書きされるみたいなので、事前に合成をかける必要がある。(設定でどうにかなるかもしれないが、わからない)%%
***SOPC Builder [#k8ebc144]
-プロジェクトの中にリファレンスデザイン(アルテラから持ってきたもの)を入れるとSOPC Builderにそのコンポーネントが追加される~
また、SOPC用にデザインを作成することも可能
-PLLの実装が可能(MegaWizard経由)
--Component Library → PLL → PLL
-PIOの設定(Pushbuttonの割り込み使用時)
--Edge capture register
---Synchronously capture → チェック
---Falling edge
---Enable bit-clearing for edge capture register
--Interrupt
---Generate IRQ → チェック
---Edge
-VGA制御回路 (動作未確認)
>
-Video Sync Generator(640x480 60Hz) (動作未確認)
--Component Library → Peripherals → Display → Video Sync Generator
|Parameter|Value|Note|h
|Data Stream Bit Width|24|入力及び出力データ幅|
|Beats per Pixel|1|1ピクセルを転送するのに必要なクロック数|
|Number of Columns|600|各ラインのアクティブ・ピクセル数(横の長さ)|
|Number of Rows|480|各ビデオ・フレームのアクティブ・スキャン・ライン数(縦の長さ)|
|Horizontal Blank Pixels|144|アクティブ・ピクセルの前にあるブランキング・ピクセル数(Sync Pulse + Back Porch)|
|Horizontal Front Porch Pixels|16|アクティブ・ピクセルの後に続くブランキング・ピクセル数(Front Porch)|
|Horizontal Sync Pulse Pixels|1|h-sync パルスの幅をピクセル数で表したもの|
|Horizontal Sync Pulse Polarity|0|h-sync パルスの極性:0=Low,1==High|
|Vertical Blank Lines|33|アクティブラインの前にあるブランキング・ライン数(Sync Pulse + Back Porch)|
|Vertical Front Porch Lines|11|アクティブ・ラインの後に続くブランキング・ライン数(Front Porch)|
|Vertical Sync Pulse Lines|1|v-sync パルスの幅をライン数で示したもの|
|Vertical Sync Pulse Polarity|0|v-sync パルスの極性:0=Low,1==High|
|Total Horizontal Scan Pixels|800|1ラインの総ピクセル数|
|Total Vertical Scan Lines|524|1つのビデオ・フレーム数の総ライン数|
-Data Format Adapter (動作未確認)
--Component Library → Bridges and Adapters → Streaming → Avalon-ST Data Format Adapter
|>|Parameter|Value|Note|h
|Input|Data Symbols Per Beat|1|アクティブ・サイクルあたりの転送シンボル数|
|~|Include Empty Signal|YES||
|Output|Data Symbols Per Beat|1|アクティブ・サイクルあたりの転送シンボル数|
|~|Include Empty Signal|YES||
|Common|Channel Signal Width|0||
|~|Max Channel|0||
|~|Include Packet Support|on||
|~|Error Signal Width|0||
|~|Error Signal Description|||
|~|Ready Latency|0||
|~|Data Bits Per Symbol|24||
-Pixel Converter (動作未確認)
--Component Library → Peripherals → Disply → Pixel Converter
|Parameter|Value|Note|h
|Source symbols per beat|1|Avalon-ST ソース・インターフェースでのビットあたりのシンボル数|
-FIFO (動作未確認)
--Component Library → Memories and Memory Controllers → On-Chip → Avalon-ST Single Clock FIFO
|Parameter|Value|Note|h
|Symbols per beat|4|ビートあたりのシンボル数|
|Bits per symbol|8|シンボルあたりのビット数|
|FIFO depth|16|FIFOバッファの深度|
|Channel width|0||
|Erro width|0||
|Use packets|on||
|Use fill level|off||
-SGDMA (動作未確認)
--Component Library → Memories and Memory Controllers → DMA → Scatter-Gather DMA Controller
|Parameter|Value|Note|h
|Transfer mode|Memory to Stream|使用するコンフィギュレーション|
|Enable bursting on descriptor read master|off||
|Allow unaligned transfers|off||
|Enable burst transfers|off||
|Data width|32|Avalon-MM リードおよびライト・ポートのビット単位のデータ幅|
-Video Buffer (On-Chip memory) (動作未確認)
--Component Library → Memories and Memory Controllers → On-Chip On-Chip Memory
|Parameter|Value|Note|h
|Memory type|ROM||
|Data width|32||
|Total memory size|4096 Bytes||
|Enable non-default initialization file|on|video_buffer.hex|
|Enable In-System Memory Content Editor feature|on|VMEM|
***DE2ボード [#l845db50]
-Device
--EP2C35F672C6
-Pushbutton
--常時オン状態~
押したときオフ状態~
-HEX
--High→消灯~
Low→点灯
-LCD
--LCD_ON、LCD_BLONにご注意
-VGA
|Parameter|Value|Note|h
|VGA_CLK|25.2MHz (CLOCK_27でも可?)|VGA DACチップのクロック|
|VGA_BLANK|den(VSG)|ブランク信号(H:描画 L:空白)|
|VGA_HS|hd(VSG)|垂直同期信号|
|VGA_VS|vd(VSG)|水平同期信号|
|VGA_SYNC|L(?)|同期信号|
|VGA_R|{rgb_out[7:0],0}(VSG)|赤成分信号|
|VGA_G|{rgb_out[15:8],0}(VSG)|緑成分信号|
|VGA_B|{rgb_out[23:16],0}(VSG)|青成分信号|
#br
**Software Part [#y8bddede]
-Nios II IDE を使用してのソフトウェア開発
***System Library Property [#c19ecb64]
-Support C++を選択解除(拡張子が.Cのときのみ?)
-Reduced device driversを選択
-Lightweight device driver APIを選択
***マルチプロセッサシステムの実行方法(合成後) [#ob8ebd80]
+ [Window] -> [Periferences] -> [NiosII]
+ "Allow multiple active run/debug sessions"にチェックを入れる
+ [Run] -> [Run]
+ [Nios II Hardware]
+ [Main] -> [Load JDI File]
+ [Target Connection] -> [JTAG cable] -> [Automatic]
+ [Run] -> [Nioss II Multiprocessor Collection] -> [New]
+ 作成したconfigurationにチェックを入れる
+ [Apply]
+ [Run]で実行
-詳しくはこちら
--[[チュートリアル(英語):http://www.altera.com/literature/tt/tt_nios2_multiprocessor_tutorial.pdf]]
--[[サンプルシステム:http://www.altera.com/support/examples/nios2/exm-multi-nios2-hardware.html]]
***サポート関数 [#fb4243b7]
-sys/alt_stdio.h
--[[alt_printf>#alt_printf]]
-unistd.h
--[[usleep>#usleep]]
----
-altera_avalon_pio_regs.h
>PIOを制御するのに使用
--IORD_ALTERA_AVALON_PIO_DATA
IORD_ALTERA_AVALON_PIO_DATA(base)
--IOWR_ALTERA_AVALON_PIO_DATA
IOWR_ALTERA_AVALON_PIO_DATA(base, data)
--IOWR_ALTERA_AVALON_PIO_IRQ_MASK
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data)
--IORD_ALTERA_AVALON_PIO_EDGE_CAP
IORD_ALTERA_AVALON_PIO_EDGE_CAP(base)
--IOWR_ALTERA_AVALON_PIO_EDGE_CAP
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data)
-altera_avalon_lcd_16207_regs.h
LCDを制御するのに使用
コントローラーがサポートしているLCDとDE2に搭載されているLCDは違うらしい
制御のタイミングに注意
-altera_avalon_timer_regs.h
Timerを制御するのに使用
-sys/alt_irq.h
割り込みの制御に使用
#br
-sys/alt_stdio.h
>IDE上でのデバックに使用
--&aname(alt_printf){void ''alt_printf''( const char* '''fmt''', '''...''' )};
>func:
>>printfと同じ働き
>param:
>>const char* fmt, ... printfと同じ
>retval:
>>void
#br
-alt_types.h
>変数の型などが定義されている
#br
-unistd.h
--&aname(usleep){unsigned int ''usleep''( unsigned int '''_useconds''' )};
>func:
>>'''_useconds''' ns待つ
>param:
>>_useconds 時間
>retval:
>>unsigned int
----
**リンク [#v087acd9]
-[[オンライン資料:Quartus II(日本語):http://www.altera.co.jp/literature/lit-qts.jsp]]
-[[オンライン資料:SOPC Builder(英語):http://www.altera.com/literature/lit-sop.jsp#]]
-[[Nios II & SOPC Builder 基礎編:http://www.altera.co.jp/education/training/online/ol_nios2_sopcb.html]]
-[[FPGA活用回路&サンプル記述集(3) ―― ビデオ信号処理回路:http://www.kumikomi.net/archives/2009/03/11circ3.php?page=14]]
-[[OpenCore使用時のエラー:http://marsee101.blog19.fc2.com/blog-date-20090805.html]]
***FPGAの部屋 [#cd39d5ec]
-[[Avalon-MMスレーブペリフェラル4(7セグLEDのテスト):http://marsee101.blog19.fc2.com/blog-entry-1221.html]]
-[[Avalon-MMスレーブペリフェラル1(7セグLEDの設計):http://marsee101.blog19.fc2.com/blog-entry-1213.html]]
----
*μITRON [#a82b8785]
**API [#e43d503c]
*** ena_int [#ud92a724]
-割込みの許可
**.cfg [#ze5a310a]
-IDかぶってはいけない。(関数名など)~
ただし、大文字、小文字の区別はある
終了行:
[[芳賀]]
*Nios II [#c7886e9b]
//-研究で使いそうなので色々とまとめようかなと
//-エンベデッドのまとめにも
-ナイオス、ニオスと呼ばれているが、開発元的にはニオスらしい
#br
**Hardware Part [#kfb585f3]
-Quartus II、SOPC Builderを使用してのハードウェア開発
***Quartus II [#c1d7b983]
-top module
--使用するI/Oピンは全部assignする。(NiosIIの方にポートがないこともある)
-sdram_pll
--SDRAMコントローラを使用してSDRAMを使用するときに必要なモジュール
--MegaWizard Plug-In Managerを使用する
--動作タイミングをずらすらしいが、理由はよくわからない
-メモリ初期化ファイル(.hex)
--フォーマットはIntel HEX
--%%Nios IDEでシミュレーションした場合このファイルが上書きされるみたいなので、事前に合成をかける必要がある。(設定でどうにかなるかもしれないが、わからない)%%
***SOPC Builder [#k8ebc144]
-プロジェクトの中にリファレンスデザイン(アルテラから持ってきたもの)を入れるとSOPC Builderにそのコンポーネントが追加される~
また、SOPC用にデザインを作成することも可能
-PLLの実装が可能(MegaWizard経由)
--Component Library → PLL → PLL
-PIOの設定(Pushbuttonの割り込み使用時)
--Edge capture register
---Synchronously capture → チェック
---Falling edge
---Enable bit-clearing for edge capture register
--Interrupt
---Generate IRQ → チェック
---Edge
-VGA制御回路 (動作未確認)
>
-Video Sync Generator(640x480 60Hz) (動作未確認)
--Component Library → Peripherals → Display → Video Sync Generator
|Parameter|Value|Note|h
|Data Stream Bit Width|24|入力及び出力データ幅|
|Beats per Pixel|1|1ピクセルを転送するのに必要なクロック数|
|Number of Columns|600|各ラインのアクティブ・ピクセル数(横の長さ)|
|Number of Rows|480|各ビデオ・フレームのアクティブ・スキャン・ライン数(縦の長さ)|
|Horizontal Blank Pixels|144|アクティブ・ピクセルの前にあるブランキング・ピクセル数(Sync Pulse + Back Porch)|
|Horizontal Front Porch Pixels|16|アクティブ・ピクセルの後に続くブランキング・ピクセル数(Front Porch)|
|Horizontal Sync Pulse Pixels|1|h-sync パルスの幅をピクセル数で表したもの|
|Horizontal Sync Pulse Polarity|0|h-sync パルスの極性:0=Low,1==High|
|Vertical Blank Lines|33|アクティブラインの前にあるブランキング・ライン数(Sync Pulse + Back Porch)|
|Vertical Front Porch Lines|11|アクティブ・ラインの後に続くブランキング・ライン数(Front Porch)|
|Vertical Sync Pulse Lines|1|v-sync パルスの幅をライン数で示したもの|
|Vertical Sync Pulse Polarity|0|v-sync パルスの極性:0=Low,1==High|
|Total Horizontal Scan Pixels|800|1ラインの総ピクセル数|
|Total Vertical Scan Lines|524|1つのビデオ・フレーム数の総ライン数|
-Data Format Adapter (動作未確認)
--Component Library → Bridges and Adapters → Streaming → Avalon-ST Data Format Adapter
|>|Parameter|Value|Note|h
|Input|Data Symbols Per Beat|1|アクティブ・サイクルあたりの転送シンボル数|
|~|Include Empty Signal|YES||
|Output|Data Symbols Per Beat|1|アクティブ・サイクルあたりの転送シンボル数|
|~|Include Empty Signal|YES||
|Common|Channel Signal Width|0||
|~|Max Channel|0||
|~|Include Packet Support|on||
|~|Error Signal Width|0||
|~|Error Signal Description|||
|~|Ready Latency|0||
|~|Data Bits Per Symbol|24||
-Pixel Converter (動作未確認)
--Component Library → Peripherals → Disply → Pixel Converter
|Parameter|Value|Note|h
|Source symbols per beat|1|Avalon-ST ソース・インターフェースでのビットあたりのシンボル数|
-FIFO (動作未確認)
--Component Library → Memories and Memory Controllers → On-Chip → Avalon-ST Single Clock FIFO
|Parameter|Value|Note|h
|Symbols per beat|4|ビートあたりのシンボル数|
|Bits per symbol|8|シンボルあたりのビット数|
|FIFO depth|16|FIFOバッファの深度|
|Channel width|0||
|Erro width|0||
|Use packets|on||
|Use fill level|off||
-SGDMA (動作未確認)
--Component Library → Memories and Memory Controllers → DMA → Scatter-Gather DMA Controller
|Parameter|Value|Note|h
|Transfer mode|Memory to Stream|使用するコンフィギュレーション|
|Enable bursting on descriptor read master|off||
|Allow unaligned transfers|off||
|Enable burst transfers|off||
|Data width|32|Avalon-MM リードおよびライト・ポートのビット単位のデータ幅|
-Video Buffer (On-Chip memory) (動作未確認)
--Component Library → Memories and Memory Controllers → On-Chip On-Chip Memory
|Parameter|Value|Note|h
|Memory type|ROM||
|Data width|32||
|Total memory size|4096 Bytes||
|Enable non-default initialization file|on|video_buffer.hex|
|Enable In-System Memory Content Editor feature|on|VMEM|
***DE2ボード [#l845db50]
-Device
--EP2C35F672C6
-Pushbutton
--常時オン状態~
押したときオフ状態~
-HEX
--High→消灯~
Low→点灯
-LCD
--LCD_ON、LCD_BLONにご注意
-VGA
|Parameter|Value|Note|h
|VGA_CLK|25.2MHz (CLOCK_27でも可?)|VGA DACチップのクロック|
|VGA_BLANK|den(VSG)|ブランク信号(H:描画 L:空白)|
|VGA_HS|hd(VSG)|垂直同期信号|
|VGA_VS|vd(VSG)|水平同期信号|
|VGA_SYNC|L(?)|同期信号|
|VGA_R|{rgb_out[7:0],0}(VSG)|赤成分信号|
|VGA_G|{rgb_out[15:8],0}(VSG)|緑成分信号|
|VGA_B|{rgb_out[23:16],0}(VSG)|青成分信号|
#br
**Software Part [#y8bddede]
-Nios II IDE を使用してのソフトウェア開発
***System Library Property [#c19ecb64]
-Support C++を選択解除(拡張子が.Cのときのみ?)
-Reduced device driversを選択
-Lightweight device driver APIを選択
***マルチプロセッサシステムの実行方法(合成後) [#ob8ebd80]
+ [Window] -> [Periferences] -> [NiosII]
+ "Allow multiple active run/debug sessions"にチェックを入れる
+ [Run] -> [Run]
+ [Nios II Hardware]
+ [Main] -> [Load JDI File]
+ [Target Connection] -> [JTAG cable] -> [Automatic]
+ [Run] -> [Nioss II Multiprocessor Collection] -> [New]
+ 作成したconfigurationにチェックを入れる
+ [Apply]
+ [Run]で実行
-詳しくはこちら
--[[チュートリアル(英語):http://www.altera.com/literature/tt/tt_nios2_multiprocessor_tutorial.pdf]]
--[[サンプルシステム:http://www.altera.com/support/examples/nios2/exm-multi-nios2-hardware.html]]
***サポート関数 [#fb4243b7]
-sys/alt_stdio.h
--[[alt_printf>#alt_printf]]
-unistd.h
--[[usleep>#usleep]]
----
-altera_avalon_pio_regs.h
>PIOを制御するのに使用
--IORD_ALTERA_AVALON_PIO_DATA
IORD_ALTERA_AVALON_PIO_DATA(base)
--IOWR_ALTERA_AVALON_PIO_DATA
IOWR_ALTERA_AVALON_PIO_DATA(base, data)
--IOWR_ALTERA_AVALON_PIO_IRQ_MASK
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data)
--IORD_ALTERA_AVALON_PIO_EDGE_CAP
IORD_ALTERA_AVALON_PIO_EDGE_CAP(base)
--IOWR_ALTERA_AVALON_PIO_EDGE_CAP
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data)
-altera_avalon_lcd_16207_regs.h
LCDを制御するのに使用
コントローラーがサポートしているLCDとDE2に搭載されているLCDは違うらしい
制御のタイミングに注意
-altera_avalon_timer_regs.h
Timerを制御するのに使用
-sys/alt_irq.h
割り込みの制御に使用
#br
-sys/alt_stdio.h
>IDE上でのデバックに使用
--&aname(alt_printf){void ''alt_printf''( const char* '''fmt''', '''...''' )};
>func:
>>printfと同じ働き
>param:
>>const char* fmt, ... printfと同じ
>retval:
>>void
#br
-alt_types.h
>変数の型などが定義されている
#br
-unistd.h
--&aname(usleep){unsigned int ''usleep''( unsigned int '''_useconds''' )};
>func:
>>'''_useconds''' ns待つ
>param:
>>_useconds 時間
>retval:
>>unsigned int
----
**リンク [#v087acd9]
-[[オンライン資料:Quartus II(日本語):http://www.altera.co.jp/literature/lit-qts.jsp]]
-[[オンライン資料:SOPC Builder(英語):http://www.altera.com/literature/lit-sop.jsp#]]
-[[Nios II & SOPC Builder 基礎編:http://www.altera.co.jp/education/training/online/ol_nios2_sopcb.html]]
-[[FPGA活用回路&サンプル記述集(3) ―― ビデオ信号処理回路:http://www.kumikomi.net/archives/2009/03/11circ3.php?page=14]]
-[[OpenCore使用時のエラー:http://marsee101.blog19.fc2.com/blog-date-20090805.html]]
***FPGAの部屋 [#cd39d5ec]
-[[Avalon-MMスレーブペリフェラル4(7セグLEDのテスト):http://marsee101.blog19.fc2.com/blog-entry-1221.html]]
-[[Avalon-MMスレーブペリフェラル1(7セグLEDの設計):http://marsee101.blog19.fc2.com/blog-entry-1213.html]]
----
*μITRON [#a82b8785]
**API [#e43d503c]
*** ena_int [#ud92a724]
-割込みの許可
**.cfg [#ze5a310a]
-IDかぶってはいけない。(関数名など)~
ただし、大文字、小文字の区別はある
ページ名: