トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2021-6-6の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!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}}


!続・雑用
各方面の状況の整理.