« 2005年5月 | トップページ | 2005年7月 »

2005.06.30

Hold Timeが満たされないと

VirtexII Proを使った設計をしていて、あるときからRouteにかかる時間が急増した。
いままで数分くらいでできていたものが、10分になり、30分になり、どんどん時間がかかっていく。
それほどたいした回路ではないのに・・・

どうやら、タイミング制約にエラーが起きているのだけれども、
今回は、不思議なことにHold Timeが満たされていない。
レジスタとレジスタの間の組み合わせ回路の部分が重ければ、Setup Timeが満たせなくなるのが普通だ。

どうやら、クロックのネットが重くて遅れてしまい、
その結果、データの方が先に到達してしまっていたらしい。

2つのフリップフロップの間の、クロックのスキューは4.773ns。
データは、前段のフリップフロップから配線のみで、3.2nsくらいで到達する。
これだと、Hold Timeが満たせず、
ISEは、PARの中のRouteの最後のプロセスで20分くらい固まってしまう。
(そのときメモリは数百メガ消費していて何かしら動いているが)

最初は、こんな感じだった。
CLK ファンアウト=133、Net Scew=4.778ns、Max Delay=5.218ns

そこで、メインのクロックから、ブロックRAMやその周辺のロジックにつながるクロックを分離したら、
Hold Timeが満たせて、ISEはサクサクとRouteを完了させてくれるようになった。

対策後は、こんな感じになった。
CLK ファンアウト=100、Net Scew=2.516ns、Max Delay=3.260ns
MEMCLK ファンアウト=19、Net Scew=0.046ns、Max Delay=1.162ns

クロックのスキューが減るよう、手作業でDCMを追加していかなければならないのだろうか。

| | コメント (0)

2005.06.27

早く仕事を完成させよう

仕事がいっぱい詰まっており、なかなかJTAGの開発に手がつけられません。

今たまっている仕事を完成させたら、こんなことをしたいです
・MobileJTAGCable/SmartJTAGの高速化
・JTAGロジアナのさらなる高速化、最高速度に挑戦!!
・フラッシュメモリライタの改良
・基板検査用ソフトウェアの開発
・各種CPU用JTAG ICEの開発
・WDMデバイスドライバの開発

ESECにもいきたいな。
6月末を乗り切ろう!!

| | コメント (0)

2005.06.21

Intel PXA250用のJTAGデバッガを開発開始

PXA250というのはIntelからリリースされている組み込み用のCPUです。PXA250はARM 5TEアーキテクチャ互換の数百MHzで動作する速いCPUです(目の前にあるのは300MHz)。5TEアーキテクチャというのは、ARMにDSP命令が追加されたようなもので、ARMでいうとARM9EやARM10に相当するものですが、パイプラインは7段と非常に長めです。

PXA250のJTAGデバッグの仕組みは、ARM7や9のJTAGデバッグの仕組みとは全く異なります。

いままで、何度かPXA250のJTAGポートにアクセスしてきたのに、ずっとウンともスンとも反応がありませんでした
が、今日はJTAG経由でのブレーク発生に反応してくれるようになりました。ちょっと嬉しいですね。
ようやく命令の送り込み方も分かってきました。

| | コメント (2)

2005.06.16

特許調査

今回も依頼を受け、出願されている先行技術の調査を行った。
こういう仕事は依頼主の利益が最大限が確保されるように、注意深く文献を調べていく。
先行技術の問題点を洗い出したり、回避方法を考える。
そして、問題点を注視しながら設計を仕上げていく。
気の使う仕事であるが、依頼人の利益に直結するため、やりがいのある仕事である。

| | コメント (0)

2005.06.12

MITOUJTAG BASIC 1.2.2リリース開始

MITOUJTAG BASIC 1.2.2の出荷を開始します。

MITOUJTAG BASIC1.2.2画面

この新しいバージョンでは、JTAGロジックアナライザにおいて、次の機能追加および改善が行われました。

・ Mobile JTAG Cable使用時のサンプリング速度が飛躍的に向上。安定して高速サンプリングができるようになりました。また、信号の解析時間や波形の描画速度も飛躍的に向上しました。
・ JTAGロジックアナライザ使用時において、信号を、ピン番号や信号名などで、ボタン1発で整列させることができるようになりました。
・ JTAGロジックアナライザにカーソル機能がつきました。
・ その他にもJTAGロジックアナライザにいろいろな改善が行われています。

また、その他にも、次のような改良が行われています。
・ Mobile JTAG Cableにおいて、TCKの速度が100kHz~10MHzまで範囲が拡大されました。
・ Virtex2Proへの、デバイスコンフィギュレーションができるようになりました。
・ 非常に多ピンのデバイスを使用時でも、動作が軽くなりました。
・ その他、各種の不具合修正。

