ハードウェアで問題を解決する時の最大の強みは並列処理です。
回路の規模が許せば,処理を並列に展開することで,みかけの動作を早くすることができます。これはCPUのパイプラインや,ベルトコンベア方式の生産設備と似たアプローチです。
C言語に並列処理用の毛を3本増やしても,たいして役には立たないでしょう。
どちらかというと,組み込み系でシビアな並列処理あるいは並行処理を苦労している技術者の悩みを解決できる機構が望ましいです。
なにしろ,C言語は並列処理についてなんら考慮されていない言語ですし,ポインタや配列それに柔軟な(時に危険な)キャストが使えなければその本来の強力さは享受できないはずです。ハードウェア設計において,そんなヨワヨワなCモドキがいったい何の役に立つと言うのでしょうか。
そもそも,本当に複雑なシステムにおいて,スマートにそれを記述する手段が今現在存在しているとは思えません。Cでハードウェアがかけても,それと連携するソフトウェアをリンクしてビルドできなければ結局従来の泥臭い作業からは開放されません。
「使い慣れたC言語でハードウェアの振る舞いが記述できる」という謳い文句も,いまや「C++/Javaに乗り遅れたハード寄りの石頭Cプログラマが喜ぶ」くらいにしか思えません。
本当に大規模なシステムには,ばかっぱやいCPU,どでかいメモリ,それらをとりあえず扱える程度の環境を用意してくれるOS,C++/Javaの統合開発環境,が必要なのではありませんか?
C言語で複雑かつ大規模なシステムがすらっと書けるなら(多くの商用OSは確かにC言語で記述されていますが)C++などの台頭はありえなかったのでは?という気がします。
安易に過去のきねづかを利用しようとしてCベース設計に突き進むのは,ほんの数年前にビジネスアプリケーション開発者がぶちあたった壁にわざわざ向かっていくようなものです。デバイスの規模が大きくなれば結局Cベースではだめだと気づかされることになるのではないでしょうか。
C言語が開発された経緯を考えれば,ハードウェア設計のソフトウェアプロセスから見た改善について何をおこなうべきかは簡単にわかるはずだと思うのです。