« 2008年4月 | トップページ | 2008年6月 »

2008.05.29

IPAXの所感

今年もIPAXが終わりました。
もう6回も出たので来年も出られるかどうかわかりませんが、また出たいです。

さて、2日目は、うちのブースにはあまりお客様がいらっしゃいませんでした。
1日目が凄かったのは組み込み系のセミナーが開催されていたためでしょう。

それにしても、IPAXは面白い。
なぜなら、IPAXは、ビジネス向けの一般の展示会と異なり、サイエンスと技術に少しのビジネスを絡めた展示だからです。

Ipax

世の中の「技術的なこと」を、技術(工学)と技能と科学の3つに分類したとき、学会は科学を扱い、一般の展示会は技術と技能をビジネス的に扱うのに対し、IPAXの展示には「サイエンス的な要素が潜んでいるけど商売になるかもしれない」というブースが多く、非常に楽しめました。知的好奇心が刺激されます。

さて、この「技術と技能と科学の3つに分類する」という考え方を用いると、いろんなことが見えてきます。

まず、突っ込みを入れたいのが、ITスキル標準。
ここのセンターの人とも少しおしゃべりしてきました。
スキル=技能ですから、人間をモノ扱いするための基準のように思えてきます。

レベル5以上はもはやスキルとして測れないのではないかとか、新人は皆一律にレベル1~2というのは変じゃないかとか、情報処理試験との対応付けとか、プロフェッショナルの定義とか、いろいろ言いたいこともあります。
それは置いておいて一晩経って考えてみると、ITスキル標準では技術的な仕事や科学的な仕事をしている人は測れない、というのが私の見解です。
おそらく、人を大量に雇って大プロジェクトを遂行させるときに便利な尺度なのでしょう。

また、学生と経営者がIPAXで討論したとか何とかで騒がれているようですが、
http://itpro.nikkeibp.co.jp/article/NEWS/20080528/304458/
仕方ないでしょう。

まず「IT技術者」とか「ソフトウエア技術者」という言い方がおかしい。
そこに登場するような大会社が欲しているのは素直な技能者でしょう。
金融系の巨大プロジェクトなんかで皆が技術を発揮させたら収拾がつかなくなる。
でもそういう経営者は技能なんて言葉を使うわけない。
「ソフトウェア技能者募集」なんて言ったらかっこ悪くて誰も来ないから。

そういう大企業が欲しているのは、泥のように素直に10年働く人材。
学生があこがれるのはエンジニアとか技術者と呼ばれるキラキラした職種。
しかし、学校で学んだコンピュータサイエンスなんて求められないし、
ミスマッチして50%の人しかやりがいを感じなくなってしまう。

学生のうちに未踏を取った人は技術者や科学者の卵なので、大企業に入って「出る杭」になることなく、独自の技術を発展させたり起業してほしいものです。

| | コメント (1)

2008.05.28

IPAX出展中!

昨日と今日はIPAXに出展しています。

去年のIPAXではぜんぜん人が来なかったので、今年もかなと思っていたのですが、
なんと、ものすごい来客数!

朝10:00開場と同時に2,3名。その後も次から次へと・・
九州からわざわざいらっしゃった方までいらっしゃいました。

IPAXはいろんな分野のソフトの展示なので、
組み込み系の当ブースにこんなに来るとは思ってもいませんでした。
一説によると、組み込みの講演が人を呼んだとか。

あと一日、がんばるぞー

| | コメント (0)

2008.05.21

●ュージョンコ●ュニケーションズの勧誘

●ュージョンコ●ュニケーションズ というところから電話がありました。

「固定電話の請求書を担当させてもらっている●ュージョンコ●ュニケーションズの●●です。」

来月から今お使いの電話代金が自動で安くなるのでその連絡のお電話させていただきましたというように、いかにもNTTの関係者のような感じで電話をしてきました。
請求書の裏側を見たことありますか?とか、契約の必要はないのですが1点だけ確認させてくださいとか、なんとかかんとか。

要点は
・これから担当者が行くからNTTの請求書を見せてくれ
・NTTの請求書を担当している●ュージョンコ●ュニケーションズ 、という訳の分からない自己紹介
の2つです。

「●ュージョンって言ったらIP電話でしょ?」
「はい、よくご存知ですね」
「うちはIP電話にするつもりはありませんよ」
「はい、いまおつかいの電話はそのままお使いいただけます」
「NTTの許可は得ているのですか?」
「もちろんです。NTTの請求書を担当している」とかどうのこうの。

