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

2007.05.24

yacc/lex

yacc/lexの使い方を勉強してます。
yaccというのはコンパイラコンパイラで、独自のコンパイラを作るためのツールです。
なんでこれらのツールを勉強しているかというと、基板検査等に使うための強力なJTAGスクリプト言語を開発するためです。
実用的なスクリプト言語を作ろうとすると、for文やif文、変数の扱いが必要になってきますが、それを自分でどうやって実装しようかと2、3日悩んだ挙句、自分で考え出すのは難しいという結論に至り、本を買って勉強することにしました。

今回の参考文献は、「コンパイラ構成法」 原田賢一著 共立出版。この本は教科書的で、yaccとlexでの例を出しながらコンパイラの理論を教えてくれます。

yaccの使い方は、やはり最初は四則演算のできる電卓の作り方のことからはじまります。
で、わかってきたのはyaccを使っても制御構文は自動的には作れないということです。
ifとかelseとか、そういう制御構造で行う処理は自分で書かなければなりません。
変数に遭遇したときの処理も自分で作らなければいけなさそうです。
yaccというのは、つまるところルールに従って入力文の構造を解析し、解析木を作ってアクションを起こすことくらいしかやってくれないようです。

さて、ソフトウェアを作るとなると心配なのがライセンスです。
コンパイラコンパイラは、出力したコードの中に自分自身のコードを入れるので、一般にその成果物のライセンスがややこしくなります。
yaccやlexにはGNUが実装したものがあって、yaccに対応するのがbison。lexに対応するのがflex。
bisonを使った場合、下手するとGPLに汚染されたコードを出力してしまいかねません。
一応bisonはバージョン1.24から出力したコードをGPLにしなくても良いという例外措置がとられたそうなのですが、何が潜んでいるかわからないので、やはり怖いです。

ここは、ライセンスの綺麗な純粋のyaccを探して使うか、リリース用のパーサは自前で作るかしたほうが良さそうだなという感触です。
#それにしても、yaccとlexのライセンスがわからない。

電卓程度ならば、自分で書いたルーチンよりも、yaccが自動で出力したソースの方が圧倒的に大きいのですが、構造とか変数とかスコープを実装した実用的なコンパイラとなると自分で書いたプログラムのほうがyaccの出力よりもはるかに大きくなりそうです。

| | コメント (2)

2007.05.21

ESEC出展報告!

先週はESECに出展しました。
ESEC特電ブース

展示内容は、MITOUJTAGと、特電PCI Express IPコアと、JTAG WARP9のデモンストレーションでした。
特電ブースにご来場いただきました皆様、本当にありがとうございました!

ESEC特電ブース 顔が映っているのは私

IPAでの講演におきましても、16日は83名、17日は160名、18日は113名と、なんとのべ356人もの方にアンケートをご回答いただけました。
ブースにご来場いただいた方の数は、おそらくのべ300人ほどだったと思われます。

皆様からいただいた意見をもとに、さらにいっそうMITOUJTAGの改良に励んでいきたいと思います。

PCI Express IPコアにつきましても、「コンプライアンスや互換性よりも、コアのサイズとコンパイル時間を重視する」という、弊社の開発方針が多くの方に共感していただけました。お問い合わせいただいたDMAの性能についても、今後1ヶ月くらいで実装して、速度を測定していきたいと考えております。

皆様、本当にありがとうございました。

| | コメント (0)

2007.05.17

ESEC2日目

ESECの会場で、バウンダリスキャンを使った基板検査ツールをみかけたので、今日はそのブースに話を聞きに行ってきました。
「デモを見せていただけますか」と聞くと、私の名札をちらっとみて、「MITOUJTAGの方ですか」、と。
向こうもMITOUJTAGのことを結構気にされているようでした。
丁寧にいろいろと見せてもらいました。
私は思い切って「うちのツールも売ってくれませんか?」と提案してみました。

それから、夕方頃、FPGAのデバッグツールをつくっていらっしゃる会社の方が見えて、いろいろと聞いていかれました。こちらも競合しているといえば競合なんですよね。

| | コメント (0)

2007.05.16

ESEC1日目

初日。

実は、夜中の4時ごろ起きて、PCI Expressのコアのアプリを作成しています。
パソコンの画面でマウスクリックすると、PCI Expressを通じて指令が伝わり、LEDが光るという単純なアプリです。
昨日まではチラシを作ったり、広告を書いたりで時間がなかったので、当日の朝に作業という始末です。

