« 2008年7月 | トップページ | 2008年9月 »

2008.08.26

FPGAカンファレンスに出展します!

特殊電子回路は、9月9日(火)に、秋葉原UDX開催される
 「6都市FPGAカンファレンス 東京」に出展します。
FPGAカンファレンスは特定非営利活動法人FPGAコンソーシアムの主催するFPGA専門の展示会で、最新のFPGAの情報や応用例が一挙に集う、FPGA専門の展示会です。
どなた様でもご来場いただくことができ、入場料は無料です。
またFPGA関連企業各社の開催するセミナーもあり、仕事や大学、趣味を問わずFPGAに携わる者には見逃すことのできない一日となることでしょう。

6citybanner1_2

今年の東京会場は秋葉原UDXという好条件。
UDXは秋葉原駅から徒歩2分。交通の便が良いので、盛大な盛り上がりが予想されます。

当社のセミナーの時間は、11:45~12:00という昼食前の良い時間です。
「JTAGってどう使う?~論理合成せずにFPGAを動かす、常識破りのデバッグ方法~」という演題で多数のデモを含めて講演をさせていただきます。ご期待ください。

また、弊社の展示は、
電子回路、とりわけ、組み込み機器のデバッグでは、ひとたび「ちゃんと設計したはずの基板が動かない」、「CPUが動いているのかどうかさえわからない」、「FPGAが起動しない」、「配線がちゃんとつながっているのか怪しい」などの問題が発生すると、原因究明に無駄な時間を費やしてしまうことになりかねません。
従来は、このような問題の解決には経験と勘のようなものが必要とされてきましたが、JTAGを使うとこれらのデバッグに要する時間を大幅に削減することができ、問題点を素早く見つけることが可能になります。

という趣旨で、展示を行います。

また、今度こそはMITOUJTAG Proの体験版配布も予定しております。

多くの皆様のご来場を心よりお待ちしております。

会期
 平成19年9月9(火)
会場
 秋葉原UDXギャラリー(秋葉原UDX4F)
展示内容
 ●FPGAを論理合成せずに動かす新製品 「MITOUJTAG Pro」の紹介
 ●MITOUJTAG Pro体験版CD-ROM配布
講演日時
 11:45~12:00ごろ 「JTAGってどう使う?~論理合成せずにFPGAを動かす、常識破りのデバッグ方法~」
交通機関
 ● JR山手線・京浜東北線、総武線、TX、地下鉄日比谷線 秋葉原
 ● 都営新宿線岩本町駅

| | コメント (2)

2008.08.25

感謝状をいただきました

柏にある宇宙線研究所で、あるプロジェクトの完成式典があるとのことで招待状をいただいていました。
当社はそのシステムのごく一部をお手伝いさせてもらっただけであり、式典に出席するなんておこがましいとは思っていたのですが、感謝状がいただけるとのことで出席することにしました。

最初に、2人の先生が講演をされ、最近の宇宙論やこのプロジェクトが分かりやすく説明されました。地球にいながらどうしてそこまでわかるのか。人間というのは本当にすごいです。
なるほど、宇宙線のエネルギーによって磁場での曲げられ方が変わるから、シャワーの方向やエネルギーを正確に測定できれば宇宙の大構造に関する情報が得られるのですね。
しかも測定値の校正もできるような仕組みになっているのが本当にすごい。この点は感動しました。
宇宙で最高のエネルギーを持つ宇宙線がどこからくるかがわかれば、きっと宇宙の謎がひとつ解明され、さらに多くの謎が湧き出てくるのでしょう。

その後のパーティでは様々な企業の方や教授の方とお話ができました。
奇遇にも当社の取引先の方もいらっしゃっていました。とてもよい一日でした。

| | コメント (0)

2008.08.23

MITOUJTAG Pro出荷開始!

特電の悲願だったMITOUJTAG Proの出荷を、ようやく今月21日(木)に開始しました。

Mjpro_cdrom

