以前からずっと気になっていた、「アジャイルサムライ」を買った。
- 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未
- 出版社/メーカー: オーム社
- 発売日: 2011/07/16
- メディア: 単行本(ソフトカバー)
- 購入: 42人 クリック: 1,991回
- この商品を含むブログ (255件) を見る
それなりに昔の本だけどね!
正直まったくアジャイルについて詳しくない状態で購入したので、これから読んで理解を深めていかなければならない訳だけれども、イメージとしてはコンパクトなチームで何度もイタレーションを繰替えすという感じだろうか。
ソフトウェア業界ではそれなりに普及していると聞いているが、ハードウェア業界ではどうだろう?
以下のことは、ソフトウェアにも同じことが言えるのかもしれないが。
- 一つのチップを作るのに異常なお金と時間がかかる
- シミュレーション、テストにもかなりの時間がかかるので、簡単に試行できない
- とにかくバグを出してはならない(再リリースが出来ないため)
- 殆どのソフトウェアツールと異なり、ハードウェア開発ツールはライセンスに制限があり、しかもかなり高額。
しかも一回の試行がかなり長い。論理合成や物理レイアウトは、イタレーションの単位が簡単に週単位になったりする。
ソフトウェア界隈と異なり、とにかくネット上に情報が無い。
- Xilinxのサイトを一生懸命検索したり、SynopsysのSolvNetを一生懸命検索したり。
- Qiita とか、 Teratailとかには絶対出てこないんだもん。。。
こんな状態で、どうやって「アジャイル」なんて実現したら良いのだろう?
もう少し細かく砕いて考えてみよう。別にチップを作ることがゴールじゃない。早くソフト開発者にプロトタイプを使ってもらい、悪いところを洗い出すのだって立派なイタレーションだ。
このためには、今自分の開発フローに無駄なところは無いだろうか?論理合成やFPGAの生成に異常に時間がかかるのは致し方無い。じゃあ他に自分の設計フローに改善できる部分は無いかなあ?
あと、チップ設計やFPGA開発において、とにかく時間がかかるのがバックエンドだ。一度レイアウトを始めるとFPGAなら1日単位、ASICレイアウトなら週単位で時間が必要だったりする。 その途中にネットリストの差し替えなんて発生すると、もうバックエンドの人が発狂してしまう。
じゃあ、高位合成はアジャイルの手助けになるのかい?
ASICで一番時間がかかっているのはどこだろう?例えば自分の論理合成結果で、制約ファイルが間違っていたらもう一度再レイアウトになる。 高位合成は、Verilog-HDLで(かろうじて)見えていたゲートネット部分(フリップフロップとか、AND回路とか、リセット配線とか、クロック配線とか)を完全に隠してしまう。 この状態で、バックエンドの要求にどのように答えたら良いのだろう?
そもそも理解できないRTLネット、さらに理解できないゲートネット。 もう、高位合成が普及するためには、ECOという複雑なフローは消滅するしか無い?高位合成が生成したゲートネットを、手で修正するなんて不可能だ。
じゃあ、ツールにやってもらうか。高位合成は、レイアウトを意識した、ゲートネットを制御できる機能が必要だ。 それが無理なら、もうレイアウトの手法とか、そのあたりから全部変えていかないと、アジャイルにはならないんじゃないか?