FC2カウンター FPGAの部屋 2007年05月

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

お知らせ

今日、自転車で転んでしまって、右腕の骨にひびが入ってしまったようなので、しばらくブログの更新を休みます。
せっかく、キャラクタ・ディスプレイ・コントローラもできたところなのに残念です。現在、ギブス固定です。kossetsu_070527.jpg

  1. 2007年05月26日 10:49 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:13

キャラクタ・ディスプレイ・コントローラのその後

キャラクタ・ディスプレイ・コントローラのキャラクタROMは以前は0~9、A~Zだけしかキャラクタがなかったが、アルファベット小文字、=、;、:などを追加した。これで大体キャラクタROMは完成した。
今のところVHDLで書いてあるが、これを公開してしまうと、いろいろと支障があるだろうと思う。
希望があればVerilog2001で書き直してから、公開してもいいかなと思っている。
  1. 2007年05月25日 21:24 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:0

キャラクタ・ディスプレイ・コントローラの構成

まずは仕様をもう一度書く。
1.640×480ドット、60Hz、ドットクロックは25MHz
2.8×8ドットのキャラクタROMを使用する。データ出力幅は8bit。
3.キャラクタは80×60文字、よってそのデータを保存しているフレームバッファの容量は4,800キャラクタ。
4.キャラクタのビット長は7ビット。更に色のコードRED, GREEN, BLUEの各ビットがあるので、フレームバッファは10ビット長。
char_disp_ctler_3_070524.png

ブロック図を示す。
アドレス用カウンタは1行キャラクタのラスタを書くごとに80文字分(正確に言うと79文字分)インクリメントされるが、次はまた0に戻る。これを8回(垂直カウンタの下位3ビットで判断する)繰り返すと、次のアドレスは80になる。このように4799番地までアドレスが進む。
フレームバッファは、デュアルポートのBRAMを使用している。これでディスプレイ用のアドレスと、プロセッサなどから書き込むアドレスを分離できるので、表示画面が乱れない。RAMB16_S2_S2を5つ使用している。
キャラクタROMはとりあえず0~9、A~Zまで作ってある。コードはアスキーコードだ。8本のラスタのアドレスは垂直用カウンタの下位3ビットで指定される。キャラクタROMのアドレスはフレームバッファからのデータだ。キャラクタROMはBRAM16_S9の初期化部分にキャラクタのデータを入れてある。
キャラクタROMの8ビットのデータはシフトレジスタにロードされて、出力とフレームバッファからの各色のデータと比較されて、指定された色の映像信号が出力される。
  1. 2007年05月24日 20:41 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:0

キャラクタ・ディスプレイ・コントローラ

フルグラフィックのVGAコントローラを作ろうと思っていたが、意欲が減退しているので、見合わせていた。
もう少し簡単に作れるキャラクタ・ディスプレイ・コントローラをSpartan3 Starter Kitで作ってみた。
キャラクタ・ジェネレータROMは自分でドローソフトに枡を書いて、フォントのパターンを黒く染めていって、キャラクタ・パターンを作った。それを目で見て16進数のラスタ・パターンに変換した。
char_A_070523.png

上の図をこんな感じに。。。

A: 0041417F2236141C
B: 003F41413F41413F


それを、ブロックRAMの初期値に入れて、キャラクタROMを作った。
キャラクタROMを使って、同期信号、映像信号を生成して、キャラクタデータをディスプレイに表示している。フレームバッファにもデュアルポートのBRAMを使用しているので、ディスプレイ側とプロセッサなどからのアクセス側の2つに分離できるので、回路が簡単になる。
画面の大きさは640×480、60Hzだ。ドットクロックが25.175MHzなので、Spartan3 Starter Kitの50MHzクロックを2分周した25MHzクロックを代わりに使用した。
今のところ、コントローラにキャラクタデータをインクリメントし、色もインクリメントする回路をキャラクタ・ディスプレイ・コントローラにつけて表示している。
これが全体に表示した図。
char_disp_ctler_1_070523.jpg

