IPインテグレータ

20Q3.01B

AXI でプロセッサとつながる IP コアを作る (5)

AXI を使ってプロセッサと連携する回路の設計例について説明するコースも、いよいよ最終回となりました。今回は、前回作成したインタフェース変換回路を使い、専用計算回路 (コプロセッサ) の一例としてステンシル計算コプロセッサを作成し、C 言語によるソフトウェア実装と性能を比較してみます。 なお、第4回~第5回で使用する回路の SystemVerilog 記述は、GitHub からダウンロードできるようにしています。今回は、主に stencil/hdl/stencil_opt.sv を取り上...
20Q3.01B

AXI でプロセッサとつながる IP コアを作る (4)

この記事は、AXI を使ってプロセッサと連携する回路の設計例について説明するコースの第4回です。今回からは、いよいよフル機能の AXI を扱っていきます……が、必ずしもその機能の全てを使うわけではありません。そのため、今回はまず AXI のインタフェースをより少ない種類の信号で制御する、インタフェース変換回路を設計してみます。 なお、第4回~第5回で使用する回路の SystemVerilog 記述は、GitHub からダウンロードできるようにしています。今回取り上げる回路記述に対応するフ...
20Q3.01B

AXI でプロセッサとつながる IP コアを作る (3)

この記事は、AXI を使ってプロセッサと連携する回路の設計例について説明するコースの第3回です。前回は、AXI-Lite で制御や少量のデータのやりとりを行うインタフェース回路について説明しました。今回は、AXI-Stream でテストパターンの動画像を生成する IP コアを作成し、これらを既存の IP コアと組み合わせて、HDMI 接続のディスプレイにテストパターンを表示させるシステムを構築します。 今回示すシステムは HDMI を扱うため、残念ながらその動作を ACRi ルームの検証...
20Q3.01B

AXI でプロセッサとつながる IP コアを作る (2)

この記事は、AXI を使ってプロセッサと連携する回路を作ることを目標に、そうした回路の設計例について説明するコースの第2回です。 前回は、Zynq と AXI のインタフェースの概要を説明しました。今回は、AXI-Lite の利用例として、プロセッサとの制御や少量のデータのやりとりを行うインタフェース回路について説明します。 なお、今回~第3回で使用する回路の SystemVerilog 記述は、GitHub からダウンロードできるようにしています。今回取り上げる回路記述に対応する...
20Q3.01B

AXI でプロセッサとつながる IP コアを作る (1)

愛知工業大学の藤枝です。2020年第2クォーター (20Q2) で担当したコース「IP の世界からこんにちは」で、AXI (Advanced Extensible Interface) の詳しいことはまた別の機会に……という話をしたのですが、案外早くその機会がやってきました。 このコースでは、AXI を使ってプロセッサと連携する高性能な計算回路や応用システムを設計するための基礎技術として、AXI の詳細とインタフェース変換回路の例、それらを使った計算回路の設計例について説明します。 ...
20Q2.02A

IP の世界からこんにちは (5)

IP インテグレータを用いた回路やシステムの設計について学ぶコースも、いよいよ今回が最終回です。前回は、文字送信回路の IP コアを MicroBlaze と組み合わせるための IP コアを作成し、これらを含むブロック図からシステムを合成しました。今回は、このシステムの上で動作するソフトウェアを記述し、動作確認を行います。 なお,今回の内容は基本的に Vivado/Vitis 2019.2 を対象に記述しています。2019.1 以前の Vivado では、こうした FPGA 上の組込みプ...
20Q2.02A

IP の世界からこんにちは (4)

IP インテグレータを用いた回路やシステムの設計について学ぶコースの第4回です。前回までで、シリアル通信による文字送信回路の IP コアを作成し、ブロック図を使った設計で「Hello, FPGA」を PC に送信する回路を作成しました。 今回は、文字送信回路の IP コアを Xilinx 社のソフトプロセッサである MicroBlaze と組み合わせていきます。 テンプレートからの IP の作成 IP パッケージャでテンプレートを生成 第1回 や 第2回 でもざっと紹介...
20Q2.02A

IP の世界からこんにちは (3)

IP インテグレータを用いた回路やシステムの設計について学ぶコースの第3回です。前回は、IP パッケージャを使って、シリアル通信による文字送信回路の IP コアを作成しました。 今回は、これらと既存の IP コアとを組み合わせて、ブロック図を使った設計で「Hello, FPGA」を PC に送信する回路を作成して、その動作を確認していきます。 ブロック図作成の下準備 制御部の回路の再考 今回作成する回路は、「シリアル通信で Hello, FPGA (5)」(以下、「以前...
20Q2.02A

IP の世界からこんにちは (2)

IP インテグレータを用いた回路やシステムの設計について学ぶコースの第2回です。前回は、IP インテグレータの概要と、いくつかの既存の IP コアの例を見てきました。今回は、自作の IP コアをこれら既存の IP コアと組み合わせて使うために、IP パッケージャというツールの使い方を学びます。 今回の内容に関する Xilinx 社の公式ドキュメントの文書番号はUG1118となります。詳細な仕様などは上記ドキュメントを参照してください。 IP コア作成の下準備 IP コア作成の...
20Q2.02A

IP の世界からこんにちは (1)

愛知工業大学の藤枝です。2020年第1クォーター (20Q1) のコース「シリアル通信で Hello, FPGA」に引き続き、FPGA 上のディジタル回路設計の基本を学ぶコースを担当します。 このコースでは、「シリアル通信で Hello, FPGA」で作成した文字送信回路をパッケージ化して、他の回路やチップ内のプロセッサと組み合せて使う方法について学びます。先のコースの最後で、作り込んだ回路のパーツは貴重な財産 (Interectural Property) である……と書きましたが、ま...
20Q1.09A

Vivado でのブロック図設計

作成する回路が大きくなってくると、回路を機能毎にモジュール化し、そのモジュール間の接続関係をブロック図で描くと分かりやすくなります。複数のモジュールを1つにまとめた階層構造にすることも可能です。 モジュール化する際のポイントは、その機能の中で後から変更したい機能をパラメータ化して、モジュールの外から入力できるようにすることです。例えば LED の点滅回路では、点滅周期を設定できるようにするなどが考えられます。 ここでは Vivado のインストールと使いかた (2) で作成した L...
タイトルとURLをコピーしました