フロアプランニング

フ ロ ア プ ラ ニ ング
Lattice Diamond 日本語ユーザガ イ ド
2015 年 4 月
第 11 章 フ ロ ア プ ラ ニ ン グ
Lattice Diamond ではフ ロ アプ ラ ニ ン グ、 すなわちデバ イ ス内部の各種 リ ソ ース に対す る 配置指定を行 う こ
と がで き ます。 本章ではフ ロ アプ ラ ニ ン グの方法について説明 し ます。
11.1 各種 リ ソ ース の配置指定方法
Lattice Diamond ではレ ジ ス タ や LUT と いっ た ロ ジ ッ ク リ ソ ース と 、 PLL や EBR と いっ たマ ク ロ と で配置
指定に使用で き る 方法が異な り ます。 マ ク ロ は個別に配置指定を行 う こ と がで き ますが、 ロ ジ ッ ク リ ソ ース
はグループ を作成 し 、 そのグループの配置指定を行い ます。
*****-------------------• レ ジ ス タ 1 つを配置指定をす る 場合、 レ ジ ス タ 1 つのグループ を作成 し 、 その配置を指定 し ます
• マ ク ロ と ロ ジ ッ ク リ ソ ース混在のグループ を作成 し 、 そのグループに対 し て配置指定を行 う こ と も で
き ます
*****-------------------- ロ ジ ッ ク リ ソ ース のグループの作成方法お よ び配置指定方法 (フ ロ アプ ラ ニ ン グ) は 11.2 節、 マ ク ロ の配
置指定方法は 11.3 節で説明 し ます。 ま た、 それぞれの配置指定の制約フ ァ イ ルへの記述方法は 11.4 節で説明
し ます。
Diamond 2.1 か ら は、 LatticeECP3 に対す る リ ソ ースパ ッ キ ン グのアルゴ リ ズ ムに改善が施 さ れま し た ("
ネ ッ ト リ ス ト ・ リ パ ッ キ ン グ ")。 デザ イ ンに依存 し ますが こ の機能に よ り 、 該当す る 場合は最大 5% 程度の
fMAX 改善が見込まれます。 ま た、 ソ ース レベルのマ イ ナーな変更に対 し て も 、 PAR 結果が大 き く 左右 さ れ る
こ と がな く な り ます。 フ ロ アプ ラ ニ ン グ的な観点では、 本ユーザガ イ ド で も 取 り 上げてい る UGROUP 指定
な ど の必要性が大 き く 低減す る 効果が確認 さ れてい ます。 ユーザがマニ ュ アルで試行錯誤的に こ う し た指定
をす る 労力か ら 解放 さ れ る と 見込まれます。
(コ マ ン ド オプシ ョ ン で本アルゴ リ ズ ムは強制オ フ にす る こ と も 可能 : "-exp parUseNBP=0")
Diamond 3.4 か ら ECP5 を タ ーゲ ッ ト と す る 場合、 PCS と DDR Generic については Clarity Designer を用い
たマ ク ロ 配置やポー ト 指定のプ ラ ン ニ ン グが可能です。 第 5 章 『IP/ モジ ュ ール生成』 の Clarity Designer 節
を ご参照下 さ い。
11.2 フ ロ アプ ラ ンの手法 と 手順
Lattice Diamond では、 Translate Design プ ロ セ ス と Map Design プ ロ セ ス の間で フ ロ アプ ラ ン の設定を行い
ます。
フ ロ アプ ラ ンでは、 UGROUP (配置指定を行レ ジ ス タ や LUT 等のグループ) の作成 と 、 配置場所の指定が
必要にな り ます。 配置場所の指定には、 リ ージ ョ ン と 呼ばれ る 配置領域を作成す る 方法 と 、 配置領域の基点
と な る SLICE を指定す る 方法の 2 つがあ り ます。 本節ではそれぞれの方法について説明 し ます。
© 2014 Lattice Semiconductor Corp. (註 : 本 Lattice Diamond 日本語マニ ュ アルは、 日本語に よ る理解のため一助 と し て提供 し てい ます。 その作成にあ た っ ては各 ト
ピ ッ ク について、 それぞれ可能な限 り 正確を期 し てお り ますが、 必ず し も 網羅的ではな く 、 或いは最新でない可能性があ り ます。 ま た、 意図せずオ リ ジナル英語版
オン ラ イ ンヘルプや リ リ ース ノ ー ト な ど と 不一致があ る 場合 も あ り 得ます。 疑義が生 じ た場合は、 ラ テ ィ ス セ ミ コ ン ダ ク タ ー正規代理店の技術サポー ト 担当にお問
い合わせ頂 く か、 ま たは極力最新の英語オ リ ジナル ・ ソ ース ド キ ュ メ ン ト を併せて参照する よ う にお願い致 し ます。)
www.latticesemi.com
11-1
JUG_D3.3floorplanning_v1.1
Lattice Diamond 日本語ユーザガ イ ド
図 11-1. フ ロ アプ ラ ニ ン グの手順
11.2.1 リ ージ ョ ンの作成
リ ージ ョ ン を作成す る には、 Translate Design プ ロ セ ス完了後にプ ロ ジ ェ ク ト ・ ナビ ゲー タ のツールバーか
らアイ コン
を ク リ ッ ク し て フ ロ アプ ラ ン ・ ビ ュ ー (Floorplan View) を起動 し ます。
図 11-2. フ ロ アプ ラ ン ・ ビ ューの起動
フ ロ アプ ラ ン ・ ビ ュ ー上の ど こ か を右 ク リ ッ ク す る と メ ニ ュ ーが表示 さ れます。こ の メ ニ ュ ーか ら [Create]
=> [REGION] の順に選択 し ます (図 11-3)。 こ の後、 マ ウ ス を ド ラ ッ グ し て囲んだ範囲が 1 つの リ ージ ョ ン
と な り ます。 範囲選択を行 う と リ ージ ョ ンのパ ラ メ ー タ 設定ウ イ ン ド ウ が起動 し ます (図 11-4)。
図 11-3. リ ージ ョ ン生成モー ド への移行
JUG_D3.3floorplanning_v1.1
11-2
フ ロ ア プ ラ ニ ング
図 11-4. リ ージ ョ ンのパ ラ メ ー タ 設定ウ イ ン ド ウ
[Region Name] 欄には、ユニー ク な リ ージ ョ ン名を入力 し て く だ さ い。[Color] 欄では、フ ロ アプ ラ ン ・ ビ ュ ー
上の リ ージ ョ ン表示色を し てい ます。色表示部分を ダブル ク リ ッ ク す る と 、色選択ウ イ ン ド ウ が起動 し ます。
[Prohibit] 欄は、 こ の リ ージ ョ ンに何 も リ ソ ース を配置 さ せない場合にチ ェ ッ ク を入れます。
[Anchor] 欄は こ の リ ージ ョ ンの左上の角にな る PFU の位置 (PFU 番号)、 BBox 欄は リ ージ ョ ンのサ イ ズ を
表 し ます。 こ れ ら の値は設定ウ イ ン ド ウ 上で変更す る こ と も で き ます。
作成 し た リ ージ ョ ンへの リ ソ ース の配置指定は Spreadsheet View 上で行い ます。
図 11-5. リ ージ ョ ンのパ ラ メ ー タ
11.2.2 UGROUP の作成
配置指定の対象 と な る リ ソ ース のグループ を生成す る には、 Lattice Diamond で Translate Design プ ロ セ ス
ま で を実行 し 、 各種制約を設定す る GUI ツール Spreadsheet View を起動 し ます。
Spreadsheet View の Group タ ブで [Group] を ダブル ク リ ッ ク す る と UGROUP (配置指定を行 う リ ソ ース グ
ループ) の設定ウ イ ン ド ウ が起動 し ます。
11-3
JUG_D3.3floorplanning_v1.1
Lattice Diamond 日本語ユーザガ イ ド
図 11-6. UGROUP 設定ウ イ ン ド ウ
②
①
③
④
⑤
⑥
設定ウ イ ン ド ウ では、 UGOURP Name 欄 (図 11-6 ①) に任意のグループ名を入力 し ます。 Color 欄 (図 116 ②) に表示 さ れてい る 色は、 当該 UGROUP が配置配線後に Floor Planner 上で表示 さ れ る 際の色です。 色表
示部分を ダブル ク リ ッ ク す る と 、 色設定を行 う ウ イ ン ド ウ が立ち上が り 設定を変更す る こ と がで き ます。
図 11-7. UGROUP 生成のみの配置配線結果の例
配置指定を行 う リ ソ ース は Available Instances 欄 (図 11-6 ③) で選択 し ます。 こ こ にはモジ ュ ールやレ ジ
ス タ 等のプ リ ミ テ ィ ブの イ ン ス タ ン ス 名が表示 さ れてい ま す。 グループに入れ る イ ン ス タ ン ス 名を選択 し 、
>ボ タ ン (図 11-6 ④) を ク リ ッ ク し ます。 Selected Instances 欄 (図 11-6 ⑤) に表示 さ れてい る イ ン ス タ ン
ス名がグループに含まれ る イ ン ス タ ン ス名です。 UGROUP を作成す る だけな ら こ こ で Add ボ タ ン (図 11-6
⑥) を ク リ ッ ク すれば終了です。 配置指定 も こ の ウ イ ン ド ウ 上で行 う ので、 必要に応 じ て指定 (11.2.3 項を
参照) を行っ た後、 Add ボ タ ン を ク リ ッ ク し て く だ さ い。
JUG_D3.3floorplanning_v1.1
11-4
フ ロ ア プ ラ ニ ング
なお、 配置個所を指定 し な く て も UGROUP と し て指定 し た リ ソ ース同士は相互に近 く に配置 さ れます。
11.2.3 UGROUP の配置指定
11.2.3.1 リ ージ ョ ンによ る配置指定
事前に リ ージ ョ ン を作成 (11.2.1 項参照) し ていれば、 UGROUP 設定ウ イ ン ド ウ で配置す る リ ージ ョ ン を
指定す る こ と がで き ます。
図 11-8. Region の指定
リージョン指定
②
①
リ ージ ョ ン を指定す る 場合は、 UGROUP 作成 ウ イ ン ド ウ で Anchor (図 11-8 ①) と Region (図 11-8 ②) に
チ ェ ッ ク を入れます。 Region にチ ェ ッ ク を入れ る と 右側で作成済み リ ージ ョ ン を選択で き る よ う にな り ます
ので、 こ こ で配置場所に指定す る リ ージ ョ ン を選択 し ます。
*****--------------------• 1 つの リ ージ ョ ンに複数のグループの配置指定を行 う こ と も で き ます
• Lattice Diamond では、 配置指定を行っ た グループの リ ソ ース が リ ージ ョ ン内の リ ソ ース よ り 多い と 配
置配線でエ ラ ーにな り ます。 し か し 、 こ の設定段階では リ ソ ース数の計算を行わないので設定 し た段階
ではエ ラ ーは出ません。 リ ージ ョ ンへの配置指定は、 事前にあ る 程度の リ ソ ース を計算 し てか ら 行っ て
く ださい
*****---------------------
11.2.3.2 基点 SLICE 指定によ る配置指定
リ ージ ョ ンの よ う な完全な領域ではな く 、 領域の基点 SLICE を指定す る こ と で配置を指定す る こ と も で き
ます。 指定 し た基点は領域の左上角にな り ます。 基点 SLICE を指定す る 場合は、 UGROUP 作成ウ イ ン ド ウ で Anchor (図 11-9 ①) と Site (図 11-9 ②) に
チ ェ ッ ク を入れます。 Site にチ ェ ッ ク を入れ る と 右側で基点 と な る SLICE の位置を指定で き る よ う にな り ま
す。
11-5
JUG_D3.3floorplanning_v1.1
Lattice Diamond 日本語ユーザガ イ ド
図 11-9. 基点 SLICE の指定
①
②
SLICE 番号は、 デバ イ ス を上か ら 見た場合に左上が基準にな っ てい ます。 Row は横方向、 Column は縦方向
です。 ど ち ら も 番号は必ず 2 か ら 始ま り ます (図 11-10)。 終わ り はデバ イ ス のサ イ ズに よ っ て決ま り ます。
選択で き る 数値の範囲は UGROUP 作成 ウ イ ン ド ウ に表示 さ れてい ます。
図 11-10. SLICE 番号
11.2.3.3 リ ージ ョ ン指定 と 基点 SLICE 指定の違い
11.2.3.1 項 と 11.2.3.2 項で 2 種類の配置指定方法を説明 し ま し たが、 こ れ ら の方法にはそれぞれ メ リ ッ ト /
デ メ リ ッ ト があ り ます。
表 11-1. 配置指定方法の メ リ ッ ト /デ メ リ ッ ト
配置指定方法
メリット
デメ リ ッ ト
リ ージ ョ ン指定
配置場所が厳格。 指定 し た リ ージ ョ ン 配置指定を行 っ たグループの リ ソ ースが リ ージ ョ
内に し か配置 さ れない
ン内の リ ソ ース よ り 多い と 配置配線で エ ラ ー
基点 SLICE 指定
リ ソ ース制限がないので配置配線で リ
配置場所があま り 厳格ではない
ソ ース不足で エ ラ ーにな ら ない
JUG_D3.3floorplanning_v1.1
11-6
フ ロ ア プ ラ ニ ング
11.3 マ ク ロ の配置指定
以下のマ ク ロ は UGROUP を作成 し な く て も 個別に配置指定を行 う こ と がで き ます。
•
•
•
•
PLL / DLL
EBR (ブ ロ ッ ク メ モ リ )
DSP ブ ロ ッ ク (演算回路)
PCS (SERDES マ ク ロ )
こ れ ら のマ ク ロ の配置指定には GUI ツールネ ッ ト リ ス ト ・ ビ ュ ー (Netlist View) と フ ロ アプ ラ ン ・ ビ ュ ー
を使用 し ます。 それぞれプ ロ ジ ェ ク ト ・ ナ ビ ゲー タ の ツールバーか ら ア イ コ ン
動 さ せます。
と
を ク リ ッ ク し て起
配置指定には、 両方を同時に表示 さ せ る 必要があ り ます。 両方をデ タ ッ チ し て独立 し た ウ イ ン ド ウ と し て
表示 さ せ る か、プ ロ ジ ェ ク ト ・ ナビ ゲー タ の表示を分割 し て両方が同時に表示 さ れ る よ う に し て く だ さ い (方
法の詳細は第 3 章 「GUI カ ス タ マ イ ズ」 を参照 し て く だ さ い)。
図 11-11. ネ ッ ト リ ス ト ・ ビ ュ ー と フ ロ アプ ラ ン ・ ビ ュ ーのア イ コ ン
配置を指定す る マ ク ロ はネ ッ ト リ ス ト ・ ビ ュ ー上で選択 し ます。
図 11-12. 配置指定マ ク ロ の選択
ネ ッ ト リ ス ト ・ ビ ュ ーのツールバー上でア イ コ ン
を ク リ ッ ク す る と イ ン ス タ ン ス名の リ ス ト が表示 さ
れます (図 11-12)。 イ ン ス タ ン ス名の リ ス ト はツ リ ー構造にな っ てお り 、 マ ク ロ は AISIC Block ツ リ ーを展
開す る と 表示 さ れます。
配置を指定す る 際は、 ネ ッ ト リ ス ト ・ ビ ュ ーに表示 さ れてい る マ ク ロ 名を フ ロ アプ ラ ン ・ ビ ュ ー上の配置
個所へ ド ラ ッ グ し ます。 マ ク ロ の ド ラ ッ グ中はフ ロ アプ ラ ン ・ ビ ュ ーの表示を操作で き ません。 従っ て、 事
前に フ ロ アプ ラ ン ・ ビ ュ ー上で配置す る 場所を決めて ウ イ ン ド ウ 内に表示す る よ う に し てお く 必要があ り ま
す。
11-7
JUG_D3.3floorplanning_v1.1
Lattice Diamond 日本語ユーザガ イ ド
図 11-13. マ ク ロ の配置指定
ドラッグ
ド ラ ッ グ し てい く と 、 カー ソ ルが配置で き る リ ソ ース の上にあ る 場合はア イ コ ンが + に変化 し ます。
一度配置 し た マ ク ロ の配置 を 変更す る 場合は、 再度同 じ 方法で別の場所 を 指定 し ま す。 フ ロ ア プ ラ ン ・
ビ ュ ー上で配置 さ れてい る リ ソ ース をつかんで配置個所を変更す る こ と はで き ません。
11.4 制約フ ァ イ ルへの記述方法
こ れま でに GUI ツールに よ る 配置指定の方法について説明 し ま し た。 GUI ツールに よ る 設定はテ キ ス ト 記
述の制約フ ァ イ ルに出力 さ れ る ので、 直接制約フ ァ イ ルを編集 し て配置指定の追加お よ び編集を行 う こ と が
で き ます。
11.4.1 UGROUP 生成記述
UGROUP 生成は以下の よ う に記述 し ます。
-- 記述ルール {} 内は必要な イ ン ス タ ン ス数だけ繰 り 返 し 記述
UGROUP " 任意のグループ名 " {BLOCKNAME イ ン ス タ ン ス名 } ;
-- 記述例
UGROUP "grp_example"
BLKNAME BUFAA/CNTRLAA/pr_fifowen_un1_mpuwen_0_a2
BLKNAME BUFAA/CNTRLAA/pr_fifowen_un3_mpuwen_i
BLKNAME BUFAA/CNTRLAA/pr_full_fall_en_un3_sr_spiwen_shift_i
BLKNAME BUFAA/CNTRLAA/pr_mpurdreq_shift_un2_mpurw_0_a2
BLKNAME BUFAA/CNTRLAA/pr_spirdvalid_un6_s_spirdreq_fall_i
BLKNAME BUFAA/CNTRLAA/pr_spirdvalid_un6_sr_spirdreq_rise_shift ;
11.4.2 リ ージ ョ ン生成記述
リ ージ ョ ン生成は以下の よ う に記述 し ます。
-- 記述ルール
REGION " 任意の リ ージ ョ ン名 " " ア ン カース ラ イ ス番号 " PFU 数 (縦) PFU 数 (横) DEVSIZE;
JUG_D3.3floorplanning_v1.1
11-8
フ ロ ア プ ラ ニ ング
PFU は SLICE 4 つの塊
-- 記述例
REGION "rgn_spi" "R2C14D" 13 4 DEVSIZE;
11.4.3 配置指定
11.4.3.1 UGROUP の リ ージ ョ ンに対する配置指定
UGROUP を配置す る リ ージ ョ ン を指定す る 場合は、 以下の よ う に記述 し ます。
-- 記述ルール
LOCATE UGROUP "UGROUP 名 " REGION " リ ージ ョ ン名 " ;
-- 記述例
LOCATE UGROUP "grp_spiaa" REGION "rgn_spi" ;
11.4.3.2 UGROUP の配置基点 SLICE 指定
UGROUP を配置す る 領域の基点 SLICE を指定す る 場合は、 以下の よ う に記述 し ます。
-- 記述ルール
LOCATE UGROUP "UGROUP 名 " SITE " 基点 SLICE 番号 (※) " ;
※SLICE 番号の最後のアルフ ァ ベ ッ ト は必ず D です。
-- 記述例
LOCATE UGROUP "grp_mpuaa" SITE "R4C4D" ;
11.4.3.3 マ ク ロの配置指定
マ ク ロ を配置す る 場所を指定す る 場合は、 以下の よ う に記述 し ます。
-- 記述ルール
LOCATE COMP " マ ク ロ 名 " SITE " 配置場所 " ;
-- 記述例
LOCATE COMP "U1_testpll/PLLBInst_0" SITE "PLL3_R6C1" ;
11.5 RTL フ ァ イ ル内での記述方法
RTL フ ァ イ ルで直接配置指定を行 う こ と がで き ます。 あ る と し て も 通常は UROUP 設定程度で、 ア ン カー
や BBox 指定をす る こ と は殆ど あ り ませんが、 以下にグループ化のみの場合の例を示 し ます。
VHDL 例 (イ ン ス タ ン ス名は ”rotate_1”)
attribute UGROUP: reg_group;
attribute UGROUP of rotate_1: label is "rot_group";
Verilog HDL 例 (イ ン ス タ ン ス名は ”rotate_1”)
rotate rotate_1 (q, reg_out, clk, r_l, rst) /* synthesis UGROUP=“rot_group” */ ;
( 以下モジ ュ ール記述 )
11-9
JUG_D3.3floorplanning_v1.1
Lattice Diamond 日本語ユーザガ イ ド
次の例は BBOX サ イ ズ と ア ン カー位置 も HDL 内で指定す る 場合です。
VHDL 例 (モ ジ ュ ール名は ”rotate_1”)
attribute UGROUP: reg_group;
attribute UGROUP of rotate_1: label is "rot_group";
attribute HULOC: R10C22D;
attribute HULOC of rotate_1: label is "R10C22D";
attribute BBOX: 9,7;
attribute BBOX of rotate_1: label is "9,7";
attribute BBOXTYPE: DEVSIZE;
attribute BBOXTYPE of rotate_1: entity is "DEVSIZE";
Verilog HDL 例
rotate rotate_1 (q, reg_out, clk, r_l, rst) /* synthesis UGROUP=“rot_group” HULOC= “R5C10D” BBOX= “5,5” BBOXTYPE= “DEVSIZE” */ ;
// pragma attribute rotate_1 UGROUP rot_group
// pragma attribute rotate_1 HULOC R5C10
// pragma attribute rotate_1 BBOX 5,5
// pragma attribute rotate_1 BBOXTYPE DEVSIZE
// pragma attribute rotate_1 hierarchy preserve
11.6 改訂履歴
Ver.
Date
page
内 容
3.1 v1.1
Aug. 2014
11-10
3.3
Mar. 2015
1
Diamond 3.4 用 Clarity Designer について言及
3.3.1 (3.3,
rev1.1)
Apr.,2015
10
UGROUP 記述例、 BBOX な し の場合を追加
11.5 節 「RTL フ ァ イ ル内での記述方法」 を追記
--- *** ---
JUG_D3.3floorplanning_v1.1
11-10