yosysで論理合成(フリップ・フロップ)

前回はyosysをubuntunにインストールして簡単な基本ゲートの論理合成を行いました。今回は、クロックを使用した設計データの論理合成を試してみます。

合成を行う設計データ

クロックを使用した設計で一番簡単なDフロップ・プロップで論理合成を試します。具体的なコードは次のとおりです。ファイル名はtest.vです。

論理合成

合成スクリプト

yosysの合成スクリプトは次のとおりです。セル・ライブラリはyosys付属のcmos_cells.libを利用しています。ファイル名はtest.ysとしました。一般的な論理合成ツールではクロックの設定が必要なのですが、yosysのマニュアルにはそのような記述は見当たりません。例えば、

  • クロック名の指定
  • クロック周波数の指定
  • クロックのデューティ指定

といった設定についての記述は見当たりません。

論理合成の実行

次のコマンドで論理合成を実行します。

論理結果

合成結果(synth.v)は次のとおりです。Verilogのregがそのまま残っていて、フリップ・フロップのセルに置き換わっていないのがわかります。

showコマンドで表示される図は次のとおりです。

合成結果

合成結果

合成スクリプトの修正

Verilogのregをセルにマッピングするには、合成スクリプトにdfflibmap -libertyを追加します。

再合成結果

dfflibmapを追加した合成スクリプトを実行すると、regがセルにマッピングされた次のネットリストが生成されます。

showの結果は次のとおりです。Verilogソース・コード中のo_dというregがDFFSRというフリップ・プロップにマッピングされていることがわかります。

合成結果

合成結果

まとめ

yosysを使ってクロック入力のある簡単な設計データの論理合成を行いました。一般的な論理合成ツールでは、クロックに対して周波数などの設定が必要になりますが、yosysには存在しないようです(少なくとも今のバージョンでは)。

スポンサーリンク







  • このエントリーをはてなブックマークに追加
スポンサーリンク