FPGAの部屋のまとめ サイト
FPGAの部屋の記事をまとめることにしました。カテゴリ別にリンクがあるのでリンクに飛んでください。私が有用と思われるコンテンツ
についてリンクがあります。
このページでは主にXilinx社のFPGAについての話題を書いています。
Xilinx社のFPGA用ツールについて
- FPGAリテラシーおよびチュートリアル
(Xilinx社のFPGAツールの使い方や7セグメントLEDのダイナミック点灯などについて書いてあります。初めての方はここをごらん頂くと良いと思
います)
- Xilinx ISEについて
(XilinxのISEツールについての情報、ここがおかしいとかこうすると良いなどの情報)
- UCFの書き方
(XilinxのISEツールを使う上での大事な制約ファイル(UCFファイル)の書き方)
- Floorplannerの使い方
(モジュールをフロアプランできるツールFloorplannerの使い方、高性能の 回路を作る際には必見)
- Timing Analyzerの使い方
(FPGAチップ内の遅延情報を表示できるTiming Analyzerの使い方)
- FPGA Editorの使い方
(FPGA内配線をGUIで表示、書き換えできるツールFPGA Editorの使い方)
- PACEの使い方
(IOパッドのピン割り当てやモジュールのエリア制約を行うツールPACEの使い方)
- StateCADの使い方
(ステートマシン生成ツールStateCADの使い方)
- Chipscope
(FPGAに組み込むロジックアナライザツールChipscopeについて)
- EDK
(XilinxのFPGAに内蔵するプロセッサのソリューション、ソフトコアのMicroBlazeとハードコアのPowerPC)
- XST
(ISEの論理合成ツールXSTについて)
- Floorplan
Editorについて
(Floorplan Editorについて、残念ながらISE11.1にはない)
- PlanAheadについて
(ISE11.1からは、PlanAheadを使用して、パッドの固定、エリア制約、フロアプランなどを行う)
- その他のXilinxツールについて
(上に上げた以外のXilinxのツールについての話題)
- ChipScope、シミュレーション協調検証
(VeritakシミュレータによるChipScope、シミュレーション協調検証について)
- Constraints Editor
(タイミング制約をGUIで生成するツール Constraints Editor について)
- Core Generator
(XilinxのIPを生成するツールCore Generatorについて)
- ISim
(ISEに付属のシミュレーションツールISimについて)
- SMM (The Simple MicoroBlaze Microcontoroller)
(EDKを起動しなくても試用できるSMMについて、現在のところ残念ながらSDKが必要)
- MIG(Memory Interface Generator)
(Xilinx社のDDR?-SDRAMコントラーラのMIGについて)
- MicroBlaze MCS
(ISE13.4からCoreGenでIPとして使えるようになった)
- Vivado
(7シリーズ以降用のXilinxの新しいツールVivadoについて)
- 制約
(制約について、Vivado の制約 SDC もここに書く)
- Vivado HLS
(Vivado のHigh Level Synthesis、C言語からHDLへ変換できる)
- SDSoC
(Xilinx社のエンベデッド C/C++ アプリケーション開発環境)
- reVISION,xfOpenCV
(Xilinx 社の画像、DNN用ツールのreVISION,xfOpenCV について)
- SDK
(Vivado 用アプリケーション・ソフトウェアツールのSDKについて)
- PetaLinux
(Xilinx社のLinux、PetaLinuxについて)
- Vitis
(Xilinx社のVitis ツールについて)
- Vitis_HLS
(Xilinxy社のVivado HLS後継?のVitis HLSについて)
- Vitis Vision
(FPGAデバイスで高速化されたコンピュータービジョン機能用のソフトウェアインターフェース)
- RapidWright
(最新のザイリンクスFPGAおよびSoCデザインのネットリストおよび実装操作を可能にするオープンソースのJavaフレームワーク)
- finn-hlslib
(Xilinx の FINN を利用した量子化ニューラルネットワーク(QNN)のハードウェア・アクセラレーション用のHLSライブラリ)
- finn
(Xilinx Research Labs の実験的なフレームワークで、FPGA を使用した DNN の推論)
- MicroBlaze
(Xilinx社のソフトプロセッサ、MicroBlazeについて)
- Vitis-AI
(Vitis-AI について)
- DFX(Dynamic Function eXchange)
(部分再構成について)
Altera社のFPGAツールについて
- QuartusⅡ
(Altera社のFPGAツール、QuartusⅡの使い方の話題)
- SignalTapⅡ
(Altera社のFPGA内蔵ロジックアナライザツール、SignalTapⅡについて)
- SOPC Builder
(Altera社のGUI回路構築ツールSOPC Builderについて)
- Nios2 EDS
(Altera社のプロセッサNios2について)
- Altrera Tools Tutorial
(アルテラツールのチュートリアルというか、私がアルテラのツールを試してみた記録(いままでカテゴリ別になっていて見にくかったので、時系列順にし
た))
- intel HLS
(インテル社のHLSツールについて)
Microchip社のFPGAツールやボードについて
- Libero SoC
(Microchip社のFPGAツール、Libero SoC の使い方の話題)
- SmartHLS
(Microchip社の高位合成ツール、SmartHLS について)
- Hello FPGA
(Microchip社のFPGAボード、Hello FPGA について)
FPGA搭載ボードやFPGAについて
- Spartan3E Starter Kit
( Spartan3E Starter KitのLCD表示回路の使い方、ロータリーエンコーダの使い方、DDR SDRAMコントローラの作製)
- Virtex4のお勉強
(Xilinx社のFPGA、Virtex4の使用方法について)
- Virtex5のお勉強
(Xilinx社のFPGA、Virtex5の使用方法について)
- Spartan3A Starter Kit
(Spartan3A Starter KitでとりあえずDDR2 SDRAMコントローラをやっています)
- AlteraのFPGA
(日昇テクノロジーから購入したFPGA/Cyclone II EP2C5Q208ボードやAltera 社のFPGAについて)
- Virtex-6、Spartan-6
(Virtex-6、Spartan-6の使用方法について)
- Spartan-6 FPGA SP605評価キット
(Ethernet、PCIe 1X、MGT、DVIなどがついた高機能評価キットSP605について)
- AlteraのDE0ボード
(AlteraのDE0ボードについて)
- XUPV5-110Tボード
(Digilent社のXUPV5-110Tボードについて)
- Atlysボード
(Digilent社のSpartan-6ボードAtlysについての話題)
- Zynq
(Xilinx社のデュアルコアARM入りFPGAのZynqについて)
- ZedBoard
(Zynq 7020 が搭載されているZedBoardについて)
- Paralella-16
(Zynq-7010の搭載された$99 のParallela-16ボードについて)
- Helioボード
(Altera のSoC FPGAの搭載されたHelioボードについて)
- ZYBO
(Digilent社の廉価版Zynq-7010搭載ボード)
- BeMicro MAX 10 FPGA 評価キット
(Arrow の Altera MAX10 評価ボード)
- DE0-Nano-SoCボード
(AlteraのCyclone V SoCボードについて)
- Zynq UltraScale+ MPSoC
(Zynq UltraScale+ MPSoCについて)
- Z-turn Board
(Zynq-7020を搭載したZ-turn Boardについて)
- Zybot
(ZYBOで作製するロボットカーについて)
- PYNQ
(PYNQボードとPYNQについて)
- UltraZed EG
(UltraZed-EG Starter Kit について)
- ZYBO Z7
(新しいZYBO について、Zynq-7010 と Zynq-7020 が搭載されている。主にZynq-7020を搭載したZYBOについて)
- Ultra96
(UltraZed-EG と同じ ZU3EGを使用したボード)
- Genesys_ZU
(Zynq UltraScale+ MPSoC を使用した Genesys ZU ボード)
- Alveo
(Alveo ボードについて)
- ZynqBerryZero
(Raspberry Pi Zero と同じ基板形状を持つ ZynqBerryZero ボードについて)
- Nexys Video
(XC7A200Tの搭載されているDigilent社のビデオ用FPGAボードについて)
- KRIA KV260 Vision AI Starter Kit
(Zynq UltraScale+ MPSoC が搭載された KRIA KV260 Vision AI Starter Kitについて)
- KR260
(Kria KR260 ロボティクス スターター キットについて)
- ZUBoard 1CG
(Zynq UltraScale+ MPSoC が搭載されている ZUBoard 1CG ボードについて)
FPGAで構成する回路について
- DDR SDRAMコントローラ
(DDR SDRAMコントローラとDDR2 SDRAMコントローラの製作方法について)
- PCI
(PCIインターフェース回路とPCI-Xインターフェース回路について)
- VGAコントローラ
(VGAコントローラの仕様、キャラクタVGAコントローラの製作について)
- Spartan3E Starter Kit
でマイコンを作る
(Spartan3E Starter Kitでオリジナルなパソコンを作る)
- 画像処理
(CMOSカメラで画像を取り込んで画像処理)
- PCI Express
(PCI Expressについての記事)
- Spartan-3A Starter
KitでCMOSカメラ・ディスプレイ回路
(Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路を作った顛末記)
- IP
(いろいろなIPについて)
- SDR SDRAMコントローラ
(SDR SDRAMコントローラについて)
- OV9655
(CMOSカメラ、OV9655の回路について)
- CMOSイメージセンサ
(CMOSカメラ全般、MT9D111のお勉強)
- FPGA内蔵マイクロコントローラ
(openMSP430などのFPGAに内蔵するマイクロコントローラについて)
- FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
(本の内容をやってみた。uClinuxをDE0ボードで動かしてみた)
- AXIバスについて
(AXIバスについての記事)
- AXI Master IPコアの作製
(XPSでAXI4プロトコルのマスタIPを作ってみる)
- AXI Slave IPコアの作製
(XPSでAXI4プロトコルのスレーブIPを作ってみる)
- AXI Lite Slave IPコアの作製
(XPSでAXI4 LiteプロトコルのスレーブIPを作ってみる)
- 複数のAXI4 バスを持つIPの作製
(AXI4 Master, AXI4 Lite Slave の2つのバスを持つIPのように、複数のAXI4 バスを持つIPについて)
- DVI, HDMI
(DVI, HDMIもどきについて)
- AXI4-Stream IPの作製
(AXI4-StreamプロトコルのIPを作ってみる)
- AXI Lite Master IPコアの作製
(AXI Lite Master IPコアを作ってみる)
- Co-design
(ソフトウェアとハードウェアが協調して動作するデザイン)
- ラプラシアン・フィルタをソフトウェアで実装し、ハードウェアにオフロー
ドする
(ラプラシアン・フィルタをソフトウェアで実装して、段階的にチューニングした。次の段階として、ラプラシアン・フィルタ回路のみをAXI4 Lite
Slave IPとしてハードウェアにオフロードした。最終段階は、AXI4 Master
IPとしてラプラシアン・フィルタ・システムをハードウェアにオフロードして、実行時間が約10msecになった)
- AXI4バスの演習資料
(AXI4バスの勉強会用演習資料の作製過程)
- ステレオカメラによる画像解析
(ZYBOでのステレオカメラを使用した画像解析について)
- 白線検出
(カメラ画像による道路の白線検出について)
- FPGAのマイクロプロセッサ
(FPGA内部に使用するマイクロプロセッサについて)
- 演算処理のFPGAへの適用方法
(演算処理はfloat型で書いてあることも多い、それをどうやって固定小数点演算に変換してFPGAで実装するか?)
- DNN
(ディープ・ニューラル・ネットワークについて)
- TensorFlow, Keras
(TensorFlow, Kerasを使用してVivado HLSでCNNなどをハードウェアにする)
- NNgen
(ディープ・ニューラル・ネットワーク用の完全にカスタマイズ可能なハードウェア合成コンパイラ)
- FPGAを使用したシステム
(3軸加速度センサー+GPSなどのFPGAを使用したシステムについて)
- TVM_VTA
(TVM ベースのコンパイラ スタックを備えた、オープンで汎用的でカスタマイズ可能なディープ ラーニング アクセラレータ Versatile
Tensor Accelerator (VTA) について)
FPGAの使用方法やプリント基板について
- FPGAからクロック出力
(FPGAからほかのデバイスへクロックを供給する方法)
- FPGAチップ内の配線方法
(FPGA特有の構造に関する考察、IOB内ディレイの使い方など)
- プリント基板の作製過程
(プリント基板作製過程での起こったことを記述、いろいろ大変ですね)
- FPGAのリセットについて
(同期リセットと非同期リセットの比較)
- FPGAのトラブル
(FPGAを使う時のいろいろなトラブルについて)
- プリント基板作成
(プリント基板の作成について)
ハードウェア記述言語について
- VHDLの書き方
(私のVHDLの書き方について)
- 入門Verilog
(VerilogHDLを学んでいく課程について)
- SystemVerilog
(SystemVerilogについて、いまのところCと連携したシミュレーションのやり方)
- RISC-V と Chisel で学ぶ はじめての CPU 自作
(RISC-V プロセッサを作りながら Chisel 言語を学ぼう)
シミュレーション、アサーション
- シミュレーション
(シミュレーションツールModelSimやVeritakを使用したシミュレーション)
- アサーション事始め
(アサーションを書き始めてみた)
その他のツール
- Doxygen
(C言語やVHDLのソースをドキュメント化するツール)
- SVN,TRAC
(ソースのバージョン管理、グループでのソース管理ソフトSubversionやTRACについて)
- VMware
(仮想化ツールVMwareについて)
- その他のFPGA用ツールについて
(SynplifyやNotepad++などのその他のツールについて)
- EDAツールについて
(いろいろなEDAツールについて)
- CADツールについて
(Kicad、DesignSpark PCB などのCADツールについて)
- VC++
(VC++などのCソースについて)
- NSL
(オーバートーン社の新世代のハードウェア記述言語NSLについて)
- MicroBlazeクロスコンパイラ
(MicroBlazeのクロスコンパイラについて)
- Ruby
(Rubyについて、パラメータによるHDL生成などに使っています)
- Altium Designer
(Altium Designerを共同購入した。PCBだけでなくHDLやCtoHDLもある)
- Synthesijer
(わらさぼで作っているJava言語の高位合成ツール)
- Synverll
(ひでみさんの作っているC言語の高位合成ツール)
- AWS-FPGA
(Amazon EC2 F1 インスタンスについて)
- Docker
(コンテナ型仮想環境、ホストOSの上にDockerコンテナを起動する)
- ROS (Robot Operating System)
- Karuta
(neonlightdevさんの高位合成ツール)
- VSCode
(Visual Studio Code について)
- WSL2
(Windows Sybsystem for Linux 2 について)
- GENESYS Dev Env
(クラウドで完結するビジョンAIのエッジデバイス評価プラットフォームのフィックスターズさん の GENESIS Dev Env)
その他
- Make出展
- FPGA-CAFE
(FPGA-CAFEのツールの使い方など)
- エレキジャック・フォーラム
- マイコン関連
(Raspberry Pi の話題など)
- Linux
(Linux について)
- OpenCV
(オープンソースのコンピューター・ビジョン・ライブラリ OpenCV について)
- Edison
(IntelのX86マイコンボード)
- Edge TPU
(Google社のニューラルネットワーク・アクセラレーション用ハードウェア)
- Jetson Nano
(NVIDIAのエッジGPUボードJetson Nanoについて)
- Donkey Car
(Raspberry Pi 3+ + Pi Camera で動作するロボットカー・キット)
- Wio Terminal
(LCD、3軸加速度センサー、Wifi などがついて3千円台のマイコンシステム)
- PICマイコン
(有名なPICマイコンの使用方法)