というわけで、PCI Expressの実験に使ったパソコンは、自宅から会場へ手持ちでした。
9時40分ごろ会場に到着。
パソコンのケーブルをつないだり、PCI Expressのマザーボードをつないでいると、もう開場時間。
早速、MITOUJTAGの体験版を予約されたお客様がいらっしゃいましたが、申し訳ございません。まだ準備ができていなくて・・
PCI Expressのパソコンをセットアップすると、なぜだかWindowsが起動直後に落ちてしまう!
かなり焦りました。
原因は、持ってくるときの振動でCPUのヒートシンクが外れてしまっていて、CPUが加熱しすぎて自動シャットダウンしてしまっていたことのようでした。ヒートシンクを取り付けなおすと、安定して稼動。
現場でPCI Expressのデモソフトのアプリの開発の続きを行います。
画面に表示された「特電PCI Expressコアサンプルアプリケーション」の文字を特大にしたり、そういう改良です。

さて、IPAブースでのプレゼンテーションの時間です。
いざメモリスティック内にあるパワーポイントのデータを開こうとすると、「壊れていて開けません」とのこと。
かなり焦りました。
幸いなことに、昨年のETにおいて某社で使ったプレゼンデータがあって、中身はほとんど同じなので、それを使って発表をするということで難を逃れました。
ただし、自社ブースの番号が「B-03」とかってESECにはありえない番号になっています。

新製品のPCI ExpressコアやJTAG WARP9の評判はなかなか上々。いろいろな貴重なご意見を伺いました。

| | コメント (0)

2007.05.15

ESECの準備

今日はESECの準備。
展示会を、いかに楽な搬入搬出で済ませるかするかを考えているので、大きな荷物はすべて宅配便。
手荷物は両手にぶらさげた紙袋だけという軽装でした。

ビッグサイトに行く途中でゆりかもめに乗るために新橋駅を出て歩いていると、主税局の人たちが「納税は期限内に」というチラシを配っていました。
その人たちの真ん中を歩いていったのですが、誰も私に「納税は期限内に」のチラシを手渡そうとしない。
後ろにいた70歳くらいのおじいさんには手渡している。
私は納税者に見られなかったのか!?
ちょっとショック。

ビッグサイトに着いて東4ホールに入ると、広くて迷いました。
やっと到着したIPAのブースは、右も左も知り合いばかり。
もう4年くらい、一緒に展示会に出ているんですね。

| | コメント (0)

PCI ExpressのIPコア

特電のPCI Express IPコアは、
なんだかいろんなところで期待されてしまっているようで、
焦りながら作っています。

しばらく開発を中断していましたが、ようやく、
メモリリード、メモリライトのTLPを処理するようにしたので、
パソコン上からBAR0空間の読み書きができるようになってきました。
一応動いているぞといえるレベルには達したと思います。

またFPGAの使用率はXC3S1000の16%くらいですから、XC3S250Eにも載るといえるでしょう。

| | コメント (0)

2007.05.13

世界最高速のJTAGコンフィギュレーション

世界最高速のJTAGコンフィギュレーション装置を開発しました。
この装置をJTAG WARP9と名づけます。
(WARP9というのは速いという意味から名づけました。)

Jw9_1

JTAG WARP9は、XILINX FPGAに対する最高速のJTAGコンフィギュレーションソリューションを提供します。

JTAG WARP9は、FPGAが耐えられる限界速度でJTAG信号を出力します。
JTAG WARP9は、JTAG信号の生成をすべてハードウェアで処理しているため、送出するJTAGシーケンスの中に無駄な待ち時間がほとんどなく、FPGAのコンフィギュレーション速度の限界に迫ります。

JTAG WARP9を使ってFPGAをコンフィギュレーションするには、下の写真のようにJTAGケーブルでつなぎ、ボタンを押すだけです。JTAG WARP9から超高速のJTAG信号が出力され、一瞬でFPGAが書き換わります。

JTAG WARP9の接続図

JTAG WARP9上には256Mbitの大容量FlashROMを搭載しており、電源を切ってもコンフィギュレーションデータは失われません。JTAG WARP9には4つの押しボタンスイッチがあり、そのスイッチを押すことで4種類のコンフィグデータを切り換えて送信することができます。

また、JTAG WARP9上のフラッシュROMにデータを転送するには、JTAGケーブルでパソコンとJTAG WARP9を接続し、専用のデータ転送ソフトを使用します。もちろん、JTAG WARP9は自律したシステムなので、パソコンと切り離してスタンドアローンでもご利用いただけます。

JTAG WARP9がどのくらい速いかを測定した結果を次の表に示します。
JTAG WARP9のコンフィギュレーション時間

