Chiselで簡単なUART受信機を作ってみました
RISCVもできてきたので、次にRISCVに外部から接続する方法を考えてみました。 本来であればRISCVデバッガを作れば良いのですが、以前調べたところ、あまりにも難解なので、今回はskipすることにしました。
となれば、最も簡単なのはUART一択ということで、簡単に実装してみました。 FPGA実装ためにまずは簡単なInterfaceから進めてみようと考えました。 簡単な入出力、それはシリアルとスイッチです。 以下の仕様でひとまず作ってみました!
- シリアル受信器
- シリアルデータを受け取るとその値をGPIOに出力
- chiselステートマシンの参考元
Cookbook · freechipsproject/chisel3 Wiki · GitHub
注意: なぜか先頭の文字を小文字にしないといけなかったです。(というより、Idleやらか予約語だった?)
- スイッチ入出力
- スイッチの入力をそのまま出力。
あとがき
というわけで、通信モジュールも作ったので、次にFPGAでも動かしてみますか。という感じです。 ただ、そもそもChiselが吐き出したVerilogコードが適切か不明なので、一度はVerilog Simulatorで動作は確認しておいた方が良いのかなと思っています。
なので、次はVivadoかQuartusを使用して、SimulatornとFPGA実装確認をしようと思います。