関数型言語で高位合成を その2
関数型言語で高位合成を その2
その1の続き。
①処理のアルゴリムを数式で書く
②'アルゴリズムを関数型言語で書き下ろす。
③RTLへ変換する。
のフローをうだうだと考える。
日本語の論文があるくらいだから、同じ事考えている人は世界中にいると思う。世の中にトランジスタによる論理回路と、ラッチという状態を保持する仕組みが生まれた後なら誰でも思いつくアイデアだ。このあたりを調べてもよいのだが、もう少し自分自身でLispを上手く処理できるようになろう。アイデアが昇華するかもしれない。
頑張って進めても、Lispマシーンそのものにはならないと思う。でも、Lispマシーンも調べたい。どちらかというと細かい演算CELLが並ぶ、ASICの世界のエミュレータ的なアーキテクチャになりそう。
今のFPGAは、大規模な組み合わせ回路は苦手だ。でもAPEXとかは、LUTとP-termを併せ持つハイブリッドなFPGAもあった。こういうアーキテクチャなら、組み合わせ回路の弱点を克服できると思う。リコンフィグはこういう所を狙え!
全部が全部このルールでRTLに落とせる必要はない。アルゴリズムの記述が、C言語が自然ならC言語からの合成をすればよいし、処理に特化したソフトCPUを毎回生成するという選択肢もある。
そんなアイデアを熱く職場の人に語っていたら「問題はブロックの合成じゃないんですよ。合成した回路を既存のRTLとどうつなぐかなんです」と言われた。おっしゃるとおりです。orz
自分にもっと文章力があれば、もっとわかりやすく書けたに違いない。
今のスキルを持ったまま大学生に戻りたい・・・
« 関数型言語で高位合成を | Main | AVM30 »
The comments to this entry are closed.
Comments