Version1.2.2は、明日の13日から正式に出荷を開始します。
Version1.2あるいはVersion1.2.1をご利用の方は、是非バージョンアップをご利用ください。
詳細は下記のURLをご覧下さい。
http://www.nahitech.com/jtag/basicv.html

| | コメント (0)

2005.06.09

オープンソースとGPLの問題

 フリーソフトウェアやオープンソース、そしてGPLについて日ごろ思っていたことを書こうと思います。
 こういうことは、そろそろ誰かが言わないといけないと感じています。

なぜソフトウェアをGPLにするのか
 そもそもオープンソースやGPLで公開するメリットってなんでしょう。簡単にいくつか考えてみると、

 1つ目は、オープンソースソフトウェア運動が目指す理想のような理由があります。社会貢献なのだと。
 2つ目は、サポートやマニュアル執筆で稼ごうというものですが、そんなに甘くはありません。
 3つ目は、製品の開発や宣伝にボランティアを活用するため。
 4つ目は、その後の開発と保守を放棄するため。
 5つ目は、「本当は自由に使って欲しくないからGPLにする」というのもの。
 つまり「GPL汚染」が抑止力として働くのを期待しているわけです。そのような場合は大抵デュアルライセンスが用意されています。

 他にも理由はあるかとは思いますが、GPLという選択肢をとるならば、はじめに戦略ありきです。
 昨今、如何にしてGPL汚染から守るか、などという話も聞かれ、今後ますますマイナスのイメージは強くなるでしょう。目的や戦略のないGPL化は、知的財産を捨てるに等しい行為かあるいは後々負債となってくる行為だと思います。

GPLを考え直そう
 ソフトウェアを公開するとしても、ライセンスはGPL以外にもいろいろあります。

 それなのに、GPLというライセンスがあたかもフリーソフトウェアの標準のライセンスのごとく思われている風潮は何とかしなければならないと感じています。
 ソフトウェアを公開するとき、「とりあえずGPL」「当然GPL」「GPLだから安心」という人が後を立たないのは何故でしょう。本当にGNUの精神に賛同できるのでしょうか。

 ソフトウェアがGPLで公開されることで本当に恩恵を受けるのは、全世界の善良な開発者では決してありません。Unixで有名なS社の社長が言ったように、ユーザに恩恵を与えると見せかけて近づき、ユーザから成果物を奪い取ってGPL発祥の国へ還元していく、GPLとは現実にはそんなライセンスではないでしょうか。

まとめ
 一般に、大多数のユーザはソースの公開を望んでいるのではなく、ちゃんと動作することを望んでいます。例えば、Microsoft Windows XPのソースコードを見たいと思うでしょうか?Linuxのユーザでソースを見て改良している人はどれだけいるでしょうか?
 
 組み込みの世界では、GPLのソフト(LinuxやGCC)を活用することは重要です。しかし成果物をGPLにすることに抵抗を感じる人は少なくないでしょう。GCCなどのツールは如何に上手くを活用するかがポイントです。そう、オープンソースの活用です。

 従来、このような議論はタブー視されてきたように思われますが、フリーソフトウェアやオープンソースとりわけGPLについてそろそろ真剣に考えてみるべき時期が来たように思われます。

| | コメント (0)

JTAGのエミュレーション

JTAGのエミュレーションとはいっても、CPUのICEではありません。

いろんなデバイスのJTAGの部分だけを、模倣する回路をFPGAに作りこんでみました。

manydev

ALTERAのCyclone2つ、IntelのXEON、そして3個のXILINXのコンフィグROMがつながったチェーンが、FPGAの中に仮想的に作りまれています。

MITOUJTAGを起動すると、見事にこれらのデバイスが自動認識されました。
FPGA内には仮想的なバウンダリスキャンレジスタを作りこまれていてそこには乱数をセットしているので、バウンダリスキャンすれば乱雑なデータが読み出されます。

こうして、手元に実物がないデバイスや、とても入手できないようなデバイスでも、その雰囲気を味わえるようになりました。
どんなデバイスでも作れます。

これが何の役に立つかというと、いろいろな動作検証用に使います。

| | コメント (3)

2005.06.03

国際電子回路産業展に行ってきました

国際電子回路産業展(JPCA 2005 Show)に行ってきました

カシャコンカシャコンと音を立てながら基板を作ったり、切ったり、検査したりする機械はいいですねー。レーザーやマイクロサイズのドリルでの穴あけは、毎年見ても飽きません。

青色レーザーを使って、プリント基板に直接感光させて描画するソリューションもありました。この手の装置は以前は1社くらいしかなかったと記憶していますが、今年は数社に増えていました。いずれデスクトップサイズになったらいいなと思います。

また、市販のパソコン用のプリンタを使って、紙の上にインクジェットでパターンを描くのもありました。印刷した後で焼きいれすると電気が流れるようになるそうです。早く実用化されるといいですね。
(表面実装部品を載せるか紙の中に埋め込むかして、光る年賀状ができたらいいな。)

