FPGA
はじめに 今回は定期的にやってくる駄文というかポエム回です。 ソフトウェア開発において「テスト」と言うものは非常に重要です。一方でLSI開発などを含めて、RTL界隈では「検証」という言葉をよく聞きます。 業種や人によっても用語の定義が微妙に違ったり…
はじめに タイトルの通りなのですが、本来産業用カメラは、製造や流通など産業の現場で活躍する精密かつタフな高品質なカメラであり、現場の要望に応えて進化を繰り返してきたものなのですが、本記事は 本来の用途と違う 研究開発に使う場合の課題について触…
はじめに 私はこれまで ZYBO(Zynq-7000) や KV260(ZynqMP) の Linux 環境を活用してセルフコンパイル環境をメインに活用してきました。 Linux では gcc も rust も動きますので、OpenCV などの C++ や Rust などネイティブコンパイラでバージョン依存の強い…
はじめに 先日 FPGAのリセットについての考察 - Ryuz's tech blog という記事を書きました。 アクセス解析見てみると意外とアクセスが多いページのようで、まじめに普通のFPGAのリセットの話を知りたくて来られた方に申し訳ないので、少しだけそういう話も書…
はじめに ご承知の通り MIPI 仕様自体は無償公開あれているような代物ではありませんが、多くの FPGA ベンダーが、無償の IP コアを提供していることもあって、趣味レベルであっても FPGA などで画像取り込みができるような状況になっています。 一方で、そ…
はじめに GOWIN の FPGA は低価格で買えるものも多いため、夏休みの自由研究的に使う方も多いのではないでしょうか? GOWIN EDA はユーザー登録を行って、ライセンスファイルを発行してもらわないと使う事が出来ません。 私は、USBを繋いでプログラムを行っ…
はじめに 最近 GOWIN を触る機会も多いのですが、他のベンダーさんの FPGA とくらべてあまり深いところまでは触っていません。 また、 AMD の CARRY8 のようなものが無いのではという噂も聞いたのと、LUT4 であるという点なども加味して、大雑把に性能を調べ…
今作っている Spartan7 + オンセミ社 PYTHON300 イメージセンサ、やっと絵が出始めました。 お手製のPYTHON300カメラモジュール で、いつも通りの LUT-Network への応用や、オプティカルフロー計測、その他リアルタイムアクティブセンシングいろいろ考えて…
はじめに もう専門の方から一直線にマサカリが飛んできそうなタイトルで怖いんですが、ちょうど今週末は非同期周りを整理していて X でも少し盛り上がったのでネタにしておきます。 組み込みやっていると、チャタリングとかシュミットトリガとかはよく聞くわ…
はじめに 当方はFPGAを使ったリアルタイムコンピューティングをメインに活動しております。 流行りの深層学習は私の中では One of them でしかないつもりなのですが、それでも昨今どうしても無視はできないので、リアルタイムコンピューティング観点でCNNを…
はじめに 当サイトはリアルタイムコンピューティングの為に、ハイフレームレート撮影などサンプリングレートを高めることでリアルタイム性を上げることをことあるごとに推奨しています。 それはどういうことかというのを少し説明したいと思います。 高速度撮…
はじめに 昨今、深層学習を中心に例えば画像認識を行うにしても大量の演算能力を投入して、高度な結果を得ようとするものが増えました。 しかしながら、同期デジタル回路による計算機が持つ演算能力には上限があり、演算器数×周波数以上の時間当たりの演算は…
はじめに 2025年3月1日より、個人事業主として開業申請いたしました。 当面は続けられる限りフリーランス的な働き方を併用しながら、今まで自分が挑戦できなかった分野の開発に取り組んでいこうと考えております。 で、サラリーマン的に趣味的に作っていた L…
はじめに ファミコン世代にとっては当たり前に通じてしまう「リセットボタン」も、だんだん通じにくくなっているという話も聞きます。 今回はFPGAのリセットについて考えてみたいと思います。同期リセットとか非同期リセットとか、負倫理/正論理とかの話で…
FPGAをはじめてみたい 「FPGAという何やら面白いものがあるらしくて、使うとすごい計算やいろいろなデバイス制御ができるらしい。」 と、興味を持って頂ける方はそれなりにいらっしゃるのではないでしょうか? 早速なんらかのHDLなる言語を勉強し、例えば Sy…
はじめに BinaryBrain の最初のコミット日を調べてみると 2018年8月1日でした。 github.com LUT-Network という名前のネットワークとその学習環境である BinaryBrain の開発を始めてから 6 年以上が経ったことになります。 世の中の AI が LLMなどで盛り上が…
はじめに 今更と言うところはあるのですが、FPGAプログラミングを知らない人に説明する機会も増えてきたので少し記事にしておきます。 FPGA とは 昔電子工作したときに撮影した写真が出てきたので張っておきますが、いわゆるこんなやつです。 こんなやつです…
はじめに FPGAなどでデータ処理をする場合、その並列性を活かして高性能な処理をするという事はしばし求められることです。 その際にしばし使われるデータ並列とパイプライン並列を整理しておきたいと思います。 データ並列と言うと、AVX-2 のような SIMD(Si…
はじめに 今日は、最近のプロセッサをウォッチしている中での素人の妄想を書いてみます。 プロセッサの性能と規模の法則としてポラックの法則というものがあります。 これは簡単に言うとプロセッサの性能を2倍、3倍、4倍にするには、プロセッサに適用する…
はじめに だいぶ前に、RISC-V もどきの最小セットを作って遊んでいましたが、今回はその延長でもう少し遊んでみました。 動機としては レジスタファイルの構成に LUTRAM や BlockRAM を使うのだから、レジスタ32個だけじゃもったいない 複数スレッド動かすな…
はじめに KV260 には K26 SoMが搭載されています。実際には KV260 にはコネクタが片方しかついてないとかいろいろあるのですが、一旦そこは置いておいて、K26 SoM モジュールをデータ帯域観点で見てみたいと思います。 以前にリアルタイムコンピューティング…
はじめに 過去に PS-PL間の通信帯域やレイテンシを実測して実験していましたが、少しドキュメントから読み取れる仕様についても整理しておきたいと思います。 独自の調査であり、正しく読み取れていない可能性はあるので、誤りはあるかもしれないことを予め…
はじめに 筆者は過去に幾つかこの手のパフォーマンス検証を行い、下記のブログを書きました。 Ultra96V2(ZynqMP) のPS⇔PL間性能計測 - Ryuz's tech blog KV260 で PS から PL へのシングルアクセス速度を測ってみる 基本的には MPU を自由に弄りやすい、RPU(…
はじめに 私が FPGA に興味を持ち Verilog を勉強し始めたころこんなブログを書いていました。 遥か昔、「モジュールは全部FF出ししないとだめよ」という事を言っていた先輩の言葉を真に受けて、何とかして ready も FF 出ししようと、無い知恵を絞って作っ…
はじめに FPGA は各社しばし同期リセット推奨だったと記憶していますが、FF周にはいろいろ機能がついてます。 KV260 (Zynq UltraScale+ MPSoC) 用の合成結果の中身を覗いてみたのでメモです。 普通に書いてみる 私が普段よく書く書き方が下記のような感じで…
なにが起きたのか 下記のようなシーンで何やら Verilator が Operator NOT expects 5 bits on the LHS, but LHS's VARREF 'b' generates 4 bits. というワーニングを出してきた。 logic [3:0] a; logic [3:0] b; logic [4:0] c; assign c = a + ~b; 4bit同士…
はじめに 少し前に、X(Twitter) にこんな絵を張り付けた。 ちょうど BitNet(b1.58) が盛り上がっていて、パラメータ効率の議論が起こっていたときだと思う。 忘れる前にもう少し書いておこうと思う。 上の図では少なくとも DRAM などの外部メモリや、そこへ…
はじめに だいぶ以前、最小限の RISC-V 命令だけ実装して遊んだときに下記のようなレジスタファイルを作りました。 後でいろいろパラメータ変えて計測しようと思いつつ完全に忘れていたので思い出したように実験です。 https://github.com/ryuz/jelly/blob/m…
はじめに 毎度おなじみ当方の LUT-Netは、ネットワークのパラメータをLUTのテーブル値として学習して回路にしてしまう為、外部SDRAMなどのメモリからパラメータをロードしながら演算する必要がありません。 今回はLUT-Net は置いておいて、「もし普通の積和…
はじめに 以前、ZynqMPでリアルタイムOSをFPGA化してみた というRTOSのスケジューリング部分をフルロジックで実装してみましたという記事を書きました。 今度は、それを複数ボード拡張することを目論んで、RTOSらしくリアルタイム保証や時計合わせを行うべく…