Takefumi MIYOSHI

ACRiルーム

ACRiルームのDE10-Liteを使ってみよう

ACRi ルームには、Intel の FPGA である MAX10 を搭載した DE10-Lite が9台設置されています。この記事では、Intel の FPGA 開発ツールである Quartus Prime Lite を使って、DE10-Lite 向けの設計をする手順を紹介します。 Quartus Primeの起動 DE10-Lite は、vsA01 から vsA09 までの9台のホストで利用することができます。まずは、そのうちのどれかに リモートデスクトップ や X2Go を使...
21Q1.03A

ACRi ルームの FPGA で○×ゲームを作って遊んでみよう (2)

ACRiルームのFPGAで○×ゲームを作って遊んでみよう ACRi ルームで楽しく FPGA 開発をはじめてみる題材としてゲームを作ってみるのはいかがでしょう。この連載では、FPGA を使った○×ゲームを作ることを題材に FPGA 開発をはじめてみることにします。リソースは○×ゲームで FPGA 開発をはじめてみようにあります。 今回の記事のねらい 開発の流れは、○×ゲームで FPGA 開発をはじめてみよう (RTL 編) をご覧ください。この記事では、○×ゲームがどう作られ...
21Q1.03A

ACRi ルームの FPGA で○×ゲームを作って遊んでみよう (1)

ACRi ルームではリモートで FPGA を利用できる環境が提供されています。セットアップ済みの開発ツールを使ってすぐに FPGA 開発をはじめることができます。…と言われても、さて何からはじめてみよう、という人もいるかもしれません。身近な問題から FPGA に向くものを選んで実装するというのは (残念ながら) 簡単ではないので仕方ないことだと思います。 そこで、楽しく FPGA 開発をはじめてみる題材としてゲームを作ってみるのはいかがでしょう。この連載では、FPGA を使った○×ゲーム...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (5)

こんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように紹介できればと思ってます。 前回は、Synthesijer における内部情報の変形処理として並列化とチェイニングの様子を紹介しました。最終回となる今回は、高位合成による高速化の効果を楽しめるパイプラ...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (4)

こんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように紹介できればと思ってます。 前回は、Synthesijer がプログラムをハードウェア・ロジックに変換する過程を紹介しました。今回は、内部情報の変形処理として、前回の例で登場した並列化とチェイニング...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (3)

みなさん、こんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように紹介できればと思ってます。 前回は、Synthesijer のコンセプトを紹介し、Synthesijer が Java をハードウェア・ロジックに変換する処理の流れを紹介しました。第1回、...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (2)

みなさんこんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように書いていくもりです。 前回は、高位合成ツールとは何かについて説明し、また、このシリーズのベースとする Synthesijer を簡単に紹介をしました。今回は、Synthesijer のコンセ...
20Q2.04B

Synthesijer と高位合成ツールの作り方 (1)

みなさんこんにちは。この「Synthesijer と高位合成ツールの作り方」のシリーズでは、全5回を通じて Synthesijer をベースに FPGA 向けの簡単な高位合成処理系を作る方法を紹介していきます。例は Java ですが、お気に入りの言語向けの処理系を開発する足がかりとして利用できるように書いていくもりです。 第1回の今回は、高位合成ツールとは何かについて説明し、また、このシリーズのベースとする Synthesijer を紹介します。 高位合成ツールとは? FPG...
20Q1.08B

FPGA をもっと活用するために IP コアを使ってみよう (5)

みなさんこんにちは。この「FPGA をもっと活用するために IP コアを使ってみよう」のシリーズでは、全5回を通じて FPGA を使って実用的なアプリケーションを実装するために必要不可欠な IP コアの使い方を紹介していきます。 最終回となる第5回の今回は、ボトムアップ的な FPGA アプリケーション開発で役に立つ FIFO の使い方を紹介します。FIFO を使うと、いくつかのモジュールでデータを受け渡す時に、それぞれの細かい動作タイミングを気にする必要がなくなります。ソフトウェア・プロ...
20Q1.01A

PYNQ を使って Python で手軽に FPGA を活用 (5)

みなさんこんにちは。このコースでは、Python で FPGA を手軽に利用できる PYNQ とその活用方法を紹介していきます。ゴールは、Jupyter Notebook の環境を使って Python から手軽に FPGA を利用できるようになることです。前回は、自分で設計したロジックを PYNQ 上で利用する開発手順を紹介しました。 最終回となる今回は、PYNQ を使って本格的なアプリケーションを実装するために必須の PS (プロセッサ)と PL(プログラマブルロジック) でのデータ共...
20Q1.08B

FPGA をもっと活用するために IP コアを使ってみよう (4)