はんだ付けもマイクロで微細の世界なんですね。
基板屋さんはどのブースも非常に微細で高品質な基板を展示していました。

帰路につく頃には眼にパターンが焼きついている、そんな展示会でした。

| | コメント (0)

Virtex2ProとTDOのプルアップ

私の今いちばんのお気に入りデバイスは、Virtex2Pro。
PowerPCプロセッサやRocketIOなど面白いものがいっぱい入っています。

さて、そんなVirtex2Proですが、このシリーズはJTAGのTDO端子にプルアップ抵抗が内蔵されていません。

普通、大抵のデバイスにはTDOをプルアップする仕組みが内蔵されているので、TDOはJTAGケーブルと素直につなげばよいわけです。ところがVirtex2ProのTDOはオープンドレインとなっており能動的にはドライブされないため、回路設計者が外からプルアップしてやらなければなりません。

データシートには、速度や容量を考えて200Ω以上にするようにと書かれていますが、実際にはどの程度がいいでしょう。

まず、プルアップ抵抗を10kΩにした場合の波形をご覧下さい。なお、デバイスはXC2VP4で速度は-6です。

10kΩ時の波形

ショッキングです。明らかにコンデンサの充電波形です。
太くて高いパルスは、'1'が2つ以上連続している場合なのだとは思いますが・・・。'1'が1つしかないところは波高も低く、こんな波形では高速動作は望めません。
実際にやってみたところ、TCK=1MHzはOKですが、TCK=2MHzでダメでした。
10kΩを並列にして5kΩにしても、状況はあまり変わりありません。
5kΩではTCK=2MHzはOK、3MHzはダメでした。

プルアップ抵抗を330Ωにすると、かなり波形は綺麗になります。

330Ω時の波形

これで、TCK=10MHzでも通るようになりました。(JTAGケーブルの長さは20cmくらい)
TCK=10MHz時の波形

まとめると、
× 10kΩ→1MHzはOK 2MHzはダメ
× 5kΩ →2MHzはOK 3MHzはダメ 
○ 330Ω→10MHzはOK
TDIやTMSのプルアップは4.7kΩでもいいのですが、TDOはもっと低くしないといけないようです。

なお、MITOUJTAG BASIC Version1.2.2では、Virtex2Proのコンフィギュレーションができるようになります。
TCK=10MHzに設定して、XC2VP4にbitファイルを書き込んだ場合の所要時間は1秒未満と非常に高速です。快適なFPGA開発をお楽しみいただけます。


| | コメント (3)

2005.06.01

JTAGロジアナの大改良

JTAGロジックアナライザが、ますます使いやすくなります!

まずは、開発中のスクリーンショットをご覧下さい。

jlogana110万ポイントのデータをサンプリングしても、サクサク動くようになりました。
波形をマウスでクリックするとカーソルが表示され、その時点での論理値や時刻を表示するようになりました。右の図は、SH-4のCPUで、リセット後からLinuxが起動するまでの端子の状態を波形表示しています。毎秒3000回程度サンプリングすることができます。

jlogana2





従来のバージョンのJTAGロジックアナライザでは、見たい波形を順番に並べるので一苦労でした。新しいバージョンでは画面上で「ピン番号」「ピン名」「ユーザ名」と書かれた見出しの部分をクリックするだけで、信号が自動的に整列されます。
これで非常に快適に信号を観測することができます。

sort


また、サンプリングが行われた時刻が黄色いドットで示されるようになりました。
ほぼ一定間隔でサンプリングできているのがわかります。
timescale

さらに、次の2つのボタン、sleftsrightを押すと、現在カーソルが当てられている時刻から右あるいは左に、信号が遷移する点を探してくれます。長時間のサンプリングをした時に、信号が変化するポイントを素早くみつけるのに役立ちます。

今回、付け加えられた機能は次のとおりです。
 ・カーソル機能
 ・信号のソート機能
 ・信号が遷移する点の探索
 ・表示可能な時間軸の範囲の拡張(1ns~25000秒)
 ・描画の高速化
 ・Mobile JTAG Cableでのサンプリング高速化
 ・TAPのリセットがロジアナ上から操作可能に

時間軸の拡大の効能については、また別の機会に紹介します。

この進化したJTAGロジックアナライザは、MITOUJTAG BASIC Version1.2.2でご利用いただけるようになります。ご期待ください!

今回のJTAGロジックアナライザは、かなりの自信作です。一人でも多くのハードウェア開発エンジニアの方に、この快適な組み込みデバッグ環境をご利用いただきたいと思っております。

なお、MITOUJTAG BASIC Version 1.2.2は、テストを重ねて来週初めのリリースを目指しています。もし、一日でも早くこの進化したロジアナを試したい方がいらっしゃいましたらご一報ください。

| | コメント (0)

« 2005年5月 | トップページ | 2005年7月 »