Spartan3の1500、すなわち100万ゲートクラスのFPGAを0.192秒で書き換えることができます。
1000万ゲート以下のほとんどのFPGAならば1秒以内に書き換えることができます。
非常に高速なので、注意していないとFPGAの書き換えに気が付かないほどです。

純正のコンフィギュレーション環境(パラレルケーブル4とiMPACT)と比べてみても、その差は歴然としています。
JTAG WARP9のコンフィギュレーション時間


汎用のフラッシュROMでFPGAをコンフィギュレーションするソリューションは従来からいろいろありましたが、それらは基本的にはSlave Serial方式やParallel方式といったXILINX FPGA専用のコンフィギュレーション信号を採用していました。
JTAG WARP9はJTAG方式でFPGAをコンフィギュレーションするという点が異なります。CCLKやPROGやDONEといったセンシティブな信号ではなく、汎用的なJTAG信号を使ってインタフェースしているため、コンフィグ装置を切り離して持ち運ぶことができます。
つまり、書き込み用JTAGケーブルの感覚で持ち運びができるというポータビリティーを備えています。

なお、このJTAG WARP9は、コンシューマ向けの最終製品ではありません。
特殊電子回路㈱では、JTAG WARP9を、
・超高速のUSB-JTAG書き込み専用装置
・マルチアーキテクチャFPGA
・FPGAをコンフィギュレーションするFPGAの研究開発用
・ソフトウェア無線
・FPGAリコンフィギュレーションのデモンストレーション用
などの目的としてIPコアとしてFPGAに埋め込んだり、超高速のUSB-JTAG書き込みケーブルを開発・製造・販売される企業様向けの、研究開発用商品として位置付けています。

本装置は、FPGAの設計データ(IPコア)としても、販売します。
なおFPGAのコンフィギュレーション後に、本装置に設けた汎用IOポートから、シリアル通信信号を出力して、お客様システムへ各種のパラメータを送信するということも可能です。

本製品は、来る5月16日から開催されるESECに展示します。
ご興味をお持ちの方は、IPA(独立行政法人情報処理推進機構)ブース内の、特殊電子回路株式会社ブースまでお越しください。

お問い合わせをお待ちしております。

| | コメント (0)

2007.05.12

Virtex5!!

AVNETのVIRTEX5評価ボード(AES-XLX-V5LX-EVL50-G)を購入しました。
目的は、MITOUJTAGをVirtex5に対応させるためです。
AES-XLX-V5LX-EVL50-G

このボードは、Virtex5を中心に、ギガビットイーサ、DDR2メモリ、フラッシュROM、EZUSB FX2などが載っている豪華なものです。

さて、このボードにPocket JTAG Cableをつないでみると、どうも不安定でした。
Parallel Cable IVなら問題なかったのですが・・
どうやらその原因は、このボード上にあるEZUSB FX2のI/OがJTAGの信号線につながっていることのようでした。ボード上のEZUSB FX2が、JTAGの信号線に対してなんらかの干渉を引き起こしていたようです。ボードの回路図を見ると、EZUSB FX2のI/Oから集合抵抗を通してJTAG信号へつながっているのですが、この集合抵抗は実装しないことになっています。
Av_v5_3

AES-XLX-V5LX-EVL50-Gの回路図より引用

しかし、実際のボードでは、この集合抵抗が実装されています。
これを外すと、問題なくPocket JTAG Cableで安定して動作するようになりました。

Av_v5_2


さて、Virtex5のコンフィギュレーションソフトを書こうと思ったのですが、Virtex5の仕組みを理解するのは、なかなか大変でした。
ESECに間に合わせようと思っていましたが、それはちょっと無理そうなので、ESEC後に対応することにしましょう。

| | コメント (0)

Virtex4FX12でのMITOUJTAG動作確認

AVNETさんのVirtex4評価ボード(DS-BD-V4FX12LC)を購入しました。
DS-BD-V4FX12LC

このボードは、フラッシュROM、DDRメモリ、液晶ディスプレイのほか、ギガビットイーサを搭載しています。
USBのポートの先にはUSB-RS232C変換チップ(CPなんとか)が載っています。

このボードを購入した目的は、MITOUJTAGからVirtex4の
FXシリーズに書き込みができるかどうかを試すためです。

MITOUJTAGは、Virtex4のLXシリーズ(ロジックのみのもの)に対しては
すでに実績があったのですが、FXシリーズ(PowerPCコア入りのもの)は、
私としては使ったことがありませんでした。
というわけでVirtex4FXの載っているもっとも良さそうな
ボードとしてDS-BD-V4FX12LCを選びました。

