Skip to content

mux ramの合成

Ushitora Anqou edited this page Sep 2, 2021 · 2 revisions

mux-ramはIyokan内部でも自動的に合成できるが、Yosysによって合成したものを使用することもできる。Yosysによる最適化が見込めるので、後者のほうが高速に動作する(傾向にある)。

合成したものはリンク時にIyokanバイナリにくっつける。C++側のこのあたりやCMakeLists.txtのこのあたりを参考のこと。

RAMの合成手法

以下の手順はyosys-jsonをサポートしていなかったときの記述(iyokanl1-jsonを用いている)。 yosys-jsonを用いる方法は別途作る必要がある。Iyokan-L1ではRAM用に特殊な処理をしていたので(genRamオプション)、それをIyokan側にポートしなければならない(はず)。

$ dotnet run -p ../kvsp/Iyokan-L1/ -c Release ../cahp-ruby/ram-1KiB-16bit.json mux-ram-9-16-16.json genRam
$ cat mux-ram-9-16-16.json             | \
sed -e 's/io_port_writeEnable/wren/'   \
    -e 's/io_port_readData/rdata/'     \
    -e 's/io_port_addr/addr/'          \
    -e 's/io_port_writeData/wdata/'  | \
jq -c > mux-ram-9-16-16.min.json
Clone this wiki locally