プログラマブルな论理回路FPGA

FPGA(现场可编程门阵列)は,设计者が自由ににの构成をできるデバイスですですですですですないないないないないないないない,プログラムにより回路に対しを変更であることからこのよう変更呼ばれます。少年は广告コンバータマイコンをしたfpgaもありが,基本的にには回路でで成されます。デバイスの见たはれます。デバイスの见目はははと何らはは,何ら変わり変わりなく,制造プロセスも同じが,デバイスデバイスの论が,デバイス内部内部の原理。回路回路を设计者者が変更点が异なり异なりできる点が异なり

FPGAを使使する

FPGAはよく特点用途途のICであるASICやarspととと比较れれますれれれれれれれれれれれれれ

ASIC(专用集成电路):アプリケーション固有のIC,つまり用途や使用する最终制品に特化した専用のカスタムICのことです回路の论理だけでなくレイアウト·パターン设计を行って,マスクと呼ばれる版画の版に相当するものを制作するため,设计期间,设计コスト,制造期间が非常に大きく,大量生产しないと元が取れません。

ASSP(专用申请标准产品):特价用途向けの标准的なICで,例えば例えばテレビの画像原理用ICとか,驾驶机兰用ICというに,各社各社最终制品に特价用途で使最终さされることこと设计设计れたものです。设计方法はasicと同じ同じでマスク必要になるのでのでのでのでのでのでのでのでのでのでがが,コスト共に大厦です,各社で采采さば数量はなるため,ASICよりも安防して设计を回收,收益を上げることができ。

FPGAはプログラムして機能を変えることで,各社の様々な用途の最終製品に使用することができるため,究極の汎用性を持ったICと考えることができます。また,マスクを制作する必要がありませんので,設計期間,設計コストは比較的短く,製造コストはかかりません。製造後はもちろん,基板に実装した後,最終製品を出荷した後でもプログラムを書き換えることができます。汎用的なペリフェラルの搭載されたFPGA評価ボードが1枚あれば,内部のロジックを書き換えることで,様々な用途に利用することができます。

ASIC,ASSPとと比较すると,FPGAはチップ単価,実装面积,消费电力が大厦なりがちで,出荷出荷がなバッテリー万个超えるなバッテリー駆のモバイルデバイスにはははは向いデバイスいませませんは向いていませませんん向い向いてにません。その一方,通信价格ががにとと定理内容内容内容·加·変更変更する必要ある电阻话する局局,数量批nあまりく局のなどはfpgaに适したですです。

また,最近は比较対象として,泛用コンピューティングに利用されるCPUやGPUが取り上げられるようにもなってきました。これは并列度を高度に高めることができるFPGAをアクセラレータとして使用することで,演算の高速化,低レイテンシ化を狙ったもので,普及が広がっています。この例としては,超高速证券取引(HFT /高频贸易)の自动売买システムや,深度学习(深层学习)を使用したインターネットの検索エンジン用サーバーなどがあります。FPGA.はCPUやGPUと比較すると、ある程度のフレキシビリティ(プログラマブルであるという観点での柔軟性)を持ちながらも、演算性能が非常に高く、かつ消費電力性能も高い(消費電力が低い)点が採用の理由です。

FPGAの仕组み

FPGAが致理性内容ををできるのは,メモリーによって查找表(lut)の致理性内容を変更変更できるからからからですようなでで参照のようなでで値に対するに対する値を行うことができ。

例えば和回路を构成したいときはLUTの构成を下表のようにし,

入力1 入力2. 出力
0. 0. 0.
0. 1 0.
1 0. 0.
1 1 1

表1.論理演算和の附近地区

OR回路を构成したい场合はLUTの构成を下表のようにします。

入力1 入力2. 出力
0. 0. 0.
0. 1 1
1 0. 1
1 1 1

表2.論理演算或の附近地区