MITOUJTAG Proが提供する、「言語によるJTAG操作とロジアナ、バウンダリスキャン可視化の使いやすい統合」は、MITOUJTAGが最初からやりたかったビジョンでした。5年の時を経てようやくその実現に向けて動き出しました。
この2週間ほど、徹底的にバグ出しをし、
完璧というレベルにはまだまだ程遠いのですが、
ようやく出荷できるレベルまで達しました。

不思議なことに、必死でMITOUJTAG Proを開発していたら、
多くのお客様からもの凄い勢いでPro版のお引き合いを頂くようになりました。
そんな中での出荷開始です。

この週末は主にテストベクタ機能の改良とマニュアルの作成に充てる予定です。
徹底的にJTAGを使いやすくするまで、まだまだまだまだ改良していきます。
Mjpro_vector

出荷したMITOUJTAG Proがエンドユーザ様のお手元に届くのは月曜日ごろだと思われるので、週末に改良版を仕上げて、月曜日にはさっそくサービスパックをリリースしようと思います。

このMITOUJTAG Proが、お客様の抱えている問題解決に役立つことを祈っております。

| | コメント (0)

2008.08.19

JTAGロジアナの統合

最近はMITOUJTAG Proの開発を続けています。
今日は、JTAGロジックアナライザ関係のファイル名についてデバッグをしていました。

Mjpro_2


複数の「JTAGロジアナ設定」をプロジェクトツリーに登録することができるようにしました。

右の図のように、複数の設定がプロジェクトに登録することができます。各ノードをクリックするとその波形が表示されます。
2つ以上のロジアナ画面を同時に開くので、過去の波形と最新の波形を見比べてみたりするのに便利だと思います。

上の図の「JTAGロジアナ」配下のノード(例えば、nonamed.jlaや位置合わせ.jla)をクリックすると、次の図のように、複数のMDI子ウィンドウが開きます。





Mjpro_1

今日一日JTAGロジアナのソースを読み返してみたので、大分内部構造を思い出してきました。少しずつですが、MITOUJTAGをより便利に快適にご利用いただけるような改良を行っています。近いうちに、通常モードでのトリガや、BLOGANAモードの拡張にも取り掛かりたいと思います。

| | コメント (2)

2008.08.17

トラ技78K基板 私設サポートページ

なひたふの本家Webサイトに「トラ技付録78K基板 私設サポートページ」というのを書いています。
■トラ技付録78K基板を使おう

トラ技の記事には書ききれなかった細かいノウハウなどを書きました。
このブログで紹介した、「78K基板でもう一枚の78K基板をプログラムする装置」などのアプリケーションも、そちらのページに用意しました。
どうぞよろしくお願いします。

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

2008.08.13

SH4をバウンダリスキャンで遠隔操作

今回は、アルファプロジェクトさんのAP-SH4-1Aという、SH7750Rの評価ボードを用いて実験してみました。
Apsh4

SH4を遠隔操作してフラッシュメモリの内容をパソコンの画面にダンプしてみることにします。

まず、AP-SH4-1AにPocket JTAG Cableをつなぎます。
MITOUJTAG Proを立ち上げたら、SH7750RのBSDLファイルをドラッグ・アンド・ドロップします。すると、画面にSH4の絵が表示されます。
Sh4_1

次に、ピン定義ファイルを作成します。今回のはCPUなのでUCFファイルなどは必要ありません。BSDLファイルを読み込むんでボタンを押すだけでOKです。作成したピン定義ファイルはsh7750r.pinという名前にしておきます。

