Story

クロックが一定じゃないって事

PCIExpressを作っていて失敗したのは、クロックが一定ではないという事でした 私が作るカメラは、基板上に発振器を持っていて、それで自分のフレームレートを作り出しています なのでフレームレートの誤差は、クロックが持っている誤差になります それは±100…

ドライバの開発 レジスタへのアクセス

今ならどうやってデバイスドライバを開発するかな?って考えた時に ソフトウェアでドライバを構築して、とりあえずPCからデバイスへの値の書き込みを行う それをNiosIIで確認してコンソールへ出力 こんな感じで行うかなと思います また、シグナルタップで監…

FPGAのプログラムとドライバの開発

PCI Expressの開発をしていて、一番苦労を感じたのは、デバイスドライバの開発です 私はカメラを作った時からハードウェアのエンジニアになったので、ソフトの方は新卒から6年過ごした会社での経験しかないので、そこからのソフトウェアの知識のアップデート…

また黙々と

PCI Expressに着手しましたが、もともと出来合いのボードを買ってきて、FPGAの中をいじれましたと言うところを見せて、開発の許可が降りたところなので まだ何も始まっていません。 まずは、買ってきたボードを使って、ボード内部に仮想のカメラを用意して …

PCIExpressの実験

何とか12万円のボードを購入する事を勝ち取った私は 早速PLDa社からボードを購入しました 当時はまだ海外と言うのはちょっと閾が高いので ボードが届く瞬間はワクワクしました 今は、毎日のように海外のサイトから部材を購入したりしてしまって ただただ忙…

PCI Expressの勉強を始める

