フ ロ ア プ ラ ニ ング 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
© Copyright 2024 Paperzz