チゼルの一ヶ月
建国記念日からChiselを初めて、1ヶ月が経ちました。 その間にインチキモジュールを作り続けました笑
そして、Vivadoで合成し、FPGAに乗せて動作確認をしました。 FPGAのテストするための環境も作成してみました。
1ヶ月の中で、Chiselは本当に便利で生産性高められる優れたハードウェア記述言語であることがよくわかりました。 感覚的にはVerilogと比べてコーディングは二倍、検証は1.5倍くらい早くなった感じがします。 オーブンソースなので当たり前ですが、無料で完全に言語サポートされているのもすごくありがたいです。
ですが、実は実際に時間がかかったのは、論理を設計するところと、問題が発生した際にデバッグすることでした。
結局、VerilogでもChiselでもアルゴリズムや仕様からハード論理を設計することはまったく同じでした。 そこをしっかりしないと、良いものはできないですし、まともに動作しないです。 そして、その設計は難しく時間がかかるため、今回もなかなかに苦労しました。 バグ出しては解析し、修正です。
そこで思ったのが、アルゴリズムから自動でハードウェア 論理を作って欲しいなと。 そうそう、高位合成と。
アルゴリズムから完全に等価なハードウェア論理を作り出してくれる(はず?)と 論理を設計することも不要ですし、検証も不要です。 解析作業も少なくなることが想定されるため、↑で最も時間がかかった点について解決となります。 それが楽しいかはわかりませんが笑
というわけで、Vivadoには高位合成ツールが入っているようなので、試しに動かしてみようと思いました。
あとがき
最後にChiselで一ヶ月進めた内容をまとめます。 Chiselを使うことは本当に楽しかったです。 怪奇現象も発生しましたし笑
# | Products | Blog | Note |
---|---|---|---|
1 | 除算器 | chiselで簡単な除算器を書きました - moamoa diary | |
2 | 簡単なベクタ演算器 | chiselで簡単なベクタ演算器を書いてみました - moamoa diary | |
3 | AXI4-Lite Register | chiselで簡単なAXI4-Liteのレジスタを書いてみました - moamoa diary | |
4 | AXI4-Lite Bus | Chiselで簡単なaxi4-lite busを書いてみました - moamoa diary | |
5 | DMA | chiselでDMA書いてみました - moamoa diary | |
6 | RV32I | chiselで簡単なRV32Iもどきを作りました - moamoa diary | |
7 | Uart | Chiselで簡単なUART受信機を作ってみました - moamoa diary | |
8 | Top(Uart, RiscV等組み合わせ) | Chiselで分周クロックを作って、RISCVの合成をTiming Metさせました! - moamoa diary |