これが部分的に拡大した図だ。
char_disp_ctler_2_070523.jpg

  1. 2007年05月23日 21:42 |
  2. VGAコントローラ
  3. | トラックバック:0
  4. | コメント:2

強盗致死事件

jiken_070520.jpg

今朝、家から200m位のところで強盗致死事件があった。上が現場写真。
手前に止まっている車などは放送車か? 前のほうの車も報道の車らしい。床屋の手前の家が現場の家だ。
午前8時頃、ばあちゃんが来て、何かと思ったら近くで殺人事件があったと言うことでびっくり。田舎なのだが、ちがごろは物騒だ。
トラックを盗まれそうになって、気が付いて、阻止しようとしたらひき殺されたそうだ。本当に物騒!!!
これが読売新聞の記事。こっちがアサヒドットコムの記事。
気をつけなければ。犬は嫌いだが、誰かが来ると吠えるので、こういう時には便利だ。
  1. 2007年05月20日 16:00 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

いつもの朝

昨日ESECに行って、カタログを持ちながら歩き回ったので、今日は疲れてしまった。今日は奥さんと長女は剣道の試合に行っているので、3人で過ごしている。
日記も楽しみに読んでいただいている方がいらしたということで、私の朝の様子を少しさらしてみようと思う。

今頃の朝は4時30分頃、家の犬の吠え声で目が覚める。(明るくなると吠えるようで、冬は吠えるのが遅い)
私は犬が嫌いだが、うちの奥さんが子供達を仲間に誘いこんで、包囲網を構築。私の反対を押し切り、飼うことになってしまった。ちなみにラブラドール・レトリバーとゴールデン・レトリバーの合いの子の雌だ。ペットショップから買ってきたわけではなく無料でもらってきた。
うちの奥さんに早く起きて、犬にえさをやってとお願いする。えさを食うと泣き止むのだ。これで起こされるので、5時前には起床。ネットをさまよって、いつも読んでいるサイトやブログ、SNSなどを見る。
6時頃、新聞を読みだすが、それと同時位に剣道の朝錬に行く上の娘を起こす。なかなか起きないときもある。その頃から朝食の用意をする。奥さんは洗濯。
朝食は大体、奥さん(自動パン焼き器)の作ったパン。出来立ては柔らかくて切れないので、前の日に作った辺りのパンがうまい。
私の朝食は、マーガリンつきのパン、自家製カスピ海ヨーグルト、LE PALAIS DES THÉSのモンターニュ・ブルー(紅茶)。カスピ海ヨーグルトはもう5年くらい手塩にかけて、作り続けている。やはり夏のほうが出来がいい。
食事が終わると、歯磨き、髭剃り、髪を整える。
布団たたみ、風呂の掃除、食器洗い(これは食器洗い機がやるんだけど。我が家の必需品)。
特に風呂掃除をしている時に懸案の問題が解決することがある。今日もメモリ構成の問題解決方法がひらめいた。単純作業していると頭の回転がいいみたい!
出勤の格好に着替えて、奥さん手製の弁当を持ち、息子を乗せて出勤。中学校に息子を置いて、(今のところ自転車に乗れないので)出勤している。
かなり朝が早いため、夜も11時くらいには寝ている。
  1. 2007年05月19日 09:34 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

ESEC2007に行ってきました

ESEC2007_goods_070518.jpg

今日は院生とESEC2007に行ってきました。
上の写真はちょっとぼけていますが、もらったグッズです。
右からXilinxの定規、アブネットの静電気ハンディモップ、どこかしらないポストイット、ARMのポーチ、フリースケールの犬、ウインドリバーの扇子です。(敬称略)
説明していただいた皆様、ありがとうございます。特にフリースケールの方にMRAMとかPowerPCプロセッサについて詳しく説明していただきました。
すすたわりさんとお話できなかったのと、講演が聞けなかったこと、@eleで行くと連絡した方に、お会いできなかったのが残念です。やはり、人が多いので、なかなかお話が出来ません。