バウンダリスキャンをしてみると、ちゃんと端子の状態が見えました。
ん?なんだかFX12の668ピンって、真ん中あたりに空きピンが多い・・

Av_v4fx12_2

自分でLEDチカチカコードを書いてFPGAにダウンロードすると、ちゃんと動作します。
ここまでは順調。

ですが、AVNET.COMにあるサンプルデザインを書き込んでみると、いくつかのものがちゃんと動作しませんでした。
おそらくBitファイルといっしょに、PowerPCのプログラムをダウンロードしなければいけないのでしょう。

なるほど、iMPACTを使ってみるとPowerPCのプログラム(elfファイル)をbitファイルといっしょにダウンロードするようになっています。
MITOUJTAGをFPGA組み込みプロセッサに対応させるというのも、今後の目標のひとつにしていきたいです。そろそろ組み込みプロセッサに正面から取り組まなければならないようです。

| | コメント (0)

2007.05.09

XC3S250Eでも動くPCI Expressのコア

来月のデザインウェーブマガジンの付録はSpartan3Eの250だそうです。

ためしに、特電PCI Express IPコアを、Spartan3Eの250実装してみたところ、
フィットできてしまいました。
いまのところSLICE使用率50%。BlockRAMは未使用。
IPピンは、XC3S250EVQ100の66本のうち、45本を使用。
FPGAの速度グレードは-4でOK。
まだまだ入りそうです。

この付録基板がのるPCI Expressの形状のベース基板を作って、
PhilippsのPHYチップ(PX1012AとかPX1011A)を乗せれば、
PCI Express機器が自作できてしまいそうです。

ただ、FPGAとPHYチップを250MHzの速度でインタフェースしなきゃならないので、
2.54mmのピンヘッダを通じて250MHzの信号がながれていくことになります。
本当に動くかどうか微妙ですが、そこはPCI Expressの強力なエラー検出
(エラー訂正ではない)に期待するとして・・

PhilippsのPHYチップではなくTIのチップにすれば
バスの速度は125MHzで済むけど、バス幅が2倍の16bitになる。
VQ100の少ないピン数ではその点が問題になりそうです。
●板.comあたりに発注してPCI Expressベースボード、作ってみようかな。。
半分本気です。

じつは、特電PCI Expressコアはまだ未完成で、
バースト転送がまだできていないという非常に未完成な状態なのですが、
すでに何件か引き合いをいただいています。
電話でお問い合わせをいただいた方に「動いているのをESECで展示します」
と言ってしまったので、いそいで完成させなければ・・

| | コメント (0)

2007.05.06

ESECにてMITOUJTAG体験版を配布します

来る5月16日~18日に、東京ビックサイトで行われるESEC会場にて、
MITOUJTAG体験版を配布します。

昨今のMITOUJTAGは、かつて弊サイトで配布していた無償評価版0.3.1と比べると、比べ物にならないほど機能アップしています。あまりにも高機能化しているので、どのように変わったかを文章で書いて表現することが難しいほどであり、最新のMITOUJTAGをできるだけ多くの方に体験していただくためには、お客様に実際にご利用いただいたほうが分かりやすいと考え、会場にお越しいただいた皆様に最新の体験版を無償で配布することにしました。

以前の展示会、「ET2006」では多くの方に体験版をお渡しすることができましたが、さらに多くの方にMITOUJTAGを体験していただきたいと思い、再び体験版を配布することにしました。
体験版は、ご希望の方に無償でお配りいたします。
※お名刺をいただけないと体験版CD-ROMをお渡しできませんので、ご注意ください。
また、限定50枚と、ご用意する数が多くはないので、予約も承っております。

※今回配布するバージョンは、前回の「ET2006」で配布していたものと同じバージョンを予定しております。

展示内容と予約方法の詳細は下記のURLをご覧下さい。

「展示会 ESEC出展のご案内」
http://www.tokudenkairo.co.jp/esec2007.html

「MITOUJTAG体験版のご予約」
http://www.tokudenkairo.co.jp/esec2007.html#taiken


多くの方のご来場をお待ちしております。
皆様、ぜひともご来場ください。

| | コメント (0)

2007.05.05

新製品の開発 JTAG WARP9

特殊電子回路では、新製品を開発しています。
その名もJTAG WARP9。 (ジェイタグ ワープナイン)
JTAG WARP9

WARP9とは何なのか。速いのか?
そもそもこれは何をする装置なのか。

ESEC会場にてすべてが明らかになります。
乞うご期待。

| | コメント (1)

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