FC2カウンター FPGAの部屋 2008年9月12日のやりたいこと
FC2ブログ

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

FPGAの部屋

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

2008年9月12日のやりたいこと

これからやりたいことを箇条書きにしようと思う。

1.DDR2 SDRAMコントローラを動作するようにする。今やっている改良(DQのディレイをNONEにする)がダメだったら、トレーニング・シーケンスで一番良いところを探すようにしようと思う。その際には、サンプリングポイントというかリードデータを受けるタイミングを本命、本命の1クロック前、本命の1クロック後と3ポイントで受けるデータを比較してうまく受けられたポイントを使うべきか?これは、本当の遅延が予測値と違っていてもリードデータを受けるための保険となってくれると思う。(でも、DDR2 SDRAMコントローラもそろそろ飽きてきた)

2.Spartan3E Stater KitのDDR SDRAMコントローラは動いているので、それを使ってみるためにプロセッサを入れて、できればuClinuxを動かしてみたい。キーボード・インターフェースもキャラクタ・ディスプレイ・インターフェースもあるし、マウスも日曜デジタルさんのところで書いてあるので大丈夫そう。プロセッサコアはPlasmaでも良いが、Lattice社のMico32でも良いか?筆者のY氏にFPGA活用チュートリアル2008/2009を頂いたんだし。。。

3.今作っているトラ技9月号のテスタを評価する。いろいろ測定してみたい。これはそう時間はかからないはず。。。

4.以前購入したアヴネット社のSpartan3A評価キットで何か作ってみる。トラ技9月号のテスタのグラフィック液晶をつけたり、シリアル・インターフェースをつけたりしてみようと思って、秋月で購入しようとしたが、グラフィック液晶は5V駆動だったので、Spartan3Aとつなぐにはレベル変換が必要。。。やりたいことはというと、デジタル・スピーカーを実験してみたいと思っている。昔、やりっぱなしになっていた音声関連もやってみたい。

5.Rocket IOなどの高速シリアル通信について、いろいろやってみてブログに書く。

6.仕事を家でもやる。仕事をやる気がわいてきたので、以前のプロジェクト同様に家でもやる気がわいてきた。でも、仕様策定からやっているのでブログに書くことがない。。。仕様書いてもしょうがない。

とりあえず1.をやってみて、できて満足したかもしくは、あきらめたら2.をやろうか?
2.はすでにuClinuxが動いているのがいいのだが。。。EDKでは面白くないので、全部自分でパソコンを作りたい。とりあえず自分でプロセッサを作るつもりはない。2.は面白そう。結構わくわくする。
4.も捨てがたいが、パーツを購入する必要がある。金がかかるし、とりあえず保留か?でも、これもやってみたい。
5.は、常に最先端の事柄についてやってみたいという気持ちがあるので、やってみたいのだが、シミュレーションもSWIFTモデルをサポートするシミュレータが必要だろうし、実機もないしだめかな?
6.も遅れているのでやりたい気持ちがわいてきた。早く完成させなくては。。。でも、これはブログに書けないんだよな。秘密ということもあるんだけど。作業量が膨大だからとりあえずVHDLコードを書きまくる必要がある。VHDLコードをブログに書いてもしょうがない。
  1. 2008年09月13日 05:04 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:4

コメント

 こんばんわ。
 うーん、Spartan3E Stater Kitで、uClinuxですか。何はともあれuClinuxはOSですから、複数のアプリケーションを起動、管理するのが主な機能ですので、キーボードやディスプレイ以外に、ハード・ディスクなどのストレージを接続している必要があります(ファイル・システムはOSの主要な上部構造物のひとつです)。で、OSって、起動した後は、アプリからのシステム・コールやタイマ割り込みなどを待っているだけで、自分では能動的に動こうとはしませんから、すぐにシェル(Bashなど)が必要になりますし、シェルはシェルで起動後はキー入力を解釈して内部コマンドを実行するか、外部のアプリを呼び出すかしか行わず、Linux上でのファイル表示(ls)やコピー(cp)、削除(rm)は全部外部コマンド、即ち、普通のアプリですから、これらも移植して、おまけに"Hello World"ひとつ表示するにも、コンパイラを移植しない限り、セルフ・コンパイルはできませんから、PCでクロス・コンパイルして、転送ソフト作って転送して、まあ最初はRS232Cで、XMODEMなんか使うのが簡単か?と思いますが、そのうち転送速度の遅さに苛立って、Etherでftpを行おうとしても、uClinuxでは(MMUがないため)純粋なforkが使えず、vforkで何とか誤魔化してるのですが、大抵のネット・ワーク・デーモンが・・・、と、まあオモイッキり楽しめますよ^^;)
  1. 2008/09/15(月) 01:51:16 |
  2. URL |
  3. くり #mQop/nM.
  4. [ 編集 ]

