2020-10

20Q3.05B

FPGAを用いた「組合せ問題」の高速計算(2)

前回は、 FPGA のアプリケーションのひとつに「決定問題」や「最適化問題」などの「組合せ問題」があること、決定問題の代表例である SAT、 SAT を最適化問題に拡張した MaxSAT について述べ、また、 FPGA による組合せ問題の高速計算に関する文献を幾つか紹介しました。 今回から、筆者らの事例を題材に、組合せ問題の FPGA による高速計算について触れていきたいと思います。前回も述べましたが、これは、グラフ理論の最大クリーク問題を MaxSAT に置き換え、 FPGA 上で高速...
20Q3.04A

そもそも「FPGA」って何なんですか? (2)

前回、CPU はレシピを見ながら調理し、FPGA はレシピを覚えて調理する、という喩えで違いを説明しました。 第2回では、もう少し詳しく CPU と FPGA の動作の違いを見ていきます。そして「なぜ FPGA を働かせるのが難しい」のかに迫ってみたいと思います。 まずは進化の歴史から 本題に入る前に、CPU と FPGA の進歩の歴史について見ていきます。 CPU の進化の方向性 CPU の歴史は、コンピュータの歴史そのものと言っても良いほど劇的な進化を遂げてき...
20Q3.03B

FPGA の高速シリアルトランシーバ (2)

連載2回目となりました。前回は FPGA 設計ツールはさわらずに、高速シリアルトランシーバに関する基本的なことがらを紹介しましたが、「習うより慣れろ」とか「百聞は一見にしかず」と申しますので、今回は難しい設計は一切やらずに、Xilinx の Aurora コアをぽちぽちっと生成して、シミュレーションで動かしてみることにしましょう。シミュレーションなので、トランシーバのポートを持った FPGA ボードがなくてもできますし、ボードをお持ちの方はちょっと手を加えれば実機で動かすこともそれほど難しくあ...
20Q3.02A

高位合成で加速するアクセラレータ開発 (2) ~ 高位合成と C ベース設計 1章

すべての現象は他のものに依存して名前を与えられたことによって生じ、存在しているダライ・ラマ十四世 「空の智慧、科学のこころ (集英社新書)」より(共著 : 茂木健一郎) 高位合成と C ベース設計 ~はじめに 皆さん、はじめまして。Xilinx で FPGA を含む HW/SW の高位設計およびツールフローを担当している、黒田と申します。今回 Xilinx からの第3期ブログ連載 (全5回) の3回分を使い、対象がエンベか?/サーバーか?にかかわらず、高位合成 (High-Leve...
20Q3.01B

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

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

FPGA で作る暗号は危険? (1)

はじめに みなさんはじめまして。本コースを担当するゴフェルテックの川西です。ゴフェルテックは FPGA を使用して暗号を安全に実装する方法を岡山大学と共同で研究開発しています。 ここで注意して頂きたいのは「安全な暗号」の研究ではなく「暗号を安全に実装する方法」を研究しているところです。いまひとつピンとこないかと思いますが、実は FPGA に暗号機能を搭載するとき、十分に注意を払わないと「サイドチャネル攻撃」と呼ばれる攻撃に対して脆弱な暗号機能になってしまい、暗号で最も重要な暗号鍵を...
20Q3.06B

FPGA と予測不可能性と乱数 (1)

愛知工業大学の藤枝です。今期は2つのコースを担当することになりました。 普段は FPGA を使って何か面白いことをしたいと思って研究を進めているのですが、縁あってここ数年ほど、 FPGA の素子を使った 真性乱数生成器 (TRNG; True Random Number Generator) の設計法やその応用について研究しています。このコースでは、そもそも乱数って何?というところから、TRNG に求められる要件、また FPGA 向けのいくつかの TRNG の設計について、ACRi ブロ...
20Q3.05B

FPGA を用いた「組合せ問題」の高速計算 (1)

この連載では、 FPGA の応用事例として、「組合せ問題」を高速に解く試みについて触れていきます。 FPGA のアプリケーションとしては、画像処理や深層学習 (いわゆるAI) などが有名ですが、組合せ問題を FPGA で高速に解こうという試みは FPGA 研究の比較的早い時期 (90年代末) に起こり、今日に至っています。 この連載では、組合せ問題の定義や用途、組合せ問題を解くためのアルゴリズム、その FPGA を用いた高速化に関して、実装例などを交えて紹介します。なお、初回は FPGA...
20Q3.04A

そもそも「FPGA」って何なんですか? (1)

皆さん、こんにちは。ACRi ブログ第3期の第4コースを担当する飯田です。 このコースでは、タイトル通り「そもそもFPGA って何」という謎に迫っていきます。何となく判っているような、いないような FPGA の不思議にこたえていければと思っています。 例えば、FPGA ってどうやって生まれてきたのかとか、どうして配置配線に時間がかかるのかとか、結局、CPU や GPU と何が違うのかとか、FPGA にまつわる話をしていきます。 このコースは、高校生から大学1年生ぐらいでも理解...
20Q3.03B

FPGA の高速シリアルトランシーバ (1)

このコースでは、最近の高性能 FPGA にはほぼもれなく搭載されている高速シリアルトランシーバを使ったシリアルリンクについて紹介していきたいと思います。高速シリアルトランシーバは PCI Express や Ethernet, USB のような標準インタフェイスを FPGA に実装する際にも用いられますし、FPGA どうしを直結するための専用のプロトコルも各 FPGA ベンダから提供されており、広く応用されています。多くの場合、これらは IP コアによってブラックボックス化されていて、設計者が...
20Q3.02A

高位合成で加速するアクセラレータ開発 (1) ~ ACRi ルームで体験してみよう

この記事では、ACRi ルーム と PYNQ で、高位合成を使った FPGA 開発フローを「超」お手軽に体験してみましょう。C と Python しか出てきませんので FPGA 初心者の方もご安心ください。
20Q3.01B

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

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