作られたピン定義ファイルの一部を抜粋してみると、
---------------
A 1:180 1:179 1:176 1:175 1:174 1:173 1:172 1:171 1:62 1:63 1:64 1:67 1:68 1:71 1:72 1:73 1:74 1:75 1:76 1:80 1:81 1:82 1:83 1:84 1:189 1:186
CS 1:7 1:6 1:5 1:89 1:90 1:4 1:3
RD_CASS_FRAME 1:94
RD_WR 1:95
D 1:146 1:142 1:140 1:138 1:134 1:132 1:130 1:128 1:127 1:129 1:131 1:133 1:137 1:139 1:141 1:145 1:11 1:15 1:17 1:19 1:23 1:25 1:27 1:29 1:30 1:28 1:26 1:24 1:20 1:18 1:16 1:12 1:124 1:122 1:120 1:116 1:112 1:110 1:108 1:103 1:102 1:104 1:109 1:111 1:115 1:119 1:121 1:123 1:33 1:35 1:37 1:41 1:45 1:47 1:49 1:53 1:54 1:50 1:48 1:46 1:42 1:38 1:36 1:34
WE2_CAS2_DQM2_ICIORD 1:96
WE3_CAS3_DQM3_ICIOWR 1:97
WE6_CAS6_DQM6 1:98
WE0_CAS0_DQM0 1:61
WE1_CAS1_DQM1 1:60
WE4_CAS4_DQM4 1:59
WE5_CAS5_DQM5 1:58
WE7_CAS7_DQM7_REG 1:101
---------------
というふうになっています。
上に挙げた信号は、メモリへつながっているアドレスバスやデータバス、メモリのリード、ライトなどの制御信号です。たとえば、WE7_CAS7_DQM7_REG という信号は、1番目のデバイスの101 番ピンであることを示しています。

このボードにおける、SHとROMの接続は次の図のようになっています。
Sh4_6


さて、次にメインのCプログラムを書きます。
プログラムの中では、まずWRやRDの線を適切に設定して、フラッシュメモリだけがデータを出すようにします。
SH4にはCS0~CS6がありますが、この基板ではCS0がフラッシュメモリ、CS1はSRAMなので、CS0だけLにします。
また、この基板ではフラッシュROMのアドレスバスのA0は、SHのA1につながっている(つまり1ビットずれている)ので、アドレスバスに信号を出力する際に2倍してやります。
    A = addr * 2; // アドレスバスを出力する

Sh4_2

これで、Cプログラム中の変数addrの値をアドレスバスに出力し、データバスの内容を読み込んでprintfするプログラムができました。

実行させてみると、このようにパソコンの画面上にメモリダンプが表示されます。
Sh4_3_2

これがいったい何なのかということを図を用いて説明します。
普通は、SHなどの組み込みCPUを使ったシステムでは、ユーザは組み込みCPUの上で動作するプログラムを作成します。CPUが動作してROMやRAMにアクセスします。

Sh4_4

MITOUJTAG Proを使った場合は、SHなどのCPUは眠った状態になります。そして、I/O端子だけがパソコンを通じて操作されます。いわば、組み込みCPUはただのパラレルポートとして動作するわけです。
そして、パソコン上で作られたC++のプログラム、「JTAGスクリプト」を通じて、SHの各端子がHやLに動かされ、データバスやアドレスバスが操作され、データバス上の値を読みことによって、メモリダンプに必要なデータが取得されるわけです。

Sh4_5

CPUのコアは全く動作していないのに、まるでCPUが動作しているかのように振舞います。

この機能のパワフルなところは、CPUのコアを全く動かさないのでターゲットとなるCPUのアーキテクチャに全く依存しないというところです。また、CPUごとの内蔵周辺機能やメモリコントローラなどもすべてスルーです。CPUの分厚いマニュアルを読まなくても、どの端子がどう動いてほしいかということだけを記述すればよいのです
SH以外のCPU、たとえば、IntelやMIPSやFreeScale、さらにはFPGAの中のソフトコアのようなCPUでも同じように動きます。検査プログラムを使いまわすことができます。

また、CS <= "1111100"; と書けば、チップセレクトのCS0とCS1を同時にL出力にすることもできます。
SHが通常の動作をしている場合にはこのような状態には絶対になりえないので、回路の特殊なデバッグに役立つかもしれません。