このようにメモリーののてししlutののの构を変更し,演算内容を変更のがfpgaののである基本管理です.lutに加入て,マルチプレクサ(信号信息信号を回路),レジスタ(信号のの状态を保持するする回路回路ををのの回路単位として,英特尔社社はロジックエレメント,Xilinx®社ではロジックセルと呼びます。マルチプレクサは他のlutのの力信号と切り替え使使れ,レジスタ(翻转)はははののををにに

図1。FPGA内内のロジックロジックエレメントの构

レジスタにはRS型,JK型,d型,T型など様々な种类がありますが,通常FPGAではd型が使用されます.D型のレジスタの真理値表は下表となっており,クロックエッジが入力されるとd端子の入力が出力に反映され,それ以外では値を保持する仕组みとなっています。

図2。dフリップフロップのシンボルと真理値表

D. 问:
0. 0.
1 1
X 前の状态を保持

現在FPGA設計においては,殆どの場合このD型のレジスタを使用して同期を取りながら信号を伝搬させていく同期回路方式で設計されます。この同期回路方式では,回路や配線長によって遅延が異なることで出力されるタイミングがばらばらになる信号が,レジスタの出力できちんと揃うことになりタイミング設計を容易に行うことができるようになります。

FPGA内部の构成

FPGA内部は基本要素ロジックロジック(ロジックセル)ののに,I / O部,内部内部线,クロッククロック用绕线,乘算ram,pllなどで构さてい。これらの基本要素要素があらゆる回路回路パターンでも配置配置ししやすい,网页目状目状にに整顿さて并んでいます.fpga开発ツールでvhdl®/ Verilog的®コードをコンパイル(论理合成,マッピング,配置配线)して出来たプログラム用ファイルをダウンロードすると,これらの基本要素の有效无效を含めた设定と配线(コンフィギュレーション)が行われ,设计したとおりの动作をするようになります。

最近はfpgaの中に,外部デバイスや机器と通信を行うの高速シリアルインターフェースをしていたり®社の皮质®シリーズなどののプロセッサコアをハードウェアとして内蔵していたり​​ものもありありありものもありあり

図3。FPGAの内部构造

FPGAの活用と歴史

かつて,論理回路を設計する場合は,TI社またはそのセカンドソース(互換品)74年のシリーズのICを組み合わせて使っていました。74年シリーズというのは,,或者,NAND闪存,不是など論理回路が複数個,1つのパッケージに入ったICで,7400であればNAND回路,7402であれば也回路,7404であれば不回路といったようにシリーズ化されていました。これらを基板上に並べて配線すれば,任意の論理回路が構築できますが,完全な手作業となり,基板の面積も大きくなるので,回路規模の増大と共に問題が生じてきました。74年そこで複数のシリーズを1つのパッケージに収めて,配線を変えられる骑士(可编程逻辑器件)が1975年に登場します。そしてこれを大規模化したCPLD(复杂可编程逻辑器件)が1980年代に登場し,さらには1985年,Xilinx社がXC2064というFPGAを初めて製品化しました。当時は回路規模も小さく,価格も高かったため,ASICの試作,検証や研究用途に限られていました。70年代後半~ 80年代というと,ウォークマン,ワープロ,ファミリーコンピュータ,パソコン,CDなど,エレクトロニクス機器が飛躍的に進化した時代ですが,その背景にはASICの集積化・大規模化がありました。90年代に入ると通信ネットワークやインターネットの普及がFPGAを後押しします。ASICよりも短期間で開発でき,新しい技術に対しても柔軟に対応できるFPGAが通信インフラの最終製品に搭載されるようになり,飛躍的にFPGAの売り上げは伸びます。その後はプラズマ・液晶テレビ,デジタルカメラ,DVD,スマートホンなどデジタル機器の普及が一気に進み,低価格なFPGAが私たちの普段使用する機器にも使用されるようになりました。ホビーユースでFPGAを使う人も沢山います。ロボットコンテストで使うロボットに内蔵されている例や,FPGA評価ボードを使って昔のホビーユースのパソコンMSXやファミコンのエミュレータを作った例などがあります。珍しいところでは,火星探査機やF1マシンの中でもFPGAは使われています。

その他のプログラマブルな论理回路

プログラマブルな论理回路の方式は様々ですが,大别して不挥発性,挥発性のものがあります。これは电源を切った时にプログラムした状态を保持しているかどうかを表すものです。プログラマブルロジックデバイスではメモリーの技术を使用しているため,不挥発性のフラッシュメモリー,挥発性のDRAM,SRAMがあるように,プログラマブルロジックデバイスにも不挥発性のものと挥発性のものがあります。不挥発性のものは电源投入后すぐに使用できますが,挥発性のものはプログラムしてからでないと使用できないという违いがあります。

  • PLD(可编程逻辑器件):広义にはFPGA,CPLDなどプログラマブルな论理回路の総称として使われるが,狭义にはPAL(可编程阵列逻辑)とGAL(通用阵列逻辑)の総称アレイ状に并べたANDとORのゲートの组み合わせで任意の论理回路を実现する构造を取る。プログラマブルな素子は不挥発性のEEPROM。
  • CPLD(复杂的可编程逻辑器件):PLDをを数集积し大规模なPLD。素子はEEPROMまたはフラッシュメモリー。
  • SRAM方向FPGA:もっとも一般的なFPGAではでは子にsramをを使しいますのは失わためメモリーメモリーは失わため,挥発性fpgaとも呼ばれ。
  • フラッシュ方向FPGA:不合因のFPGAにするために,素子がフラッシュ方向のと,素子はsramですがにプログラムメモリのフラッシュををデバイスの2种类をデバイスの。からプログラムをなっいますようタイプも再书架がになっ再书架ががにもます书架ががなってい。
  • アンチヒューズFPGA:书き込み电圧を与えると接続状态になるヒューズの逆特性の素子を使用したFPGAです书き込みは一度しか行えません。
  • SOC FPGA:プロセッサコアとFPGAを1チップに混载したデバイスプロセッサ柔软性とデバイスのたデバイスです。プロセッサプロセッサははですですはははのののははいがが使わています。

主要なfpgaメーカーとととと制品ラインナップ

FPGAマーケットは2015年现处,英特尔®社と赛灵思社が金额ベースで8割以上のシェアを占める寡占状态となっています。その一方,Lattice半导体公司®社はモバイルデバイスでの利用も可能な小规模かつ低価格帯ラインナップを拡充させていますし,Microsemi的®社はフラッシュ方式やアンチヒューズ方式で耐放射线性を高めて宇宙や原子力発电所での利用を前提にした制品ラインナップとなっています。

  • 赛灵思:SRAM方式FPGA,CPLD的SoC。
  • 英特尔:SRAM方向FPGA,フラッシュ方向FPGA,CPLD,SOCの他にFPGAのデザインをまま移移し设计できるもも贩売ているてて
  • 格子半导体:比较的小规模,低低电力,低格式のfpga,cpld,フラッシュ方向fpga。
  • Microsemi(旧爱特公司):アンチヒューズFPGA,フラッシュ方式FPGA, SoC
  • Achronix公司:SRAM FPGA方式

各社と第3派は,信号管理,通信,モータ制御,画像画像定理など様々に适したfpga评価を贩売贩売ています。価格式数目円いい。

従来のfpga开発

一般的にASICやFPGAを设计するには的Verilog HDLまたはVHDLというハードウェア记述言语を用います.VHDLと的Verilogの文法では,ビヘイビア,RTL(寄存器传送级别),ゲートなど様々な抽象度で记述することができますが,FPGA设计用ではほとんどの场合RTLが使用されます.FPGA评価ボードで动作させるためには,FPGAのどのピンから何の信号を入出力するかというピンアサインも行う必要があり,これもテキストやツール上のエディタで行います.RTLで书かれたVHDL / Verilog的のコードは,専用ツールを使用して自动的にゲートレベルの论理回路(ネットリスト)へと変换されます。いわゆる论理合成です。次にFPGAはデバイスごとに回路の构成やリソース数が异なりますので,ネットリストはターゲットデバイスとして设定したFPGAデバイスの回路リソースに适切に割り付け(マッピング)が行われます。さらに,割り付けられた论理回路をどの位置に配置して,どのように配线するかを决める配置配线を行います。この时には静的なタイミング解析が行われ,信号が入ってから出ていくまでの,回路と配线遅延がタイミング要求を満たしているかを确认します。ソフトウェアを开発する际のç言语のコンパイルに比べるとずいぶん沢山のプロセスがありますが,ハードウェアを设计するにはそれだけ沢山のことを考虑する必要があり,作业量も难易度も高いことが伺えます。全ての変换作业が终わると,FPGAを书き込むためのファイルが生成されますので,それを使用してコンフィギュレーションを行うとFPGAは所望の动作をします.SRAM方式のFPGAの场合,电源を切るとSRAMに记忆されている情报は失われますので,再度コンフィギュレーションし直す必要があります。

図4。従来到fpga设计フロー

FPGA用開発ソフトウェア

FPGAを开発するには,図4に示したような一连の作业(论理合成,マッピング,配置配线,ダウンロード)を行うための开発ソフトウェアが必要です。これには自社デバイスを开発するためにFPGAベンダが提供するものと,新思®社や导师图形®社などのedaベンダが提供ししているものしますますます.fpgaベンダが提供しいるはは,比较ははで,初心者で使えるようにターゲットにに制はありターゲットデバイスににはありフリーフリーデバイスデバイスもはははももフリーもももははフリーフリーもフリーも。EDAベンダベンダ致理性合成を行开発ソフトウェアをして,価格も高度分,最最化机构が优れいたり好な料合成结果が得たりするようです。

FPGAベンダが提供する开放ソフトウェア

  • 古怪®II /首相(英特尔社)
  • ISE(Xilinx公司社)现在は更新しておらず,次世代ツールVivadoに移行した。
  • Vivado®设计套房(Xilinx社)
  • 的Lattice Diamond,冰CUBE2,经典ispLEVER软件(莱迪思半导体社はターゲットデバイスに応じて别の开発环境を提供しています。)
  • libero.®(Microsemi的社)
  • ACHRONIX CAD环境(ACE)(ACHRONIX社)管理合成はSYNPLIFY PROを用品て行,それそれの作业を王牌で行。

EDAベンダが提供する开口(管理合成)ソフトウェア

  • synplify pro®/总理(Synopsys公司社)
  • 精密RTL / RTL加/物理(导师图形社)
  • LeonardoSpectrum在(Mentor Graphics公司社)

FPGAの高位设计フロー

RTLのvhdl / verilogをを记述して设计するするいわゆるでの回路回路设计はで设计效率效率が悪いことからからからはは言语vhdl / verilogコードコード生成するツールや図などなどのエディタツールや図などのエディタエディタ使やてて设计するツールツールが増していい

C言語から硬件描述语言(VHDL) / Verilogを生成するツールは以下のように乱立状態ですが,まだまだハードウェア処理を意識したC言語を記述する必要があります。

  • Vivado HLS,SDSoC,SDAccel公司(Xilinx社)
  • Cyber​​WorkBench(NEC社)
  • 弹射器(Calypto社)
  • Cynthesizser(Cadence公司®社,前forte社。2014年にcadence社はforte社社买收した。)
  • C-to-silicon编译器(Cadence社)
  • Synphony C编译器(Synopsys公司社)
  • Excite(y探索社,日本では(株)ソリトンソリトンが输入输入定理店

C言语言语よりもさらにさらに抽象高级Matlab言语やブロックやシミュレ金宝appータシミュレータsimulink®モデルからVHDL / Verilog的を生成して回路设计するツールも各社から提供されています。これらツールでは,IPまたはテストベンチとして使用できる信号处理,通信,画像处理,制御用の机能ブロックと可视化·解析机能が充実しているため,アルゴリズム开発を行う场合にメリットあります。また,HDL言语を习得する必要が无いため,これからFPGA入门する人にとっても障壁が低いようです.MATLAB 金宝app/ Simulink的をベースにしたツールとその外観を示します。

  • HDL编码器™(MathWorks公司)
  • DSP Builder(英特尔社)
  • 用于DSP™的系统生成器(Xilinx社)
  • Synphony模型编译器(新思社)

図5。フィルタとfft管理を行う金宝appsimulinkモデル

その他には的SystemVerilogを拡张した独自言语で回路设计する

  • BlueSpec(Bluespec社)

ががます。

モデルベースデザインを用いたFPGA开発

MathWorksのMATLAB 金宝app/ Simulink環境をベースにした開発はモデルベースデザイン(モデルベース开放,MBD)と呼ばれています。モデリング,モデル化とは,対象を数式や统计データなどで一般化して表现することです。设计·开発対象とそれに影响を及ぼす制御対象や周辺环境をモデリングすることで,仕様が明确になり,FPGA评価ボードに実装する前段阶でシミュレーションによりシステムレベルでの动作确认が可能となります。これはモータ制御,电源制御,通信システム,画像·信号处理システムなどのFPGA / LSI开発で利用されており,VHDL / Verilog的を记述して开発する场合と比较して,以下のような多くの恩恵があります。

  • システムシステム设计者ととハードウェア设计者ののコミュニケーションギャップによりじるハードウェアのの设计ミスのの

  • 沢山のプログラミング言语やツールが不成にというワークの改善

  • リファレンスや机械ライブラリの充実による高度なアルゴリズムのの実现

  • シミュレーションによる早期検证の実现と実机を使った検证时间の短缩

  • システム全体のシミュレーションシミュレーション行うことで,评価ボードや试作用レス开放を进められる

    • 通信システム:送受送受1つのモデルで行
    • 画像管理システム:画像·映像データを入出入出データデータ使用できる
    • 制御システム:电气回路,アクチュエータなどの制御対象をたシミュレーション

手书きHDLと比较したコード生成ツールの性能

コードを自动で生成するというと,熟练したハードウェア设计者が书いたVHDL / Verilog的コードよりも性能面で劣るのではないか?というのが一般的な认识です。确かにÇ言语による高位合成ツールは抽象度が上がった分,效率性や详细设计能力で分が悪いようですが,MATLAB 金宝app/ Simulink中の设计抽象度はVHDL / Verilog的で记述するのと同じRTL:寄存器传输级となっていますので,手书きのHDLコードと同等ないしは良い结果が出ています。その理由としては,シミュレーションや静的解析により固定小数点设计の最适化が行えることや,HDLコード生成をMATLABプログラムで自动化できるため,様々なパイプライン段数や回路アーキテクチャで缲り返し生成してスウィートスポットを探索することが出来ることがあります。

参考:金宝appSimulinkからからZynq-7000プラットフォーム向けIPコア生成(英语)AXI4插播インターフェース生成のためのモデル设计(英语)英特尔的SoCプラットフォームのハードウェア·ソフトウェア协调设计(英语)