Cortex-A9内蔵FPGA“Zynq”入門 GPIO回路の設置とARM CPUとの接続


チップの周辺回路を制御するために

ZynqのGPIO制御の基礎

図1 AXI4-Liteバスを使用することで,PS側のソフトウェアからレジスタ制御を行い,GPIOの状態を変更できる.画像クリックで動画を見る.または記事を読む.[提供・著]中村 晋一郎
詳細[VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門

Zynqは,FPGAの柔軟性とARM Cortex-A9プロセッサの処理能力を兼ね備えたSoC(System on Chip)です.

PLとPSの接続

Zynqの設計では,PLとPSが統合されており,AXI(Advanced eXtensible Interface)バスを介してデータのやり取りを行います.LED点滅システムを構築する場合,以下の手順でPLとPSを接続します.

  1. ZYNQ7 Processing Systemのブロックを追加する.
  2. ブロック・オートメーションを実行し,基本的な周辺回路の接続を自動構成する.
  3. ボード・プリセットを適用し,ボードのピン配置情報を反映させる.

この作業により,システム・リセット回路,AXIインターコネクト回路が追加され,PSからPLを制御するための基盤が整います.

GPIOの追加と設定

GPIO(General-Purpose Input/Output)は,ZynqのPLと外部デバイスを接続するために使用されます.LEDを制御するためにGPIOを追加し,AXI経由でPSと接続します.

  1. GPIOのIPコアを追加する.
  2. IP設定で3ビットの出力を設定する.
  3. Run Connection Automationを実行し,AXIインターコネクトに接続する.
  4. GPIOの出力を選択し,右クリックで「Make External」を実行し,外部ポートを構成する.
  5. ポート名称を変更し,制約ファイルに合わせる.

これにより,GPIOを介してLEDを制御する準備が整います.AXI経由でGPIOを制御することで,PS側のソフトウェアからLEDの点灯/消灯を制御できるようになります.

AXIバスの役割

Zynqでは,PSとPLの通信にAXIバスが使用されます.AXIバスにはいくつかの種類があり,それぞれ異なる役割をもちます.

AXIバスの種類と特徴

  1. AXI4:高性能なメモリ・アクセスを提供する.主に大容量データ転送に使用される.
  2. AXI4-Lite:低レイテンシのシンプルなレジスタ・アクセスを提供する.GPIOなどの制御に適している.
  3. AXI4-Stream:データ・フロー指向の通信を行う.オーディオやビデオ・データの処理に向いている.

GPIOを制御する際には,AXI4-Liteが用いられます.AXI4-Liteは,シンプルなメモリ・マップトI/Oとして動作し,PS側のCPUがレジスタに書き込むことで,GPIOの状態を変更できます.

AXIバスを活用したGPIO制御

GPIOはAXIバスを通じてPSと接続されており,PS側のソフトウェアからレジスタ・アクセスを行うことで,制御が可能です.PSからGPIOの制御を行う手順は以下のようになります.

  1. PS側のソフトウェアでGPIOのベース・アドレスを取得する.
  2. GPIOの出力設定を行うため,対応するレジスタに値を書き込む.
  3. LEDのON/OFFを切り替えるために,GPIOの出力レジスタに1または0を書き込む.

このように,AXIバスを利用することで,PSからPLの周辺回路を効率的に制御できます.〈著:ZEPマガジン〉

動画を見る,または記事を読む

著者紹介

  • 2002年より業務用映像音声機器メーカに勤務.システムアーキテクチャ設計やファームウェア開発業務に携わる.2020年にリベラルロジック株式会社を設立.

著書

  1. [VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門,ZEPエンジニアリング株式会社.
  2. アプリはスクリプトで柔軟に!マイコン用MicroPythonプログラミング,Interface 2016年10月号,CQ出版社.
  3. シンプル・便利・基本的!フリー・ソフトで高品質プログラミング,Interface 2015年11月号,CQ出版社.
  4. 音遊び!Blackfin DSP基板でディジタル信号処理初体験,Interface 2015年2月号,CQ出版社.
  5. ROM 10Kバイト/RAM 1Kバイトでヒストリ機能付き! コマンド入力ライブラリNT-Shell,Interface 2013年1月号,CQ出版社.
  6. SDメモリーカード対応のポータブルFPGA書き込み器,トランジスタ技術2011年9月号,CQ出版社.
  7. 世界温度計 コラム イーサネット通信用のライブラリが充実,トランジスタ技術2011年5月号,CQ出版社.

参考文献

  1. FPGA/Zynqで作るカスタム・コンピュータ・チップ,ZEPエンジニアリング株式会社.
  2. Zynq FPGA入門 コンピュータ・チップの自作,ZEPエンジニアリング株式会社.
  3. Zynq FPGA入門 自作回路とCPUの通信,ZEPエンジニアリング株式会社.
  4. Zynq FPGA入門 独自のコンピュータ・チップ,ZEPエンジニアリング株式会社.
  5. Zynq FPGA入門 2つのチップ内CPU構成法,ZEPエンジニアリング株式会社.
  6. Zynq FPGA入門 各社FPGAと利用できるCPU,ZEPエンジニアリング株式会社.
  7. Lチカ入門!ソフトウェア屋のためのHDL事はじめ,ZEPエンジニアリング株式会社.
  8. HDL超入門!スイッチ読み取り回路とLED駆動回路のHDLソースコード,ZEPエンジニアリング株式会社.
  9. 超入門!スイッチ読み取り回路とLED駆動回路のHDLソースコード,ZEPエンジニアリング株式会社.
  10. FPGAキット DE10入門 PWM信号生成回路IP,ZEPエンジニアリング株式会社.
  11. FPGAキット DE10入門 論理合成前の動作確認,ZEPエンジニアリング株式会社.
  12. FPGAキット DE10入門 正しく動かない乗算器,ZEPエンジニアリング株式会社.
  13. Artix-7 FPGA入門 A-D変換回路の実験,ZEPエンジニアリング株式会社.
  14. FPGA×HDL超入門 2種類のリセット回路,ZEPエンジニアリング株式会社.
  15. FPGA×HDL超入門 2種類のリセット回路,ZEPエンジニアリング株式会社.
  16. FPGA×HDL入門 レジスタの同期運転,ZEPエンジニアリング株式会社.
  17. FPGA×HDL超入門 4桁の7segLED制御,ZEPエンジニアリング株式会社.
  18. Xilinx FPGA入門 回路バイナリの合成,ZEPエンジニアリング株式会社.
  19. Xilinx FPGA入門3 重要な2つのファイル,ZEPエンジニアリング株式会社.
  20. Xilinx FPGA入門2 回路データ・バイナリを転送,ZEPエンジニアリング株式会社.
  21. Xilinx FPGA入門1 スイッチONでLED点灯,ZEPエンジニアリング株式会社.
  22. FPGA入門 演算回路の動作テスト
  23. 自作CPU入門:コンピュータの頭脳を理解する,ZEPエンジニアリング株式会社.
  24. 自作CPU入門2:部品どうしをつなぐ「バス」,ZEPエンジニアリング株式会社.