PLDとFPGA リフレッシュ教育 2007/12 京都大学 小林和淑 1 PLD、FPGA PLD: Programmable Logic Device – プログラム可能な論理素子 FPGA: – – – – Field Programmable Gate Array 野外でプログラム可能な門の隊列? Field: 設計現場 Gate Array: 論理ゲートをアレイ上に敷き詰めたLSI MPGA: Mask Programmable Gate Array » マスクでプログラムするゲートアレイ – FPGA: » 設計現場でプログラムするゲートアレイ » 街中でプログラムするゲートアレイ 2 プログラマブルロジックデバイス (PLD) 設計者が自由にその機能を変更できるLSIの総称 (広義) – MPD: – FPD: マスクプログラマブル→製造時に変更 フィールドプログラマブル→その場で変更 小規模PLDの種類 – PLA: PLA Programmable Logic Array » AND-OR アレイ – PAL: Programmable Array Logic » ORアレイが固定 » 派生品として、GAL, FPGA PLD(製品名) PLD GAL PLD PAL GA (MPGA) 3 FPGAの応用先 http://www.fpga.co.jp/nyumon2.html プレステ用 エモーション エンジン Canopus社ビデオ 出力ボード 新幹線電光掲示板 Altera社 Cyclone SONYの薄型テレビ用基盤 4 ポータブル機器への応用 ザイリンクスは,シャープがウィルコ ム向けに開発・製造している携帯情報 端末「W-ZERO3 シリーズ」に,米Xilinx, Inc.のCPLD「CoolRunner-II」が採用されて いると発表した。W-ZERO3 シリーズは 2005年12月に販売が始まっている。 今 回,シャープは上記のPLDを,同PDAの キーボード・インタフェース,I/O拡張 機能などに使い,MCUの負荷低減と機 器の高機能化につなげたという。ザイ リンクスは「CoolRunner-IIが低消費電力 なことは,採用の大きなポイントに なった」と説明している。 出典:http://techon.nikkeibp.co.jp/article/NEWS/20060616/118270/ 5 FPGA,PLDの歴史 参考資料 – 特許から見た「プログラマブル・ロジック・デバイ ス(Programmable Logic Device:PLD)」の展望 – http://www.jpo.go.jp/shiryou/toushin/chousa/pdf/pld2000_1_12.p df 6 PLDの変遷(参考資料1より) 7 PLDの構造 ORアレイ 固定のORアレイ ORアレイ固定のものがPAL ANDアレイ PLA, PAL ANDアレイ マクロ セル DFFからの出力を フィードバック GAL, PLD PLA, PALは組合せ論理回路主体 GAL, PLDは順序論理回路 – カウンタ、制御回路等 8 FPLAの詳細構造 Vcc バイポーラトランジ スタ – まだ,CMOSのないこ ろ A AND アレイ B 接続したくないとこ ろのヒューズを溶断 ヒューズは抵抗を持 つので,遅い – PALは,高速化のため にORアレイを固定化 C Vcc OR アレイ A+BC AC+A M.J.B.Duff, “Review of the CLIP Image Processing System”, National Computer Conf., pp.1056-1060 (1978) 9 FPGA (Field Programmable Gate Array) フィールドプログラマブルな大規模集積回路 – ようは大規模なPLD 論理ゲートとフリップフロップをアレイ上に 敷き詰めて、その間の結線を自由に変更 – ただし論理ゲートそのものが内蔵されているとは 限らない コンフィグレーションデータを書き込むこと により機能が変化する 10 FPGAの構造 組み替え可能な論理ブロック 論理ブロック間を接続する組み替え可能な配 線 論理 ブロック 論理 ブロック 論理 ブロック 配線 論理 ブロック 論理 ブロック 論理 ブロック 論理 ブロック 論理 ブロック 論理 ブロック 論理 ブロック 論理 ブロック 論理 ブロック 11 FPGAのプログラム記憶方式 FPGAの現在の構成(コンフィグレーション)を覚 えておく方法 SRAM等の揮発性メモリに書き込む. – もっともポピュラー – 特別なプロセスを必要としない – 基本特許はXilinx社が所有している » Freeman特許(2006まで),Carter特許(2004まで) » FPGAという商標はXilinxのみが使用できる。 EPROM, EEPROM等の不揮発性メモリに書き込む. – 電源を切っても消えない 電圧をかけて, アンチヒューズを短絡させる. – 書きこみは一度のみ 12 FPGAのプログラム方式: SRAM WL BL BL To Switch SRAM ロジックと同じプロセスで製造できる。 – 低コスト,最新プロセスの利用 冗長度が大きい。 – 1SRAMセル: 6Tr – さらに、デコーダ、センスアンプ等も必要 電源を切ると消える(揮発性) 13 FPGAのプログラム方式(2) 揮発 >100G OUT Floating Gate IN A B open EPROM,EEPROM 特殊なプロセスを要求 冗長度は小さい。 1Trのみ 不 A B Apply 16V between A and B Antifuse 小さくて高速 書き込みは一度だけ 14 SRAM方式FPGAの構造 FPGA: – 変更可能な組合せ回路 – 変更可能な配線 組合せ論理回路の基本はLUT(Look-Up Table) – 組合せ論理回路を1ビットSRAMの記憶内容で表現 配線の変更は – トランジスタによるスイッチ » スイッチのON, OFFの情報もSRAMに格納 15 アイランド型FPGA 構成部品 – CLB(Configurable Logic Block, 論 理ブロック) » LUT: 可変論理 » FF: 順序回路 Wire Track CB SB CLB – SB(Switch Block, 配線接続ス イッチ) » 縦横の配線接続を切り替え – CB(Connection Block, 入出力ス イッチ) » CLBと配線を接続 – Wire Track » SB間の配線 16 CLB(Configurable Logic Block) LUT – 可変論理を実現す る DFF – 順序回路を実現す る セレクタ – 順序回路動作と組 み合わせ回路動作 を切り替える 17 LUT(Look-up Table) SRAM型FPGAの可変論理を実現 する。 A, B, C, Dの4ビット入力をワード 線とした1ビットのSRAM – 入力数が増えるとSRAMが大きくな る – 小さいと効率が悪い – これまでは4入力が主流 SRAMの中身を書き換えること で任意の論理を実現 (A|B)&(C|D)に対するLUT→ 真理値表をそのまま表現すれば よい。 設定値 18 LUT(Look-up Table) SRAM型FPGAの可変論理を実現 する。 A, B, C, Dの4ビット入力をワード 線とした1ビットのSRAM – 入力数が増えるとSRAMが大きくな る – 小さいと効率が悪い – 微細化により入力ビット数が増え る傾向にあり SRAMの中身を書き換えること で任意の論理を実現 (A|B)&(C|D)に対するLUT→ 真理値表をそのまま表現すれば よい。 設定値 19 可変配線: スイッチマトリッ クス SRAM型FPGAの可変配線を実現 全結線はコスト高かつ遅延大なので,斜めだ けスイッチを配する。 任意の接続が可能 1交点あたり, スイッチ6個 20 スイッチマトリックスの構造 Fs(配線当たりの接続数)=3の各種スイッチ構 造 – Disjoint: 上下左右斜め同じ番号(前頁の構造) – Universal: 上下左右は同じで斜めで一部番号を反転 – Wilton: 上下左右は同じで斜めで番号を変更 21 スイッチマトリックスの詳細 構造 1ビット SRAM NMOS SW Typeは面積が小さいが配線 容量の増大とともにスイッチの抵抗に よる遅延が大きくなる Buffer Typeは高速だが,双方向にする ために面積が非常に大きくなってしま う。 – さて,NMOS SW Typeの何倍くら い? Buffer Typeの欠点を解消したスイッチ の構造も提案されている[1] [1] G. Lemieux, D. Lewis, `Circuit Design of FPGA Routing Switches'', ACM/SIGDA International Symposium on FPGAs 22 XILINX XCシリーズの構造 A スイッチマトリックス CLB CLB CLB B C ルックアップ テーブル(LUT) FF (SRAM) セレクタ CLB CLB CLB D CLB CLB CLB CLB CLB CLB 共通クロック CLBの構造 縦横配線の接続 が変更できる 配線 CLB: Configurable Logic Block スイッチマトリックス 23 ALTERA FLEXの構造(CPLD構 造) 行配線 論理素子(LE) 各交点には 配線を接続する スイッチを配置 列配線 A B C D LUT キャリー チェイン FF セレクタ LAB制御信号 (LAB内の全LE共通) 論理素子(LE) 論理アレイ ブロック(LAB) 各配線は左右, 上下でそれぞれ 電気的につながっている (上から下, 左から右まで1本の配線) LABの構造 24 特許から見たSRAM型FPGA プログラマブル・ロジック・デバイス技術に関する特 許出願技術動向調査 http://www.jpo.go.jp/old/techno/pdf/pld.pdf Freeman特許 – LUT型FPGAの 基本特許 25 特許から見たSRAM型FPGA (2) Carter特許 – CLE(Configurable Logic Elements)の接続方法に関する特 許 Altera社のLUT型FPGAは,X ILINX社に特許侵害で訴 えられ,敗訴(和解) 他社は怖くて販売できない 26 Antifuse型FPGA (Actel Act1) プログラム可能なス イッチ: 高電圧をかけて、 A スイッチを溶着する。 – Fuseの反対の動作 – 動作時には低抵抗で高 速 プログラム可能な論理 – マルチプレクサベース – 2入力のさまざまな組合 せ論理が実現可能 >100G B open A B Apply 16V between A and B SA A0 0 A1 1 0 OUT B0 0 B1 1 1 S0 SB S1 27 Act1の構造 Antifuse スイッチ Logic Module 28 マルチプレクサによる組合せ回 路 1 1 0 1 1 0 OUT B 0 0 1 1 C A B C A 0 2入力の論理すべてと、3NANDと排他論理を除く3入力 の論理を実現。8入力までの論理も実現(一部のみ) 29 EPROM、EEPROM型FPGA E(E)PROM: Electric(-Erasable) Programmable ROM – 電気的に書きこみ(と消去)のできるROM EPROM(Floating-Gate MOS)の構造 Gate Floating Gate Gate Source Drain Source N+ N+ N+ P- MOSFET Drain N+ P- Floating-Gate MOSFET ゲート電極を2つもつFET 30 EPROMのプログラミング Drain, Gate間に高電圧(12V)をかけて、Drainから Floating Gateに電子をジャンプさせる。 電子がFloatingゲートにたまることで、閾値が上 昇する。 – 常にOFFになる IDS Gate Source Not Programmed Programmed Apply High Voltage Drain N+ N+ PVdd 31 EPROMによるProgrammable Logic Floating Gate EPROMの回路図 シンボル OUT IN0 OUT IN Floating Gate Unprogrammed Unprogrammed Programmed IN OUT 1 0 0 1 X 1 IN1 IN2 IN3 Programmable Inverter Programmable 32 NOR EEPROMとフラッシュメモリ フラッシュメモリ(Flash Memory): – EEPROMは高電圧をかけて書きこまないといけないが、 フラッシュメモリは通常の電圧で読み書き可能 – 書きこみも数千回可能。(EEPROMは数回から数10 回) – 書きこみはバイト単位でできるが、消去はセクタ単 位でしかできない。1Mb Flash Memoryの場合、1セクタ はアドレス10ビット分(1024ビット) – 主な応用先: » スマートメディア、メモリスティック等のメモリカード » 携帯電話のソフトウエア格納用 33 NAND型とNOR型フラッシュメ モリ NOR型: 小容量,高速,ランダムアクセス可能 NAND型: 大容量,低速,消去はブロック単位 プログラムしな いと常時ONに NOR型FLASH NAND型FLASH 34 FPGAの特性分類 プログラム方式 SRAM EPROM EEPROM アンチヒューズ 再書込 ○ △ ○ × 不揮発性 動作速度 冗長度 × 遅い→速い 大 ○ 中 中 ○ 中 中 ○ 速い 小 SRAM型のFPGAは最新のプロセス技術により、 スピード面での欠点は解消されている。 – 最新のものは、65nm銅配線プロセスを用いている。 35 銅配線プロセス 銅配線の威力 銅配線の断面写真 アルミニウムの抵抗率は銅の1.6倍 36 微細化の効果(Xillinx資料より) 90nmプロセスと,300mmウェハで,130nm, 200mmと比べて,5倍の生産性 – 価格を1/5に – 110nmは飛ばす。 ITRSのロードマップの1.5年先を行く 大口径化の効果 微細化による効果 2.09 2.00 1.50 集 積 度の 向上 率 集積度の向上率 2.50 1.60 1.29 1.34 1.33 1.00 0.50 0.00 220 190 150 130 プロセステクノロジ(nm) 90 4.50 4.00 3.50 3.00 2.50 2.00 1.50 1.00 0.50 0.00 4.00 2.25 2.25 1.78 100 150 200 ウェハーの直径 300 37 微細化による効果 34W 8.5W 38 微細化により筺体を小型化 SCE 久多良木社長 39 FPGAベンダ 各社とも,1980年代半ば以降に創業されたベン チャー企業(参考資料2参照) FPGAの2大ベンダは、XILINXとALTERA – 2社で世界の5割から6割 その他のベンダ – Actel: antifuse型, Mars Path-Finderに搭載 – Lucent: PCIやATMコントローラを内蔵したFPGA – Philips, Lattice: CPLD (Complex PLD) 40 FPGAベンダの売り上げ高 Texus Instruments IBM ST Microelectronics NEC Electronics 2004 2003 Xilinx Fujitsu Toshiba Xilinx, Alteraは,東芝,富士通, NEC等の日本の大手とほぼ同じ規 模 Altera Agere System LSI Logic 0 0.5 1 1.5 2 2.5 3 3.5 FPGA/ASIC売り上げ高(10億ドル) 41 XILINXの製品マップ CPLD FPGA ファミリ XC9500 XCR3000 ファミリ XC4000 SPARTAN SPARNTAN-3 VIRTEX II VIRTEX II Pro VIRTEX 4 プログラム方式 Flash EEPROM プログラム方式 SRAM SRAM SRAM マクロセル数 36-288MC 32-512MC ゲート数 13k-85k 5k-200k 50k-5M SRAM 40k-8M SRAM SRAM 200k-10M 200k-10M 特徴 安価(Glue Logic置き換え) 低消費電力 特徴 3.3V標準 ASIC代替 低価格かつ高性能 システムFPGAプラットフォー ムFPGA CPU内蔵(最大4つ) CPU/DSP/Ethernet積載 42 ALTERAの製品マップ ファミリ ACEX FLEX プログラム方式 SRAM SRAM ゲート数 10k-100k 10k-250k APEX 20k SRAM 30k-1.5M APEX II Stratix Stratix II Excalibur MAXII Cyclone Cyclone II HardCopy II SRAM 600k-3M SRAM 300k-3M SRAM 600k-7M SRAM 100k Flash 240-2.2k SRAM 2k-20k SRAM 4k-68k FPGAデータから作成するASIC 特徴 安価かつ大容量 高速大容量 SOPC(System on a Programmable Chip) 銅配線 大規模メモリ搭載 最新 CPUコア集積 高速大容量 ASICの置き換え 90nm, 300mmウェハ 43 FPGAの製品展開 SRAM型FPGAは、LUTで実現する組合せ論理回路 だけでなく、メモリ,PLL, 回路まで内蔵する。 高速シリアル伝送 – Stratixでは,最大7Mbit ROM, CAM(Content Addressable Memory), FIFO, 乗算器等に使用できる さらに、CPUコアを内蔵。LSIの製造プロセス微 細化のおかげで、チップ全体の1/10程度でARM, PowerPC等の32bitプロセッサが集積可能 メモリは、RAM, 44 FPGAのメリット、デメリット メリット – 設計のTAT(Turn-Around Time)が短い – 論理設計とタイミングの検証のみで動作する. (物理 設計がいらない) – 少数の製品に使用できる – IP(Intellectual Property)が豊富 デメリット – スピードが遅い、チップ面積が大きい – 量産時のコストが高い » 同じ設計データを用いて安く量産できるサービスもある (Hardcopy by ALTERA, EasyPath by Xilinx) 45 ストラクチャードASIC FPGAは,短納期だが,単価が高い,速度も遅い 専用のASICは,開発費が高く,納期も遅い ストラクチャードASIC(マスタスライスLSI) – あらかじめ,チップ上にIP(部品)を組み込んでおき, 配線層のみでカスタム化する » 構成部品が論理ゲートとメモリだけのものは,単なるゲートア レイ – 短納期,かつ単価が安い(FPGAより面積小),速度も速 い(FPGAのスイッチを単なる配線に) マスクなしで,EBによる直猫も 儲からないのか,各社撤退へ。FPGAには勝てない 46 HardcopyII FPGA Hardcopy II LUT LUT PLL PLL LUT SWM Memory LUT SWM Memory SWM SWM 10%のコストと,半分の消費電力でFPGAをASICに FPGAとピン互換 47 論理設計 FPGAの設計法 回路図エントリ HDL記述 nand2 A B C module nand_g(C,A,B); input A,B; output C; assign C=~(A&B); endmodule 論理合成 通常のLSIと同じ設計手 法を取る。 – LUTを直接設計するわけで はない この境界は厳密ではない FPGAの配置配線は各 FPGAベンダ配布のツー ルにより行う HDLが書ければ,後はほ ぼボタンを押すだけ!! ネットリスト module nand_g(C,A,B); input A,B;output C; nand2 I0(C,A,B); endmodule 論理素子への ゲートの割り当て LSI用 CADツール FPGAベンダ 提供ツール LEの配置, 配線を 決定する FPGAへの書込データ の作成 48 CAD、FPGAベンダのツール Mentor Graphics Synplicity Synopsys ALTERA XILINX Actel CADベンダ FPGA Advantage SynplifyPro FPGA Compiler II WorkView Office FPGAベンダ Quartus II ISE Libero IDE 統合ツール 論理合成ツール 回路図エントリ 回路図エントリ,論理合成 回路図エントリ,論理合成 回路図エントリ,論理合成 各社FPGAの無償ツールあり。大学向けのプログラム もあり See http://www.ベンダ名.com/ 49 Verilog Simulator 標準的なVerilog Simulator – Cadence社 verilog-xl, ncverilog(高速なverilog simulator) » VDECのメディアではIUS, LDVに含まれる » 波形を見るのはsimivision – Synopsys社 vcs » VDECのメディアでは,vcsに含まれる – Mentor Graphics社 modelsim » VDECのメディアでは,Modelsim » XILINX, ALTERAのFPGAソフトに機能限定版 – Plagmatic C社 GPL Cver » GPLライセンスにより,フリーで利用可能 » Windows(cygwin), linux, Solaris, OS Xなどで動作 » 波形を見るのはgtkwave – Veritakwin (菅原システムズ) » 純国産Verilogシミュレータ » 無料で使えるCQ版もあり 50 FPGA設計(演習内容) HDLからFPGAまで Quartus II RTL記述から回路 出力ファイル への論理合成 RTL 記述 Quartus II FPGA上の配置配線 をおこなう 出力ファイル circuit.sof,pof SRAMオブジェクトファイル FPGA搭載ボード のデ 書バ 込イ ス へ Power Medusa MU200-EC6S FPGA: Altera社 Cyclone EP1C6Q240C8 (5980ロジックセル) FPGA1個当たりの価格 1000円から2000円程度 51 HDLから回路図へ(論理合成) module calc(decimal,plus,minus,equal,CLK,RST,CE,sign,overflow,out); module calc(decimal,plus,minus,equal,CLK,RST,CE,sign,overflow,out); input [9:0] decimal; input [9:0] decimal; input CLK,CE,RST,plus,minus,equal; input CLK,CE,RST,plus,minus,equal; output sign,overflow; output sign,overflow; output [6:0] out; output [6:0] out; wire [3:0] d; wire [3:0] d; wire [8:0] alu_out; wire [8:0] alu_out; reg [1:0] state; reg [1:0] state; reg [8:0] REGA, REGB; reg [8:0] REGA, REGB; reg [1:0] count; reg [1:0] count; reg add_or_sub; reg add_or_sub; assign d=dectobin(decimal); assign d=dectobin(decimal); always @(posedge CLK or negedge RST) always @(posedge CLK or negedge RST) begin begin if(!RST) if(!RST) begin begin REGA<=0;REGB<=0;count<=0; REGA<=0;REGB<=0;count<=0; add_or_sub<=0; add_or_sub<=0; state<=`DECIMAL; state<=`DECIMAL; end end else else 回路図 HDLソース(一部) 52
© Copyright 2024 Paperzz