興味があったのは、USBミニBコネクタで電源を供給するサイクロンⅢボード、本当に小さい。でもUSBブラスターが必要とのこと。USBからコンフィグできればいいのに。。。価格は1万円以下か?
関係ないところでは、ナビのボタン、ボリュームの試験をするロボットが動くのを見ていたが、面白かった。携帯のボタンを押すロボットもあった。耐久試験用かな?動きを見ていると面白い。やはり見るのは動きのあるものが良い。
後、基板のケースを作ってもらうように話を聞いてきた。以前作ってもらったことがあるので、スムーズに話が出来た。
  1. 2007年05月18日 21:55 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:4

COMPXLIB

いまFPGAインフォメーションのBBSでFIFO Generator3.3がXilinx ISEのソースにはあるが、ModelSim XEⅢ6.2C Starterの最新のコンパイル済みライブラリにないというのが問題になっているようだ。
私がModelSim SE用にライブラリをコンパイルする時にはcompxlibというツールを使用する。ModelSim XEⅢ6.2C Starterを使用する大部分の人には関係ないと思って、今まで書かなかったが、SEやPEを使用する場合はソースをコンパイルしてライブラリを作る必要がある。
compxlibはライブラリの作成を自動化するツールだ。使用法は私はコマンドラインからオプションをつけて使っている。
詳しいことは、ISE9.1iのソフトウェアマニュアルのうちの開発システム リファレンスガイドの25章に書いてある。そこを読めばわかると思うし、必要ない方が多いと思うので詳しくは書かない。
ModelSim XEⅢ6.2C Starterでcompxlibを使用してみたが、XEバージョンなのでcompxlibは使えないと言われて、ライブラリをコンパイルできなかった。
この方法ではだめなので、FIFO Generator 3.3だけコンパイルして、ライブラリに追加する方法が使えると思う。
そのやり方は
DDR SDRAMコントローラのシミュレーション(FMFライブラリを作る)
DDR SDRAMコントローラのシミュレーション1(コンパイルスクリプト)
辺りを見ると書いてある。

2006/05/18追記:これはVHDLの話でしたね。
Verilogは
1.コンパイルしたオブジェクトファイル?をライブラリとして追加。(これはVHDLも同じ)
2.vsimコマンドでシミュレーションする時に、-Lオプションでライブラリを参照
ですね。
Verilog2001版DDR SDRAMコントローラーのModelSimシミュレーションまとめ2を参照

最初の前提が間違っていました。申し訳ありません。
ダウンロード センタ - Modelsim 6.2c 9.1i IP2 ライブラリのページのmxe6.2c_91i_ip2_xilinxcorelib.zipにはfifo_generator3.3が入っているようです。
  1. 2007年05月17日 21:12 |
  2. その他のXilinxのツールについて
  3. | トラックバック:0
  4. | コメント:0

祝200,001アクセス

FPGAroom_200001.png

FPGAの部屋のアクセスカウントが200,001になりました。これも皆さんが見てくれるおかげだと思います。ありがとうございました。
でも一番見て、検索しているのは自分だろうと思う。Xilinxのアンサーサーチのように使っている。
常連の方々もありがとうございます。N〇〇のかた、東〇〇学の方、l〇m〇〇aの方、皆様ありがとうございます。これからもよろしくお願いします。
ただいまモチベーションが下がり気味ですが、ESECで気力を充電してこようと思っています。

  1. 2007年05月17日 20:45 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:4

ボードのバグフィックス

