小野雅晃
1
FPGAの歴史
Xilinx社 FPGAの歴史の図を引用
https://japan.xilinx.com/japan/fpga-koza/chapter01.html
2
74シリーズ
加算器、メモリ、
シフトレジスタ
PCIブリッジ
IEEE1394
PAL, GAL
FPGAとは?
 FPGA(Field-Programmable Gate Array)
 PLD(Programmable Logic Device)の一種
 つまり、ICチップ
 製造後にICチップの機能を書き換えることができるIC
チップ
 ICチップ製造時は空
 プログラムをダウンロードして初めて機能する
3
FPGAメーカーと種類
 Xilinx
 Spartanシリーズ
 Artix-7, Kintex-7, Virtex-7 (28 nm process)
 UltraScale (20 nm process)
 UltraScale+ (16 nm process)
 Zynq(CPU+FPGA)
 Zynq UltraScale+(CPU+FPGA)
 Intel
 Cyclone V, 10
 Arria V, 10
 Stratix V, 10
 SoC FPGA(CPU+FPGA)
 Lattice Semiconductor
 Machシリーズ
 Microsemi
4
FPGAの基本構成
 LUT(LookUp Table)+FF(Flip Flop)
 2入力LUTの例、実際は4入力or 6入力LUT
5
input0
input1
output0
LUT
Q
Q
SET
CLR
D
output1
LUTの構成
 LUTはROM
 入力に対応する出力が表になっている
6
AND
input0 input1 output1
0 0 0
0 1 0
1 0 0
1 1 1
OR
input0 input1 output1
0 0 0
0 1 1
1 0 1
1 1 1
XOR
input0 input1 output1
0 0 0
0 1 1
1 0 1
1 1 0
FPGAの仕組み
7
FPGA(7シリーズ)の構成要素1
 CLB(Configurable Logic Block)-2個のSlice
 Sliceの構成
 6入力1出力LUT x 4
 FF x 8
 マルチプレクサ
 演算用キャリーチェーン
8
FPGA(7シリーズ)の構成要素2
 Clock Management
 CUT(Clock Management tile) x 24
 MMCM(Mixed-Mode Clock Manager)
 PLL(Phase-Locked Loop)
 Block RAM
 Dual-port 36 Kb block RAM( 72ビット幅まで)
 DSP(Digital Signal Processor)
 25 x 18の2の補数乗算器、48ビット出力
 Input/Output
 1,866 Mb/s DDR3サポート
 ISERDES and OSERDES
9
FPGA(7シリーズ)の構成要素3
 Low-Power Gigabit Transceivers
 6.6 Gb/s (GTP)
 12.5 Gb/s (GTX)
 13.1 Gb/s (GTH)
 28.05 Gb/s (GTZ)
 PCI Express Designs
 Gen1 (2.5 Gb/s)
 Gen2 (5 Gb/s)
 Gen3 (8 Gb/s)
 XADC (Analog-to-Digital Converter)
 Dual 12-bit 1 MSPS analog-to-digital converters (ADCs)
 Up to 17 flexible and user-configurable analog inputs
10
7 Series FPGAs Data Sheet: Overview DS180 (v2.6) February 27, 2018 から引用
Xilinx社のFPGA用ツール
 Vivado
 Xilinx社のFPGA用ツール
 Vivadoシミュレーター
 Vivadoロジック・アナライザ
 Vivado HLS(高位合成ツール)
 Vivado IPインテグレーター
 IPをグラフィカルに接続するツール
 SDSoC(Zynq用高位合成統合ツール)
 SDAccel(OpenCL対応高位合成ツール、クラウドで使用)
11
Vivadoの種類
 Vivado HL WebPACK
Edition(無料)でのサポート・
デバイス
 Zynq UltraScale+ MPSoC
(XCZU2CG/EG、
XCZU3CG/EG)
 Zynq®-7000 All
Programmable SoC
(XC7Z007S – XC7Z7030)
 Spartan-7 (XC7S50)
 Artix®-7 (XC7A15T、
XC7A35T、XC7A50T、
XC7A75T、XC7A100T、
XC7A200T)
 Kintex®-7 (XC7K70T、
XC7K160T)
 Kintex UltraScale™
(XCKU025 – XCKU035)
 Kintex UltraScale+
(XCKU3P, XCKU5P)
12
https://japan.xilinx.com/products/design-tools/vivado/vivado-
webpack.htmlから引用
Vivadoのデザイン入力
 HDL
 Verilog-HDL、VHDL、SystemVerilog
 IPを使用する
 IPインテグレータ
 C関連言語
 C、C++、SystemC
 C言語からVivado HLSでIPを生成
 MATLAB、Simulink
 System Editionのみ
13
Vivado
14
Verilog-HDLファイル
15
VHDLファイル
16
IPインテグレータ
17
Vivado HLS
18
シミュレーション
 HDLやIPインテグレータで回路を書いた後で、シミュレーショ
ンを行う
 テストベンチという入力波形を記述したHDLファイルを作る
 作成した回路の反応をテスト
19
シミュレーション波形の例
20
Vivadoの合成手順
 論理合成(Synthesis)
 HDLからハードウェア素子を推論し、素子間の配線情報に
変換
 インプリメンテーション(Implementation)
 FPGAの実際の素子の配置を決定し、配線する
 ビット・ファイルの生成(Generate Bitstream)
 FPGAの回路情報(ビット・ファイル)の生成
 LUTのテーブル定義
 配線情報
 BRAMの初期データ
21
実機テスト
 ビット・ファイルをFPGAにダウンロードして実機動作テスト
 正常に動作しない場合
 Vivado Analyzerで波形を確認
 Vivado Analyzer
 FPGAで動作する回路にAnalyzerを接続して波形を観察
 AnalyzerはFPGA内に構築するので外部機器は必要無し
 信号のTriggerで波形キャプチャ開始
 信号の立ち上がり
 信号の立下り
 レベル
22
Vivado Analyzer
23
Vivadoのインストール
 Xilinx Japanのダウンロードサイトよりインストーラーをダウン
ロード
 https://japan.xilinx.com/support/download.html
 ウェブ・インストーラーとシングル・ファイル・ダウンロード
 ウェブ・インストーラーがお勧め
 必要なファイルだけをダウンロード
 Windows用とLinux用
 ダウンロードにはXilinxのアカウントが必要
 初めての時はインストーラーをクリックした際のサインインの画面
で「アカウントの作成」をクリック
 インストール方法についてはリリースノートを参照のこと
 https://japan.xilinx.com/support/documentation/sw_manual
s_j/xilinx2017_4/ug973-vivado-release-notes-install-
license.pdf
24
Vivado HLS
 C、C++、System CからVHDL、Verilog HDLに変換するツー
ル
 検証
 CのテストベンチでC言語レベルで検証
 CのテストベンチでRTLシミュレーション(C/RTL協調シミュレー
ション)
 Cコードの合成
 C、C++、System CからHDLを生成
 遅延時間制約を変更すれば回路の動作周波数を変更可能
 IP生成
 IP生成時にVivadoで動作周波数をチェックできる
25
Vivado HLS→Vivadoの手順
26

FPGAスタートアップ資料