2011-07-29 2 views
2

私は最終学年(電気・コンピュータ工学)の次の学期に入り、組み込みシステムやハードウェア設計の卒業プロジェクトを探しています。私の教授は、現在のシステムを探して、ハードウェア/ソフトウェアのコードを使って改善しようと勧めました。私は、VHDLまたはVerilogによる専用ハードウェアを使ってシステムを実行できるようにする「自動ライセンスプレート認識システム」の例を教えてくれましたより良い。HW/SW codesignが特定のアプリケーションに役立つかどうかを知るには?

私はちょっと調べて、システムが正常に動作していることを示すいくつかのyoutubeビデオを見つけました。

改善の余地があるかどうかわかりません。特定のアルゴリズムやシステムが遅く、codesignの恩恵を受けることができるかどうかを知るには?

答えて

2

特定のアルゴリズムやシステムが遅く、codesignの利点があるかどうかを知るには?

多くの場合、これは、大量の経験やシステムのモデリングと分析によってのみ回答されるアーキテクチャ上の質問です。他のケースでは、エンベロープの背面に5分間は、特殊なコプロセッサーが数週間の作業を追加するが、パフォーマンスの向上はないことがわかります。

ハードケースの例は、最新の携帯電話プロセッサです。 TI OMAP5430をご覧ください。さまざまなタイプ(PowerVRブロックには複数の実行ユニットがある)のプロセッサが10個以上あり、フルカスタムの周辺機器が数十台あることに注意してください。 「メイン」CPUから何かをオフロードしたいときはいつでも、バス帯域幅/シリコン面積/市場投入までの時間を考慮する必要があります。

簡単なケースは、あなたの教授が言及したようなものでしょう。 DSP/GPU/FPGAは、2D畳み込みのような画像処理タスクをCPUよりも数倍高速で実行します。しかし、ファイル管理のような「ハウスキーピング」タスクは、FPGAに取り組むものではありません。

あなたの場合、私はあなたの教授があなたが何か「本当の」ことをするとは思わないと思います。私は彼が探しているのは、どのCPU/GPU/DSPがうまくいくのか、カスタムハードウェアがうまくいくのかを理解することだと思います。あなたは、those in bioinformaticsのような興味深いニッチな問題を探したいかもしれません。

+0

ありがとう、BLASTは非常に興味深いですね。 – Ahmed

2

私はcodesignが何であるか分かりませんが、私は以前にいくつかのVerilogを行っていました。私は、単純な画像(または信号)処理タスクは、大量のデータをリアルタイムで処理することが多いため(SIMD操作が望ましい)、組み込みシステムにとっては良い候補であると考えています。

私たちの頭脳は頭がおかしく複雑な処理をしていますが、実際には非常に困難です。私は、このようなシステムが以前に実装されたのではなく、この挑戦​​が重要だと思います。私はハフ変換(一般化されたものよりも線と円のために最初に - それは画像処理における遅いアルゴリズムと考えられている)を実行し、いくつかのリアルタイムセグメント化を行います。それが進展するにつれて挑戦的な仕事になると確信しています。

+0

ありがとうございました。本当に役立つ答え。 – Ahmed

0

私の提案は、ソフトウェアのバージョンとアルゴリズムのハードウェアバージョンをパフォーマンス比較を行うことです。開発時間などを比較することもできます。これにより、プロジェクトをより科学的にし、他の人に役立つものにすることができます。盲目的に考えているハードウェアはソフトウェアよりも高速ですので、プロファイリングが重要です。

+0

無限の時間があると仮定すると、これはすべて良いです:) – unkulunkulu

2

データフローを分割するときにまず行うべきことです。「サブアルゴリズム」が適合するブロックダイアグラムを、データの入出力に合わせて描画します。あるドメインから別のドメインに大量のデータを移動する必要がある場合はいつでも、問題の一部を分割の反対側に移動することを検討してください。

たとえば、エッジ検出を行った後、しきい値と比較し、さらに処理を行う画像処理パイプラインを考えてみましょう。エッジ検出の出力は、ピクセルごとに1つずつ、16ビットの符号付きの値になります。最終出力はバイナリイメージです(ビットセットは "重要な"エッジがどこにあるかを示します)。

ハードウェアでエッジ検出を行い、エッジ画像をソフトウェアに送信してからしきい値を設定することが、1つ(明らかにナイーブですが、それがポイントになります)です。これは、16ビットの値の全体像を「分割を超えて」出荷することを含む。

ハードウェアでもしきい値を上げてください。次に、8 "1ビットピクセル" /バイトをシフトすることができます。 (または、長さをエンコードして実行することもできます)。

適切な帯域幅パーティションを作成したら、各ドメインに収まるブロックがそのドメインに適しているか、別のパーティションを考慮しているかどうかを調べる必要があります。

1

一般的に、HW/SW codesignは、のコストがになると便利です。

2つの主要なコスト要因は、組み込みシステムにあります。

  • 開発が
  • 生産が

あなたの生産量が高いほど、より重要であり、生産コスト、および開発の費用がかかりコストコストはあまり重要ではありません。

今日、ソフトウェアよりもハードウェアを開発するのは難しいです。これは、今日のcodesign-solutionの開発コストが高くなることを意味します。つまり、大量生産には大変便利です。しかし、今日はFPGAを(またはそれに類するものが)必要としており、コストがかかります。

つまり、両方のソリューションがあなたの他の要件を満たしていると仮定すると、必要なFPGAのコストが問題のタイプ(CPU、GPU、DSPなど)の既存のソリューションよりも低くなる場合に役立ちます。 FPGAは今日では高価なので、高性能システムの場合は(ほとんど)そうです。

したがって、システムが大量に生成され、高性能デバイスである場合、基本的にはシステムをコーディネートする必要があります。

これは少し簡略化され、10年ほどで偽になる可能性があります。ハイレベルな仕様からHW/SW合成に関する継続的な研究が行われています+ FPGAの価格は下がっています。つまり、数十年後には、組込みシステムのほとんどでコードシンが有用になる可能性があります。

関連する問題