連日、ボードのバグフィックスをやっている。
今日は自作デバックモニタからプログラムをダウンロードすると動作しないが、JTAG ICEから起動すると動作するというバグだった。
いろいろチップスコープを入れたりして、調査していたが、初期化時にリードするSDRAMのデータが予定のデータと違っていた。
まだ確定ではないが、原因は、SDRAMのアドレスを以前のボードの64Mbyteから、本来持っている128Mbyteに拡張したので、自作のダウンロードソフトが対応していないのではないかと思っている。ダウンロードソフトは、卒業した院生のA氏が作ったので、ソースを解析しないと、だめかどうかがわからない。
ちなみに、PowerPCは、ハードリセットの時に0xFFF00100番地からスタートする。SDRAMは64Mbyteの時には0x03F00100番地にプログラムをロードするが、128Mbyteの時には0x07F00100番地になる。
更に、BATのアドレス変換の設定もおかしいかもしれない。
  1. 2007年05月16日 20:44 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:4

ADSL回線断

今日は午後7時前から午後10時50分頃までADSLの回線がつながらなかった。モデムのADSLランプは点くのに、PPPランプが点滅を繰り返していた。ADSLモデムのキャリアはOKで、大本のほうの回線断か? 
しかも電話はかけられるので、電話線が切れているわけではない。113に電話しても116に電話しても回線が込み合っているといってつながらなかった。
いつも当たり前のようにつながっているインターネットにつながらないと、こんなに心細いと痛感した。
  1. 2007年05月15日 23:11 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:2

お葬式

昨日は組合内のお葬式だった。
この辺(いなか)では、組合という組織があって、お葬式の時に助けあって、お葬式を主催する組織(今ではそうでもないようだが)だ。うちの組合では9家族で構成されている。お葬式の時には、夫婦で出てお手伝いするのだ。
昨日はうちの奥さんが、用事があるとのことで、私の母親が出た。近頃の葬式は家で行うのが少なく、大体は葬儀場で行う。これは本当に良かった。ついこの間までは、家でやっていたので、葬式をやると、家財をみんなで片付けてしまうので、物がどこに行ったかわからなくなってしまっていた。
昨日は、初めて帳場をやった。帳場は持ってきていただいた香典をどこの誰から幾らいただいたかを帳簿に記帳して、お金を勘定する仕事だ。
私はお金を受け取って、中身を確認し、ご霊前の袋に通しナンバーと金額を書き込む仕事だった。香典は私の地方では、その場で中身を確認する。これが結構大変だ。
まずは並ばれてしまうとあせってしまう。次に、香典だけではなく、米代、花輪代、更には見舞いとして3つ出される方もいる。それを分けて記帳しなくてはいけない。更に、米代、花輪代は葬儀場に紙を張り出す必要がある。
いろいろあたふたしてしまったが、なれた方に助けていただいて無事終了。お金も合って、本当に良かった。
家に帰ってから、親を呼んで、死んだ時に連絡する連絡先リストを作成。自分のパソコンだけでは心配なのでネット上にバックアップを取っておいた。これで安心。
  1. 2007年05月13日 05:09 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

ESEC2007

ESEC2007に行く予定になった。行く日にちは5月18日の金曜日だ。他の日にちは予定が入っているので、この日に行くことにした。
すすたわりさんの講演やなひたふさんのPCI Expressコアを見るのを楽しみにしている。
そのほかにもXilinx, Altera など見所はいっぱいあるだろう。見切れないかも。なにかお勧めのところがあったら教えてください。

PCI Expressといえば、東京エレクトロンデバイスからPCI Express Fair 2007のお知らせが来たので、早速申し込んだ。私などが申し込んでも、TELとしても売り上げにはつながらないので、申し訳ないのだが。。。
これからはPCI Express だと思うし、これからもし基板作るとしたらインターフェースはこれになると思うので、どういった現状なのか知りたいと思っている。しかも秋葉原で近いし便利。(でも、基板は値段が高くなってしまうんだろうな。。。)
  1. 2007年05月12日 05:55 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:2

ハードウェアとファームウェア、バグはどっち?

