2020-04

20Q1.08B

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

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

Vivado のインストールと使いかた (2) 基本フローと LED 点滅回路の動作確認

FPGA の設計は様々な言語で行うことが出来て、ツールもかなり複雑になっているので、ここでは VHDL による最も簡単な LED 点滅回路の作成フローを解説します。以下、 Vivado の起動と新規プロジェクトの作成ソースコード (VHDL) の作成制約ファイル (XDC) の作成とビットストリーム・ファイルの生成FPGA への書き込み の順で解説します。 Vivado の起動と新規プロジェクトの作成 1.Vivado を起動します。類似のものに Vivado HLS ...
20Q1.07A

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

実用的な回路の設計・実装と動作確認を通じて,ハードウェア記述言語 (HDL) を使った FPGA 上のディジタル回路の設計について学ぶコースの第2回です。 前回は、順序回路を HDL で記述するときの基礎をいくつか確認しました。今回は、前回に学んだことを踏まえて、シリアル通信 (UART) による文字送信の回路を HDL を用いて設計していきます。 シリアル通信 (UART) とは UART の概要 機器の間で1ビットずつデータを送る通信方式のことを、シリアル通信といい...
20Q1.06A

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

みなさんこんにちは。このコースでは FPGA を使いこなすために理解しておきたい論理回路の基本について説明します。FPGA を使って開発しているけどハードウェアはよく分からないという方は、ぜひお付き合いください。 前回の記事では論理代数の基本で論理演算とそれに対応する論理回路について説明しました。今回は、論理回路の重要な要素をさらにいくつか紹介しつつ、広く用いられているクロック同期回路までを説明します。今回までの内容でディジタル回路を理解するために必要な基本的な要素を習得できます。 ...
20Q1.05A

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

このコースでは、スーパーコンピュータ (以下、ブログの文字数節約のために一般的に使われている略称「スパコン」を使います) にも FPGA が何故使われ始めたのか、FPGA をスパコンに使うことによって何ができるようになるのか、どのような技術的な面白さがあるのか等について紹介していきます。 第2回目のこの記事では、いよいよスパコンに FPGA がなぜ必要なのかを紹介していきます。 スパコン分野の研究者が注目する FPGA の3大要素 前回の記事で、スパコンのアクセラレータとし...
20Q1.04A

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

この記事では、私たちが国際会議 FCCM 2017 (論文 ) で提案したソーティングを高速化するための基本的なアイデアを解説していきます。提案したアイデアのベースラインは、2014年の国際会議 FPGA でスタンフォード大学の Casper と Olukotun によって発表された方式 (論文 ) です。 前回の記事で説明したように、これまで提案された FPGA ソーティングアクセラレータの基本的な構成要素は、2つのソートされた系列を1つの系列にマージするマージロジック回路です。一般に...
20Q1.03B

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

このコースの前の記事はこちら はじめに この連載では AWS F1 サービスを題材に FPGA を使ったアプリケーションのアクセラレートを体験してみる予定です。手を動かし始める前の準備として、この記事では FPGA アクセラレータの開発環境を紹介します。 FPGA の開発と聞くと、Verilog などのハードウェア記述言語を習得しないといけないと思われるかもしれませんが、実は C++ だけで FPGA アクセラレータを開発できる環境が整っています。C++ で 記述できるとはい...
20Q1.02A

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

前回の記事では、ロボットにおけるソフトウェア処理を高速化する (マクロ) 視点での FPGA 活用と、ロボットを構成する電気信号レベルでの入出力や制御に関する (ミクロ) 視点での FPGA 活用について、大枠を考えました。今回は、ロボットの目的や定義を考えた上で、小さいロボットシステムの事例を通じて FPGA が活用できる場面がどこにあるかを見ていきます。 ロボットの定義 さて、そもそも「ロボットとは何」でしょう? 時代によってロボットの定義は変化しており、「ロボットについ...
20Q1.01A

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

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

物理計測のための FPGA の使い方 (1) ~FPGAを選ぶポイント~

