!yosysを使ってみる Ubuntu 20.04だと,aptでインストールできる. $ sudo apt install yosys バージョンは, $ yosys -V Yosys 0.9 (git sha1 1979e0b) とのこと.起動するとプロンプトが表示されて対話的に利用できる $ yosys ... yosys> yosys> exit 試しに,1-bitの加算を合成してみる. module add ( input wire a, input wire b, output wire c ); assign c = a + b; endmodule 対話的に処理してもいいけど, 処理したいコマンド列をファイルに保存しておいて与えるのが便利. たとえば,↓のようなadd.ysとか作って read_verilog add.v # elaborate design hierarchy hierarchy -check -top add # the high-level stuff proc; opt; fsm; opt; memory; opt show -format svg -prefix techmap_add write_verilog techmap_add.v write_json techmap_add.js # mapping to internal cell library techmap; opt # mapping flip-flops to mycells.lib dfflibmap -liberty cmos_cells.lib # mapping logic to mycells.lib abc -liberty cmos_cells.lib show -format svg -prefix cellmap_add write_verilog cellmap_add.v write_json cellmap_add.js clean yosysを yosys add.ys などとして実行.cmos_cells.lib は https://github.com/YosysHQ/yosys/tree/master/examples/cmos から持ってきた. aptでyosysいれたとしても,gitリポジトリをクローンしておく方が便利かも. 生成されるファイルは * techmap_add.v - '+'がxorになるレベルの途中経過 * techmap_add.js - JSONでも出力可能 * techmap_add.dot - Graphviz用dotファイル * techmap_add.svg - svg形式の * cellmap_add.v - cmos_cells.lib使ってマッピングした後 * cellmap_add.js - 同じくJSONで出力可能 * cellmap_add.dot - Graphviz用dotファイル * cellmap_add.svg - svg形式で出力 showに引数を与えなければ実行中に,Graphvizのウィンドウが表示される. グラフはsvgじゃなくてpngでも出力できる.出力はこんな感じ. techmap_add.png {{ref_image techmap_add.png}} cellmap_add.png {{ref_image cellmap_add.png}} !続・雑用 各方面の状況の整理.