今回の実験で用いたピン定義ファイルと、メモリダンプ用のサンプルコードは以下のリンクからダウンロードできます。こんなに簡単なスクリプトでハードウェアが動くのです。
「sh7750r.pin」をダウンロード ※自動生成されたもの
「main.cpp」をダウンロード

| | コメント (0) | トラックバック (0)

MITOUJTAG Proの開発状況(1)

先週からMITOUJTAG Proの開発を再開しました。
この1週間、ずっとプロジェクトツリーの管理プログラムのデバッグを行っていました。

Windowsのソフトウェアは、ユーザがいろんな操作をしているうちに、カレントディレクトリがどこにあるかわからなくなってしまうので、すべてのファイル名を絶対パスで管理しないといけないというのがハマリの原因でした。いろいろな構成要素をどのような順番でプロジェクトに追加や削除しても、どのような順番でGUIのボタンを押しても、ようやく問題なく動くようになってきました。

今日はMITOUJTAG Proを使って、「論理合成せずにFPGAを動かす」簡単なサンプルを書いてみます。

まずは、MITOUJTAG Proの起動画面です
Mjpro1

起動直後はこんな感じです。Pocket JTAG Cableが自動認識された状態です。プロジェクトツリーはまだ空のままです。
Mjpro2

自動認識ボタンを押すと、JTAGチェーンにつながっているデバイスが検出されます。今回はXILINXのSpartan3AN評価ボードがつながっているので、XC3S700ANとXCF04Sが検出されました。
Mjpro3_2

次に、プロジェクトツリーの「ピン情報未定義」と書かれたアイコンを右クリックして、「ピン定義ファイルの変更」をクリックします。
Mjpro4

そして、Spartan3AN評価ボードのリファレンスデザインのファイルの中から適当なUCFファイルを探してきてそれを選択します。
Mjpro5

今度は、プロジェクトツリーの中の「AJFGプロジェクト」を右クリックして、「ピン定義ファイルの新規作成」を実行します。UCFファイルと、自動的に読み込まれたBSDLファイルの内容から、MITOUJTAG形式のピン定義ファイルが生成されます。
Mjpro7

そうしたら、こんどは「AJFGソース」を右クリックして、「ソースファイルの新規作成」を選びます。すると、ソースファイルの雛型が作られます。
Mjpro9

ここまでの手順は、
 ①JTAGデバイスを自動認識する
 ②UCFファイルを読み込む
 ③ピン定義ファイルを作成ボタンを押す
 ④ソースファイルの雛型を作成ボタンを押す
と、GUIの操作のみでした。

MITOUJTAGの中のテキストエディタで、適当なプログラムを書いてみます。ここで書いたプログラムをJTAGスクリプトとよびます。
下の図に示したJTAGスクリプトは、x という変数のLSBにランダムな値をセットして、それを左側にシフトしていくものです。なお、JTAGスクリプトは普通のC++ファイルです。
Mjpro10_3

JTAGスクリプト中で、 LED <= x; という記述がありますが、LEDというのはUCFファイル中で定義されていた信号(バス)名です。
Mjpro11

<=は信号を出力するための演算子です。
JTAGスクリプトでは、UCFやBSDLファイルで定義された信号名に対して"VHDL風の代入"を行うと、その信号からセットした値が出力されるというしくみになっています。

このファイルを保存して、「実行」ボタンを押すと、DOSプロンプトが開いて(開かないようにすることもできる)、作ったJTAGスクリプトが実行されます。
これを実行すると、基板のLEDがランダムに光りながらシフトしていきます。
Mjpro12

FPGAを動かすのに論理合成はしていないので、ソースを記述してから数秒で動作開始できます。

上の動作例は、C言語でFPGAの動作を記述するものでしたが、次回は、表形式のテストベクタでC言語すら使わずにFPGAを動かす方法を紹介します。


| | コメント (2) | トラックバック (0)

« 2008年7月 | トップページ | 2008年9月 »