昨日は大きい基板の通信ポートからSDRAMへのDMA機能を使ったファームウェアをデバックしていた。(ハードを作ったのは私で、ファームを作ったのは違う人です。)
この基板のDMA機能は最初の設計段階ではDMAを入れない予定だったので、改修時に無理やりDMAをつけてしまった。既存リソースを活用してDMAエンジンが実装されているため、DMAの起動の仕方と終了判定が今までのDMAと異なっている。2つの条件を同時に満たさないと終了したとは、判定できないハードウェアになっている。

ファームがどうしても動かないということなので、チップスコープをかけてSDRAMに書き込まれるデータを見てみることにした。そうすると最初の7Kbyte位しか見えないものの、そこまではSDRAMに正しいデータが書き込まれている。ハード側のDMAエンジンは、ここまでは正常に動作しているようだ。もっと大きなデータサイズでだめだということなので、そのあとがだめなのかな?とも思ったが、ここまで正常に動いていて、後がまるでだめということは考えにくい。
ファームがおかしい可能性が大きいということで、一緒に見直してみると、DMA終了条件判定のバグ発見。
A条件が0でB条件も0の時に終了なのだが、終了判定ではwhile文で while(A==1 && B==1); でループして判定していたのだった。正しくは while(A==1 || B==1); だった。
これを修正したところ動作した。
ファームの作成者は”もうしわけなかった”といって謝っていたが、バグを修正するのに必要な作業と思っているので、謝る必要はないということを強調した。
誰もバグを出したくて出すわけではないし、私も昨日のファームのバグ以前にハードウェアバグで迷惑をかけている。やはり、ファーム、ハード双方が自分の生成物がバグっている可能性を常に考えてデバックする必要があると思う。(メーカーなど、もっと良い方法で効率的にデバックしているのかもしれないが。。。)
更に、他の人がわかりにくい設計をしないようにする必要があるだろう。判定条件を2つにせずに、ハードウェアで2つを1つにまとめて内部レジスタにマップしたほうが良いし、するべきであると思った。
人に優しい設計は自分に優しい設計でもある。
後で見たときに、自分でマニュアルを見ないと終了条件を忘れてしまっているので、そういうことがなくなるだろう。

ちなみにハードのバグは、SDRAMへバーストする際に列アドレスの境界で、一度プリチャージして、ACTコマンドを入れて再度、行アドレスを入れるのを忘れてしまって、データ転送する番地が間違っていたというバグだった。
  1. 2007年05月11日 05:39 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

可聴周波数域チェッカの活用

最近FPGAの話題が少なくて申し訳ないが、あまり話題がない。

今回はキコろぐさん可聴周波数域チェッカを見て、どこまで聞こえるかやってみた。
私は大体13.8KHzまで聞こえた。院生にやってもらうと、さすがに17.5KHz位まで聞こえているようだ。
家に帰って、ばあちゃんにやってもらうと9KHz、子供らにやらせると約16KHz位だった。
子供らと院生では年齢と可聴周波数の関係が逆転しているが、音が出ているスピーカが違うので比べることは難しいと思う。
私は夏休みの自由研究のサポート企画をしているが、音の実験を担当しているので、年齢による聞こえる音の上限を調べてみるのも面白いと思った。
正確に測るには、スピーカの特性で補正しなくてはいけないだろうが、相対値は計ることが出来ると思う。
  1. 2007年05月10日 05:12 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

新歓コンパ

今日はとなりの研究室との新人歓迎コンパだった。
大学院生でノルウェーに留学するという人がいた。
何か、ノルウェーからその研究室の半年くらい留学していた人がいて、その人に奨学金を教えられて留学するそうだ。1週間に2回ほどSkypeで英語で話しているそうである。
ノルウェー人はノルウェー語、スエーデン語、英語の3ヶ国語がしゃべれるそうだ。トライリンガルとはうらやましい。
強調していたのが、美人が多いということだった。やはり、モチベーションが違ってくるのだろう。(そのために行くのではなく研究のために行くのだが。。。)
一度でよいから私も行ってみたいが、英語は出来ないし、飛行機が怖いので、行けそうもないか?

