チゼルの一ヶ月

建国記念日から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