みなさんこんにちは。この「FPGA をもっと活用するために IP コアを使ってみよう」のシリーズでは、全5回を通じて FPGA を使って実用的なアプリケーションを実装するために必要不可欠な IP コアの使い方を紹介していきます。 第4回の今回は、FPGA の中に埋めこまれているメモリを利用する IP コアを紹介します。メモリは実用的なアプリケーションの作成には必須の機能です。すぐには使わないかなという人も、道具の一つとして覚えておくだけでも損はありません。 メモリってなんだっけ? ...
20Q1.01A

PYNQ を使って Python で手軽に FPGA を活用 (4)

みなさんこんにちは。このコースでは、Python で FPGA を手軽に利用できる PYNQ とその活用方法を紹介していきます。ゴールは、Jupyter Notebook の環境を使って Python から手軽に FPGA を利用できるようになることです。 前回は、いくつかの例を交えて PYNQ を使った FPGA の操作方法を紹介しました。今回は、自分で設計したロジックを PYNQ 上で利用する開発手順を紹介します。 開発の手順 自分で設計したロジックを PYNQ の上で...
20Q1.08B

FPGA をもっと活用するために IP コアを使ってみよう (3)

みなさんこんにちは。この「FPGA をもっと活用するために IP コアを使ってみよう」のシリーズでは、FPGA を使って実用的なアプリケーションを実装するために必要不可欠な IP コアの使い方を紹介していきます。 第3回の今回は、FPGA 内部のロジックに供給するクロック周波数を指定するための IP コアを紹介します。 FPGA ボードに搭載されているクロックより高い周波数でロジックを駆動したい、ちょっと回路が大きくなってしまったから周波数を低くしたい、接続するデバイスにあわせた周...
20Q1.01A

PYNQ を使って Python で手軽に FPGA を活用 (3)

みなさんこんにちは。このコースでは、Python で FPGA を手軽に利用できる PYNQ とその活用方法を紹介していきます。ゴールは、Jupyter Notebook の環境を使って Python から手軽に FPGA を利用できるようになることです。 前回は、PYNQ の紹介とセットアップ方法を紹介しました。第 3 回となる今回は、PYNQ を使った FPGA の操作をいくつかの例を交えて紹介します。 PYNQ が提供する環境 PYNQ では、ZYNQ の PS (ar...
20Q1.08B

FPGA をもっと活用するために IP コアを使ってみよう (2)

みなさんこんにちは。この「FPGA をもっと活用するために IP コアを使ってみよう」のシリーズでは、全 5 回を通じて FPGA を使って実用的なアプリケーションを実装するために必要不可欠な IP コアの使い方を紹介していきます。 第 2 回の今回は、FPGA 内部に仮想的なスイッチを挿入できる IP コア VIO の紹介と使い方を紹介します。ちょっとした動作の条件を操作したい場合や、複雑な回路をデバッグする際にとっても役に立つ IP コアです。 このコースの前の記事はこちら ...
20Q1.01A

PYNQ を使って Python で手軽に FPGA を活用 (2)

みなさんこんにちは。このコースでは、Python で FPGA を手軽に利用できる PYNQ とその活用方法を紹介していきます。ゴールは、Jupyter Notebook の環境を使って Python から手軽に FPGA を利用できるようになることです。前回は、「そもそも FPGA ってなに?」というタイトルで FPGA の紹介をしました。第2回の今回は、本題の PYNQ を紹介します。 PYNQ って何? - Python による FPGA 操作 PYNQ は、PythonでF...
20Q1.08B

FPGA をもっと活用するために IP コアを使ってみよう (1)

みなさんこんにちは。この「 FPGA をもっと活用するために IP コアを使ってみよう」のシリーズでは、全5回を通じて FPGA を使って実用的なアプリケーションを実装するために必要不可欠な IP コアの使い方を紹介していきます。 IPコアを使いこなせるようになると、既に開発されているモジュールの流用で開発コストを低く抑え、自分のアプリケーションの開発に注力できるようになりますよ。第一回では「IP コアって何?どんなもの?」について説明します。 IP コアってなに? IP コ...
20Q1.01A

PYNQ を使って Python で手軽に FPGA を活用 (1)

みなさんこんにちは。ACRi ブログの1番目のコースでは5回にわたるブログ記事を通して、Python で FPGA を手軽に利用できる PYNQ とその活用方法を紹介していきます。扱いやすい Jupyter Notebook の環境を使いながら、Python で手軽に FPGA の開発を体験するのがゴールです。 第1回のこの記事では「そもそも FPGA ってなに?」という疑問に答えていきます。 FPGAって何? FPGA こと Field Programmable Gate ...
タイトルとURLをコピーしました