くりさん、こんにちは。

私も昔々ですが、UNIXのソースコードを輪講したことがあります。SIGNALの実装が複雑で読むのに苦労した覚えがあります。懐かしいです。68010のコードだったのですが、MMUがページアウトしたときのペナルティの大きさに驚いた覚えがあります。コード解析結果によるとMMUを増やせば効率が上がったじゃなかったかな?VME10というマシンだったような気が。。。

uClinuxはSUZAKUにも入っていてHDDがなくても大丈夫何ではないかと思います。実際、HDDがなくても動いていますし。。。大丈夫じゃないかと?良く調べていませんが。。。
Mico32にしても、uClinuxが移植されているようです。
http://www.latticesemi.co.jp/products/intellectualproperty/ipcores/mico32/mico32uclinux.cfm
たしかにRS-232Cだと遅いでしょうね。
Etherも実装する必要があるか???TCP/IPスタックをハードウェアに一部オフロードなんていうテーマもいいですかね?
思いっきり楽しめそうですね。。。
  1. 2008/09/15(月) 10:32:36 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

こんにちは。
 Linuxは元々、MMU付きのX86を前提としたマルチ・タスク(and UNIXクローン)OSとして開発されましたから、MMUなしではかなりの無理があるというか、それなりのデメリットを甘受しなければなりませんし、第一、MMUに関するコードを消し去ると、Kernel下部の微細にして華麗な(見方によっては醜い)部分がなくなってしまいます。ここに比べれば、ファイル・システムやTCP/IPスタックなんて、「好きにやってくれ」といった程度のプログラムでしかないかと。まあ、「OSのどの部分を楽しむか?」は、人それぞれですが・・・。

>uClinuxはSUZAKUにも入っていてHDDがなくても大丈夫何ではないかと思います。

 SUZAKUはFlashROM内に特殊なファイル・システムを組んで、そこにルート・システムなど最小限のファイルをロードしておき、他はNFSでネットワークを介してロードする方式のようです(開発者サイトが落ちているので詳細は分かりませんが^^;)。でも、移植段階からこの方式で押し通すのは、ちと苦しいかと。なんせEtherあたりがつながらないことにはNFSは・・・。ATAはPIO方式なら、5Vトレラントなピンが40本もあれば簡単に接続できますので、HDをつなげた方が開発が容易かも知れません。

>Etherも実装する必要があるか???

 これは、もう今時必須と言おうか、あるとないとじゃ大違いです。NFS,ftp,telnetがサクサクと使えると、PC側のGUIを介して、ほとんど全てのことがコントロール出来ますので、使い勝手が全然違ってきます。SUZAKUのコンセプトは、まさにその辺です。

>TCP/IPスタックをハードウェアに一部オフロードなんていうテーマもいいですかね?

 うーん、チェック・サムの計算くらいなら簡単ですが、その他の部分となるとかなり難しい・・・。実際、大きくCPUタイムを食っている(ハード化で大きなメリットがある)のはチェック・サムとDMAを使っていない場合のMACチップ側とのパケットの転送時間ですし。

  1. 2008/09/15(月) 14:26:39 |
  2. URL |
  3. くり #mQop/nM.
  4. [ 編集 ]

とりあえず、自分で作ったDDR SDRAMコントローラをプロセッサコアにつなげて動作が見てみたいということが主眼です。とりあえず、VGAコントローラ、キーボード・コントローラをつないで、何かソフトウェアを作ってみて動かしてみたいです。
その後、Linuxが動けばいいな?という感じです。Mico32にすれば、WISHBONEでOPENCORESのコアと接続できるでしょうし、これにしようかな?
uClinuxを入れるときに、HDをつなぐ必要があれば、ATAでも作るか?コアを持ってこようと思います。しかし、5Vトレラントである必要があるとなるとレベル変換をする必要がありそうです。

TCP/IPスタックのハードウェア化については、まだまったくわかりませんが、ソフトの負担を軽減できる方法を見つけられればオフロードするのもありだと思っています。プロセッサの負担が軽くなるように、TCP/IPスタック自体をハードウェア化してしまうとか。今のところ夢想している状態で、口からでまかせ状態ですが。。。
  1. 2008/09/15(月) 17:21:26 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/882-40bb161e
この記事にトラックバックする(FC2ブログユーザー)