仕事のほうは、今までのバグをぼちぼち修正したり、新しいDMAレジスタを設けて、レイテンシの短縮を目指したりしているが、まだ新しいアーキテクチャの作り直しには着手できていない。PCI-Xバスも作らなくちゃいけないんだけど。。。
今度のアーキテクチャでは、今までの拡張を続けてきたモジュールを再定義して、カプセル化をより進めたいと思っている。今のままでは、自分でも機能を修正するのが難しくなってきた。
  1. 2007年05月09日 05:36 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

次期主力戦闘機(奥さんの車)決定

次期主力戦闘機(奥さんの車)で書いたが、奥さんの車を選定していたのだが、やはり本命のビーゴに決定した。
今日手付金を払ってきた。色はグリーンのメタリックだ。
私も納車日は楽しみだ。しかし、大きな声では言えないのだが、この車はRV車風という以外にメリットはあまりないと思っている。(買ったのは2WD, FRです)
1.車高が高いので、乗り降りが面倒。
2.車高が高いので、特に後ろの座席に乗ると横揺れが気になる。
3.4ATなので、今のCVTに比べて燃費が悪い。
4.タイヤが大きいので普通の車に比べてタイヤの値段が高い。自分でタイヤ交換するので重い。
以上のようにあまり実用的ではない。この意見は内緒である。ただしカッコいいので乗ってみたいという気持ちはわかる。
私は乗り換えるとしたらラクティスかなにかのスポートシフトというのだろうか? F1みたいにハンドルのところにシフトスイッチがある車に乗ってみたい。
  1. 2007年05月06日 22:11 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:5

うちのボードのリセット回路とFPGAのコンフィギュレーション

最近ブログのコメントで、うちのボードのリセットがどうなっているのかを聞かれた。関係のないブログにコメントで聞かれたので、ブログに関連のないコメントはご遠慮くださいとお伝えした。皆様もご質問の際はProfileに書いてあるメールアドレスにメールください。ご質問に答えられないかもしれませんが。。。
M3_reset_curcit_070504.png

それはさて置き、うちのボードのリセット及びFPGAのコンフィギュレーションはCPLDが取り仕切っている。PowerON時のリセット信号は MAX6861 で出力している。これでCPLDをリセットして、FPGAのリセット信号DCM reset, Logic resetをアサートする。FPGAのコンフィギュレーションが終了してDONEがアサートされたら、ある一定時間経過後にDCMのリセット信号DCM resetをディアサートする。
ここでDCMだけリセットをはずすと、DCMが入力クロックにロックしてクロックを出力するのに時間がかかり、また、DCMの出力クロックを入力しているPowerPCのPLLもロックするのに時間がかかるので、それらの時間を合計しただけFPGAのロジック用のリセット信号(Logic reset) を遅延している。
DCMはlocked信号があって、周波数をロックした時には信号を出力するが、エンジニアリングサンプルを使っていた時になんか怪しそうなことがあったのと、DCMのlocked信号をCPLDにフィードバックする必要があるため、使用していない。現在はあくまでデータシートに書いてある、DCMの最大ロック時間だけWAITしている。
FPGAのコンフィギュレーションは汎用FLASH ROMにコンフィギュレーションデータを入れておいて、アドレスをCPLDから入れながらFPGAにスレーブセレクトマップモードでコンフィグしている。
この前、FPGA BBSで質問されていたxilinx LogiCOREだが、うちのVirtex2-1000ボードのコンフュギュレーション時間は61msだと回答した。でも、電源安定後100ms以内のコンフィギュレーションは、64ビットデータバスコネクタに入ることが決定されている(うちの)ボードには関係ないので、それまでに動作する仕様にはなっていない。つまりRST#がディアサートされるときのREQ64#を見ていないのだ。
PCI仕様書リビジョン2.2でのRST#がディアサートされてから最初のPCIコンフィギュレーションアクセスまでに2の25乗クロックだそうだ。これは33,554,432クロックなので15nsをかけると約500msなので、これを満たせばよいと思っている。この辺はPCIボードの起動時間に書いてある。
更に今度作ったボードのコンフィグ時間を検証してみる。今回のFPGAはVirtex2pro-30なのでコンフィギュレーションするビットは11,584,984ビットである。これをバイトにするために/8すると1,448,748バイト。1バイト当たり、とりあえず120nsかかるので、* 120ns = 173.85msで100ms以上かかってしまう。
まだコンフィグレーション用汎用FLASH ROMのアクセスタイムには余裕があるので、75nsまで縮めたとすると、* 75ns = 108.66msでぎりぎりだ。更にページモードを使用するとアクセスタイムが短くなるので100msに収まるだろう。