これはヤバイなと思い、しばらく話を聞いていました。
相手が全部話し終わったころでこちらから聞いてみました。

「というわけで、担当の●●がこれからお邪魔します」
「言いたいことはだいたいわかりましたけど、うちは、NTTから回線を変えるつもりはありませんよ。しかし、ちょっとその勧誘の仕方はまずいんじゃないですか?

といったら、即、電話を切られてしまいました!

NTT関係者のようなふりをして電話をかけてきて、やってきた担当者にNTTの請求書を見せたら、契約者番号か何かをメモされて、マイラインの会社を変更させられてしまう、という手口なのでしょうか。

拡大解釈すれば、勧誘で嘘はついていないような気がします。
「請求書を担当している」というわけのわからない自己紹介も、マイラインをやっている会社だよと解釈すれば間違いないのでしょうし。

| | コメント (0)

2008.05.19

インテリジェントなJTAGコントローラ

SH4を使ってインテリジェントなJTAGコントローラを作っています。
インテリジェントなJTAGコントローラ


上の写真の右側のボードは市販のSH-4評価ボードで、SH7750Rが240MHzで動きます。
そのSH7750RのIOポートからJTAG信号を出して、FPGAボードなどをコンフィギュレーションしたり、バウンダリスキャンを行おうといものです。

とはいっても、全部ゼロから作るのではなく、MITOUJTAGで培ったライブラリをそのまま移植する感じにします。

いわば、パソコンレスのMITOUJTAGボックスという感じです。
ただし、お客様からの要求仕様で電源投入後0.1秒で起動しなければなりません。
そのため、組み込みCPUに移植しているという感じです。
パワーがあって使いやすい32bit RISC CPUといったら、やっぱり日本製がベストでしょう。

MITOUJTAGのライブラリはCで書かれていて、中でmallocやfree、fopenなどを使っています。
今回のシステムは電源投入で即起動させなければならないので、OSは載せません。
あるのは自前のブートコードと割り込みハンドラだけです。
mallocやfopenを組み込みプログラムでどうやって使えばよいか、数日前まで全く知りませんでした。そういうわけなので苦労はしましたが、その分ノウハウが得られたのでいずれブログに書こうと思います。

さて、SH用のコンパイラにはGNUWINGのGCCを使うのですが、mallocやprintf、fopenなどが使えるようにしてやらねればなりません。こういったmallocやprintf、fopenみたいな関数がnewlibというライブラリの中に入っていることがわかってきたので、昨日1日かけてnewlibのmallocやprintfを自分のプログラムで使えるようにカスタマイズする方法を探りました。

どうやらnewlibに長ったらしいオプションをつけて再コンパイルしたり、アンダーバーだらけの妙な名前の関数をいじる必要はないということがわかってきました。
SHの場合、newlibはファイル書き込みなどのシステムコールをしたい場合__trap34というソフトウェア例外を発生させます。この例外をうまく捕捉して自分のプログラムに導いてやればよいのです。malloc,freeに関してもグローバル変数を一つ設定すればよいだけでした。
このやり方はまた後ほど詳しく書きます。

さて、そのような苦労の末、mallocやfree、fopenが自分のプログラムから自由に使えるようになりました。

驚くべきことは、MITOUJTAGのライブラリはほとんど何も変更しないままGCCでSH4用にコンパイルできて、うごいてしまったということです。エンディアンも違うのに大丈夫なようです。32bit CPUであれば、どんなCPUにも移植できそうな気がしてきます。

起動画面はこんな感じになりました。
RS232C経由でつないでコマンドで操作します。

インテリジェントなJTAGコントローラ

スタンドアローンのJTAGコントローラなので、中にはBSDLファイルやら、JTAGチェーンの構成などをファイルを入れられるようにしなければなりません。
もちろん、RS232C経由でファイルをアップロードできるようにして、フィールド書き換えができるようにすることも必要です。

なので、簡単なファイルシステムを作って、基板上のフラッシュROMに保存できるようにしました。
fopenとかfreadやると、そのメモリ上に展開されたファイルが読み出されるようになっています。とても粗末なファイルシステムですが、C標準ライブラリから自分で作ったファイルシステムが呼び出されるのを見ると嬉しいですね。
まだ個々のファイルを個別に消したり更新することはできませんが、全消去と新規作成はできるので、「運用でカバー」できる範囲になりました。

