はじめに こんにちはみみです。 この記事は UEC Advent Calendar 2024の 19 日目の記事です。 書いているのは 2025 年です。(遅れてすいませんでした) 昨日は、Kanaru さんの Minecraft で始める論理設計学 でした。今回は、これの内容を ハードウェア 記述言語の Veryl を使って実装してみる、という話です。 Veryl もといハードウェア記述言語について ハードウェア記述言語とは ハードウェア記述言語(HDL)とは、デジタル回路などのハードウェアの構成を記述するための言語です(そのまま)。 例えば、みなさんの馴染みのある AND ゲートや OR ゲートを以下のように記述することができるんです。
FPGAをはじめてみたい 「FPGAという何やら面白いものがあるらしくて、使うとすごい計算やいろいろなデバイス制御ができるらしい。」 と、興味を持って頂ける方はそれなりにいらっしゃるのではないでしょうか? 早速なんらかのHDLなる言語を勉強し、例えば SystemVerilog を少し勉強すれば下記のようなプログラムを書くことが出来ます。 入力ポート a,b から入ってくるデータをクロックサイクル毎に加算してc に出力するロジックのソースです。 module add ( input logic reset, input logic clk, input logic [31:0] a, input logic [31:0] b, output logic [31:0] c ); always_ff @( posedge clk ) begin if ( reset ) begin c <=
言語モデルを高位合成でFPGAに実装してみた Turing株式会社のリサーチチームでインターンしているM1の内山です。 Turing株式会社では大規模基盤モデルによる完全自動運転を目指しており、その実現に欠かせない技術として大規模言語モデルの研究開発を行っています。 Generative AI LLMの広範な知識と思考能力に加え、視覚情報やセンサーデータなどの多様な入力を受け入れることで、車の周囲の状況を正確に認識します。さらに、世界モデルを適用することで、高度な空間認知と身体性を獲得し、実世界に対応した生成AIを実現します。 https://tur.ing/ より引用 しかしながら、従来の大規模モデルはデータセンターという大量のGPU・潤沢な電源・安定した地盤を備えた豊かな環境で処理されるものであり、対して自動車というものは余りにも狭く、電源が乏しく、振動が大きいという劣悪極まりない環境
Switchはイヤホン出力の音がひどいことで有名だ*1。 ブズズズズ………バババババ…… と熱雑音では明らかに説明できない周辺回路のお気持ちが音となって伝わってくる。 そこでUSB DACを使いたいのだが、どうも手持ちだとハイエンド機に限って動かない*2。別なやり方でデジタル音声を取り出さなければ。 取り出し方は様々ある。 ドックのHDMI出力 + S/PDIFスプリッター(TVモード必須) Switch用Bluetoothトランスミッター(ぶっちゃけこれが一番オススメ) Switchが認識できるUSB DDCで同軸デジタルなどにする Raspberry PiのUACガジェット Switchに直に接続できないDACを使いたい場合は、DDC必須*3でゴテゴテしてしまう。 「それなら本体に流れるデジタル信号(I2S)を直接取り出して、S/PDIFに変換するしかないよね!」と思いついた26の夜。
XGMIIの制御信号 XGMIIではEthernetのフレームをSTARTからTERMINATEで囲まれた区間で表します。 また、START は必ずD[7:0]、つまり0番目のオクテットに現れることが規定されています。ただし、これは32bit PCSの場合で、64bit PCSの場合は0番目及び4番目のオクテットにSTARTが現れることに注意が必要です。 STARTの出現位置 Ethernetフレーム送受信中に何かしら異常が発生した場合は、TERMINATEではなく ERROR でフレームを終了します。 正常フレームと異常フレーム 以上より、XGMII経由でEthernetフレームを受信するには、Startを検出して、TerminateかErrorが来るまで間のデータを読み出しつづければよいことがわかります。ただし、前述の通りStartの位置が0オクテット目か4オクテット目か変化するので、
RISC-Vの実装であるHummingBirdを調査していくことにした。 HummingBirdの概要 HummingBirdは中国の大学で開発されたRISC-Vコアで、正式にはE203という名前が付けられている。GitHubのページを参照すると、このHummingBirdを開発した目的はRISC-Vの人気を向上させ、中国でのIoT設計におけるRISC-Vの普及を目指すために開発したと書いてある。 いくつかのアーキテクチャとの違い これはHummingBirdの解説本(中国語)から引用してみる。 ARM Cortex-M0 ARM Cortex-M0+ ARM Cortex-M3 E201 E203 E205 Dhrystone(DMIPS/MHz) 0.84(標準) / 1.21(最適化時) 0.94 / 1.31 1.25 1.171 1.23 1.355 Coremark (Core
このとき、Vivado 2019.1 ではなく Vivado 2019.1.3 を使っている場合、以下のような「ビットストリームが見つからない」というエラーが出てコンフィグROMへの書き込みに失敗します。 ERROR: [Labtools 27-2149] File /opt/Xilinx/Vivado/2019.1/data/xicom/cfgmem/bitfile/spi_xcu50_pullup.bit not found. Check file name and file permissions. JTAG経由でコンフィグROMを書き込むとき、まずターゲットのFPGAにJTAGからコンフィグROMへアクセスする論理がコンフィグレーションされます。このときに書き込まれるビットストリームは (Vivadoのインストール・ディレクトリ)/data/xicon/cfgmem/bitfile
去年と全く同じ内容であれですが、今年はgolangで環境構築してみました。 概要 goからexportされたfunctionをverilogから実行 verilogのTaskをgoから実行 環境 Linux環境(CentOS) Modelsim Intel FPGA Starter Edision 10.5b verilog verilogは、DPI-Cを使うのでSystemVerilogです。事前にコンパイルしてdpiheader.hを吐くようにします。 `timescale 1ns/1ps module top(); import "DPI-C" context task go_test_func(input int,output int); export "DPI-C" task sv_test_task; bit [10:0] m; initial begin go_test_fu
私はFPGAの専門ではありませんが、数年前から仕事でFPGA開発の依頼を受けるようになりました。周りに経験者もほとんどおらず試行錯誤しながらなんとか幾つかの依頼をこなしてきましたので、超初心者目線でFPGAの仕組みと開発方法に関してまとめてみます。 FPGAとは 集積回路の中のFPGA FPGAの仕組み FPGAの開発 FPGAの開発環境 論理回路の記述 論理合成、ピン割り付け、配置配線、ダウンロード おわりに FPGAとは FPGAとはField Plogrammable Gate Arayの略で、現場でプログラム可能な論理回路のことです。 簡単な論理回路であれば半田ごてと汎用ICを使って開発をすることもできますが、 大規模になると難しくなりますし、 一度作った回路を修正するのはとても面倒です。FPGAであれば何度でも書き換え可能で、ハードウェアを修正する必要もありません。 集積回路の中
ARMは2日、ザイリンクス社のFPGA向け無償Cortex-Mプロセッサ(ARMが提供しているCPUの一つ)の提供により、チップ設計の可能性を拡大すると発表した。 【こちらも】ARM、次世代プロセッサーでインテルを抜くか パソコンやスマホなどの主要な半導体CPU、そのCPUの用途はIoT(モノのインターネット)にも広がる。このCPU業界は、市場毎に覇者が存在する独特な世界だ。例えば、パソコン市場ではインテル、スマホなど組込み市場ではARMなどである。それは、CPUの持つ高速性能や低消費電力などの技術的優位性に加えて、CPUを駆動するソフトウェアの生産性の高さやソフトウェアの再利用性が重要であるためである。 極端な言い方をすれば、市場を制覇したCPUメーカが提供するリファレンスデザインを忠実に再現すれば、パソコンやスマホの基本的なハードウェア部分は完成する。それにOS(CPUを制御するオペレ
AWSのFPGAを搭載したEC2インスタンスであるF1インスタンス用カスタムロジック(CL)のサンプルをビルドして、AFI(Amazon FPGA Image)の構築手順を試してみましたのでご報告します。 はじめに 先日書きましたFPGAの開発ツールでサンプルをビルドする手順ですは、ごく単純なHDL(Hardware Description Language)のサンプルで、特にAWS F1インスタンス用というわけではありませんでした。F1インスタンスで何か有意な処理をさせようとするには、FPGAとCPUやメモリの間でデータのやりとりを行う必要があり、それなりの中身が必要なはずです。探してみるとちゃんとサンプルがありましたので、今回はこれをビルド(合成)してみました。手順が長くなりましたので、今回はビルドとイメージの作成までを説明します。完成したイメージをロードして動かしてみるのは次の記事に
ソフトウェアエンジニアがFPGA(field-programmable gate array)を使うハードルがさらに下がってきている。クラウドサービスでFPGAを活用できたり、Pythonで記述したニューラルネットワークをFPGAに高位合成できる研究成果が出てきたりしているのだ。 ソフトウェア開発者の立場でFPGAに取り組むイベント「FPGAエクストリーム・コンピューティング」を主宰する佐藤一憲氏、FPGAの高位合成によるディープラーニングについて研究している東京工業大学の中原啓貴氏(中原研究室)、そしてFPGAベンダーであるザイリンクスの神保直弘氏が、急激に常識が変わりつつあるFPGAの動向を語り合った。 本稿では座談会の中から、ソフトウェアエンジニアにFPGAや高位合成が求められる現状、そして、今後どのようなツールを使うべきか、ソフトウェアエンジニアがFPGAに取り組む際の課題などにつ
FPGA大手のザイリンクスが記者向けに勉強会を実施し、先進運転支援システム(ADAS)でFPGAを使うメリットを解説した。車両や歩行者、白線などを認識する処理は、FPGAの得意分野だという。コストや性能の面からも、FPGAはADASで強みを発揮しそうだ。 自動車の電子制御が複雑化している。従来はアクチュエータを制御するシンプルなものだった。しかし、先進運転支援システム(ADAS)では、カメラなどのセンサーの入力から、車両や歩行者、白線などを検出してドライバーに伝達したりブレーキやステアリングを制御したりする必要がある。Xilinx(ザイリンクス)は2015年12月11日、東京都内で記者向けの勉強会を開き、複雑かつ高速な処理が求められるADASでFPGAを採用するメリットについて解説した。 なぜ車載用途でFPGAが注目されているのか ザイリンクス グローバルセールスアンドマーケット オートモ
~ Main Menu ~ (TBP除く) ● コンテンツ 日 Home ├ 電子工作とか ├ デジモノ ├ Typing of the Music ├ プリンタで○○用紙 └ 植物生体電位観測 ● サーバーについて ● ウェブログ ● メール・MSNメッセ ●外部リンク ・ Twitter ・ 電子工作の広場SNS ・ mixi (HN: sa89_a) ・ ニコニコ動画マイペ ・ zigsow ・概要 Altera の廉価 FPGA である Cyclone III を使って、 720p の HDMI(DVI) 信号を出力してみました。 DVI の電気的仕様では電流モード差動ドライバが必要ですが、通常の LVTTL IO と抵抗でエミュレートしています。 クリックで拡大 1.HDMI(DVI)の概要 HDMI は DVI の拡張規格となっており、物理層と基本プロトコルは同じものです。 サ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く