更に、FPGAからFPGAのリセットするための信号をCPLDに出力している。これをアサートするとFPGA自身をCPLDからリセットする。ここで問題になるのはPCIバスのベースアドレスレジスタだ。FPGAをリセットするとホストから書かれたベースアドレスも普通はクリアしてしまう。今のところクリアしているのでFPGAをリセットするとパソコンをリブートする必要がある。
FPGAからリセットした時だけ、ベースアドレスレジスタだけをクリアしないとそのまま動作できるかな?と思っている。(当然、その間に、そのアドレスにアクセスがあるとデッドロックしてしまうが。。。)

追加:上の図には書いていないがPCIバスのRST#もCPLDのリセットの条件に入っている。RST#がアクティブになるとDCM、ロジックのリセットシーケンスを再度行う。ロジックのリセットだけで良いと思うかもしれないが、以前、リブート時にPCIのクロックが停止するマザーボードがあったので、DCMがおかしくなってしまったことがあった。そのためDCMもリセットすることにした。
  1. 2007年05月05日 11:32 |
  2. プリント基板の作成過程
  3. | トラックバック:0
  4. | コメント:10

田植えの直し、苗箱洗い

今日はこの前の続きで、田植えの直しと苗箱洗いだった。
田植えの直しは、この前の田植え機で稲を植えたのだが、どうしても空振りして稲が植わっていないところがある。それを田んぼを歩きながら植えていく作業だ。今日はうちの子供たち3人と義理の弟の子供3人がいたので、子供の一緒に田植えの直しをやった。結構田んぼを歩くだけで、足を取られるので疲れる。ずっとやっていると結構足に来る。

午後からは苗箱を洗った。苗箱に土をいれ、籾をびっしり蒔いて稲の苗がびっしり生えている状態にして、それを田植え機で植えるのだが、その時の苗箱が汚れているので洗うのである。数百箱くらいあるので洗うのも大変だ。子供達にも手伝ったもらった。実際の作業はこんな感じです。
その後、ビニールハウスを解体した。ビニールハウスは先ほどの苗箱の苗を育てていたところだ。もう、田植えをしたので用なしになったのだ。
今日は疲れた一日だった。
  1. 2007年05月03日 21:15 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

MIPS用binutils, gcc, gdbのビルド

Plasmaをプログラムで動作させるために、MIPS用binutils, gcc, gdbのビルドをしている。Spartan-3 Plasma Kit HOWTO ページで紹介されている方法で、binutils, gcc, gdbのビルドをやっているが、なにぶん慣れていないので、良くわからないところがある。
MIPS用binutils, gccのビルドは出来たが、gdbのビルドが出来ない。configure して make すると下のエラーで止まってしまう。
gdb_make_1_070502.png

make distclean, rm ./config.cache を実行してやりなおしてもだめだ。。。
バージョンの違うgdbでも試してみたが、同様にだめだ。もう少し検索してわからなかったら、一時保留にするか。。。
ピンポンゲームのプログラムでも作って、デモしようと思っていたのだが。。。

しかし、この辺のビルドには、とんでもない時間がかかる。ISEのインプリメントよりも長い感じだね。
  1. 2007年05月02日 22:39 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0