雑多な趣味の記録帳

tom01h.exblog.jp

zero-riscy に BNN 命令を追加する その2

昨日に引き続き、zero-riscy に BNN を高速化する命令を追加します。
Pool 命令は funct3=2 で、rs2 からデータを入れます。
Norm 命令は funct3=3 で、rs1 からアドレスを入れます。
Active 命令は funct3=4 です。結果を rd に戻すのですが、そこら辺の制御が必要。DIV 命令でも参考にするか。

戻すデータとストールは zeroriscy_multdiv_fast.sv の multdiv_result_o と ready_o をたどっていった先にマージします。
他にも zeroriscy_id_stage.sv でマルチサイクル命令のステートマシン変更したり stall 信号を作る必要がありました。
あとは zeroriscy_decoder.sv で regfile_we を上げておくのかな。
とりあえず下の命令が正しい値を表示するので、次回からは推論プログラムを変形していこうと思います。
putx(bnn_activ());
Verilator はちまちま修正するには時間がかかりますねぇ。Model-Sim との効率よい二刀流を考えねば…
ひとまずは zero-riscy のコア だけ登録しました。

[PR]
トラックバックURL : https://tom01h.exblog.jp/tb/29333064
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by tom01h | 2018-01-22 21:38 | PCとか | Trackback | Comments(0)