FC2カウンター FPGAの部屋 Vivado 2014.4 でLED4ビットのAXI4 Lite Slave IPをウィザードで作る1(仕様)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vivado 2014.4 でLED4ビットのAXI4 Lite Slave IPをウィザードで作る1(仕様)

今回は、2月中旬に行うVivado and ZYBO Linux勉強会に向けて、ライブ・コーティング(参加者と一緒にその場で、自分でやりながら、参加者にも同時にやってもらう)する LED4bitのAXI4 Lite Slave IPを作っていこうと思う。 前回は、XPSでAXI4 Lite Slaveバス・プロトコルまですべて自作だったが、今回は、Vivado 2014.4 で AXI4 Peripheral ウィザード機能で作っていこうと思う。 なお、2日目にu-boot や Digilent Linuxカーネルのコンパイルを行うため、VirtualBox上にインストールしたUbuntu上にVivado 2014.4をインストールしてライブ・コーティングを行う。
ライブ・コーティングではIP Integratorを使用してIPベースでの構築を行う。LEDを制御するAXI4 Lite SlaveのカスタムIPを作るわけだ。しかし、自作カスタムIPが間違っている場合もある。その時のために、その修正方法を学ぶという意味で、わざと間違えたHDLコードを入れておいて、エラーが出てからエラーのあるIP を修正し、正しくコンパイルを行うという手順でやってみようと思う。つまりIP の修正方法も学ぶという意味だ。通常のセミナでは、正しいHDLコードしか提供されていないと思うのだが、やはり間違っていた時の修正方法も学べたほうが良いと思う。普通は自作したIPは修正する必要が有ることが殆どだろう?

仕様としてはZedBoardからZYBOになって、LEDが4個になったのが違うだけだ。以前に、GitHubに上げてあるVivado_ZYBO_LED_test2 と同じ動作になるが、IP Packager のAXI4 Peripheral ウィザード機能でAXI4 Lite Slave プロトコルを自動生成するところが異なる。

下に仕様を示す。
4つのLEDを制御するIOポートを用意して、値を設定するレジスタを用意する。更に、コマンド・レジスタを用意する。そこには、LEDを+1するコマンド・ビットを用意する。+1する時のクロックのカウント値を決めるレジスタと、LEDの点灯値を表示するレジスタも必要だ。よってレジスタ構成は次の通りになる。

オフセット0:コマンド・レジスタ(R/W)
 ビット0:1 - LEDの値を+1する 0 - LEDの値はそのまま (デフォルト値は0)
 ビット31~1:リザーブ
オフセット4:LED値のロード・レジスタ(R/W)
 ビット7~0:8ビット分のLEDの値
 ビット31~8:リザーブ(Read時はすべて0)
オフセット8:現在のLEDの値のReadレジスタ(Read Only)
 ビット7~0:8ビット分の現在のLEDの値
 ビット31~8:すべて0
(2014/12/16:AXI Lite Slave ウイザードだど実装が難しいので削除)
オフセットC:LED値を+1する時のカウント値(R/W)但し、動作クロックは100MHzとする
 ビット31~0:LED値を+1する時のカウント値


IP Packager のAXI4 Peripheral ウィザード機能でAXI4 Lite Slaveを作ると生成されるレジスタの値は4個になるので、ちょうどデフォルト値でOKとなる。
  1. 2014年12月12日 04:38 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/3010-72208b02
この記事にトラックバックする(FC2ブログユーザー)