昨日は恒例の年末スキーに
ハンターマウンテン塩原スキー場 に行ってきました。
今回は北関東道を使ってみました。真岡ICから東北道の西那須野塩原ICまで乗ってきました。結構遠いです。時間は早いのですが、北関東道が結構、東京に近いほうに曲がってつながっているために距離を走ってしまいます。いつものように矢板から乗ったほうが良さそうです。
8時30分ころ到着して、スキーを始めました。多分、一昨日まで雪が降っていたのでしょう、コンディションは良かったです。下の娘も急斜面を上手に降りられるようになったので、楽しく滑っていました。そうしたら、このスキー場は人工雪なのでバーンが硬いからでしょうか、スノーボーダーにぶつかられてしまいました。
最初に小学4年生の娘が後ろからスノーボーダー突っ込まれ、派手に転倒しました。その時はわからないでスノーボーダーを返しましたが、後にストックがエッジで深く傷ついて曲がっていて、戻したらストックが折れてしまいました。まだストックでよかったですが、これが娘の足にエッジが当たっていたらと思うとぞっとします。残念ですが弁償はさせることは出来ませんでした。
次には高校生の娘が滑っていたら、左後ろからスノーボーダーが猛スピードで来て、衝突しました。娘は私の目の前で吹っ飛びました。幸い、大きな怪我はなかったですが、骨折してもまったくおかしくないほどの激しい衝突でした。娘はショックを受けてしまい、あとはあまり滑らずに家に帰りました。
1人目はバーンが硬くてエッジが効かずにぶつかってきた感じでしたが、2人目は来た方向に段差があったので、ジャンプしようとしてきたのかもしれません。たぶん気が付いてジャンプやめたんだと思いますが、ジャンプしていたら娘の頭にボードがあたった可能性もあります。そう思うと本当に怖い。私の目の前で吹っ飛んだので、私も心の衝撃が大きかったです。初心者ボーダーと無謀ボーダーが本当に多いですね。
スキーは楽しかったのですが、思わぬところで2回もミソが付いて帰ってきました。
夕食は地元に帰ってから
下妻のドラゴン の焙りチャーシューメンを食べてきました。背脂が浮いているのにしつこくありません。焙ったチャーシューが美味しかったですが、沢山食べると少々しつこかったです。でも、美味しいラーメンでした。煮卵も美味しかったです。
2008年12月31日 05:58 |
日記
| トラックバック:0
| コメント:2
まずは、FPGAの部屋通算80万アクセスを達成した。皆様、ありがとうございます。
今年1年を振り返ってみると、
1月
・PCI-X+SDRAMでホストからPCI-XボードのSDRAMにアクセスできた。早くプロジェクトを進めないと。。。
・FPGAの部屋のYahooグループを作った。
・Suzaku-VでDDR2 SDRAMコントローラを作ることにした。シミュレーションはOK。インプリメントで動作周波数を満たさなかった。
2月
・Suzaku-VでDDR2 SDRAMコントローラの動作周波数を満たすようにいろいろやった。
・たけとんぼもつくったな~。
3月
・Verilog HDLシミュレータVeritakがNotepad++に対応。これは凄く良かった。反響もあったし。。。
・たっくさんのおかげで、Verilog版DDR SDRAMコントローラ (Spartan3E Stater Kit) のバグが解消した。たっくさん、本当にありがとうございました。
・Verilog版DDR SDRAMコントローラ (Spartan3E Stater Kit) のランダム値を使って、バースト転送の場合のシミュレーションをした。
・蔵王にスキーに行きました。本当にいい天気だった。
・ISE10.1iが出た。
・Chipscope のチュートリアルを書いた。
4月
・Virtex5 FXTが発表された。
・福岡堰に花見に行った。やはりさくらがきれい。
・上の娘の高校入学。
・50万アクセス達成
・MakeブログのMake Tokyo Meeting
・Doxygen を使ってみた。
5月
・DQの最適な遅延値を測定するDDR2 SDRAMコントローラをやってみたが、うまくいっていない。このころはリードデータを内部クロックで受けていた。
6月
・DQSをクロックとしてDQのリードデータを受けるDDR2 SDRAMコントローラにやっと取り掛かる。
・高校の文化祭
7月
・プロバイダをYahooBBに変更。
・パソコンをリプレース。速くなって快適になった。
・DDR2 SDRAMコントローラにOSERDESとISERDESを使用。
・Trac Lightningをインストール
・Suzaku-VのDDR2 SDRAMコントローラがシングル転送では動いた。やはりDQSをクロックとして受けると大丈夫そう。。。
8月
・那珂湊のおさかな市場に行ってきました。
・AVNET社のSpartan3A Evaluation Kitが届いた。最近、まったくいじっていない。。。
・Suzaku-VのDDR2 SDRAMコントローラはバースト転送では動かなかった。残念。。。
・Veritakでのシミュレーションやり方(SuzakuV DDR2 SDRAMテスト回路を使用)
・そういえば、物凄い豪雨があった。
・夏休み最後の日にディズニーランドに行った。もうディズニーランドは行かなくてもいいかも?もう飽きた。1年に1回は行っているので、25回以上は行っている。
9月
・常総市(水海道)の花火大会、きれいだった。
・Google Chromeでひどい目にあう。復元ポイントのお世話になった。
・ちゃんと動作したDDR SDRAMモジュールを使って何かやるために、プロセッサのDDR SDRAMコントローラとして使うことを考えた。とりあえずMico32 やPlasma でやってみた。
10月
・soc-lm32 というMico32のプロジェクトを試してみたら、有望そうなので、やってみた。いろいろ落とし穴があったが、段々と解決していった。
・お手軽なTortoiseSVNの使い方
・トラ技9月号の付属テスタ基板がやっと完成した。
・うちの奥さんと夫婦で第27回 IBARAKI ウォークフェスティバルで筑波山のふもとを歩いてきました。結構歩くのも楽しかった。。
・VHDLでのブロックRAMや分散RAMの初期化(外部データファイル)。これでうまく行くんだったらRAMB16をプリミティブでインスタンスする必要がなかった。もっと早く知っていれば。。。
・soc-lm32 でuClinuxを動かそうとして画策する。
・手作り家具教室に行き始める。家具作りにはまり始めている。今日も、クランプとダボ作りドリル刃、作業台用2X4材木を買ってしまった。
・Veritak Version 3.51B にドラック&ドロップ拡大機能。これは凄く便利。
・下妻ジャスコ、リニューアル開店。
・自作のDDR SDRAMコントローラで命令が実行できた。OK。。。うれしい。
・Linuxを使うためにVMware 2.0 をインストール
11月
・VMware 2.0 でUbuntuをインストール。結局、これが一番使いやすい。
・宗次郎のオカリナを鑑賞した。
・Mico32のuClinuxをSpartan3E Starter kit で、動かそうとしたが、なかなか動かない。
・Make: Tokyo Meeting 02に行ってきた。面白かった。また行きたい。
・娘の絵が茨城県小・中学校美術展覧会に入選した!
・EDKのテストのために、EDK10.1をインストール。
12月
・新しいプリンタ・スキャナの複合機を買いました。キャノンのMP980。やはり良いです。
・いろいろEDKを試してみた。
・ISEからEDKを使った。
・MicroBlaze uClinux and Spartan-3E Starter Kitを参考に、uClinuxをEDKで動作させようとしたが、うまく行かなくてとりあえず休止。
・そして、えーという出来事が。。。最後に待っていた。これは秘密。。。年末、年始は忙しい。
こう見ていくと、今年もいろんなことがあった。皆さん、FPGAの部屋を見ていただいてありがとうございます。少し早いですが、来年もよろしくお願いします。来年はオフ会でもしたいですね。
どなたか幹事さんのなり手がありますかね?どうも都内は良くわかりません。。。
2008年12月28日 20:30 |
その他のFPGAの話題
| トラックバック:0
| コメント:6
昨日は大掃除をした。
上の娘は友達と一緒にディズニーシーに行っちゃったので、(私が6時30分に送っていたのだった、結局夜9時に迎えにいく羽目になったし。。。タクシー代わり。。。家が田舎なのでしょうがないけど。。。)下の娘と息子でやった。奥さんは仕事。
私が掃除機をかけ、息子に雑巾がけをさせて、私がワックスを塗布。下の娘には窓ガラスを拭いてもらった。家の窓は2重ガラスなので、(本当に窓サッシが2枚ある。今は2重ガラスなのだろうけど。。。)窓拭きの手間が2倍なのだ。
途中で2階の奥さんのテレビ鑑賞室となっている寝室のエアコンの工事が入ったりして、結構忙しい1日だった。
大体家の中のワックスは塗れて、窓もきれいになった。この前家の外側の窓はきれいにしたし、これで家の中は大体終了か。あまりきれいにはなってないが、ワックスが塗れただけ良かった。ちなみに息子の時給は500円ということになっていて、すでに前借してWiiのポケモン対戦のゲームを買ってあるのだ。後、2,000円分の仕事が残っている。下の娘にも時給250円ということで、1,000円を渡した。自分の住んでいる家の大掃除をするのに、給料を払うのはどうも疑問が残るが、奥さんが仕事なので、とても助かった。下の娘も張り切ってやっていたし、まあ小遣いをやったと思えば良いか。。。
後は、外回りが残っている。柿の木の剪定や庭の片付けなどをしなくちゃ。。。
今日は奥さんの実家の餅つきなので、子供たちを送っていかないといけないかな?結構おじさん、おばさんたちが集まってにぎやかにやっているようだ。
年末にスキーに行くので、スタッドレスに履き替えたり、スキーの整備をする必要があるし、忙しくて、なかなかEDKの続きも、木工もやることが出来ない。そうそう、昨日はそういえば、9,980円の
リョウビの丸鋸 が7,980円になっていたので購入した。とりあえずこれで木は切れるのだが暇がない。
2008年12月28日 06:04 |
日記
| トラックバック:0
| コメント:0
”XPS_TIMERをテスト” でXPS_TIMERをテストしてみたところ正常に動作しているようだったので、OPB_TIMERを入れて動作させてみようとしたら、XPSでOPBのマスタがないというエラーが出てビットファイルが生成できなかった。ブログのコメントでidlef50 さんにOPB_TIMERを使用するときは、PLBV46 to OPB Bridgeが必要ということを教えていただいた。そこで、PLBV46 to OPB Bridgeを追加してポートもちゃんとつないだら、ビットファイルが生成できた。そのビットファイルを、もう一度XMD でuClinux のイメージをDDR SDRAMに流し込んでブートしてみたが、
以前と同様に uClinuxの起動が、Calibrating delay loop... で止まってしまった。残念。
下にOPB_TIMERを追加したXPSプロジェクトを示す。
後はどうしようかと思っているが、自分独自のIPを作って追加する方法を試していないので、DDR SDRAMコントローラをデフォルトの物から、ラッパーをかぶせた自分で作ったIPに変更する方法を探って見ようと思う。
2008年12月26日 05:03 |
EDK
| トラックバック:0
| コメント:6
今日はクリスマスイブなので、パーティーをした。
今回もピザ2種類、卵とベーコンのピザと焼き鳥とブロッコリーのピザだった。味の違う2種類のピザでおいしかった。卵とベーコンのピザはさっぱり味、焼き鳥とブロッコリーのピザは濃い味だ。
後は、サラダとロブスターのグラタン。どちらもおいしかったが、ロブスターのグラタンはホントおいしかった。
最後はクリスマスケーキ、今年も?イチゴのムースとロールケーキ。
イチゴのムースは、私には甘すぎ。ロールケーキはちょうど良い甘さだった。
今年は、最後に残った下の娘にもサンタさんは親だというのがばれてしまった。プレゼントのDSiはもう渡してしまったので、今夜は楽しみがない。残念、必死にサンタさんにお願いしているころが懐かしい。。。
2008年12月24日 21:08 |
日記
| トラックバック:0
| コメント:0
ISEからEDKを内部制御用プロセッサとして使いたいというニーズがあるので、使いたいと思っている。ISEのHDLで作った複数のモジュールを強調動作させるのに、ステートマシンの代わりのシーケンサとして使いたいと思っている。簡単な動作はステートマシンですばやく、複雑な動作の場合は内部制御用プロセッサ(またはシーケンサ)を使えると、結果として最大動作周波数を高く出来るのではないかと思っている。
そこで、EDKの使い方を覚えながら、ISEからEDKを内部制御用プロセッサとして使う用途を探ってみようと思った。
FPGAはVirtex2proでPowerPCも使えるので、microblaze との比較もしてみる。やることとしては、ISEでEDKのプロジェクトをAdd Sourceして、その上にHDLをかぶせてトップとすることだ。
まずはMicroBlazeからやってみる。このボードでは、リファレンスクロックは133.33MHzで、各HDLモジュールに供給してるクロックも133.33MHz なので、プロセッサのバスクロックはその他のモジュールと同じ133.33MHzで動いて欲しい。そうでないとクロックドメインを乗せ換える必要があり、異なるクロックに同期させようとするとレイテンシが伸びてしまう。これが重要なポイントとなる。
MicroBlazeの場合、ISEでEDKのプロジェクトをつくり、BSBでシステムの設定をするが、下の図のようにMicroBlaze のバスクロックに133.33MHzの選択肢がない。
133.33MHzでバスが動作しないのでは、とりあえずだめそうだ。
次にPowerPCでやってみた。133.33MHz リファレンスクロックだけど、PowerPCがPLLを持っていて、バススピードとPowerPCのクロックは同一でなくても良いはず。とりあえずPowerPCの動作クロックを133.33MHzにしてみた。数のようにバスクロックは最大66.67MHzだった。こりゃだめだ。
PowerPCの動作クロックは、100MHz, 266.66MHz に変更できるが、その時のバスクロックは、最大100MHzで、133MHzにはならなかった。どうやらPowerPCもだめそうだ。
ちょっと最初から残念な結果になってしまったが、この問題は別にシーケンサとして動作するものを探すか、自分で作ろうと思う。
2008年12月23日 21:23 |
EDK
| トラックバック:0
| コメント:0
いろいろ忙しい用事の合間にXPS_TIMERをテストしてみた。EDK8.1の時はOPB_TIMERをテストしてみた。まだ、詳しくデータシートを読んだわけではなく、私の予想に基づいてテストしてみた。
まずは、Spartan3E Starter Kit の電源を入れてビットファイルをコンフィグするためにXPSで Device Configuration -> Download Bitstream を実行する。
次にDebug -> Launch XMD... を選択し、XMDを立ち上げる。これでXMDが立ち上がる。xps_timer_1のベースアドレスは0x41c00000 だ。
ここでXPS_TIMERのデータシートからブロック図を転載する。
アドレスマップを転載する。
もう1つ、 Timer Control/Status Register 0 (TCSR0)の図を転載する。
21ビット目のENALLはすべてのタイマーのイネーブル(1個のみなので、タイマー0のみだが)なので、これを立てるとタイマーがイネーブルになるはず。
XMDのウインドウでmwr コマンドを実行して、そのアドレスにデータを書き込む。ここでは、タイマーのベースアドレス+0番地 (Control/Status Register0) に 0x00000400 を1ワード分書き込む。これは、21ビット目のENALLを1にするためだ。
次にmrd コマンドで0x41c00008番地 (Timer/Counter Register0) を見る。そうするとオール0だった。タイマーが動いていないのか?
もう少しいろいろやってみたところ、タイマーのベースアドレス+0番地 (Control/Status Register0) にイネーブルを立てる前に、0x41c00004番地 (Load Register0) に値をロードしてから、Control/Status Register0 の26ビット目のLOAD0 に1を書き込む。そうすると、Load Register0 の値が、Timer/Counter Register0に書き込まれる。そうしてからControl/Status Register0 にイネーブルを立て、LOAD0 のビットを落とす。そうすると、Timer/Counter Register0 の値がアップカウントされ、0になると停止して、Control/Status Register0 の23ビット目のT0INT が1になっている。
どうやらXPS_TIMERはそれなりに動いているようだ。OPB_TIMERの動作がわからないので、互換性が取れているかどうかは未知数だ。そのため、これは終わりにして、petalinux を試してみることにする。その前に、本来の目的であるISEでHDLファイルの下にEDKのプロジェクトをインスタンシエートできるかどうかを確かめてみようと思う。
2008年12月22日 06:04 |
EDK
| トラックバック:0
| コメント:5
昨日は、車の1年点検だった。特に悪いところもないとのこと。乗っていても調子がいい。足も良いし、ブレーキも良い。あえて何を言うと、もう少しトルクが欲しいか・・・。前がデーゼルターボだったのでしょうがない。エンジンの回り方のスムーズさはデーゼルとは比べ物にならないほど良いけど。。。
帰りがけに、話をしていたらホンダのF1カレンダーがあるとのこと。早速くださいと言って最後の1冊をもらってきた。ホンダはF1を撤退してしまうので、レア物になること間違いなし。もらえてうれしい。下が表紙。
下が1枚目。つまり1,2月のカレンダー。
カレンダーとして使わないで、とっておくことにする。
午後はお買い物。最後に残った二階の寝室用にエアコンを購入した。寝室でも、実際は寝ていない、奥さんがじっくりテレビを見るのに使っている。そこに冷暖房が欲しいそうなので購入。
その後イーアスでお買い物。おいしそうな輸入雑貨店があったので、中に入ると、下の娘がディズニーのぷーさんのアニメなどに出てくる、焼いて食べるマシュマロを発見。早速購入。帰ってから焼いて食べてたがおいしいそうだ。私はマシュマロは苦手なので、一緒に買ってきた輸入クッキーを食べた。これはおいしかった。
2008年12月22日 05:17 |
日記
| トラックバック:0
| コメント:0
昨日も忙しかった。
午前中は高校の2者面談。家の娘の高校は2年生から文系、理系が分かれる。その相談などなど。情報系希望なので理系に行きたいということを先生と相談。
午後は家具作り教室の先生のお宅にお邪魔して、購入する材料を見てきた。いろいろな道具、丸鋸盤、材料の直角を削りだす機械などを見せてもらった。先生が木材加工のサークルを作りたいということで、影の代表を必要としているとのことだったので、代表になった。(実質的な代表は先生)タモの無垢材を使って、テーブルと長いすを作る予定。
夜は高校時代の同級生と忘年会、家族みんなで参加した。家族同士で宴会というのも良いもんだ。
今日は、車の一年点検。いろいろ忙しいが、その後、XPS_TIMERの動作を調査したい。デバッカのXMDからやってみれば、コードも書かずにお手軽にテストできると思う。
2008年12月21日 08:03 |
日記
| トラックバック:0
| コメント:0
”MicroBlazeでuClinuxを動作させたい” でuClinuxの起動が、Calibrating delay loop... で止まってしまっていたので、あまり関係ないと思うが、命令キャッシュ2Kbytesとデータキャッシュ8kbytes を入れてみた。
まずは、プロセッサの動作周波数は66.67MHzだったので、それに下のだがDDR SDRAMがハイドされて入らなかった。どうやらプロセッサの動作周波数を50MHzにしないとだめなようだ。というわけで、プロセッサの動作周波数は50MHzに戻した。
そうすると、命令キャッシュ2Kbytesとデータキャッシュ8kbytes を入れて、無事にDDR SDRAMをキャッシュするようにコンフィギュレーションできた。後は同様にアドレスを変えたのだが、2つのキャッシュが入ったからか?DDR SDRAMのポートが3つ出来たようなので3つともアドレスを変更した。
これでDevice Configuration -> Update Bitstream したのだがエラー。
MicroBlaze のキャッシュのアドレスが変更されていないようだった。仕方がないので、system.mhs を直接エディタで編集した。これでDevice Configuration -> Update Bitstream が成功した。
次には例によって、Tera Term を立ち上げて、Device Configuration -> Download Bitstream を実行する。
デバック・オプションを設定する。Debug -> XMD Debug Option... を選択し設定、Debug -> Launch XMD... を選択し、XMDを立ち上げる。
同じ手順を踏んだが、やはりCalibrating delay loop... で止まってしまった。
やはり、何かEDK8.1i のころと違うようだ。
2008年12月18日 21:45 |
EDK
| トラックバック:0
| コメント:8
まだデバックやシミュレーションをしていないが、EDKの使い方もだいぶ学習してきたので、
”MicroBlaze uClinux and Spartan-3E Starter Kit” を参考に、EDKでuClinux を動作させようと思いやってみた。
このページにあるXPSのプロジェクトのバージョンはEDK8.1iだったので、自動変換で10.1iに変換してみたがエラーが出てしまう。ページを見ると、uClinuxのブートイメージはXMDというデバッカー経由でDDR SDRAMにロードするようなので、元のsystem.mhsファイルを見ながら、それらしく周辺のアドレスや周辺デバイスを追加すればいけるのでは?と思いやってみることにした。
まずは、例によってXPSで新しいプロジェクトを作り、BSBを起動する。今までどおりに設定していくが、今までと違うところを示す。まずはRS232Cの設定画面で115200bpsに変更した。次にDCEのみUse interrupt にチェックを入れた。
Ethernet_MACのUse interrupt にチェックを入れた。
Add Internal Peripherals ダイアログでAdd Peripheral... ボタンをクリックする。Add Peripheral ダイアログが起動するので、プルダウンメニューからXPS_TIMERを選択する。
XPS_TIMERを選択した状態でOKボタンをクリックする。
Peripherals に xps_timer_1が追加される。Timer mode をOne timer is present にラジオボタンを変更し、Use inpterrupt にチェックを入れる。
BSBウィザードが終了して、各デバイスのアドレスが決定した。今度はこれをダウンロードしたuClinux を動作させるXPSプロジェクトと同じになるようにアドレスを変更する。まずはdebug_module のアドレスを変更しよう。XPSで右のSystem Assembly View のAddress タブをクリックし、各デバイスのアドレスを表示させる。debug_moduleをダブルクリックする。
debug_moduleのダイアログが起動する。次にSystemタブをクリックするとBase Address とHigh Addressが表示される。下の図で右のNotepad++ の画面がuClinux を動作させるXPSプロジェクトのsystem.mhs の内容だ。それによるとdebug_module はC_BASEADDRが0x41400000、C_HIGHADDRが0x4140ffff となっている。それを先ほどのdebug_moduleのダイアログのBase Address とHigh Addressに入力する。
XPSに戻ると書き換わっています。
DDR SDRAMをダブルクリックすると、タブがいっぱいあるダイアログが開く。AdvancedタブのAddresses Configurationタブをクリックして、Use Common Port Addresses のチェックをはずして、Port Addressesの中のBase AddrとHight Addrを変更する。
全部アドレスを変更した後がこれ。
これで全部アドレスを変更できたので、反映させるためにDevice Configuration -> Update Bitstream を実行する。これでコンフィグするビットストリーム(ビットファイル)が出来たので、Spartan3E Starter Kit の電源を入れてビットファイルをコンフィグするために Device Configuration -> Download Bitstream を実行する。これでFPGAをコンフィグすることが出来た。
uClinux はDebugger でイメージをロードするようだ。まずはデバック・オプションを設定する。Debug -> XMD Debug Option... を選択する。
たぶんデフォルトだと思ったが、Connection Type はHardware を選択する。他は下図の通り。
Debug -> Launch XMD... を選択し、XMDを立ち上げる。
XMDが立ちあがるので、
”MicroBlaze uClinux and Spartan-3E Starter Kit” に載っている方法でDDR SDRAMへuClinux のイメージを転送してRUNする。
Tera Term の表示はどうなったかというと、uClinux が途中まで立ち上がっているが、Calibrating delay loop... で止まっている。
今のところ、どうして止まっているかわからない。期待された方がいたら申し訳ない。
もう少しで動きそうなので、もっとよく調べてみようと思う。
2008年12月17日 05:50 |
EDK
| トラックバック:0
| コメント:2
昨日は上の娘の16回目の誕生日だった。下妻ジャスコに行って、お寿司とケーキを買ってきてお祝いした。
私は16歳で原付の免許を取って、CB50を買ってもらって乗っていたが、娘は原付の免許を取って乗ってもすぐに事故りそう。。。学校も免許の取得が禁止だし、乗らないほうが無難。
2008年12月15日 06:05 |
日記
| トラックバック:0
| コメント:3
今日、車で走っていたら筑波山に雪が積もっていました。道理で寒いわけだ。。。
YahooグループのFPGAの部屋も100人になった。何かイベントを考えようかな?秋葉原あたりで新年会がいいかな?
2008年12月14日 15:45 |
日記
| トラックバック:0
| コメント:2
”ISEからEDKを使う2” で、XPSで新しいプロジェクトを作ってMark to Initialize BRAMs をチェックしたときに、ISEのUpdata Bitstream with Processor Data を実行すれば、XPSの新しいプロジェクトが自動的にビルドされるのかどうかは未知数だったので、この辺を確かめてみた。
まずはXPSで新しいApplication Project を作る。XPSのAppliications タブからAdd Software Application Project.. をダブルクリックする。
ダイアログにProject Name を入れる。ここではTutorial_Project とした。OKボタンをクリックする。
Tutorial_Project が生成できた。これからこのプロジェクトのソフトウェアをBRAMにロードする設定に変更しよう。
Project: TestApp_Memory のところで右クリックをして、メニューのうちのMark to Initialize BRAMを選択してチェックをはずす。これでプロジェクトのアイコンにXがついて、BRAMにこのプロジェクトのソフトウェアがロードされなくなった。
次にProject: Tutorial_Project のところで右クリックして、同様にメニューのうちのMark to Initialize BRAMを選択してチェックを入れる。そうするとプロジェクトのアイコンからXが消えて、このプロジェクトのソフトウェアがBRAMにロードされるようになった。
次にTutorial_Projectにソフトウェアのソースを入力する。Tutorial_ProjectのSources を右クリックしてメニューからAdd New File... を選択する。
ダイアログが開くので、ファイル名を入力する。ここではtutorial.c とした。
tutorial.c を書いて、セーブする。いつまでも他で紹介されたプログラムの転用ではなんなので、ここではある数の約数の数(1とその数自体を除いた約数)を調べるプログラムを作った。何も芸のない、直球のプログラムだ。
ここで、約数のプログラムを下に示す。
#include "xparameters.h" int main (void ) { int num_aliqot, num, i, j, k; num = 1 ; while (1 ){ num_aliqot = 0 ; for (i=2 ; i<num; i++){ for (j=i; (k=num-j)>0 ; j=j+i) ; if (k==0 ) num_aliqot++; } xil_printf("num = %d : num_aliqot = %d\r\n" , num, num_aliqot); num++; } }
ISEというかProject Navigater に戻ると、Updata Bitstream with Processor Data に?がついている。これはXPSでアプリケーションのプロジェクトを作ったからのようだ。
Updata Bitstream with Processor Data をダブルクリックして、XPSでソフトウェアのビルド、elf ファイルをbit ファイルにロードする。そしてFPGAをコンフィグすると、約数の数を数えるソフトが起動した。
これでうまく行ったが、XPSでプログラムを書き換えてもProject Navigater のUpdata Bitstream with Processor Data は?にならない。これを反映させるには、Updata Bitstream with Processor Data で右クリックしてRerunを選ぶ必要があるようだ。
2008年12月14日 07:24 |
EDK
| トラックバック:0
| コメント:2
”ISEからEDKを使う1” の続き。
それでは、IProjectNavigaterでProjectメニューからAdd Source... を実行して、system/data フォルダの下にあるsystem.ucf を追加する。
Adding Source Files... ダイアログが表示される。
UCFファイルが追加された。
Processes ペインでGenerate Programming File をダブルクリックして、bitファイルを生成する。
Processes ペインでUpdata Bitstream with Processor Data をダブルクリックする。そうするとXPSでソフトウェアをビルドして、data2mem でelf ファイルをbit ファイルにロードして新たにbit ファイルを生成してくれるようだ。ただし、初回だけelf ファイルがないのでデフォルトのTestApp_Memory をビルドしてくれたのかもしれない。この辺は後で確かめてみる。
Processes ペインでUpdata Bitstream with Processor Data に黄色三角マークがつく。これでdata2mem が終了。
さて、Spartan3E Stater Kit にダウンロードしよう。Project Navigater のProcesses ペインでConfigure Target Device を開いてManage Configuration Project (iMPACT) をダブルクリックする。そうするとiMPACT のダイアログが開く。Finishボタンをクリック。
Assign New Configuration File ダイアログからsystem_download.bit を選択して、Openボタンをクリック。
Bypass ボタンをクリック。Spartan3E Stater Kit のJTAGチェインには、FPGAとPROMとCPLDが接続されている。FPGAの後に2つデバイスがつながっているので、これは2回行う。
Device Programming Properties ダイアログが出るのでOKボタンをクリック。
ProcessペインのProgramをダブルクリックするとFPGAがコンフィグされる。
これで、FPGAにMicroBlaze のプロジェクトがコンフィグされBRAMのソフトウェアをブートするので、TeraTerm を開いておくと、メッセージが表示される。
これでISEでFPGAをインプリメント、EDKでソフトウェアをビルド、data2mem でbitファイルにelfファイルをロード、FPGAにコンフィグすることが出来た。ISEを主体に使って、これらの手順を行うことが出来た。
まだ、XPSで新しいプロジェクトを作ってMark to Initialize BRAMs をチェックしたときに、ISEのUpdata Bitstream with Processor Data を実行すれば、XPSの新しいプロジェクトが自動的にビルドされるのかどうかは未知数だ。次はこの辺を確かめてみようと思う。
2008年12月13日 06:05 |
EDK
| トラックバック:0
| コメント:7
ISEでEDKのプロジェクトファイル.xmp を作成して、ISEでEDKを操作するやり方がうまく行ったので、書いてみようと思う。ISE10.1SP3, EDK10.1SP3
まずはISEのProjectNavigater で新しいプロジェクトを作るところから。FileメニューらからNew Project.. を選択。
Project locationを選んで、Project name を入力する。
使用するFPGAを選択する。下図はSpatan3E Starter Kit のもの。
Create New SourceダイアログでNew Source... をクリックしてEDKのプロジェクトファイルを追加する。
New Source Wizard で左のペインからEmbedded Processor を選択し、右のFile name を入力する。
New Source Wizard - Summary ダイアログが出るのでFinish ボタンをクリックする。
ISEのプロジェクトのディレクトリを作っても良いか?というダイアログが出てくるのでOKをクリック。
New Project Wizard - Create New Source に戻るとsystem.xmp がCreate New Sourceのリストに入っている。
New Project Wizard - Add Existing Source はデフォルトのまま。
New Project Wizard - Project Summary が表示されるのでFinish ボタンをクリック。
Project Navigater に戻るとXilinx Platform Studio(XPS) も立ち上がり、Base System Builder (BSB) を使うかどうか聞いてくるのでYes ボタンをクリック。
これでBSBが立ち上がって設定をする。BSBの設定は下の以前の記事を参照。
”Spartan3E Starter Kitを使ってEDKを試してみる1(プロジェクトの作成1)” ”Spartan3E Starter Kitを使ってEDKを試してみる2(プロジェクトの作成2)” 今回は、上の以前の記事のBSBの設定から以下の2つの項目を変更した。
1つ目は、Base System Builder - Configure IO Interface (1 of 3) でどちらのRS232Cポートもデフォルトの9600bpsのままにした。これはたいした通信量ではないで、Trea Term を設定するのが面倒だからだ。
2つ目はSTDIN, STDOUTをDTEからDCEに変更した。これは
”Spartan3E Starter Kitを使ってEDKを試してみる3(いろいろ試してみた)” でも書いたが設定を間違っていたためだ。
後は、同様に進めていくと、おなじみのEDKの画面になる。
とりあえず今日はここまで、今日は忘年会だ。珍しくホテルでやるとのこと。楽しみ。。。
”ISEからEDKを使う2” へ続く。
2008年12月12日 05:08 |
EDK
| トラックバック:0
| コメント:0
昨日、欲しかった電動インパクトドライバを買っちゃいました。ナショナルのEZ7206RK-Hというので、インパクトを強弱切り替えられるといううたい文句につられて買いました。
ホーマックで商品入れ替えのため14,800円で売っていたのですが、
ヨドバシでは24,800円 だったのでお買い得だったようです。
家具作り教室でインパクトドライバを使ってみて、やはり普通のドリルドライバよりも簡単に木ねじが打てるので欲しくなってしまいました。ですが、木ねじをだいぶ切ってしまったのが心配でしたが、今回購入したインパクトドライバは強弱切り替えがあるので大丈夫そうです。これを使って何か作ってみるのが楽しみ。。。
2008年12月11日 06:12 |
木工
| トラックバック:0
| コメント:0
うまくいっていると思ったISE10.1SP3、EDK10.1SP3正規版の入ってるパソコンでやってみた。
Spartan3E Starter KitのプロジェクトをXPSでビルドしてもエラーになってしまってビルドできなかった。なんでだろう?
XPS SDK もやうまくいっていると思ったが、やはりインクルードファイル関係のリンクが取れていないみたい。なんでだろう?
XPS SDKでうまく出来ているというブログも見たことがあるし、どうにかやればうまく行くんじゃないかと思う。本気でトレーニングに行ってみようと思ってきた。
とりあえず、このパソコンでXPSでのビルドは出来ているので、これでいじってみようと思っている。今度はISEとの連帯をテストしてみようと思う。
最終目標は、MicroBlazeかPowerPCをシーケンサーとして使うために、それらを自分のロジックの下位モジュールとしてインスタンシエーションしてみたいと思っている。
それとせっかくなので、MicroBlaze でuclinux を動作させてみたい。
追記:
EDKの正常なフローがわからなくなったので、トレーニングに行くことにしました。
東京エレクトロンデバイスで開講している
初級ザイリンクスプロセッサ・ワークショップ(ハードウェア編) です。1月16日(金)に受講申し込みしました。本当は12月12日に行きたかったのですが、その日は職場の忘年会でして、
去年もセミナーに行って 忘年会に行けなかったので、その日はやめにしました。
2008年12月11日 05:45 |
EDK
| トラックバック:0
| コメント:0
先ほど、FPGAの部屋を見たらカウンタが777777でした。
オール7ゲット。。。何かラッキーなことがあるかな?
皆様、見ていただいてありがとうございます。
2008年12月09日 13:13 |
日記
| トラックバック:0
| コメント:0
Xilinx Platform Studio のプロジェクトをXilinx Platform Studio SDKに読み込ませると、どうもうまくいかない。うまくいかない理由はXilinxのインクルードファイルをインポートできていないか、もともと環境が構築されていないのか?
ちなみに、同じやり方でISE10.1SP3、EDK10.1SP3正規版の入っているパソコンでやってみたが正常にXilinx Platform Studio SDKでソフトウェアプロジェクトをビルドすることが出来た。
正常なほうとの違いはISEが正規版とWebPACKの違い、Cygwinが導入されていなかった、されれていたの違い、WindowsのインストールドライブがC:とH:の違いくらいだろうか?
どうしてうまくいかないのだろう?もう少し調査してみようと思う。
追加:
と思っていたのですが、Xilinx Platform Studio からのプロジェクトのインポートではなく、Xilinx Platform Studio SDKで新しいプロジェクトを作ったらビルドできました。
2008/12/10 追加:
うまくいったと思ってXPSでELFのみのプロジェクトを作って、Spartan3E Starter Kit にダウンロードしてみたら動かなかった。ELFファイルをうまく行っているものと比較するとサイズが小さかった。やはり、Xilinx Platform Studio SDKの左端のペインのmicroblaze_0_sw_platform にXが付いているのが問題かもしれない。
うまくいっているパソコンで出来るかどうかをテストしてみることにする。
2008年12月09日 05:17 |
EDK
| トラックバック:0
| コメント:7
前回、いろいろ試してみたということで書いた が、Xilinx Platform Studioだけ使用する方法ではうまくいったので、例によって忘れないように書いておこうと思う。
まずはXPS (Xilinx Platform Studio) のHardware -> Gnerate Netlist を選択し、ネットリストの生成を行う。
Applications タブをクリックする。そうすると現れるソフトウェアのプロジェクトには、TestApp_MemoryプロジェクトとTestApp_Pwripheral がある。このように複数のプロジェクトをApplication タブに登録することが出来るようだ。これら内、どれか1つのプロジェクトをブート用のBlockRAMにロードすると、そのプロジェクトのソフトウェアがブート時に起動するようだ。
その切り替えはProjectを右クリックメニューからMark to Initialize BRAMs をチェックすることにより行う。
さてソフトウェアのプロジェクトをビルドしよう。下の図はプロジェクトが違っているが、その点は突っ込まないでいただいて。。。(いろいろトライしたのだった) SoftwareメニューからBuild All User Application を選択してソフトウェアのプロジェクトをビルドする。
次に、Device ConfigurationメニューからUpdate Bitstream を選択して実行する。これを実行するとハードウェアとソフトウェア両方を含むビットストリーム ファイル (
/implementation/download.bit) が生成されるそうだ。 これでビットファイルが出来たので、Spartan3E Starter Kit の電源をONして.bitファイルをダウンロードしよう。その時に、USBケーブルとDCEへRS232Cケーブルを接続して、TeraTermも起動しておく。 Device ConfigurationメニューからDownload Bitstream を選択すると、生成された.bitファイルがFPGAに送られてコンフィギュレーションされる。 そうするとBRAMに入っているプロジェクトのソフトウェアが起動して、STDOUTに出力される。下画面は、”Xilinx社Spartan 3E Starter Kit を使ったMicro Blazeのチュートリアル” のTutorialを実行してみた結果。 このTutorial Projectも、もう一度やってみたところ、xparameters.h が何も設定しないでもインクルードされてプロジェクトがビルドできた。
2008年12月08日 20:18 |
EDK
| トラックバック:0
| コメント:0
”Spartan3E Starter Kitを使ってEDKを試してみる2” でようやくXilinx Platform Studioが立ち上がったが、それからが大変だった。EDKは10.1isp3です。
”EDK コンセプト、ツ ール、テクニック - 効率的なエンベデッド システム構築をサポートするハンディ ガイ ド (日本語版) (PDF)” を参考にしながら、Xilinx Platform Studioでハードウェアをインプリメントして、ソフトウェアのビルドはXilinx Platform Studio SDK にやるようにした。(EDK10.1iではこれがお勧めの方法だそうだ)どうも、Xilinx Platform Studio SDKでエラー表示が出てビルドできない。困った。
チュートリアルはVirtex4だか、現在やっているのはSpartan3Eだからか?もう一度、チュートリアル通りに(つまりVirtex4で)確かめてみようと思う。
ネットで検索していたら、
”Xilinx社Spartan 3E Starter Kit を使ったMicro Blazeのチュートリアル” を発見。九州工業大学の方が書いたものらしい。
EDK8.2iだが、これでやってみようとした。TutrialProjectが出来て、tutrial.c は書けたのだが、インクルードしているxparameters.h をプロジェクトのHeaders に登録しても参照されない。どうやってもだめなので、xparameters.h の内容をtutrial.c にコピーしたらビルドすることが出来た。これでDownload Bitstream でコンフィグレーションファイルをダウンロードして、Treaterm を立ち上げてprintf 出力を見たが何も出力されない。。。
もう一度、BSB (Base System Builder) で自動生成されたMemTestを動かしてみようとしたら、動かないみたい。
ほとほと困ってどうしようかと思っていたら気がついた。 Spartan3E Starter Kit にはRS232C端子がDCEとDTEの2つある。もしかしてと思ってみたらBSBの設定はSTDIN, STDOUTがDTEになっていた。失敗。これをDCEに直す必要がある。
上ではDTEになっていた。これをDCEに変更した。これでやっと、BSB (Base System Builder) で自動生成されたMemTestでTeratermにメッセージが出るようになった。
良かった。
Xilinx Platform Studioでやる方法は出来た。とはいえ、インクルードファイルをどうするかがまだわからないが、これを何とかしないと。。。マニュアルを読む必要がありそうだ。
Xilinx Platform Studio SDK でビルドする方法は
チュートリアル を見ながら、チュートリアルのVirtex4のプロジェクトでやってみようと思っている。
相変わらず、Xilinxのツールはアドベンチャーゲームのような気がする。これでなくては面白みがない。Alteraツールはすんなり動くのだろうか?
2008年12月07日 18:00 |
EDK
| トラックバック:0
| コメント:7
昨日で家具作り教室が終了した。最終回は塗装、
オイルフィニッシュ の塗り方だった。
オイルフィニッシュは木に塗ってから30分くらいで拭き取り、その後、まめに拭き取るとのことだった。
教室終了後、
グランステージ に行って
ワトコのオイルフィニッシュ のナチュラル1Lを購入し、帰ってから
長いす を塗装した。30分後に拭いたが、後から後からオイルが浮いてきた。それをぼろ布で拭き取った。きりがないのできりの良いところでやめて、食事をしたりしたが、寝る前にもう一度拭き取った。今日の朝、起きがけに拭き取った。さすがにもうあまりオイルは浮いていない。先生の話では寝ずに拭き取るとのこと。。。それは冗談だと思うが。。。
今日の夕方には結構いい感じに仕上がってきた。でも、まだ座るのは不安なので、もう一日乾かそうと思う。
今日は同時に
最初に作ったテーブル の塗装もした。こちらは外においておくので、キシラデコールの白木用を塗った。2度塗りしたので一日かかってしまった。これで外に置いておける。
教室の先生が1コンテナ分タモ材を買うのでいらないかとのことなので、是非にとお願いしておいた。今度は室内用テーブルと長いすをもうひとつとテレビ台を作りたい。
2008年12月07日 16:57 |
木工
| トラックバック:0
| コメント:4
”Spartan3E Starter Kitを使ってEDKを試してみる1(プロジェクトの作成1)” の続き。
そういえば、今までやらなかったEDKをやってみる気になったかといいますと、AlteraのNios2をいじってみようと思っているので、それとの比較をしたいのと、EDKをお仕事で使う可能性が出てきたので試して見ようということです。
DIPSWやボタンSW、FLASHのコンフィグ。この辺はデフォルト設定で行くことにした。
DDR SDRAMとEthernet MAC。Ethernet MACがお手軽に入れられるのはとても良い。
Add Internal Peripherals ダイアログが開く。LCDがないのが不満だが、とりあえずデフォルトとする。
今度はSoftware Setupだそうだ。STDIN, STDOUTを設定して、sample application に Memory test と Periphral selftest を選んだ。
といってもデフォルト設定。 図ではSTDIN, STDOUTにRS232_DTE が選択されているが、DCEコネクタにケーブルがつながっているので、RS232_DCE に設定を変更した。(2008/12/12 記)
Memory Test Application の設定。これもまたまたデフォルト設定。
Perpheral Test Applicationの設定。DDR SDRAMだ。これもまたまたデフォルト設定。
やっと終わりが近くなってきた。System Createdダイアログ。システムの設定が表示される。micoroblazeの動作周波数50MHz、On Chip Memory 8KB、FLASH = 16MB、DDR_SDRAM = 64MB。アドレスが表示されている。これでOKなので、Generateボタンをクリックしてシステムを生成してもらう。
どんなファイルが生成されたかを表示して、Base System Builderは終了。Finishボタンをクリック。
最初に起動したので、Software License Agreement のダイアログが出る。Acceptボタンをクリックする。
ようやくXilinx Platform StudioのSystem Assembly ViewのBus Interface図が表示された。
結構ここまで長かったが、ほとんどデフォルトのままにした。RS232Cのボーレートは115200bpsに変更した。今度は生成されたテストプログラムをビルドして確かめてみようと思う。
2008年12月04日 06:06 |
EDK
| トラックバック:0
| コメント:4
Spartan3E Starter Kitを使ってEDKを試してみることにした。Mico32でだいぶ苦労したが?MicroBlaze+EDKでは果たして簡単なのか?EDKはあまり使ったことがないので、使い方がおかしいとか、やり方がわからないときは教えてください。
まずはスタートメニューかディスクトップアイコンでXilinx Platform Studio を立ち上げる。
Base System Builder Wizard を使ってシステムを構築してみるので、そのままOKボタンをクリックする。Create New XPS Project Using BSB Wizard ダイアログが開く。Browse...ボタンをクリックする。
Platform Studio Project ダイアログが開くので、プロジェクトを作るフォルダを選択し、プロジェクト名を入力する。ここでは、s3e_stkit_sample.xmp にした。
Project file のところにフルパスつきファイル名が入るので、OKボタンをクリック。
Base System Builder が立ち上がる。新しいデザインが選ばれているので"Next >" ボタンをクリックする。
すでにSpartan3E Starter Kitは設定が用意されているので、Board name からSpartan3E Starter Board(何でSpartan3E Starter Kitじゃないんだろうか?)を選択する。
家のSpartan3E Starter Kitを見るとRev. D だったので、Board revision でD を選択し、"Next >" ボタンをクリックする。
System wide settings はクロック周波数なので、そのままとする。Processor configuration もそのままとする。Cacheはとりあえずなし。このダイアログに用はないので、"Next >" ボタンをクリックする。
RS232のsetting では、9600bps を115200bps に変更する。"Next >" ボタンをクリックする。
今日はこの辺で終了。
”Spartan3E Starter Kitを使ってEDKを試してみる2(プロジェクトの作成2)” へ続く。
2008年12月03日 21:55 |
EDK
| トラックバック:0
| コメント:2
そろそろ年賀状印刷の時期なので、奥さんの実家の年賀状も毎年頼まれるので、印刷していたら、どうも年賀状の左下に短い黒い線が入って印刷品質が低下する。何度かトライしてみたが、どうにも直らないので、新しいプリンタ・スキャナの複合機を買うことにした。
今までのプリンタはキャノンで調子が良かったのでキャノンはどうかと調べてみたところ、ネットワークプリントできて両面プリント対応は一番高いMP980しかないようだった。6色インクでランニングコストが高いのが難点だが、これに決定。
早速どこが安いか検討したところ、K's電気は3万1千円台、Amazonは2万6千円台なのでAmazonに決定。お急ぎ便で頼んだので注文2日目の夜に着いた。
その日は夜に会合があったので、一日寝かせて昨日の夜セットアップ。無線LAN接続でセットアップした。結構セットアップに時間がかかる。インクやヘッドのクリーニング、初期の印刷品質設定に30分以上かかった。そしてソフトをインストールしてMP980を無線LAN接続にしてセットアップ。印刷できるようになった。
スキャナ機能も試してみたが、なかなか良い。OCRもだいぶ品質がよくなって、誤字がひとつもなかった。プリント品質も申し分ない。
早速、奥さんの実家の年賀状を印刷。あれれ、やはり年賀状に左下に黒い筋が。。。
私の年賀状はどうかと印刷してみると問題ない。。。問題は年賀状用の無料素材の画像データにあったのでは?と思う。画像データはそれらしい線は入っていないが、もしかするとキャノンのドライバに問題があるのかも?とにかく他の画像だったら大丈夫なので、年賀状の画像データを変更した。
というわけで余計な買い物をしてしまったが、まあプリンタを複合機にリプレースして便利なったと思えばOKだと思う。
最後にプリントしていると、ワイヤレスマウスの動きがおかしい。複合機が近くにあるし、同じ2.4GHz帯を使っているからかもしれない。やはり複合機はスイッチから有線LANでつなぐことにする。
2008年12月02日 05:33 |
マイコン関連
| トラックバック:0
| コメント:0
前回
”DDR2 SDRAMコントローラにODT機能を追加” でDDR2 SDRAMコントローラにODT機能を追加しシミュレーションしたが、ISE10.1i でインプリメントして確かめてみた。
その結果、以前と一緒でシングル転送の時はリード・ライトできるが、バースト転送の場合はどこかでエラーになるようだった。他のところが悪いのか?SUZAKU-Vの回路図もないので、これはとりあえずペンディングとする。
SUZAKU-Vでは本来の使い方?のEDKで使ってみようと思っている。
2008年12月01日 05:50 |
DDR SDRAMコントローラ
| トラックバック:0
| コメント:0