みなさん、はじめまして。 筆者は大学の研究室(主に物理系)や独立行政法人〇〇研究機構といった顧客に「計測用カスタム FPGA 基板」を作るという仕事をしています。大学以外にも一般の企業向けに産業用カメラを作ったり、計測器を作ったり、あるときは自社製品として FPGA 評価ボードを作ったりと、とりとめもなくいろいろなことをやっています。 実際には基板を作るだけではなく、ADC や DAC まわりのアナログ設計や、FPGA の回路設計、カスタムファームウェアから PC 側のソフトウェア...
20Q1.09A

Vivado のインストールと使いかた (1) HLx Edition WebPACK の概要とインストール (Windows編)

ここでは Xilinx 社の FPGA の開発環境である Vivado のインストール手順を解説します。Vivado は、HDL からビットストリームファイルの生成、FPGA への書き込みまでの一番下位の部分を担当するツールです。中規模までのほとんどの FPGA は無償版の WebPACK というバージョンで開発できます。下記よりダウンロードできます。 対応 OS は、Windows と Linux です。Ver.2019.2 で対応する OS は、具体的には次の通りですが、今後...
20Q1.08B

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

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

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

愛知⼯業⼤学の藤枝と申します。 普段は電気系の学⽣さんにディジタル回路や計算機システムを教えつつ、FPGA を使って何か⾯⽩いことができないかと⽇々⼿を動かしています。 このコースでは、実用的な回路の設計・実装と動作確認を通じて、ハードウェア記述言語 (HDL) を使った FPGA 上のディジタル回路設計について学んでいきます。具体的には、PC と FPGA との最もお手軽な通信手段であるシリアル通信 (UART ともいいます) を使って、FPGA から PC に対して「Hello, F...
20Q1.06A

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

みなさんこんにちは。このコースでは FPGA を使いこなすために理解しておきたい論理回路の基礎について 5 回にわたって説明します。RTL (Register Transfer Level) で FPGA 開発をするための入門になります。また,高位合成で開発をしていても、FPGA の性能を引き出すためには自分で記述するコードがどのようなハードウェアになるかを理解するための知識です。電気・情報系の大学の 2 年生くらいで学ぶ内容ですが、ハードウェアはよく分からないという方はぜひお付き合いくださ...
20Q1.05A

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

みなさんはじめまして。ACRi ブログ第1期の6番目のコースを担当する小林です。 このコースでは、スーパーコンピュータ (以下、ブログの文字数節約のために一般的に使われている略称「スパコン」を使います) にも FPGA がなぜ使われ始めたのか、FPGA をスパコンに使うことによって何ができるようになるのか、どのような技術的な面白さがあるのか、を紹介していきます。 第1回の記事ではいまどきのスパコン事情を紹介します。 そもそもスパコンとは? 「スーパーコンピュータ」と...
20Q1.04A

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

みなさんこんにちは。ACRi ブログ第1期の4番目のコースを担当するティエムです。 このコースは、FPGA やアダプティブコンピューティングの研究論文をその著者が紹介するシリーズの第一弾です。科学技術の進歩のために、研究者は日々難題に取り組んでいます。 アダプティブコンピューティングの国際会議で発表された研究成果から、選りすぐりの研究論文を紹介します。 このコースでは、2017年5月に開催された FPGA の主要な国際会議 FCCM (The 25th IEEE Internat...
20Q1.03B

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

はじめに 何気なく利用しているインターネットサービスの多くはデータセンターで運営されており、今やデータセンターは社会になくてはならない重要な存在となっています。道路や水道と同様に私たちの生活に欠かせないインフラのひとつと言っても過言ではないでしょう。そのようなデータセンターの中で FPGA をアクセラレータとして利用する事例が増えています。 全5回を予定しているこの連載では、アマゾン・ウェブ・サービス (AWS) を題材に、データセンターでの FPGA の活用事例と開発環境を紹介し...
20Q1.02A

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

みなさんはロボットと聞いて何をイメージするでしょうか? 人型ロボットや動物型ロボット、もしかしたら空飛ぶロボットでしょうか。工場で働く産業用ロボット・災害救助ロボットや、お料理ロボット・お掃除ロボットをイメージするかもしれません。 色々なロボットがありますが、みなさんもご存じの通り、現在のロボットは「特定の作業は人間より得意(高精度・高速)だけど、人間の作業の代わりをやるのは難しい」という状況です。 近い将来、ロボットがもっと知的になってもらい社会で活躍するためには、どうしたらよい...
タイトルとURLをコピーしました