2020-06

20Q1.80Z

20Q1 第1週の ACRi ブログ執筆者による座談会 (2)

2020年の第1クォータ (20Q1) の連載もなんとか終了してほっとしているところですが、今後のブログ執筆者や読者の皆様に裏側の事情をお伝えしようと、第1週のブログ執筆者5名をお迎えして座談会 (ビデオミーティング) を開催しました。 2020年6月12日に開催された座談会の2回目です。前回は ACRi ブログを執筆して悪かった点について話してきました。今回は、良かった点です。 大変だったところはこれくらいにして次にいきましょう。今回 ACRi ブログを執筆してみて良かったところ...
20Q1.80Z

20Q1 第1週の ACRi ブログ執筆者による座談会 (1)

2020年の第1クォータ (20Q1) の連載もなんとか終了してほっとしているところですが、今後のブログ執筆者や読者の皆様に裏側の事情をお伝えしようと、第1週のブログ執筆者5名をお迎えして座談会 (ビデオミーティング) を開催しました。 何回かに分けて、2020年6月12日に開催された座談会の様子をお伝えします。 ブログのご執筆ありがとうございました。今回は100分くらいの座談会を予定しています。まず最初に連載の順番で自己紹介をお願いします。その後、ACRi ブログを執筆して悪かっ...
20Q1.10B

FPGA オリジナルボード作成 ~ 失敗しないためのコンフィギュレーション回路

数年前、ある学会で「FPGA の基板を設計して実験装置を作ったけど、コンフィグがうまくいかなくて半年動いていない」というような話を聞きました。壮大な実験の中のメインとなる装置を作っているという研究報告的な発表だったのですが、よくそんな無駄な時間を過ごしているなと驚愕したものです。しかも周りで聞いている人たちも何も答えられない・・ 今回は失敗しないためのコンフィギュレーション回路について説明します。なお、語呂や語感のためにコンフィグといったりコンフィギュレーションといったり表記が揺れますが...
20Q1.09A

Vivado でのブロック図設計

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

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

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

シリアル通信で Hello, FPGA (5)

実用的な回路の設計・実装と動作確認を通じて,ハードウェア記述言語 (HDL) を使った FPGA 上のディジタル回路の設計について学ぶコースの最終回です。 前回までに、シリアル通信 (UART) による文字送信回路を設計し、論理シミュレーションと実機の両方で、1文字を正しく送信できることが確認できました。今回はこの回路をもう少しだけ拡張し、シリアル通信で Hello, FPGA を FPGA から PC に送信し、その結果を確認する……つまり、本コースの最終目標に踏み込みます。 ト...
20Q1.06A

4ビットカウンタでわかる FPGA のための論理回路 入門 (5)

みなさんこんにちは。このコースでは FPGA を使いこなすために理解しておきたい論理回路の基本について説明します。FPGA を使って開発しているけどハードウェアはよく分からないという方は、ぜひお付き合いください。 前回は4ビットカウンタ回路の挙動をシミュレーションで確認しました。また、前回までで論理回路の基礎事項はあらかた説明しています。 今回は、回路設計、最適化に重要なタイミング解析について、よく出てくる用語とともに掘り下げて説明します。 タイミング解析 論理回路は値...
20Q1.05A

スーパーコンピュータでも使われ始めた FPGA (5)

このコースでは、スーパーコンピュータ (以下、ブログの文字数節約のために一般的に使われている略称「スパコン」を使います) にも FPGA が何故使われ始めたのか、FPGA をスパコンに使うことによって何ができるようになるのか、どのような技術的な面白さがあるのか等について紹介していきます。 このコースもいよいよ最終回となりました。最後は Cygnus を使い倒すにあたって、前回の記事で紹介した以外にも解決しなければならない課題を紹介していきたいと思います。 なお、先に謝っておきますが...
20Q1.04A

FPGA を使って基本的なアルゴリズムのソーティングを劇的に高速化 (5)

前回の記事までは、私たちが国際会議 FCCM 2017 (論文 ) で提案した高性能 FPGA ベースのハードウェアマージソータ (Hardware Merge Sorter, HMS) を説明してきました。 コースの最終回となる今回は、その後の研究論文を紹介していきます。 MMS: フィードバックデータパスのない HMS FCCM 2017 の論文で提案した HMS とそのベースラインは「フィードバックデータパス」を含みます。下図はこれらの基本的な構成要素であるマージロジッ...
20Q1.03B

AWS F1 で始めるサーバーサイド FPGA (5)

はじめに 連載の最終回となる今回は、ハードウェアを設計しない方にも理解しておいていただきたい、FPGA アクセラレータの性能に関する基本的な考え方を説明します。また、これを踏まえて前回の記事で動作させた Deflate アクセラレータの性能向上を図ってみます。 アクセラレータの鉄則 前回の記事では、Vitis ライブラリの Deflate アクセラレータを AWS F1 上で動かし、CPU と比べておよそ3.6倍の高速化を確認しました。確かに速くはなったのですが、FPGA を...
20Q1.02A

ロボットでも注目される FPGA ⼊⾨ (5)

前回はロボットのソフトウェア構造における分散処理とそのフレームワークであるROS (Robot Operating System) に焦点を当てて解説をしました。 今回は、ROS に準拠した FPGA コンポーネントの具体的な作成方法を紹介します。更に、今後のロボットにおける FPGA 活用について考え、連載を締めくくりたいと思います。 ROS 準拠 FPGA コンポーネントの作成方法 前回に大まかな構造を示した ROS 準拠 FPGA コンポーネントの作成方法について、具体...
20Q1.01A

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

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