detectと打つと、JTAGチェーンを操作して、つながっているデバイスを発見してくれるようになりました。
ここまでくれば、JTAGライブラリは完全に動いていると考えてよいでしょう。

あとはいろんなコマンドを実装(移植)していくだけですね。
間に合うようであれば、IPAXで展示するかもしれません。

金曜日に評価ボードが届いてから、mallocで少しハマッたけど、土日の2日間でゼロからここまでできたのは自分でも驚きです。
このシステムを載せる基板をP板に特急で発注していたのですがコネクタの向きと位置を間違えたため、基板設計はやりなおしです。とほほ。

| | コメント (0)

2008.05.03

ひさびさのCPLD

今日は久しぶりにCPLD(CoolRunner2)の論理合成をしました。
デュアルコアのCPUだと、60秒くらいしかかかりません。
あっという間です。速いっていいですね~
最近はよくVirtexをいじっているので、CPLDの論理合成時間が一瞬に感じられます。

FPGAと違ってCPLDは積和形式なので、たくさんの信号を見て出力を決定するロジックが気兼ねなく作れます。
FPGAの場合だと、十分に巨大なFPGAを使っていても、LUTのつながり方が・・・とかセコいことが頭の中に浮かんできてしまうのですが、その点、CPLDなら安心して書けます。

今日作ったのはAnalogDevicesのAD53xxという12bit/8chDAコンバータの値をセットするロジックです。
DACにはシリアルでデータを与えます。DACの中には8個の出力値レジスタと、いくつかのコントロールレジスタがあります。1回のデータ書き込みは、データレジスタまたはコントロールレジスタに対して行われ、16個のクロックとSYNC信号で行います。

こういう論理回路設計は最初に絵を描くのが大事です。
まずはじめにExcelでこんなタイミングチャートを書きます。
Ad53xx

つまり、周期40で回るカウンタを作って、そのカウント値に応じて制御信号が動きます。
さらに、送信するデータを変えながら9回回すカウンタを上位に作ります。8チャネル分のデータとコントロールレジスタ1個で、9回です。何の変哲もない回路です。

さて、CoolRunner2の書き込みもMITOUJTAGでやりたいところなのですが、残念ながらMITOUJTAGはまだCoolRunner2には対応していません。なので、SVFファイルを経由させる必要があります。
最初、iMPACTでSVFファイルを生成していたのですが、GUIの操作性のため3回目で嫌になりました。

なのでiMPACTのバッチモードを使うことにしました。

iMPACTをGUIモードで普通に作業をしていると、いつのまにか_impact.cmdというファイルが作られています。実は、このファイルはiMPACTに実行させた作業が、コマンドとして書かれたものです。
このファイルを使えば、iMPACTのGUI画面を触らなくてよくなるのです!!

ファイルの内容を適当に編集して保存し、コマンドラインから
impact -batch hoge.cmd
のようにして実行すると、GUI画面を見ずに作業ができます。

JEDファイルをSVFファイルに変換するための記述は次のようにします。

------------------------ hoge.cmd ------------------------
setMode -bs
setCable -port svf -file "hoge_cpld.svf"
addDevice -p 1 -file "hoge.jed"
Program -p 1 -e -v -defaultVersion 0
quit
------------------------------------------------

最初のsetMode -bsの記述は、ISEのバージョンで若干異なるようです。
昔はsetMode -bsfileだったのですが、ISE9.2では-bsになっていました。
ISEのバージョン間で若干の違いはあるものの、だいたいこのような感じのコマンドを記述しておけば、GUI画面に触ることなくSVFファイルが生成できます。

このSVFファイルをMITOUJTAGで再生すると、CoolRunner2に書き込めます。

ところでCPLDは、中にRAMがないのでデバッグにChipScopeとか使えません。
今回のCPLDは、シリアルDAC操作なので、動作速度はいくら落としても問題ないアプリケーションです。
クロックを十分に落とすことでバウンダリスキャンで端子の状態が読めるようになりました。
本当は10μ秒くらいの間に起こる現象を、10秒くらいかけてサンプリングしています。
Ad53xx_2


MITOUJTAGのCoolRunner2へのネイティブ対応は、今まで何度か挑戦してみたものの挫折してきた経緯があります。ですが、やはり直接書き込めると便利なので、5月中にまた挑戦してみます。だめなら、またあきらめます。

| | コメント (0)

« 2008年4月 | トップページ | 2008年6月 »