FPGA

MicroBlazeでAXI GPIOの外部ピン割り込みを実装

概要 MicroBlazeで外部ピンからの割り込みを実装し、AXI GPIOのInterruptとAXI Interrupt Controllerの使い方を学びます。 ハードウェア ・MicroBlaze ・AXI GPIO (Enable Interruptを有効にする) ・AXI Interrupt Controller をBlock Designに追加する。A…

AXI IICの使い方

概要 XilinxのAXI IICの使い方について書いていこうと思います。 今回はZYNQでAXI IICを制御する方法について書きます。 AXI IICの接続と設定 AXI IICとの接続は次のようになっています。 AXIバスでZYNQと接続しています。 IICポートは外部のピンと接続され…

MicroBlazeで実行時間を測定する方法

概要 MicroBlazeで命令の実行時間を測定する方法について考えました。 MicroBlazeではxtime_l.hが存在せず、sys/time.hのgettimeofday()が使えなかったため、 外部にAXI_Timer IPを入れることで実行時間を測定することにしました。 Vivadoプロジェクトの作成…

ZYNQのPSで実行時間を測定する方法

概要 ZYNQである処理の実行時間を測定したいときにどうすればよいのかについて紹介します。 一般的なCのコードではtime.hを使ったりしますが、ZYNQではこの方法は非推奨なようです。 今回はXilinxが用意したxtime_l.hというファイルを用います。 Vivadoプロ…

AXI GPIOについて

概要 AXI GPIOの使い方についてのメモ書きです。AXI GPIOはFPGAのピンの入出力としてももちろん使えますが、 FPGA内部のIPの入出力をコントロールすることもできて非常に便利なIPです。 Vivadoプロジェクトの作成 Block DesignなどでAXI GPIOを追加するだけ…

Cmod A7のSPIFlashにSDKのプロジェクトを書き込む

概要 Digilent社のCmodA7というFPGAボードにMicroBlazeを実装したBitstreamとそのSDKプロジェクトをSPI Flashに書き込む方法についてです。この方法はDigilent社の公式HPに、そのやり方が書いてあるのですが、かなり省略された説明でわかりにくかったため、 …

仮想I/O (VIO) IPコアを使ったFPGAのデバッグ

今回は、LogiCORE IP Virtual Input/Output (VIO) コアを用いてFPGAの内部信号をPCからコントロールしてみます。 どんなことができるのか VIOを使うと、Vivadoの画面上でピンや信号線の状態を監視したり、操作したりすることができます。ILAと同じくデバッグ…

FPGAの差動入力でAD変換

はじめに XilinxのXcell Journal 94号に掲載されている「1つのザイリンクス FPGA で数百の信号をデジタル化する方法」がとてもおもしろそうだったので実際に実装してみました。 Xcell Journal 日本語版 差動入力1つと抵抗,コンデンサがそれぞれ1つだけで…

図形描画

これまでに作成したVGA表示回路で図形を描画できるようにしました. NIOS IIでVRAMにアクセスして図形を描画しています.図形の描画アルゴリズムはこちらのサイトを参考にしました. アルゴリズムの紹介まだ直線と画像の描画しか実装していないのですがとりあえ…

DE0でVGA出力(VRAMを実装)

前回作成したVGAコントローラーにVRAMを実装した.taltalp.hatenablog.jp前回までに作成したVGA表示回路は表示画像を回路で作成していたため特定の画像以外は表示することができなかった.今回はVRAMとNIOS2を実装してソフトウェアから画像を変えられるように…

DE0でVGA出力

DE0でVGA出力をしてみた. 今回作成した回路はVGAを出力することが目的であるため,VRAM等の実装は今回はしない. 1.仕様 解像度・・・640×480 水平同期周波数・・・31.25kHz 垂直同期周波数・・・59.5Hz 2.タイミング HS, VSのタイミングチャートは図のように…

Nios II で Hello World

Qsysを使用してDE0にNios IIを実装してPCに Hello World! を表示させました.実際には自分でソースコードを書いたりだとかはほとんどしておらず,どちらかと言えばQuartusとQsysの使い方がメインです. 1.使用した環境・Windows7・Quartus II Ver.13.1 Web Edit…