ハフマンデコードモジュール 6 シリアル
基本的にIJGのハフマンデコードの所で調べた、Huffval[code + offset[k]] という演算を行います。
serialcheckステートで、9,10,11,.....とフェッチレジスタから持ってくるデータ量を増やしながら、Maxvalueと比較してハフマンコードが何ビットであるかを調べていきます。
フェッチレジスタにデータが足りていない場合は、serialwaitに遷移してデータが揃うのを待ちます。
比較によってコードのビット数が確定した場合、最終的なserialfinishステートで得られたランレングスや数値ビット数などを書き込みます。
頑張ればserialfinishステートを無くすことができるような気もしますが、そもそもserial処理になるコード自体の存在確率が低いため、ここはそのままにしました。
MaxValue mem, offset memにおいてキャッシュメモリでもでてきた、 ac/dc , id 等の信号を先頭アドレスに入力します。