ARM Cortex-A9×2!ZynqでワンチップLinux on FPGA

Similar documents
TRQerS - Introduction

Microsoft Word - XPC4ソフトマニュアル.doc

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

(Microsoft PowerPoint - E6x5C SDXC Demo Seminar [\214\335\212\267\203\202\201[\203h])

OSの切替えについて

AN5101 SA-Cy500S (Cyclone V SoC CPU BOARD) スタートガイド

PRONETA

TWE-Lite R 取扱説明書

EB-RL7023+SB/D2

<4D F736F F F696E74202D20834A815B836C838B835C815B835882CC95E082AB95FB F4B2E B8CDD8AB B83685D>

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

Smarter Vision のための最もスマートな選択

CR-USB 仕様書 株式会社測商技研 JS カード用データ転送用カードリーダー CR-USB 仕様書 取扱説明書 2012 年 07 月 31 日版 株式会社測商技研 1. 概要 本器は当社製自動観測装置で記録した JS カードデータ

GTR Board

WLAR-L11G-L/WLS-L11GS-L/WLS-L11GSU-L セットアップガイド

ハード・ソフト協調検証サービス

IntroductionForGR-PEACH.pptx

第3部:プログラミング実習

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

AKI-PIC16F877A開発キット (Ver1

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト :

LANカード(PG-2871) 取扱説明書

ADZBT1 Hardware User Manual Hardware User Manual Version 1.0 1/13 アドバンスデザインテクノロジー株式会社

User Support Tool 操作ガイド

Diginnos PC 初期化方法 初期化操作を行うと ストレージ ( ハードディスク / SSD)( 以降ストレージと記載します ) 内のデータが全て初期化されます 必要なデータは他のメディア等にバックアップのうえ作業してください 初期化とは Windows 10 のプッシュボタンリセットの機能の

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

PowerPoint プレゼンテーション

設定ソフト Ver1.0.5版 マニュアル

Microsoft Word - RefApp7インストールガイド.doc

開発環境構築ガイド

機能検証トレーニング コース一覧

LabVIEW RTのインストールと設定

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのインストール ユーティリティインストール CD-ROM をお持ちでない場合... 4

Industrial shields brochure_JP

Microsoft Word - V70MAX-Vista_XP.doc

RPI-ZUMO-ASM-MANUAL Raspberry Pi on Zumo キット 組立てマニュアル ver2.0 弊社製品 Raspberry Pi on Zumo キットをお買い上げ頂きありがとうございます 本製品は組立てキットとなっております 以

Microsoft Word - xfinderマニュアル.docx

メモリハイロガーLR8431、熱流ロガーLR8432を無線LANで利用する方法

HPシンクライアントイメージ入れ替え手順書

LAN ケーブル接続について

Quartus II クイック・スタートガイド

CommCheckerManual_Ver.1.0_.doc

DWR-R02DN Updater 取扱説明書 発 :2015/10/30

Windows Vista(R) Home Premium 64ビット版について

PICKIT3オフライン書き込みガイドブック

Microsoft Word - 補足説明_Win7_Server2008R2__R1.doc

HMS Industrial Networks HMS INDUSTRIAL NETWORKS AB Anybus X-gatewayX のご紹介 HMS FA ネットワーク対応組込インターフェースでのリーディングカンパニー FA ネットワーク対応組込 I/F の製造 販売に特化した世界で唯一のサプ

Warp demo station manual

Quad port LANカード(10GBASE-T) 取扱説明書

Microsoft Word PXシリーズプリンタドライバインストール説明書(Win8・10-32・64bit)

CX6_firmup

ワイヤレスバーコードリーダー CM-520W1 設定資料 Bluetooth SPPの設定

2. WiFi 接続 1.1 GuruPlug Server 初期設定情報 記載の SSID が設定されているアクセスポイントが GuruPlug Server です PC を操作して GuruPlug Server のアクセスポイントに接続して WiFi 接続してください 接続に成功すると PC

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

Microsoft Word - Android_仮想デバイスマネージャーの使い方

D25HW取扱説明書

Windows10の標準機能だけでデータを完全バックアップする方法 | 【ぱそちき】パソコン初心者に教えたい仕事に役立つPC知識

機能 SB-2000 は無線機とコンピュータを接続するインターフェースです CAT, CI/V を経由したリグ制御 CAT や CI/V のリグ制御のインターフェースを持っています この接続でリグを制御できます RTTY, PSK31, SSTV, FAX, その他のデジタルモードが運用できます広く

リファレンスアプリケーション RefApp7

Macintosh

FMC 対応 USB3.0-IP デモ基板取扱い説明書 [ Ver2.0J] AB07-USB3FMC(2.5V 版 )/AB07-USB3FMC-1.8VIF(1.8V 版 ) はじめにこの度は FMC 対応 USB3.0-IP デモ基板 [ 型番 :AB07-USB3FMC(2.5V 版 ) /

第一章 LPC2478 ボードの概要...3 第二章 uclinux の初体験 SD カードのテスト USB メモリのテスト USB Devices のテスト network のテスト...6 第三章 uclinux のコンパイル...

目次 目次 ターミナルアダプタの接続イメージ INS 回線とターミナルアダプタの接続 ターミナルアダプタの設定とパソコン接続 ドライバのインストール ユーティリティインストール CD-ROM をお持ちでない場合... 4

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

INS メイト V30Slim を Windows Vista がプレインストールされたパソコンでご使用になるお客様へ < ご案内 > 2007 年 4 月 このたびは INS メイト V30Slim をお買い求めいただき 誠にありがとうございます 本紙は INS メイト V30Slim を Win

G800SE HTMLdocument update

UMB-CP2114 User's Manual

MIRACLE System Savior操作手順書

アスラテック株式会社 会社案内

バーコードハンディターミナル BT-1000 シリーズセットアップガイド ( 第 1 版 ) CE ***

完成版_セミナー発表資料110928

開発環境構築ガイド

Transcription:

見本

ソフトもハードもプログラミング! ARM Cortex-A9 搭載 FPGA Zynq 1.1 ています. Zynq の概要実際に Zynq 搭載評価ボードを動作させてみた感じ 単なる ARM コア内蔵 FPGA ではない Xilinx 社が提供する新しいデバイス Zynq ( ジンクと発音 ) は,ARM Cortex-A9 のデュアルコア プロセッサとFPGAを搭載した新しいタイプの SoC(System On a Chip) です ( 写真 1).Zynq の内部を大ざっぱに示すと図 1.1 のようになります. 同社では ARM コアや周辺コントローラ, メモリ コントローラ部分を,PS ( プロセッシング システム ),FPGA 部分を PL( プログラマブル ロジック ) と呼びます. Zynq というデバイスを,FPGA を搭載した SoC, あるいはその逆の SoC を搭載した FPGA とだけ見るのは少々早合点かもしれません. 今後の市場への展開と浸透度にもよるので慎重に評価しなければなりませんが, 筆者は新しい分野の SoC が出現したという印象を持っ では,Zynq 自身はデバイスとしては完全に ARM コア SoC ととらえることができます. 電源投入後,FPGA をコンフィグレーションせずに先に ARM コアが立ち上がる仕様であったり,FPGA 部を PL と呼ぶことからも,Xilinx 社からの FPGA という枠を超えた SoC であるというメッセージが受け取れます. DSP を搭載した SoC は市場にいくつもあり, 確かに, そのアプローチは多くの柔軟性を持っています. Zynq は FPGA を高いレベルで SoC に統合しており, PL 部には, 既存の FPGA と同様ハードウェアを構成できます. うたい文句にあるようにまさに Zynq は All Programmable SoC であり, ソフトウェアもハードウェアさえもプログラムできる, プログラマとしては腕の見せ所の多いデバイスといえます. PS( プロセッシング システム ) 部 ARM プロセッサ部分 ARM Cortex-A9 デュアルコア L2 キャッシュ I/O USB,Ethernet, SD,UART, SPI,I 2 C, GPIO DDR メモリ コントローラ DDR SDRAM FPGA PL( プログラマブル ロジック ) 部 FPGA 部分 I/O 図 1.1 ARM コアと FPGA を内蔵する Zynq 写真 1.1 Zynq の外観 1.1 Zynq の概要 9

まずは ZedBoard を動かしてみよう 2.1 (4) 付属のUSBホスト用コネクタ ( コネクタJ13に接続 ) ZedBoard のセットアップと (5) 付属の電源ケーブル ( 付属の電源アダプタを接続 ) Linux の起動写真 2.1 に,ZedBoard と各種ケーブルを接続した様 それでは, 早速 ZedBoard を動かしてみましょう. ZedBoard には標準で Linux が書き込まれた SD カードが付属しています. これを使って Linux を起動してみます. ZedBoard のセットアップまずは必要な機材を用意します. ZedBoard 一式 ホスト パソコン(Windowsが動く PCで良い ) ZedBoard 用ディスプレイ (DVI-D 対応のもの ) USB フラッシュ メモリ ( 用意できれば ) PC には,TeraTerm などのターミナルソフトもインストールしておいてください. なお, とりあえず Linux が起動することを確認する程度であれば, ディスプレイは無くてもかまいません. さらに次のケーブルを用意して,ZedBoard と接続してください ( 写真 2.1). (1)HDMI 扌 DVI-D ケーブル ( ディスプレイと接続 ) (2)Ethernet ケーブル (PCと接続. ハブ経由でも直結でも OK) (3) マイクロ USBケーブル ( コネクタJ14とPCを接続 ) 子を示します. とりあえず Linux が起動することを確認したいという場合は,(3) と (5) を用意して,Zed Board と PC を接続してください. ジャンパ設定と電源 ON 電源 ON の前に, 各種ジャンパの状態を確認してください. まず起動モードの設定ジャンパは, 写真 2.2 に示すように, MIO2 を GND 側 MIO3 を GND 側 MIO4 を 3V3 側 MIO5 を 3V3 側 MIO6 を GND 側に設定にしてください. またジャンパ JP6 をショート (MIO[0] を GND) し, さらにジャンパ JP2 と JP3 をどちらもショートしてください (USB ホスト電源供給 ). 以上を確認してから ZedBoard の SD カード スロットに付属の SD カードを差し込み,ZedBoard の電源を入れてください. すると電源が入ったことを示す緑色の LED(LD13) が点灯します. そして十数秒すると,Zynq が起動したことを示す青 写真 2.1 ZedBoard と各種ケーブルの接続写真 2.2 ZedBoard を SD カードから起動させるジャンパ設定 2.1 ZedBoard のセットアップと Linux の起動 17

開発ツール PlanAhead のインストールと実践 3.1 Xilinx 社が用意している C/C++ の統合開発環境で す.Eclipse をベースにしています. 以下 SDK と呼び ZedBoard を使っての開発には Xilinx 社の開発ツールが必要です. ここでは ISE Design Suite 14.4を使用します ( 図 3.1).Zynq の開発には無償版の ISE WebPACK が使用可能です.ISE Design Suite をインストールすると次のツールが同時にインストールされます. プロセッサを使用したエンベデッド システムを構築する際に使用するツールセットです.Zynq プロセッサに対してバスや IP コアを選択し接続することでハードウェアの構築を可能にします. 以下 XPSと呼びます. ます. システム全体の設計 解析を可能とする統合ツールです. 今回は XPS で設計したハードウェアのデザインの合成や, 後述の XPS と SDK の橋渡しに使います. 各自のシステムに ISE Design Suite 14.4( またはそれ以降 ) をインストールしてください. 筆者は 64 ビット版 Windows 7にISE をインストールし使用しました. また,Linux のクロス コンパイル環境として, 必要に応じて 64 ビット版の Ubuntu サーバを使用しています. ダウンロード 図 3.1 ISE Design Suite 14.4 のダウンロード 3.1 開発ツールの入手方法とセットアップ手順 31

次世代ツール Vivado を使ってみよう Xilinx 社は新しい FPGA 開発ツールVivadoを発表しました. 登場当初は Zynq に対応していなかったのですが, バージョンアップにより Zynq 対応になりました.ZedBoard の BSP も初めから用意されたので, 実に簡単に Vivado を使えることがわかりました. Vivado は, 今までのツール群をさらに統合を進めた形になっています. まず, プロセッサを使用した開発を中心に既存の IP コアを組み合わせて IP コアをインテ グレートできます (IP Integrator). また,VHDL や Verilog HDL を使った今まで通りの FPGA の開発もシミュレーション (XSIM) ももちろんサポートされています. できあがった回路図はインターフェースをつけてやれば IP コアとしてパッケージ化できます. 作成されたパッケージはツール非依存 業界標準のIP- XACT で,IP Integrator で汎用的に使うことができるようになります. ダウンロード 図 4.1 Vivado のダウンロード 65

Xylon 社のリファレンス デザインを使う 前章までで,Linux の立ち上げができるようになりました. この章ではちょっと寄り道をして,Linux での応用方法をのぞいてみたいと思います. Linux を使う大きな理由の一つは OS を意識したくない 既存のライブラリを有効に利用したい など, ある目的に一直線に向かって行くための近道として利用するためでしょう. この章ではすでにあるリファレンス デザインを, 応用的に使う方法を示します. またこのリファレンス デザインには,Linux のフレーム バッファ用ドライバが用意されているため, 容易に Linux から利用することができます. この章ではリファレンス デザインを使い,SD カードから簡単にLinuxを立ち上げることから始め,SD カードのパーティションを切り直して, より Linux らしい使い方へと変えていき, 最終的には Linux 上でのプログラミングを可能にするところまでを説明します. 用意されたリファレンス デザインを使用することで,IP コアのパワーを Linux を通して簡便に利用できます. 5.1 例えばビデオの入出力はインターフェースの規格だけで, 単純なRGBのパラレルのタイプから,HDMI, Camera-Link,FPD-Link I/II/III,MIPI,MDDI などなど, さまざまな規格が存在し, 扱う形式も ARGB の 32 ビット,16 ビット, ベイヤーパターンなど, サイズにおいていは QVGA,VGA,SVGA,XGA,HD, さらに各規格は年々バージョンアップされ, 扱うサイズは大きくなる傾向にあります. そんな中で, 自分の欲しい機能をパーフェクトに備えているSoCがあるとは限りません. 例えば QVGA/16 ビット カラーで十分なのに高機能で複雑なインターフェースしか用意されていなかったり, あるいは 10 ビットの高解像特殊用途に使いたくても SoC が持っていない, 持っていても今度は他のインターフェースがないなどのケースです. 運よく見つかっても, チップが特殊であればあるほど常にディスコン ( 生産中止 ) を気にすることになります. Zynq の基本コンセプトは すでにインターフェースとして確立され地位のある USB 2.0 や Ethernet などはあらかじめ用意します. ユーザがフレキシビリティを必要とするビデオの入出力や画像処理部分は PL 部で柔軟に対応しましょう. それがZynqというSoCです. というところにあるようです. Zynq にはグラフィックス コントローラがない ZynqではさまざまなI/Oが最初から使えるようになっています.UART,SD カード コントローラ, USB, ギガビット Ethernet など, 一通りのインターフェースがすぐに使えるようになっています. ただ 1 種類だけ, それも意図的に固定的なハードウェアとして実装していないものがあります. それはグラフィックス機能, とりわけビデオ入出力に関する機能です. 近年の SoC はカメラ入力と DVI-D や HDMI などの表示機能を一通り持っているものが多く, それはそれで便利なのですが, いざ使ってみるとその制約の多さなどから, 帯に短し襷に長し となることもあるようです. ZynqはFPGA 部分に自分の望む回路を実装できる図 5.1 に Zynq のリファレンス デザインとして公開されている, ソベル フィルタ ( 輪郭抽出 ) の例を示します. 入力は HDMI 相当で FMC-IMAGEON ボードを通して内部メモリに展開され, さらにその画像をハードウェアでソベル フィルタを実行し, 表示用のマルチレイヤ (OSDともいう) に対応したIPコアにより, HDMIからフル HD 相当 (1920 1080/60フレーム/ 秒 ) の出力をしています.OS は Linux,GUI などの制御部分は Qt で書かれています. デモはクリック一つで, ハードウェアでのソベル フィルタ処理とソフトウェアでのフィルタ処理を切り替えることができるようになっています. 実際に試し 5.1 Zynq のリファレンス デザイン 123

Linux のカスタマイズ手順 ここまでで, すでに用意されたZynqのLinuxシステムを自分なりに変更して, アプリケーションを使い, IP コアを有効利用するまでの簡単な方法を見てきました. より深く使いこなすなら, ライブラリの構築やカーネルの構築を自分で行う必要があることもわかりました. この章では,Zynq の I/O(Input/Output) をおさらいした後,Zynq の初期化からルート ファイル システムの構築まで, よりディープに使えるシステムに仕上げていきます. Zynq の初期化の詳細 Linux の再構築 デバイス ツリー クロス コンパイル ルート ファイル システムの構築 6.1 ここでは MIO と EMIO を中心に,ARM SoC としての構造と組み込みLinuxでの関係を整理しておきましょう. MIO とは Zynq を含め SoC のチップは多くの機能を盛り込んでいます. それらの機能を, ユーザが全部使い切るということはまずないでしょう.Ethernet を二つ使うこともあれば, 別のユーザでは一切使わないかもしれません. 使わない機能は無駄にはなります. この時,Zynqを含めたほとんどのSoCは, 全ての機能を同時に使えるような構造にはしていません. 使わない機能のために SoC のピン (SoC から出ている足 ) を割り当てるのは無駄なので, いくつかの機能を各ピンで共有させています ( 図 6.1). Zynq では MIO(Multiplexed I/O) と命名していますが, 要はマルチプレクサのことで, 複数の I/O が一 つのピンで共有されていいます.Zynq での MIO のピンとしてどのように共有されているかを図 6.2に示します. 例えば,MIO の 28 番は Ethernet 1 の tx ck,usb 0 の data,spi 0 の ck,sdio 0 の ck,sdio のカード検出トライとプロテクト,SDIO 電源制御 0,NOR/ SRAM のアドレス 13,CAN 1 の tx,uart 1 の tx,i 2 C 1 の ck,ttc1 の w,gpio の 28 で共有されています. 実際のピンは一つしかないので, そのうちの 1 機能を使うようにします. 特定のレジスタに値を入れることで, その機能が選択されます. ここで,USB 0 を選択してしまうと他の機能が使えなくなるかというとそうではありません. 共有されている機能の中には, 他の MIO ピンにアサインすることが可能なペリフェラルがあります. 例えばCAN 1の tx/rx は,12 組の MIO から選択可能です. EMIO とは Ethernetは他のMIOピンにアサインされていません. それでは,CAN1 を使うと Ethernet1 は使えなくなるのでしょうか? Zynqには大きな特徴として 図 6.1 I/O の出し方 6.1 Zynq の MIO/EMIO 147

ハードウェア ロジックの追加 この章からは Zynq の FPGA 部分に焦点を当てます. ついに やわらかいハード の核心部分に到達です. ハードウェア ロジック ( ここでは IP コアと同義 ) を追加して自分のスーパー SoC を構築することが可能です. ハードウェア ロジック (IP コア ) の追加方法にはいくつかあります. 一つはツールであるXilinx Platform Studio(XPS) 上にすでに用意されているロジックを選択して追加する方法です.Xilinx 社が用意しているものからサードパーティが用意しているもの, 無償のもの, 有償のものと様々な選択肢の中から必要なロジックを選んで自分のシステムの中に組み込むことができます. まさに自分だけの ARM SoC を作ることができるようになります. この手法はビジネスを加速させるうえでも重要です. 必要なロジック (IP コア ) を調達して SoC を組み立て, 市場の開発スピードに負けないようにするためにも, あるものを有効に使い, 一番上のアイデア部分で特徴のあるものを開発して差別化していくという方法は今後の主流になるでしょう. 一方, 必要なロジックが特殊であるために自分で開発しなければならないこともあるでしょう. 昔からある秋葉原的手法と言ってもよいかもしれません. アマチュアの方にとっては世界のどこにもない一品物がつくれる魅力的な手法と言えます. ここではその二つの方法を紹介します. さらに作成した IP コアを, 別のデザインに再利用する方法も紹介します. 図 7.1 PlanAhead から XPS を呼び出す 165

見本 このPDFは,CQ 出版社発売の Cortex-A9 2!Zynq ARM でワンチップ on FPGA Linux の一部見本です. 内容 購入方法などにつきましては以下のホームページをご覧下さい. 内容 http://shop.cqpub.co.jp/hanbai/books/46/460 購入方法 http://www.cqpub.co.jp/order.htm