論理合成


次は、配置・配線のステップになります。配置・配線を行う前に重要な設定ファ イルを作成する必要があります。それは、FPGA の端子と入力した回路の入出 力端子の物理的な対応付けをすることです。この設定を行わなかった場合、配 置・配線処理プログラムは自動的に端子の割り付けを行います。今回は、前もっ て用意されているテストボードを用いて後の動作検証を行いますので、そのテ ストボードに合わせて端子の割当をしておく必要があります。

端子の割当は alu_top.cst ファイルを編集することで行います。この制 約ファイルでは、配置・配線する回路に対し遅延情報を付加したり、端子の割 当を行うことができます。ここでは、端子の物理配置のみ指定することにしま す。

alu_top.cst をエディタにかけ、以下のように記述しセーブしてください。
KITE Microprocessor Board PLUS+ (XC4010/13)の場合
#
# CST files for 8 bit ALU on KITE microprocessor Board PLUS+
#
PLACE INSTANCE B<0> : U3;
PLACE INSTANCE B<1> : V3;
PLACE INSTANCE B<2> : V7;
PLACE INSTANCE B<3> : T9;
PLACE INSTANCE B<4> : U10;
PLACE INSTANCE B<5> : U12;
PLACE INSTANCE B<6> : V17;
PLACE INSTANCE B<7> : T15;

PLACE INSTANCE A<0> : U16;
PLACE INSTANCE A<1> : U15;
PLACE INSTANCE A<2> : V14;
PLACE INSTANCE A<3> : V12;
PLACE INSTANCE A<4> : V10;
PLACE INSTANCE A<5> : U8;
PLACE INSTANCE A<6> : U6;
PLACE INSTANCE A<7> : U5;

PLACE INSTANCE Y<0> : F1;
PLACE INSTANCE Y<1> : E1;
PLACE INSTANCE Y<2> : F2;
PLACE INSTANCE Y<3> : D1;
PLACE INSTANCE Y<4> : C1;
PLACE INSTANCE Y<5> : E2;
PLACE INSTANCE Y<6> : B1;
PLACE INSTANCE Y<7> : B3;

PLACE INSTANCE CB<0> : T8;
PLACE INSTANCE CB<1> : T6;
PLACE INSTANCE CB<2> : T5;
PLACE INSTANCE CB<3> : P3;

PLACE INSTANCE FL<0>   : V4;	# C Flag
PLACE INSTANCE FL<1>   : V2;	# V Flag
PLACE INSTANCE FL<2>   : U4;	# Z Flag
PLACE INSTANCE FL<3>   : R2;	# S Flag

PLACE INSTANCE ADDR<0> : T3;
PLACE INSTANCE ADDR<1> : U1;
PLACE INSTANCE ADDR<2> : T2;
PLACE INSTANCE ADDR<3> : N3;
PLACE INSTANCE ADDR<4> : M2;
PLACE INSTANCE ADDR<5> : M1;
PLACE INSTANCE ADDR<6> : K2;
PLACE INSTANCE ADDR<7> : K3;
PLACE INSTANCE ADDR<8> : J3;
PLACE INSTANCE ADDR<9> : J2;
PLACE INSTANCE ADDR<10>: G1;
PLACE INSTANCE ADDR<11>: G2;
PLACE INSTANCE ADDR<12>: F3;
PLACE INSTANCE ADDR<13>: D2;
PLACE INSTANCE ADDR<14>: C2;
PLACE INSTANCE ADDR<15>: B2;

PLACE INSTANCE IORQ_L  : H2;
PLACE INSTANCE RW      : H3;
例えば、"D1"等の文字列はFPGAのピン番号に当たります。通常ICのピン番号 は純粋な数字ですが、このFPGAはPGAパッケージであるためアルファベットと 数字の組合せになっています。

設定ファイルの設定が終ったら、
xmake alu_top
のように、xmake コマンドを実行し配置・配線処理を始めます。今回作成した カウンタ程度では数分で正常に終了します。大規模な回路になると数十分かか ることもあります。この過程では主に syn2xnf、xnfmerge、xnfprep、ppr、xdelay、 makebits の5つのプログラムが実行されます。

syn2xnf は Synopsys Design Compiler が出力した EDIF ファイルを、Xilinx 社設計ツールに固有のファイルに変換する処理を行います。

xnfmerge は、論理合成時にマッピングした論理回路に必要な情報を情報を統 合します。

xnfprep は使用した部品間の配線状況をチェックするプログラムです。回路に よっては使用しない端子とかが存在することもあるでしょう。そのような箇所 をチェックし不必要な部品を自動できに削除したりします。xnfprep でエラー が発生することがあります。その場合は、Show Log において xnfprep Log File を確認しエラー箇所を訂正してください

pprは実際の配置配線処理を行います。詳細なログは Show Log において Report File を確認しエラー箇所を訂正してください。特にFPGA の最大実装 規模に対してぎりぎりの論理資源を使用している場合など、配置や配線処理が 不可能になる場合もあります。

xdelay は配置配線された回路がどの程度の周波数で動作することが可能なの か等の遅延情報を解析するためのツールです。配線遅延情報が内部情報として 付加されます。

makebits は配置配線されたデータを FPGA に転送する際に必要なファイルに 変換するプログラムです。最終的には、拡張子が ".bit" というファイルが作 成されます。

makebits プログラムまで終了し、".bit"ファイルが正常に作成されていれば OKです。もし alu_top.out ファイル中にErrorの文字がある場合は配置・配線 処理中にエラーがあったことを示します。適宜誤りを修正してxmakeを再実行 してください。


論理合成はうまくいきましたか?
最後は、 動作確認 を行います。


| CAD Home |

Our mail address is kite@arch.cs.kumamoto-u.ac.jp .
Last modified on