ページの先頭です。
サイト内の現在位置を表示しています。
  1. ホーム
  2. ソリューション・サービス
  3. 組込みシステムソリューション
  4. プリント基板・LSI設計
  5. C言語ベースLSI設計サービス
  6. 初心者からのハードウェア化
ここから本文です。

初心者からのハードウェア化

1.システム性能の低下

インターネット上の動画像など、大容量情報の転送が日常化し、 電子機器は、これらの情報を高速に処理する事を求められています。 電子機器はCPU/マイコンを搭載しています。 昨今、ソフトゥエア規模も大きく、複雑度も高くなり、処理量の増加や 高速化の要求に、電子機器に搭載されたCPU/マイコンだけでは、これらの処理に 対応しきれなくなってきています。

幾つものソフトウェア(プログラム)をCPU/マイコン上で実行すると CPU/マイコンに大きな負担がかかり、処理速度がどんどんと落ちていきます。 (複雑なプログラムであるほど、処理速度が落ちてしまいます) このような状態が、「システム性能が低下した」状態です。
では、どうしたらこの問題を解決できるでしょうか?
対策は、

  ①幾つかのプログラムをLSI(FPGAやASIC)=ハードウェア(HW)に実行させる。

  ②実行するプログラム専用のLSI(FPGAやASIC)を設計する。

ことで、CPU/マイコンの負担を一部肩代わりしてシステム全体の負荷を 下げ、処理を高速化します。

2.ハードウェア化とは

電子機器に搭載されたCPU/マイコンで、リアルタイムで結果を表示する様な大きな負荷のかかる処理を行うと、負荷のため処理能力が低下して処理速度が落ちていきます。 CPU/マイコンは処理能力が高い新製品が出ましたが、ソフトウェア(SW)の複雑化、高度化により処理速度に限界が来ています。 この問題を解決する方法が、「ハードウェア(HW)化」です。 「ハードウェア(HW)化」とは、CPU/マイコンで実行されるソフトウェアの一部をLSI(FPGAやASIC)で実行させてCPU/マイコンの負担を一部肩代わりすることでCPU/マイコンの負荷を下げ、処理を高速化する方法です。 LSI(FPGAやASIC)は、特定のプログラムしか処理できませんが、その実行スピードは、CPU/マイコンに比べて非常に高速です。 このように、ソフトウェアで処理するには、非常に負荷の高い処理を、LSI(FPGAやASIC)で処理することで、高速に処理でき、しかも、負荷の高い処理を、LSI(FPGAやASIC)が分担することで、CPU/マイコンの負荷が下がり、全体的に処理が高速化されます。

3.どうやってハードウェア化すればよいのか

電子機器の処理高速化には、ハードウェア化が有効です。
では、どのようにして、ソフトウェアの一部をLSI(FPGAやASIC)にすればよいのでしょう。
従来、LSIの設計は「HW設計者」が「RTLプログラム」を手作業で作成していました。
ソフトウェア技術者では、「RTLプログラム」(注1)がわからないので、LSIの設計はできないのでしょうか。

この悩みを解決する方法は、「高位合成ツール」あるいは「動作合成ツール」と呼ばれるC言語のプログラム(注2)からFPGAやASIC等のLSIを設計/開発するための「RTLプログラム」への変換作業を自動で行うツールを使用することです。

動作合成ツールは、C言語のプログラム(注2)からFPGAやASIC等のLSIを設計、開発するためのツールです。

(注1)RTL:(RegisterTransferLeve)「FPGA」「ASIC」等LSIを作成するためのプログラミング言語の総称です。「Verilog」(ベリログ)、「VHDL」(ヴイエイチディーエル)が代表的な言語です。
(注2)C言語には色々と種類があります。主なもとして「Ansi-C」(アンシシー)、「SystemC」(システムシー)、「C++」(シープラプラ)この中でCWBは「Ansi-C」と「SystemC」に対応しております。

4.動作合成とは?

動作合成(高位合成)とは、専用ハードウェアを設計する際に処理のアルゴリズムを記述した「動作記述」から「RTL(Register Transfer Level)記述」を自動的に合成する処理のことです。
簡単に言うと、
C言語のプログラムで「動作」を記述(表現)し、このCプログラムから「RTLプログラム」への変換作業を自動で行うことです。
動作合成ツールは、「Cプログラム」から「RTLプログラム」への変換作業を自動で行います。

動作合成ツールを使い、自動で変換する事により、従来開発では手作業で行っていたことで発生しがちな、ケアレスミスによるバグが発生しなくなります。
仕様変更などの変更も、C言語の記述を変更するだけで、RTLプログラムへの変換は自動で変換されるので、柔軟に変更に対応することが可能となります。
従来設計では、仕様変更が発生するたびに、大部分を人手で作り直す必要があり、設計、変換に多くの時間がかかり、さらに、ケアレスミスなどの混入も懸念されるため、「検証(シミュレーション)」にも十分時間をかける必要がありました。

5.C言語ベース動作合成ツール適用のメリット

動作合成ツールを使用した場合、どのようなメリットがあるのでしょうか?
大きく分けて4つのメリットがあります。

①C言語プログラムを使ってハードウェア設計が可能となります。
ソフトウェア設計者でも、ごく基本的なハードウェアの知識があれば「RTL」を全く知らなくても
「HW化」(RTL化)設計が可能になります。
②C言語で記述する事によって、
・RTLの記述に比べて約1/7の記述量で済みます。
・C言語で機能の検証(チェック)を行う事により、RTL上で行うのに比べ非常に高速に検証ができます。
③設計(仕様)変更に柔軟に対応できるようになります。
・動作周波数(「FPGA]「ASIC」を動かす速度)
・面積(HWの大きさ、収容スペース)
・性能の変更
上記の変更に対して、ツールのオプションを変更して、再実行する事で直ぐに変更に対応したRTLが生成できます。
④①、②、③のメリットによって
・従来の設計方法(HW設計者が手で変換)よりも、大幅に設計期間が短縮されます。
・自動で「RTL」を生成するため、人手設計では起こり易い「ケアレスミス」などのバグが入らず、高品質な「RTL」が生成できます。
・人手設計では難しい回路の省電力化、小型化もツールの「演算器共有化アルゴリズム」を使う事により実現できます。(省電力、小型化が必要なポータブルな装置の設計で非常に重要な効果です)

ソフトウェア(C言語)のハードウェア(HW)化サポート、サービス

「システムを高速化したい」「システムの消費電力低減化したい」場合、ハードウェア化は有効な手段です。ハードウェア化⇒LSI(FPGAやASIC)設計は、動作合成(高位合成)ツールを使用することで、効率的に設計/開発できます。

C言語ベース高位合成ツールCyberWorkBenchは、C言語からの高位合成と、C言語レベル

の機能・タイミングデバッグや、形式検証を行える統合設計ツール群です。

しかし...

この様な要望はありませんか?

1.CyberWorkBenchを導入して直ぐに高品質な製品が作れるようにしたい。

2.最初は手取り足取り設計内容に即して詳しく操作方法を教えて欲しい。

3.最初は自分達だけで作るのは不安。一部分は手本として設計を依頼できないか?

4.とにかく一度C言語のソフトウェアのHW化を依頼て効果を確認したい。

CyberWorkBenchではこの様な要望に応えるため「C言語ベースのLSI設計サービス」 を用意しています。

詳しくは「C言語ベースLSI設計サービス 専用のご説明ページ」をご参照ください。

下記ボタンよりお気軽にご相談ください。

ページの先頭へ戻る