2017-05-21 14 views
0

に私は制約(時間/面積...)Yosysおよび/またはABC

abc -g AND,XOR  

コマンドを使用して、簡単な加算器の設計

# read design 
read_verilog fulladder1.v 
hierarchy -check 

# high-level synthesis 
proc; opt; fsm; opt; memory; opt 

# low-level synthesis 
techmap; opt 

# map to target architecture 
abc -g AND,XOR 

# split larger signals 
splitnets -ports; opt 

show 

を合成するために、以下の基本的なスクリプトを使用しています、ABCはsyhthesis AND、XOR、NOT(NOTは自動的に追加されます)ゲートを使用したデザインです。

この問題に関するご質問は、

1)YOSYSおよび/またはABCツールにデザイン全体のユニバーサルゲート(NANDなど)を1つだけ使用させる方法はありますか?コマンドのように

abc -g AND,XOR  

を使用した後

&

2)ライブラリ

または

特殊な使用に制約を(時間/面積/優先順位を?...)を追加することによって指定されたゲート(egXOR)の数を減らすか、または最大化する方法はありますYOSYSおよび/またはABCコマンド?事前に

多くのおかげで...

答えて

0

kernel/cost.hにハードコードされた内蔵の細胞型の「コスト」。

カスタムセルライブラリにマッピングする場合、リバティーファイルのコスト(領域)を指定できます。例はexamples/cmos/cmos_cells.libを参照してください。

セルライブラリにNOTゲートが必要です。しかし、いつでも、例えば、 NANDとNOTを使用してから、techmapコマンドを使用して、NOTのすべてのインスタンスを、同じ信号(または定数1で駆動される1つの入力)で駆動される両方の入力とNANDで置き換えます。


編集:techmapとNANDしないマッピングが簡単です。単純に次の内容のnot2nand.vという名前のファイルを作成します。

module \$_NOT_ (input A, output Y); 
    \$_NAND_ _TECHMAP_REPLACE_ (.A(A), .B(A), .Y(Y)); 
endmodule 

を次にあなたがtechmap -map not2nand.vを使用してのNANDにNOTゲートをマッピングすることができます。

+0

こんにちは@Clifford、あなたの答えに感謝、私は領域contstraintsを追加し、デザイン内の指定されたセルの数を変更することができます。しかし、私は "NOTセル"を "NANDセル"に置き換えることはできません。私はyosysのための非常に新しいユーザーであり、 "techmap"と "setparam"コマンドも試してみましたが、私はスクリプトファイルにこのコマンドを挿入する場所と手順を簡単な例で見つけることができません。私を案内したり、いくつかの簡単な例を共有したりできますか?ありがとうございます –

+0

@EminAytacDerelioglu編集を参照してください。 – CliffordVienna

関連する問題