今ふと思うことは、三平方の定理も、微分方程式も、教科書に書いてあるので なんて楽に学習できる知識だったのだろうと言うことです PCI EXpressの作り方は、どこにも書いてありませんでした(正確には分厚い英語で書かれた参考書はありましたがちんぷんかん…

次はPCIExpress

PCIバスの構成でカメラを作り終えた私は、次はPCI Expressに挑みます 実は当時既にPCIバスは陳腐化しかけていた技術でしたが PCI Expressは、PCIバスと違い、信号が一本(一対)のラインで送られます 複数のラインであっても、それはパケットを分けて送ってい…

人間関係

古い情報ですが、仕事を辞める理由の一位は人間関係だそうです 私も人間関係は随分悩まされました。 私が見たところ、エンジニアと営業を比べるとやはり営業の方が人付き合いが上手で 更に言うと、ハードウェアエンジニアの方がその名前の通り柔軟性がないと…

カメラはできた、ここが始まりだ

基板を渡されてから一年くらいで、なんとかカメラを作り終えました このカメラを買ってくれる予定のお客さんのところに持っていって お見せしました この時のカメラは1000x1000の解像度で500fpsぐらいのものでした 最近は一般的なカメラでも200fps以上のスロ…

NiosIIを知る

FPGAの中に入れるCPUについては、最初のカメラを作っている最中に知りました。 最初にその事を知った時は「え?CPUってそんな簡単に実装できちゃうの?」と言う感覚でした(簡単ではなかったけどね) 最初のカメラにはCPUは実装しませんでしたが 次第に、CPU…

カラーイメージセンサ

基板の事ばかり書いていたので、カメラを作るお話をしていた事を すっかり忘れていました。 さて、前述した通り、私が作っていたカメラは、モノクロカメラですが 実は、同じ構成のまま、イメージセンサだけ乗せ換えれば、このカメラは カラーカメラに生まれ…

デジタルだけが課題じゃない

ハンダ付け SDRAMを操作するときにとても苦労したのは ロジック的には間違っていない筈なのに、なんでかデータが合わない事がありました クロック信号の回路を見直すと、変な所に抵抗とコンデンサがついている 上司に聞くと終端抵抗だと言う 電子回路に馴染…

SDRAMという大敵

最後の壁になったのはSDRAMでした と、言うより、とても面倒くさそうだったので、最後まで手を付けなかったのがSDRAMです。 さてここで問題です、FPGAでSDRAMをコントロールするにはどうしたら良いでしょうか? ・・・・ はい、正解です。IP-Coreを使います…

このセンサーはモノクロだった

さて、改めて言いますが、私は全くの素人からカメラ作りを始めました。 ですので、今となっては常識的な事も、全く知りませんでした。 絵がちゃんと出る様になった段階で、何に気がついたかと言うと 私が開発しているセンサーは、モノクロセンサーだったと言…

この回路を直す

さて、前回、回路のビット不正を見つけたところでした これを上司に報告すると、「あっ間違えちゃった。じゃあ修正してね」 私は呆気に取られていました。 当時まだ素人だった私は、基板の回路が間違えていると言うことは 切腹ものの致命傷だと思っていまし…

えー?回路間違ってんじゃん!

さて、絵が出る様になった頃、不思議な現象がおきました 確かに絵が出るのですが、絵を明るくしていくと、ある部分がぽこっと黒くなってしまうのです、暗くなった部分は色が消えるわけではなく、そこにはそこで、絵があるのですが、いったん黒くなって、また…

少し見えてきた。流れる絵

非同期の信号が問題であることを見破った私は そこを、あーやって、こーやって調整する事で、解決していきました。 これは、私がカメラを開発する過程で必ず毎回通る道ですが 一発で絵が出ることはなく、ちょいちょいと絵が見えていきます この時も、ぐちゃ…

FIFO進展

さて、最初の絵をなんとかしないといけなくて 信号を見ながら確認していると、分かった事は インプットのクロックとアウトプットのクロックが非同期であると言う事です 同じ66MHzでも、クロックのソースが同じでない場合、それぞれのクロックドメインの信…

FIFOでの不具合

FIFOで不具合が出た場合、どのような事が起きるか見てみましょう カメラを作るにあたって次の様な絵を表示したいと思いました 最初の目標 グレースケールパターン この絵は、カメラを作る過程で何度も使ってきた絵で、今でも良く使います ピクセルが順番に並…

FIFOのお悩み

FIFOというのはFirst In First Outの事で 最初に入ってきたデータを最初に出しますよ と言うIC(IP)です。 これはFPGAの中では割と簡単に構築する事ができます。 そして、データの取り出しも1クロックの遅延をきちんと意識すれば それほど苦労する事なく行…

メモリを動かす

PCIが動く様になり(PCとの通信をどうしたかは、いずれ) 次に手を付けたのは、メモリです このPCIボードには、二種類のメモリが実装されていました。 一つは、画像を全て蓄える為のDIMMタイプのSDRAMメモリ もう一つは、1枚分の画像をモニタリング用に入れ…

PCIバスってすごい

PCIバスの後に出来たバスでPCI ExpressやUSBは、もちろん優れたバスですが、PCIバスが出来た当時の事を想像すると、PCIバスと言うのは、その前にあったISAバスで発見された問題を解消してくれていました。 例えばNiosIIのバスを見てみると、まず、アドレスバ…

最初に動かすべきもの

FPGAの中の信号をちょいちょいいじれる様になってきて 数少ないテストピンに出力する事でオシロスコープでもチェックできる様になってきた時にふと思い出しました。 「あれ?俺はカメラ作ってんだよな?絵ってどうやって見るんだ?」 なんでこんな事を考えた…

UART

結局、カメラ側はPICがあるからいいけど、FG(FrameGrabber)側はFPGAしかついていないので、何にしても、FPGAでUARTを送受信する必要がある。 それが分かった私は、UARTについて調べました。 元々、モデムなどを使った事があるので、聞き覚えのある言葉も多…

こんなところにPICが

毎日毎日コンパイルを繰り返し、カウンタを作り 同期信号を作ったり、外部信号を認識したり 少しずつ、FPGAの使い方が分かってきた頃、ふと気がついた FPGAの横にちょっと小さいデバイスがくっついてる なんだろう?と思って調べて見ると、PICと言うICらしい…

コンパイルの日々

「FPGA開発の基本はシミュレーションができる事である」 今は、私はこう言います。 ですが、今も昔も、結局の所コンパイルして実機で動かすまで何が起こるか分からないのも事実です。 FPGAが動かせるようになった後は、とにかくコンパイルの日々でした。 チ…

海外から帰ったら・・・

私は20代の終わりの時にワーキングホリデーと言うものを発見して「これだー」って思ってカナダに1年住んでみました。 大した成果もないまま、一年が過ぎ、日本に帰る事になり思った事は、「は~明日からただの失業者か、何やろう?」と言う事でした。 少な…

ブログのきっかけ

私は誰からも教わらずにFPGAの開発を始めたのですが、その為に、ある結構長い期間、死ぬほど苦労しました。 3年くらい苦労して新しい方法を発見する度に教えてもらえれば1週間で出来たのに・・・って後悔しました。 このブログを始めたきっかけは、私がし…