2.4 fpgaへの実装 - atlaspc5.kek.jpatlaspc5.kek.jp/pub/main/rd53adaqdevelopment/oftc_2_4.pdf ·...
TRANSCRIPT
2.4 FPGAへの実装
第3.4版
2016年06月22日
Open-It FPGAトレーニングコース(入門編)
FPGAへの実装方法
論理合成
配置
データ生成
Vivado
HDLコード
4つの要素へ変換、最適化
FPGA内の構造に合わせ使う場所を決める
ダウンロード
論理情報データを生成
ダウンロード
Synthesize
Implementation
Generate Programming file
Programmer
Open-It FPGAトレーニングコース 2
論理合成開始
Open-It FPGAトレーニングコース 4
[Run Synthesis]をクリック
合成中はこの部分のカラーバーが動く
論理合成中の画面
Open-It FPGAトレーニングコース 5
合成中ここにレポートが表示される
合成が終わると表示される
タブで表示内容を切り替えることができる
論理合成結果の確認
Open-It FPGAトレーニングコース 6
① [Open Synthesized Design]を選択
②クリック
合成を二回以上行ったときの注意
Open-It FPGAトレーニングコース 7
クリック
合成した結果を画面表示したまま、再度合成結果を表示させようとすると下のような確認画面が表示される
通常(古い結果を残さない場合)はYesでOK、古い結果を残したい場合はNoをクリックして結果を保存するフォルダ名を入力して保存する
回路図の表示
Open-It FPGAトレーニングコース 8
① 項目が追加された事を確認、色々な情報を確認する事ができる
② [Schematic]をクリック
回路図の確認
Open-It FPGAトレーニングコース 9
ここに回路図が表示される
確認したらSchematicタブの横のx印をクリックして閉じてください
Deviceタブもx印をクリックして閉じてください
ユーザー制約
ユーザーが回路に課す制約
I/O制約
最上位モジュールのポート信号とFPGAのピン番号の関係
タイミング制約
上限動作周波数
など
Open-It FPGAトレーニングコース 10
I/O制約
設計した回路のポートリストに書いた各信号とFPGAピン番号と対応させる
ツールはこの情報に従ってFPGA内の回路とFPGAピンを接続する
外部信号のIO規格などについても指定する
Synthesizeまで終わらせエラーが無い状態にしてください
Open-It FPGAトレーニングコース 11
ピン・アサイン
ツールは信号名を知りません ピンを割り当てる必要があります
多くの場合、パラメータはデフォルト値でもOKですがピン番号とIO Standardは必ず設定する必要があります
ピン情報入力はGUIツールを使用します 慣れればテキストファイルを直接編集してもOK
注意 Synthesizeが終わらないとGUIを使って入力できません
Open-It FPGAトレーニングコース 12
ピンリスト
Name Package Pin
I/O Std. Drive Str. Off chip termination
Pull type Slew
SW_A U9 LVCMOS33 NONE NONE
SW_B U8 LVCMOS33 NONE NONE
LED0 T8 LVCMOS33 12 NONE NONE Slow
LED1 V9 LVCMOS33 12 NONE NONE Slow
LED2 R8 LVCMOS33 12 NONE NONE Slow
Open-It FPGAトレーニングコース 13
使用している信号のみ設定してください。
空欄は設定不要です
IO Standard
Open-It FPGAトレーニングコース 14
•LVCMOS•LVDS
チップ間通信のために様々な規格が制定されている
用途に合わせて選択する多くの場合はFPGAに接続する部品の規格に合わせることになる
良く使われる規格は
詳細は使用するFPGAのデータシートを参照[DC and Switching Characteristics]
本セミナーではLVCMOS33のみ使用します
IOバッファ電源について
Open-It FPGAトレーニングコース 15
一般にIO standardが異なれば電源電圧も異なる
例、LVCMOSは3.3V, LVDSは2.5V
現在は一つのFPGAで異なる電源電圧が使用可能BANKについて後ほど説明
IOバッファのパラメータ
Off-chip termination
ボード上(FPGAの外で)の終端
Drive strength
最大ドライブ電流
Slew rate
信号の変化速度(V/sec)
Pull type
プルアップ、プルダウン、キーパー
BANK
バッファ電源領域
Open-It FPGAトレーニングコース 16
FPGAのIOバッファは多機能です。様々なパラメータを設定することができます
信号線が駆動されない時の処理
Open-It FPGAトレーニングコース 17
3.3V
信号線が駆動されない時がある場合
例えばSW入力
3.3V
信号はHigh ?, Low ?、どうなるのでしょう?
SWが開いていたらHigh / Low?
このような時はプルアップ、プルダウン抵抗などを使用します
開いていても電圧がきちんと決まるようにする
Pull type
Open-It FPGAトレーニングコース 18
3.3VR
3.3V
PULL UP
FPGAではPull-up, Pull-down, Keeperが設定できる
駆動されていない時はHighになる
3.3V
R
PULL DOWN
駆動されていない時はLowになる
抵抗R
3.3V保持回路
KEEPER
最後に駆動された状態を保持
SW入力回路
Open-It FPGAトレーニングコース 19
3.3V3.3V R
3.3V
3.3V
R
SWを閉じるとHighになる回路 SWを閉じるとLowになる回路
このような回路として使用されます
BANK
Xilinx FPGAで使用される用語
複数のIO電源電圧を同一FPGAで使用するために考案
FPGAのIOバッファを複数のグループに分けたグループをBANKと名付ける
同一BANKに属するバッファは同じ電源端子から電源が供給される
BANKが異なれば異なる電源を供給可能
電源端子が分かれている
Open-It FPGAトレーニングコース 20
BANKの例Spartan3AN-50
Open-It FPGAトレーニングコース 21
BANK番号
この辺りがBANK0
この辺りがBANK2
この辺りが
BAN
K1
この辺りが
BAN
K3
分かりやすいQFPパッケージの例として
画面レイアウトをIO planningへ変更
Open-It FPGAトレーニングコース 22
プルダウンメニューからI/O Planningを選択
I/O Planningが表示されない人は左窓のFlow NavigatorからSynthesized Designをクリックしてください
I/O Port listの表示
Open-It FPGAトレーニングコース 24
① IO Portsを選択
② Scalar portsフォルダの左側をクリックして展開してください
I/O制約の入力
Open-It FPGAトレーニングコース 25
ピンアサイン表を見ながら各項目を設定します
下はLED0の設定例です
① ピン番号を入力プルダウンメニューから選択、直接打ち込む、どちらでも良い
② Fixedにチェックを入れる③ プルダウンメニューからLVCOMS33を選択
④ プルダウンメニューから12を選択
⑤ プルダウンメニューからNONEを選択
ピンリストを見ながら他の信号も設定してください
制約の保存
Open-It FPGAトレーニングコース 27
① [File]から
② [Save Constraints]を選択
② クリック
保存すると再度合成しなければいけないと言ってくる
制約ファイル名の指定
Open-It FPGAトレーニングコース 28
① ファイル名を入力
② クリック
ファイル名はTEST.XDCとなる。このファイルはテキストファイルであり直接テキストエディタで編集する事ができる。IO制約のみではなく他の制約もこのファイルに命令を書き込んで使用する
XDCファイルとは?
ユーザーの要求や制約を記述するファイル テキストファイル
ここではTEST.xdc 生成場所
C:¥Temp¥FPGA_Seminar¥TEST¥TEST.srcs¥constrs_1¥new¥TEST.xdc
制約例 ピン配置
タイミングなど
ユーザーが指定することはXDCに書く
Open-It FPGAトレーニングコース 29
画面レイアウトをDefaultへ戻す
Open-It FPGAトレーニングコース 30
プルダウンメニューからDefault layoutを選択
Synthesized Designを閉じる
Open-It FPGAトレーニングコース 31
①Synthesized Designと書かれている帯の右端にあるXをクリックして閉じる
②確認画面
クリック
再度、論理合成
Open-It FPGAトレーニングコース 32
[Run Synthesis]をクリック
合成中はこの部分のカラーバーが動く
合成中はここの緑の丸が回る
論理合成中の画面
Open-It FPGAトレーニングコース 33
合成中ここにレポートが表示される
合成が終わると表示される
タブで表示内容を切り替えることができる
論理合成結果の確認
Open-It FPGAトレーニングコース 34
① [View reports]を選択
②クリック
Synthesized designを閉じる
Open-It FPGAトレーニングコース 35
[Close design]をクリック、(「古いdesign情報を閉じる」意味)
上部に黄色の帯が表示されている人
表示されていない人は先へ進んでください
配置配線の実行
Open-It FPGAトレーニングコース 36
[Run Implementation]をクリック
配置配線中の画面
Open-It FPGAトレーニングコース 37
StatusがRunning xxxになる(xxx部分は進行状況で変わる)
カラーバーが動く
配置配線結果の確認
Open-It FPGAトレーニングコース 38
① [View reports]を選択
②クリック
配置配線が終わると表示される
配置配線結果を確認
Open-It FPGAトレーニングコース 39
Completeになっていることを確認
以上で配置配線が終了しました
ここではWaringがあってもOKです
データファイルの生成
論理合成
配置
データ生成
Vivado
HDLコード
4つの要素へ変換、最適化
FPGA内の構造に合わせ使う場所を決める
ダウンロード
ダウンロード・データを生成
ダウンロード
Synthesize
Implementation
Generate Programming file
Programmer
Open-It FPGAトレーニングコース 41
FPGAデータのフォーマット
幾つかの種類があります。
BIN, BIT, MCS, etc. …
ここではBITファイルを使用します。 デフォルトで生成される デバック時使用する事が多い
JTAG I/Fを用いて直接書き込む時に使用 電源投入後、毎回手動でダウンロード
Open-It FPGAトレーニングコース 42
結果確認
Open-It FPGAトレーニングコース 44
① [View reports]を選択
②クリック
データ生成が終わると表示される
アンケート依頼
Open-It FPGAトレーニングコース 45
アンケートに答えるならYes 通常はNoで良い
下のような窓が表示されることがある
ダウンロード手順概要
1. ボードの電源をUSBから取るように設定
2. ボードのBoot modeをJTAGにする
3. USBケーブル(ダウンロード・ケーブル)を接続
4. ケーブル・ドライバのインストール
5. データをダウンロードする。
Open-It FPGAトレーニングコース 47
電源切り替え
Open-It FPGAトレーニングコース
このジャンパーで切り替える
USBから電源を取る設定
USB
左側2本をジャンパで接続
48
WALL
Boot Modeの設定 JTAG
Open-It FPGAトレーニングコース
このジャンパーで切り替える
JTAG mode
QSPI
中央に2本をジャンパで接続
49
JTAG
USB/S
D
USBケーブル接続と電源投入
Open-It FPGAトレーニングコース 50
① PCとUSBケーブルで接続 ② POWER SWをON
③ 赤いLEDの点灯確認
USBケーブルの向き
へこんでいる部分を上にして挿す
横面が斜めになっている部分を下向き
USBドライバのインストール
Open-It FPGAトレーニングコース
ボードの電源を入れるとドライバのインストールが始まります
51
OSの種類により表示が異なります
Windows 7では「デバイスが使用できる準備ができました」と表示されるまで待ちましょう
Windows 8以降ではインストール終了後に何も表示されませんが問題ありません
ダウンロードツールの起動
① [Open Target]を左クリック
Open-It FPGAトレーニングコース 52
② [Auto connect]を選択
書き込み
Open-It FPGAトレーニングコース 53
① [Program device]をクリック
② [xc7a100t]を選択
③ ファイル名がTEST.bitであることを確認
④ [Program]をクリック
DONE LED確認
Open-It FPGAトレーニングコース 55
ダウンロードに成功すると緑のLEDが光ります
デバック(動作確認)
論理回路設計
FPGAデータ生成
デバック
論理シミュレーション
完成!!
仕様検討 多くの場合、最初は動かないので問題を特定して解決する過程です
今日はSWを動かして動作確認します
Open-It FPGAトレーニングコース 56
動作確認
Open-It FPGAトレーニングコース 57
LED0
SW_ASW_B
SWを操作して設計した通りに動作するか試してください
(注意)SWは上で1(ON)、下で0(OFF)になる
履歴 2012/5/17 第1.0版 ISE13.4対応 内田智久(Esys, KEK/総研大), 林達也(大阪大学)
2014/8/7 第2.0版 Vivado2014対応、章構成変更 内田智久(Esys, KEK/総研大)
2015/7/31 第3.0版 Vivado2015対応、章構成変更 内田智久(Esys, KEK/総研大)
2015/8/6 第3.1版 誤字訂正 内田智久(Esys, KEK/総研大)
2015/12/03 第3.2版 Vivado2015.3対応 内田智久(Esys, KEK/総研大)
2016/01/27 第3.3版 Vivado2015.4対応 内田智久(Esys, KEK/総研大)
2016/06/22 第3.4版 Vivado2016.2対応 内田智久(Esys, KEK/総研大)
Open-It FPGAトレーニングコース 59