Sim's blog

電子工作はじめてみました

8月30日(火)のつぶやき

2011-08-31 04:00:00 | Twitter
02:41 from Echofon
ラピュタを見はじめるなど
04:16 from Echofon (Re: @digikey
@digikey consumer portable electronics
05:52 from Echofon (Re: @marsee101
@marsee101 会社とかでも、お試しできないので初心者離れだけじゃないでしょうね。
07:49 from Echofon
RT @junnneko: マルツパーツ館で今販売中のENC28J60はB5(REV.5)らしい。実物で確認してもらったんだって。
10:41 from Echofon (Re: @fenrir_n
@fenrir_n 店頭は一率15%OFFと、スピーカーがいくつか入ってるのとか開店記念価格品が何種類かありました。
10:55 from Echofon
aitendoのSTM32液晶、データシート公開されてないけど、とりあえずUSBケーブルさしてみたが、仮想COMドライバが見つからなくて断念。linuxとかMacだとドライバなしでいけるのかな
16:59 from Echofon
あい、それです RT: @n24bass 「aitendoのSTM32液晶」ってこれ? http://t.co/bVDN8sE
17:18 from Echofon
試してみましたが、ドライバが見つからないというエラーでした。 RT: @jujurou ここのSTM32F103C8のドライバではだめなのでしょうか? http://p.tl/BXJ2
17:19 from Echofon
ありがとうございます。残念ながらうまくいきませんでした。 RT: @chobichan この辺のドキュメントではどうですか http://t.co/nO1EcWI > 仮想COMドライバが見つからなくて断念。
17:20 from Echofon (Re: @KKatou_midori
@KKatou_midori 何か食べましょう
17:22 from Echofon (Re: @chobichan
@chobichan USBを差した時に出るデバイスの名前が違っているのでドライバを認識しないみたいです。無理やりinfファイルを書き換えてみたら、ドライバのインストールができました。でも、ちゃんと動作しているかどうかは不明です><
17:24 from Echofon
STM32液晶はデータシートとデモコードの公開待ちってことかな。http://t.co/2z4N6ba
17:30 from Echofon (Re: @chobichan
@chobichan おもしろそうなアイテムなんですが、いかんせん情報が少なすぎます。
17:40 from Echofon
また、発言小町にこの手のネタが出ている。そんなに捨てたがる奥さん多いのか? 「妻にコレクションを捨てられました」 http://t.co/Nh2zrBn
17:54 from Echofon
2件隣にはKOTOBUKIYAも出来てますねw RT: @ssci: あれれ。ザコン館がいつのまに。
20:01 from Echofon
TLがカレログで埋まっている
20:03 from Echofon
秋月にもFPGAボード!! XILINX FPGA評価ボードSpartan-6 LX9 MicroBoard http://t.co/8o5zi4z
20:04 from Echofon
そういえばマルツの店頭でZEROPLUSのロジアナを売っているのを見かけた
20:41 from Echofon
そういやローソンでハルヒのキャンペーンをやっていた。コミックを買うとオリジナルのコミックカバーをくれるらしい
by Sim0000 on Twitter
コメント

8月29日(月)のつぶやき

2011-08-30 01:22:33 | Twitter
02:15 from Echofon
STMicroのホームページはどこに何があるかさっぱり分からん
06:23 from Echofon
BBレシオが低いということは景気は下がっているということらしい
14:41 from Echofon
Thinkpadって軽いのがもうないんだ・・・
15:48 from Echofon
ただし美少女に限る、とかはありなのかな
16:01 from Echofon
強殖装甲ガイバーって、まだやってるんだ
16:02 from Echofon
今週もお休み、訳がわからないよ
17:31 from Echofon
よりによって野田とは。菅の方がましなくらいだ。
by Sim0000 on Twitter
コメント

8月28日(日)のつぶやき

2011-08-29 01:23:26 | Twitter
01:04 from Echofon
さすが見事に解決。遂にSparkFunガイガーカウンターの不具合を解決した: がた老AVR研究所 http://t.co/5rdp5M6
01:53 from Echofon
RT @minicube: aitendo.ccのTシャツ、貰えなくても店舗で売っているので欲しい人は買えば良いよ・・・ [居間PC]
13:16 from Echofon
外は晴れている
14:03 from Echofon
aitendoのオープンだし、秋葉に行っておくかなあ。
15:41 from モバツイ / www.movatwi.jp
秋葉なう。
15:52 from モバツイ / www.movatwi.jp
日米はお休み
17:10 from モバツイ / www.movatwi.jp
aitendoでTシャツもらった
17:38 from モバツイ / www.movatwi.jp
はんだづけカフェでうだーなう。
20:43 from Echofon (Re: @suikan_blackfin
@suikan_blackfin 痛基板というと、最近はこんなところがあるみたいです。 いんすぱいあーざねくすと SOB研究所 http://t.co/uPAyOcH
20:44 from Echofon (Re: @wolf64m
@wolf64m そういえばNanolabって行ったことなかった。せっかくのチャンスだったのに><
20:47 from Echofon
aitendoは15%OFFだった。webでは在庫切れになっているSTM32搭載液晶も店頭にはあった。
20:49 from Echofon
サンハヤトのMicroSD変換基板を買ってこようと思ってたのに忘れていた。http://t.co/V8w1FO8
21:04 from Echofon (Re: @_K4ZUKI_
@_K4ZUKI_ 定休日は月曜日だそうです。
21:06 from Echofon
まどかの公式ガイドブックなんて出てるんだ。 Amazon.co.jp: 魔法少女まどか☆マギカ公式ガイドブック http://t.co/dKxGfbG
22:37 from Echofon (Re: @air_variable
@air_variable 今日秋月の店頭で見かけました。入荷したばかりだったようです。
by Sim0000 on Twitter
コメント

8月27日(土)のつぶやき

2011-08-28 01:23:14 | Twitter
02:50 from web (Re: @marsee101
とりあえず動かすにはそれが一番楽ですね @marsee101 基本的な構造はEDKやQsysで作って、アルゴリズムはHLSでとう傾向なのかな?
02:51 from Echofon
結局エヴァ見なかったな
04:00 from Echofon
食品も計測できるのか。 放射線測定器(ガイガーカウンター)RADEX RD1503: 秋月電子通商 http://t.co/CUXEWNs
04:30 from Echofon
RT @gesomaru: ふとエナメル線を観ていて、学校教材のアーテックという会社の製品をアマゾンで見つけた。ヤバすぎる。昔の学研のノリでいろいろそろっている。 --- amazon アーテック検索 http://ow.ly/6dXnT
05:08 from Echofon
見ている。ルネサス 震災からの復興 - YouTube http://t.co/JdowDA0
05:16 from Echofon
ルネサスの公式な動画だったか
08:07 from Echofon
忘れ物を取りにいかないと><
14:35 from Echofon
ずっと寝ていた。今度こそ出かける
17:36 from Echofon
床屋でさっぱりしてきた。
17:40 from Echofon
たこルカが契約しようとしている、かわいい。 RT: @q61501331: QB が おうちに やってきた http://t.co/elYGEFV
by Sim0000 on Twitter
コメント

8月26日(金)のつぶやき

2011-08-27 01:23:28 | Twitter
07:21 from Echofon
朝だ
11:16 from Echofon
CQのガイガーカウンターは、予約のみに変更になったそうだ。 ガイガー・カウンタ・パーツ・セット 近日発売 - CQキット http://t.co/DxPhPyW
by Sim0000 on Twitter
コメント

8月25日(木)のつぶやき

2011-08-26 01:23:44 | Twitter
10:50 from Echofon
25日なのでInterfaceの発売日 Interface http://t.co/kIwJxxX
14:12 from Echofon
webOS気の毒に。 iPadでは2倍高速になった『webOS』の悲劇 WIRED.jp http://t.co/Q9Opx6J
14:16 from Echofon
東芝製のルンバ、高いな。国内メーカーはどうしてルンバ関連に参入しないんだろう? 東芝が掃除ロボットに再参入、新製品「Smarbo」を発表 | 経営 | マイコミジャーナル http://t.co/vOlU32d
14:21 from Echofon
後で読む。FPGAの可能性を広げるプロセッサコア(前編) | EDN Japan http://t.co/DUAFY6P
19:02 from Echofon
CQからも出るのか。ガイガー・カウンタ・パーツ・セット 近日発売 - CQキット http://t.co/DxPhPyW
by Sim0000 on Twitter
コメント

8月24日(水)のつぶやき

2011-08-25 01:22:58 | Twitter
06:59 from Echofon
RETROF-8、8/20に完成。素晴らしい。 TTLのみでコンピュータを自作する http://t.co/4KbkFdA
19:40 from Echofon
ビデオがいっぱい。Qsys システム統合ツール: オンライン・デモ、チュートリアル、オンライン・セミナー http://t.co/0pQhXse
by Sim0000 on Twitter
コメント

8月23日(火)のつぶやき

2011-08-24 01:22:36 | Twitter
01:28 from Echofon
blogを書いた。 Qsysを使ってみた - Sim's blog http://t.co/sfcVuWr
01:51 from Echofon
今回Qsysで作ったのは2162LE/22320LE(10%)と余りまくっている。
01:53 from Echofon
SOPC Builderのときは、サブモジュールのソースがプロジェクトフォルダ内にばらまかれていたが、Qsysからは下の階層のフォルダに自動的に格納されるように変わった
02:02 from Echofon
見直してみたら、Nios IIを追加した後の画面が抜けていることに気づいたorz
02:05 from Echofon
今年の多摩川の花火大会は10/1。例年だと8/15とかそんな感じだったはず。 多摩川花火&たまがわ花火大会(世田谷&川崎)を二子玉川で楽しむ情報満載 http://t.co/mqXeTlr
03:56 from Echofon
AtmelのJTAG ICE 3。2は高くて買えなかったけど$199なら手が届くなあ。 Atmel Products - - 32-bit AVR UC3 - JTAGICE 3 http://t.co/m4pHwHi
04:18 from Echofon (Re: @digikey
@digikey Internal flash memory
22:25 from Echofon
フルメタは後回しにしてハルヒを見始めた
22:33 from Echofon
エレキジャックに秋月fanとか千石fanなんてページができている。 akifan http://t.co/JuZ3OK9
by Sim0000 on Twitter
コメント (2)

Qsysを使ってみた

2011-08-23 01:25:25 | FPGA

Qsysというのは、Alteraのシステム統合ツールの名前です(AlteraのQsysのページ)。以前あったSOPC Builderの後継となる開発ツールです。CPUやRAMを含んだシステムをFPGA上に簡単に構築できます。EclipseとCコンパイラもあってソフト開発も簡単にできます。
Qsysを使ってみたので使い方を簡単に紹介します。使った開発ツールはQuartus II 11.0sp1のweb editionです。FPGAボードはDE0 nanoを使いました。


おおまかな流れは以下のようになります

1. インストール

Quartus II ver11.0 sp1 web editionをインストールします。以前はsp1なしをインストールしないとsp1をインストールできませんでしたが、11.0からはsp1だけインストールすればいいです。また、以前はNios IIのソフトウェア開発ツールを別途インストールする必要がありましたが、これも必要なくなりました。ライセンス認証もありません。

2. Qsysを使う前にやっておくこと

Quartus IIを使った普通のFPGA開発と同じように以下を行います。
- プロジェクトの作成
- デバイスの設定
- ピン配置の設定
- SDCファイルの作成

今回は手抜きで、DE0 nanoのCD-ROMに入っているDE0_Nano_GOLDEN_TOPというプロジェクトをコピーしました。適当なフォルダを作ってDE0_Nano_GOLDEN_TOPというフォルダの中身をコピーするだけです。DE0_Nano.qpfというプロジェクトのファイルをダブルクリックすることでQuartus IIが起動します。

3. Qsysでシステムを作る

これは後述します。

4. 論理合成の前にやっておくこと

- できあがったQsysのファイルをプロジェクトに追加します。
- Qsysのモジュールを呼び出すようにメインのDE0_Nano.vを修正します。

5. 論理合成

Quartus IIの普通の論理合成を行います。

6. FPGAボードへの書き込み

できあがったDE0_Nano.sofファイルをDE0_Nanoに書き込みます。

7. ソフト開発

Nios II 11.0sp1 Software Build Tools for Eclipseを立ち上げてソフト開発します。

8. プログラムの実行

Eclipse内からプログラムを実行します。

以上になります。今回は3.を中心に書きます。


一応、今回の話はやってみたら、なんとなくできたというレベルなので間違った情報が含まれている危険性がたぶんにあります。ここは違うみたいなところはぜひとも教えてください。

3. Qsysでシステムを作る

(1) Qsysの起動

というわけで、まずはQsysの起動です。Quartus IIのツールボタンから起動できます。

(画像はクリックすると大きくなります。元の記事に戻るときはブラウザの戻るボタンで戻ってください)

(2) プロジェクト名を決める

Qsys起動直後の画面です。SOPC Builderはプロジェクト名を聞いてくるダイアログが最初に出ましたが、Qsysでは聞いてきません。プロジェクト名はモジュール名にもなるので、後で必要になります。どうやって決めるのかというと、セーブするときのファイル名がそのままプロジェクト名(= モジュール名)になります。ctrl+SもしくはFileメニューからSaveでセーブしてやると何もセーブされていない一番最初はファイル名を聞いてきます。とりあえずNiosSystemという名前でセーブしました。拡張子はqsysになるのでNiosSystem.qsysというファイルができます。

(3) システムの概要

今回作るのは、コンソールにHello, worldを表示してLEDチカチカするだけのシステムにします。RAMはDE0 Nanoに搭載されているSDRAMにして100MHzで動作させることにします。追加するコンポーネント以下の6つになります。

- Avalon ALTPLL (PLL) ... 倍速クロックとメモリ用クロック
- Nios II Processor (Processors) ... CPU
- System ID Peripheral (Peripherals → Debug and Performance) ... 必須
- JTAG UART (Interface Protocols → Serial) ... デバッグ通信用、必須
- PIO (Peripherals → Microcontroller Peripherals) ... LED用のPIO
- SDRAM Controller (Memories and Memory Controllers → SDRAM) ... RAM

クロックコンポーネントは最初から入っているので計7つになります。かっこの中はComponent Libraryのツリービューの中での位置になります。

(4) Qsysでの作業の概要

基本は画面左側のComponent Libraryから追加したいコンポーネントをダブルクリックしてシステムに追加し、パラメータを決めていきます。パラメータはコンポーネントそのもののダイアログで決めるものの他に以下が必要になります。

- Connection クロックやリセット、バスとの接続を決めます
- Name コンポーネントの名前を決めます。
- Export 外部信号の名前を決めます。これはQsysのモジュール(今回はNiosSystem)のパラメータに反映されます。
- Base cpuから制御するためのメモリマップドI/Oのアドレスを決めます。

SOPC Builderだと、ConnectionやBaseはデフォルトの動作である程度自動入力してくれていましたが、Qsysは全部手動で入力する必要があります。

(5) コンポーネントの追加 ALTPLL

Component LibraryのツリービューからPLL→Avalon ALTPLLを追加します(ダブルクリックもしくは+Add...ボタン)。

ALTPLLのダイアログが表示されます。

page 1/11では、speed gradeを6に、入力クロックを50MHzにします。


page 6/11ではPLLの出力クロックc0の倍率を2倍にします(入力は50MHzなので100MHz)


page 7/11では、Use this clockのラジオボタンをチェックして出力クロックc1を有効にします。それからc1の倍率を2倍にして位相(Clock phase shift)を-60度にします。

この-60度というのは、DE0のサンプルプロジェクトが-60度だったので、それにあわせました。全く根拠はありません。たまたま動いているのでこの値にしていますが、本当はちゃんと決めなければいけないはずです。残念なことに決め方はさっぱり分かりません。

ダイアログ内の設定は以上なのでFinishボタンを押して完了します。

c0はシステム全体のクロック、c1はSDRAM専用のクロックです。

ALTPLLを登録した直後のQsysの画面です。

Errorが2つとWarningが4つ出ています。ConnectionsとExportを決めてErrorとWarningを減らします。BaseはまだCPUがいないので入力できません。後で入力します(というか、最初にCPUを追加すればよかったと少し反省)

- clk_0コンポーネントのclk出力をinclk_interfaceに接続(Connectionsのあたりにマウスを持っていくと接続の絵が出るので白丸をクリックして黒丸に変えます)
- clk_0コンポーネントのclk_reset出力をinclk_interface_resetに接続
- altpll_0_c1のExport名を決定(シングルクリックで候補名が出るので必要なら修正してEnterを押します。今回は修正していません)
- 同じくareset_conduitのExport名を決定
- 同じくlocked_conduitのExport名を決定
- 同じくphasedone_conduintのExport名を決定

編集中の画面です。Connectionsのあたりにマウスカーソルを持っていくと表示される接続の図です。白丸をクリックして黒丸に変えます。また、Export名も決めています。


以上が完了したときのQsysの画面です。

警告が1つに減っています。ALTPLLのAvalon-SlaveをAvalon-MM masterにつないでいないという警告が出ています。CPU(マスター)がまだいないので、この警告は後で消します。

※Qsysはすべてのエラーと警告を消すようにしてください。消さないと大抵動作しません。

(6) コンポーネントの追加 Nios II Processor

Component LibraryのProcessorsにあるNios IIを追加します。

コンポーネント専用ダイアログでは、Nios II CoreをNioss II/eを選択します。ここで間違ってNios II/sやNios II/fを選ぶと、時間制限付きのコアになってしまって後が面倒です。また、後でNios II/eに戻しても時間制限付きのまま元に戻せなくなるので注意が必要です。

エラーが出ていますが、ここでは消せないのでFinishを押してダイアログを終了します。
Qsysの画面で(5)と同じようにConnectionsをつなぎます。

- nios2_qsys_0のclkをalt_pll_0のc0に接続します
- nios2_qsys_0のreset_nをclk_0のclk_resetに接続します
- altpll_0のpll_slaveをnios2_qsys_0のdata_masterに接続します((5)でつなげていなかったのでここで接続)。

6個のエラーと1つの警告が4個のエラーと警告なしになります。リセットベクターと例外ベクターを設定していないというエラーは、まだメモリがないので消せません。

各コンポーネントのほにゃ_slave(たとえばpll_slave)はnios2のdata_masterにつなぎます。resetはclk0のclk_resetにつなぎます。clkはaltpll_0のc0につなぎます。

(7) コンポーネントの追加 System ID Peripheral

Componet LibraryのPeripherals → Debug and PerformanceからSystem ID Peripheralを追加します。
Connectionsは以下の3つです。

- clkをalt_pll_0のc0に接続します
- resetをclk_0のclk_resetに接続します
- control_slaveをnios2_qsys_0のdata_masterに接続します

今回は、Connectionsの他にBaseも決めなければいけません。メモリマップドI/Oの番地がaltpll_0と重なっているからです。altpll_0が0x00000000~0x0000000fを占有しているので0x00000010ということにしました。変更はBaseの0x00000000の所をダブルクリックして編集します。

編集後の画面です。


(8) コンポーネントの追加 JTAG UART

Componet LibraryのInterface Protocols → SerialからJTAG UARTを追加します。
Connectionsは以下の3つです(System IDと一緒です)。

- clkをalt_pll_0のc0に接続します
- resetをclk_0のclk_resetに接続します
- control_slaveをnios2_qsys_0のdata_masterに接続します

Baseは重ならないように0x00000020にしました。

編集後の画面です。


(9) コンポーネントの追加 PIO

専用ダイアログではビット長や入出力を選択できます。デフォルトでは8ビット出力なのでそのままFinishします。
Componet LibraryのPeripherals → Microcontroller PeripheralsからPIO (Parallel I/O)を追加します。
Connectionsは以下の3つです。

- clkをalt_pll_0のc0に接続します
- resetをclk_0のclk_resetに接続します
- s1をnios2_qsys_0のdata_masterに接続します

Baseは重ならないように0x00000030にしました。
Exportで出力ポートを指定してやります。

編集後の画面です。


(10) コンポーネントの追加 SDRAM Controller

Componet LibraryのMemories and Memory Controllers → SDRAMからSRAM Controllerを追加します。

専用ダイアログでは、SDRAMのパラメータを設定します。

- PresetsはCustom
- データ幅は16bit
- Rowアドレスビットは13bit
- Columnアドレスビットは9bit



2ページ目ではタイミングの設定をしますが、今回は何もしなくてもそのまま動きました。本当はデータシートをちゃんと見て設定しなければいけません。

Connectionsは以下の4つです。

- clkをalt_pll_0のc0に接続します
- resetをclk_0のclk_resetに接続します
- s1をnios2_qsys_0のdata_masterに接続します
- s1をnios2_qsys_0のinstruction_masterに接続します(他と違う点です)。

Nios IIは命令(instruction)をSDRAMからfetchするので、instruction_masterにも接続してやる必要があります。他のペリフェラルからは命令を読み込まないのでinstruction_masterに接続する必要はありません。

Baseは0x02000000にしました。
Exportで出力ポートを指定してやります。

ようやっとメモリができたので、Nios IIのリセットベクタと例外ベクタを設定することでエラーを消してやります。


編集後の画面です。

エラーも消えています。
以上でコンポーネントの追加はおしまいです。

(11) システムの生成

まずは今までの結果をセーブしておきます(ctrl+S等)。
システムの生成はGenerationタブでGenerateボタンを押します。


システム生成中はダイアログが出ます。
問題がなければ以下のような画面になるはずです。

Warningが2つでています。このWarningの消し方はまだ分かっていません。ご存知の方は教えていただけるとありがたいです。

Warning: system: "No matching role found for jtag_uart_0:avalon_jtag_slave:dataavailable (dataavailable)"
Warning: system: "No matching role found for jtag_uart_0:avalon_jtag_slave:readyfordata (readyfordata)"


以上でQsysでシステムを作ることができました。

コンポーネントの名前の変更ですが、名前の場所をクリックしてからF2キーを押して編集します。


4. 論理合成の前にやっておくこと

まずは、できあがったQsysのファイルをプロジェクトに追加します。Settings(Assignmentメニュー→SettingsもしくはツールバーのSettingsボタン)のFiles Category(左側のペインの上から2番目)でNiosSystem.qsysを追加します(今回はNiosSystem.qsysというファイル名でセーブしました)。ついでにDE0_Nano.vも追加しておきます。


次にQsysのモジュールを呼び出すようにメインのDE0_Nano.vを修正します。QsysのHDL ExampleというタブにQsysのモジュールの呼び出し例ができています。

CopyボタンでクリップボードにコピーしてDE0_Nano.vに貼り付けてから修正します。以下が修正結果です。

//=======================================================
//  Structural coding
//=======================================================

    NiosSystem u0 (
        .clk_clk                           (CLOCK_50),   //                        clk.clk
        .reset_reset_n                     (KEY[0]),     //                      reset.reset_n
        .altpll_0_areset_conduit_export    (1'b0),       //    altpll_0_areset_conduit.export
        .altpll_0_locked_conduit_export    (),           //    altpll_0_locked_conduit.export
        .altpll_0_phasedone_conduit_export (),           // altpll_0_phasedone_conduit.export
        .altpll_0_c1_clk                   (DRAM_CLK),   //                altpll_0_c1.clk
        .pio_0_external_connection_export  (LED),        //  pio_0_external_connection.export
        .sdram_0_wire_addr                 (DRAM_ADDR),  //               sdram_0_wire.addr
        .sdram_0_wire_ba                   (DRAM_BA),    //                           .ba
        .sdram_0_wire_cas_n                (DRAM_CAS_N), //                           .cas_n
        .sdram_0_wire_cke                  (DRAM_CKE),   //                           .cke
        .sdram_0_wire_cs_n                 (DRAM_CS_N),  //                           .cs_n
        .sdram_0_wire_dq                   (DRAM_DQ),    //                           .dq
        .sdram_0_wire_dqm                  (DRAM_DQM),   //                           .dqm
        .sdram_0_wire_ras_n                (DRAM_RAS_N), //                           .ras_n
        .sdram_0_wire_we_n                 (DRAM_WE_N)   //                           .we_n
    );


以上で論理合成前にやっておくことは完了です。後は論理合成してから、できあがったDE0_Nano.sofをDE0 Nanoに書き込んでやります。

一つ注意点としてはsofファイルを書き込んだ後でprogrammerを終了しておかないと、programmerがUSB Blasterをつかんだままになって、Nios II Software Build Tools for EclipseがUSB Blasterを見つけられなくなることです。programmerは書き込みが終わったら終了しておきましょう。

7. ソフト開発

Nios II Software Build Tools for Eclipseを立ち上げます。起動はいくつかの方法があります。windowsのスタートメニュー、インストール時に作られるテスクトップのショートカット、Quartus IIのToolsメニュー、QsysのToolsメニュー等から起動できます。

Eclipseなので最初はworkspaceの場所を聞いてきます。場所は、今回のプロジェクトの一階層下にworkspaceというフォルダを掘って、そこにしました。9.0の頃はプロジェクトのフォルダそのものにすることもできましたが、10.0以降は一階層下にフォルダを作らなければいけなくなりました。

Fileメニュー → New → Nios II Application and BSP from Templateを選ぶと次のダイアログが表示されます。

- SOPC Information File Name欄。自分のプロジェクトフォルダにできているNiosSystem.sopicinfoを選びます
- CPU nameはsopcinfoファイルから読み取られて自動で入力されます。
- Project nameは今回はHelloSmallにしました。
- TemplateはHello World Smallにしました。

このまま実行すればHello from Nios II!というメッセージが見れます。今回はLEDチカチカもするのでソース(hello_world_small.cを修正します。


#include <stdint.h>
#include "sys/alt_stdio.h"
#include "system.h"

#define led (*(uint8_t *)PIO_0_BASE)

int main()
{
volatile uint32_t t;
alt_putstr("Hello from Nios II!\n");
led = 0x00;

while (1){
for(t = 0; t < 20000; t++) ;
led++;
}
return 0;
}


修正したらctrl+Sでファイルをセーブしておきます。

pio_0のI/OアドレスはQsysでは0x30番地にしました。system.hの中ではPIO_0_BASEが0x30で#defineされています。Qsysの中でモジュール名をpio_0でなくたとえばLEDとかにしておくとsystem.hの定義もPIO_0_BASEでなくLED_BASEという名前になります。PIO関連はソフト使用時にも影響があるので、ちゃんと名前を定義しておく方がいいです。


8. プログラムの実行

EclipseのProject Explorerでプロジェクト名(今回はHelloSmall)をクリックして灰色にしてから、Runボタンを押すとRun Asダイアログが表示されます。

Nios II Hardwareを選んでからOKを押すと実行開始です。


初めての実行のときや何かエラーがあるときはRun Configurationの画面が出ることがあります。Target ConnectionのタブでRefresh Connectionsのボタンを押すとエラーが取れて通信可能になる場合があります。Refresh Connectionsボタンは、FPGAボードに書き込まれているNios IIのシステムと通信してSystem IDの照合を行います。
何らかの理由でシステムが死んでいたり、programmerがJTAGをつかんでいて通信できなかったりといったときはRefresh Connectionsボタンを押しても復活しません。
また、Qsysでシステムの修正を行ってGenerateをやり直すとタイムスタンプが一致しなくなるのでRefresh Connectionsでエラーが出ます。この場合はGenerate BSPを行ってBSPを作り直してやると直ります。Generate BSPはBSP Editorの中や、Project Explorerのbspプロジェクト名を右クリックして出るメニューのNios IIにあります。BSP EditorはNios IIメニュー等にあります。


というわけで、やたら長い記事になってしまいました。間違いや、ここはこうした方がいい等コメントを頂けるとありがたいです。特にSDRAMに関してはデータシートもろくに見ずにやってみたらたまたま動いているという状況なので、ちゃんとしたパラメータはこうだ、というのを教えていただけるとありがたいです。

コメント (10)   トラックバック (1)

8月22日(月)のつぶやき

2011-08-23 01:21:47 | Twitter
13:42 from Tweet Button
Sim0000に対する抗議デモに6859人が集まりました。参加者の声→「自分語りやめろ!」「リプライ返せ!」「ちゃんとう○こ流せ!」 http://t.co/NX5SGjS シクシク
14:06 from Echofon
フジテレビの件に絡めれば報道されないということを利用して何かできないだろうかw
14:07 from Echofon
結局10連休になってしまった・・・
14:34 from Echofon (Re: @junnneko
@junnneko 節電の影響らしいです
17:37 from Echofon
ぐらぐら?
17:38 from Echofon
RT @handazukecafe: 【報告】はんだづけカフェにウダーが来たよ!いつでも触って鳴らせるよ! http://t.co/u4W6TyI #はんだづけカフェ http://t.co/qJrM1mJ
17:40 from Echofon
うはっ、今日入荷したばっかりなのにw RT: @chobichan: XBee Wi-Fi 開発キット完売かぁ。 http://t.co/wpX5Vll プレミアムを付けて売っぱらうなら今だな。
18:09 from Echofon
痛板.COMって、ワラタ。いんすぱいあーざねくすと SOB研究所 http://t.co/21FKsIj
18:39 from Echofon
これ最強だな。こわいw 【ネット怖い】抗議デモを批判したフジテレビ社員に対する鬼女の追い込みが尋常じゃないと話題に : はちま起稿 http://t.co/evxTJ4n
23:37 from Echofon
goo blog、いつのまにか20000文字/記事になっている。以前は10000文字だった。
by Sim0000 on Twitter
コメント

8月21日(日)のつぶやき

2011-08-22 01:22:59 | Twitter
02:01 from Echofon
のどと頭が痛くてずっと寝ていた・・・
13:12 from Echofon
エミュレータみたい。だって、こっちのほうが面白いんだもん:ARMを載せたAndroidで“DOSゲーム”が復活する! ITmedia +D PC USER http://t.co/D59BxXQ
13:14 from Echofon
RT @witch_kazumin: 昨日のJAG横浜支部ロボ部の飲み会でサンハヤトのシール基板 http://t.co/YgcjWeA の話をしたのだけど、今、製品名の検索中に銅箔テープそのもので回路作る手法をみつけたw > プリント回路基板の簡単製作手順 http: ...
13:30 from Echofon
フジテレビデモ決行したんだ
14:15 from Echofon
RT @kamosawa: 主体性のある子が自分の興味や関心に応じて学ぼうとするのを妨害されている、という問題を軽視しているから教育公務員は現状肯定論者になる。駄目な子を引っぱり上げるのは貴くて重要な行為だけど、それだけを目標に「全教師が一丸となって頑張」られてはたまらない。
14:45 from Echofon
ある意味弱点なんだけどMSはどうするつもりなんだろう。『ARM』アーキテクチャ対応が進む『Linux』 - japan.internet.com http://t.co/vTvbxgW
14:47 from Echofon
あまり作ってほしくないような気もする・・・複雑な気分。新『ブレードランナー』、リドリー・スコット監督の手で復活 - MovieWalker http://t.co/hP2eedU
15:05 from Echofon
ウゴウゴルーガなつかしいな
15:09 from Echofon
欲しくなってくる。無駄な節電努力にNO、節電効果は目で見よう!、アキバで買える電力計4機種を比べてみた http://t.co/6ZPfF5T
15:20 from Echofon
飯を食いにいく
16:18 from Echofon
うちの近所は神輿をやっている
16:26 from Echofon
Qsysで遊ぶ
16:51 from Echofon
TV局に圧力をかけるなら、総務省でデモした方が効果的ではないだろうか。
by Sim0000 on Twitter
コメント

8月20日(土)のつぶやき

2011-08-21 01:22:13 | Twitter
03:00 from Tweet Button
Sim0000がツイッターで秘密にしていること 「 実 は ア ホ 」 http://t.co/Nvx3m58 わわ、ばれてもーたがなw アホちゃいまんで~
08:51 from Echofon
はらへ
09:27 from Echofon
ひさびさに吉野家の朝定食を食べた
10:14 from Echofon
ひどい RT: @kakocom: 福島、疎開求める子供に対する回答が酷いらしい。子供を使うのもあれだけど、答える方が酷いな …… 福島の子供が疎開求め政府と交渉―マイク押し付け合い回答避ける官僚たちのお粗末 http://t.co/D0ASt0N
by Sim0000 on Twitter
コメント

8月19日(金)のつぶやき

2011-08-20 01:22:39 | Twitter
00:34 from Echofon
こんなのが始まっている。なのぼ~ど V1.1 頒布はじめました ? ちっちゃいものくらぶ http://t.co/yMo1tga
00:50 from Echofon
今の日本だと放射線計測機能付携帯を出せば大ヒットになるんだろうなとかつぶやいてみるテストw
01:09 from Echofon
昔のマイコンとかのデータシートがダウンロードできる。http://t.co/x0taM6V
02:07 from Echofon
aitendo、東京都千代田区外神田3-6-11小桧山ビル1Fって前の場所の2軒くらい隣ってこと?
02:09 from Echofon
いや、前と同じ場所ってことかw
02:11 from Echofon (Re: @Liquid_Fenrir
@Liquid_Fenrir ですね。前と同じ場所w 最近見に行ったときは後の店もはいってなくて閉店のときのままでした。
02:13 from Echofon
そういえばSTM32搭載の液晶ボード在庫切れのままだ。 いや入荷したけど切れたのかな。 TFT - 高速1.77インチ液晶モジュール(128x160,SPI) http://t.co/tbpafWY
02:15 from Echofon (Re: @Liquid_Fenrir
@Liquid_Fenrir たしかに。あ、もしかすると地震の被害があったのかも
02:22 from Echofon
改訂版が出ている。作りながら学ぶコンピュータアーキテクチャ: 天野 英晴, 西村 克信: 本 http://t.co/h8z2YJb
02:33 from Echofon
ゲルマニウムラジオになってるw RT: @mkn: 気が動転してレシートのウラに落書きしました aitendo.cc http://t.co/dnlUvrL
04:22 from Echofon (Re: @digikey
@digikey biochip
06:50 from Echofon
すきやで朝飯を食べた
06:50 from Echofon
RT @gomisai: ブログを更新したかも? 回路シミュレータLTspiceで学ぶ電子回路 http://t.co/FzGnL14
11:33 from Echofon
なんか外が薄暗い
11:57 from Echofon
久々にエジソンプラザでも行こうかと思ってたけど、この天気なので中止。昼寝タイムに突入w
17:05 from Echofon
今朝のdigikeyの問題はこの電子タトゥーのことだったのか。日本からだと答えるのが難しい問題だったかも。 日々是遊戯:皮膚に貼るだけで使える「電子タトゥー」が開発される。ゲームや医療分野への活用も - ねとらぼ http://t.co/BCpVI48
17:17 from Echofon
RT @robo8080: 面白そう。iOSデバイスをフライトデッキに挟んで装着し、イヤホンジャック経由で接続… --- 米グリフィン、iPhoneやiPadで操縦する小型ヘリコプター?- MSN トピックス http://t.co/5vb5vWT
18:03 from Echofon
人によって、10進数で4倍な人と256倍な人がいる #タイトルを100倍にすると盛り上がる
18:18 from Echofon
crypto 2011のrump sessionで発表された。 RT: @plus7: AESの件の日本語ソースをとりあえず: http://t.co/dF3EMPY
18:20 from Echofon
2^128の計算量が2^126.1に減らすことができたということらしい。現実にはほとんど影響しない
18:33 from Echofon
高校野球の決勝は青森対東京ということらしい。 asahi.com(朝日新聞社):高校野球決勝は光星学院―日大三 青森勢進出42年ぶり - スポーツ http://t.co/7WbObV0
21:28 from web
RT @5tr31ka: 今の状況にすごく被ってるなぁと思いながら読んでた 「昭和恐慌 - Wikipedia」 http://t.co/Pa2WdWS
by Sim0000 on Twitter
コメント

8月18日(木)のつぶやき

2011-08-19 01:21:59 | Twitter
00:14 from web
RT @Liquid_Fenrir: 無名関数さんいらっしゃい!うへへへへ #mycomj http://j.mp/qfJbCc C++0x、満場一致でISO国際標準へ
00:23 from Echofon (Re: @duo6750
@duo6750 C++0x決まっちゃったみたいですね。 C++0x、満場一致でISO国際標準へ http://t.co/uGy4HJq
00:35 from Echofon (Re: @0tuzak
@0tuzak ブログ記事へのコメントありがとうございます。この前からぶつぶつ言っていた件はこの話でした。この話の裏づけを取ろうと思って色々調べていましたがうまく見つかっていません><
00:36 from Echofon
あはは、それは大変だ。やり直し決議を要求する~w ちゃんとした処理系が入手できるのはまだ先なんでしょうね。 RT: @duo6750: え”~! 決まっちゃったの? 満場一致!?!?私は賛成しなかったのに変だなぁ~。
00:45 from Echofon (Re: @0tuzak
@0tuzak ブロッキング代入ならラッチ防止には効果あるでしょうね。ご指摘の通り、ソースの難易度があがる側面が大きいので積極的な使用は避けるべきかもしれません。もっと安全に似たようなことを書けるような文法だったらうれしかったのですが・・・
01:40 from Echofon
このまま最後までいったら悟りがえられそうですw RT: @ytsuboi: チップ抵抗を一気に50個付けて幸せな気持ちになってきた(^^) http://t.co/BbBiSHE
01:43 from Echofon
firefox、3.6.19からアップデートしたら3.6.20になったw
03:33 from Echofon
なるほど、オープニングは最終回への壮大な伏線だったか。
03:53 from Echofon
マゾいw マゾ向け電波時計2 http://t.co/E9ffNNV
17:14 from Echofon
これはすごく同感 RT: @Tamiful07: なんで太陽光の利用効率を上げる研究より現状の効率の悪い太陽光発電に金つぎ込もうとすんのかね
17:18 from Echofon
RT @0666444555: 【デジット 入荷情報】Avnet Spartan-6 LX9 MicroBoardが入荷!ザイリンクスのソフトプロセッサコア「MicroBlaze」をSpartan-6環境で評価することが可能です。販売価格¥8380- http://t.c ...
17:20 from Tweet Button
【Sim0000株式会社】主な仕事:怪しい占い 従業員数:90人 平社員の給料:74万円 備考:馬鹿は帰れ! http://t.co/LoZU5rm この給料なら転職しようかなw
17:22 from Echofon
脳みそがブルースクリーン
17:22 from Echofon
これもマゾいw RT: @air_variable: コレに匹敵 http://t.co/InwA3we RT @Sim0000: マゾいw マゾ向け電波時計2 http://t.co/PQYJM9V
17:39 from Echofon
あはは、首がw 魔法少女まどか☆シャルロッテ「コネクト」 - YouTube http://t.co/Y6Om80u
17:45 from Echofon (Re: @ytsuboi
@ytsuboi Maid by Akihabaraなんてのもw
18:35 from Echofon
鷲津マージャンってまだ決着ついてなかったのか。いつからやってるか分からないけど10年は越えてそうだ
19:18 from Tweet Button
関東地方北部、18日夜に非常に激しい雨の恐れ : 社会 : YOMIURI ONLINE(読売新聞) http://t.co/okVImVm via @yomiuri_online
by Sim0000 on Twitter
コメント

8月17日(水)のつぶやき

2011-08-18 01:20:59 | Twitter
01:37 from Echofon (Re: @Ohki
@Ohki x^2-x-1=0の解なので2個しかないはずです。
05:52 from Echofon
久しぶりに鯨を見た
09:59 from web (Re: @duo6750
@duo6750 普通に[4]のような気がします
12:42 from Echofon
まだ休みのところ多いし
12:45 from Echofon
HD63C09Eがオクに出てる
13:03 from モバツイ / www.movatwi.jp
ローソンがエヴァンゲリオンのキャンペーンやってる
13:32 from Echofon (Re: @_K4ZUKI_
@_K4ZUKI_ 2個で1000円でした。
13:38 from Echofon
9連休のちょうど真ん中。とりあえずしていることは「らきすた」というアニメを見ることくらい。
13:39 from Echofon
TLを眺めていてナスターシャ・キンスキーという人名がふと浮かんだ。覚えてたら後でぐぐる
13:46 from Echofon (Re: @_K4ZUKI_
@_K4ZUKI_ あう、すみませんフルメタル・パニックわからないです。今度調べてみます。キューブリック監督のベトナム戦争映画なら知ってるんですが・・・ってフルメタル・ジャケットですね><
13:47 from Echofon (Re: @chobichan
@chobichan さっそく、ぐぐってみたら、えらいべっぴんさんです。
13:48 from Echofon (Re: @sentoki
@sentoki あれって人を救助するゲームだったんですね。撃ち殺して遊んでました><
13:50 from Echofon
人が列を作って歩いていて、勝手に落ちて死んじゃうのを、プレイヤーが救助するというゲームのことを思い出したけど、なんだったっけなあ
13:53 from Echofon
島の上で人が村とか勝手に作ってて、自分は地震とか雷をおこして敵方を全滅するゲームを思い出した。やたら面数があった気がする。
13:56 from Echofon (Re: @hsgw
おおっ、それです。またやってみたいかも。レミングス - YouTube http://t.co/drGAIKV RT: @hsgw レミングスですか?
14:00 from Echofon
ですです。なんか昔のゲームが無性に遊びたくなってきました。Populous into (pc98) - YouTube http://t.co/dvhoJrG RT: @natsutan ポピュラス?
14:06 from Echofon (Re: @knives_ichimi
@knives_ichimi @oono_n @natsutan ありがとうございます。タイトルさえ分かれば色々と情報がネットで拾えますね。
14:08 from Echofon (Re: @_K4ZUKI_
@_K4ZUKI_ とりあえず、らきすたを見終わって次に見ることにします。ありがとうございます。
14:13 from Echofon
ブラウザで遊べるレミングスを発見。 DHTML Lemmings™ by crisp - Menu http://t.co/qBv56PX
14:21 from Echofon
RT @p_ban: 8月19日出荷予定の「J304ガイガーカウンターキット」100台は8月15日の午前中に完売されました。現在ご注文いただく場合、納期は8月末となります。http://t.co/nbiTsmF 8月末出荷予定のキットも100台となります。
17:33 from Echofon
RT @handazukecafe: 【お知らせ】はんだづけカフェの夏休みが終わりました、今日から再開です!あわせて無料ワークショップ「手作り 紙コップスピーカー」 http://t.co/hjyu4TF も宜しくお願いします。
21:37 from Echofon
久々にブログを書いた。verilogのノンブロッキング代入 - Sim's blog http://t.co/HhZpQQo
21:40 from Echofon
gooブログはソースを貼るのには向いていない><
22:22 from Echofon (Re: @duo6750
@duo6750 verilogだと{a, b} <= {b, a};みたいな感じで、1行で書けたりします^^ たしかLuaという言語には複数代入構文があって、交換が1行で書けたはずです。
by Sim0000 on Twitter
コメント (2)