2875


現状では、ソフトウェアの立場にいます。  
いずれVHDLなどに手を出さないといけないと思っています。  
けれど、VHDLについてよく理解できず、利点を調べてもはっきりした回答を得ることができませんでした。  
ハードウェア記述言語にはどのような利点があるのですか？


CC BY-SA 3.0
2014-12-31T17:04:47.257
2862
2017-05-21T23:24:40.100
2017-05-21T23:24:40.100
19110
question
hdl vhdl
ハードウェア記述言語を利用する利点


Wikipediaの[ハードウェア記述言語](http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E8%A8%98%E8%BF%B0%E8%A8%80%E8%AA%9E)
に記載されていることそのまんまになりますが。。。

  * 回路図が書けなくても設計できる
  * シミュレーションできる

あたりでしょうか。。。


CC BY-SA 3.0
2014-12-31T17:31:40.537
2867
2014-12-31T17:31:40.537
845
2862
answer


Cはソフトウェア、HDLはハードウェア(の設計図)を記述するものなので、出来上がるものが違います。言語の違いとしての利点・欠点の比較は的を得ないので、ソフトウェアとハードウェアの違いを回答するのが良いのでしょうか？

  * ソフトウェアは、汎用(色々なことができる)ハードウェアであるCPU等の上で、細かく挙動を記述して希望の動作をします。
  * ハードウェアは、特定の実現したいもの専用のハードウェアを作ります。出来る事が絞られますが、高速で電力効率も良いです。

例外や中間的なものを探せばたくさんありますが、基本的にはこんな感じです。

例えばボールを投げるとして、

  * 人型ロボットに挙動をちくちくセットして実現するのがソフトウェア処理
  * バッティングマシーンを作るのがハードウェア処理

と例えることができます。


CC BY-SA 3.0
2014-12-31T19:41:54.107
2875
2014-12-31T19:41:54.107
799
2862
answer


ソフトウェア開発者がハードウェア記述言語を利用したいというケースの1つは、汎用的なコンピュータでは十分に性能を出せない用途への対応ではないかと思います。

たとえば`FPGA`の話をしますと、以前より金融業界の超高速取引に使われていた技術ですが、最近ではマイクロソフトがBingを実装するにあたって採用したことで一部話題となりました。(cf.
[マイクロソフトはどうやってBingをFPGAで実装したか -
Qiita](http://qiita.com/kazunori279/items/6f517648e8a408254a50))

Googleなどの成功事例から、現在までに数多くのITベンチャーが普段我々が使うような安価なCPUやメモリを用いて並列処理システムを作成してきました。しかし、CPUの性能は、微細加工プロセスの原理的な限界(だんだんと分子の大きさに近づく)によって性能向上が時代の要求に追いつかなくなっています。

そこで、計算のボトルネックになる部分をハードウェアに直接実装してしまえば、その分だけ性能は向上します。また無駄な処理がなくなれば省電力化にもつながります。(ただし`FPGA`はチップ自体は遅いので、設計の工夫は必要です。)


CC BY-SA 3.0
2015-01-01T04:03:35.177
2883
2015-01-01T10:42:05.287
2015-01-01T10:42:05.287
3313
3313
2862
answer


ハードウェア処理を行わせたい場合に記述するのがハードウェア記述言語です。  
ソフトウェア処理を行わせたい場合にはプログラミング言語を利用します。

そのため、ハードウェア記述言語とプログラミング言語の利点と欠点は  
ハードウェア処理とソフトウェア処理の利点と欠点になります。

  * ソフトウェア処理は、回路利用の順番を組み合わせることにより処理を行います。
  * ハードウェア処理は、結果が得られる回路を作り出します。


CC BY-SA 3.0
2015-02-21T10:15:40.537
6862
2015-02-21T10:15:40.537
2862
answer