Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RgGen ご紹介
Search
Taichi Ishitani
November 08, 2021
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RgGen ご紹介
Design Solution Forum 2021
Taichi Ishitani
November 08, 2021
More Decks by Taichi Ishitani
See All by Taichi Ishitani
Introduction of RgGen
taichi730
0
160
CSR を自動生成する!
taichi730
0
98
Other Decks in Technology
See All in Technology
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
4.9k
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
190
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
730
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1k
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
340
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
160
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
250
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
210
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The SEO Collaboration Effect
kristinabergwall1
1
590
The untapped power of vector embeddings
frankvandijk
2
1.9k
Between Models and Reality
mayunak
4
500
WCS-LA-2024
lcolladotor
0
890
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Writing Fast Ruby
sferik
630
63k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Automating Front-end Workflow
addyosmani
1369
210k
Transcript
SP13 RgGen ご紹介 石谷太一 RgGen ご紹介 石谷太一 (PEZY Computing K.K.)
1
SP13 RgGen ご紹介 石谷太一 注意 • RgGen および GitHub 上で公開している成果物は、石谷個人が開発しているもの
です • PEZY の社員としての登壇ですが、問い合わせなどは石谷までお願いします 2
SP13 RgGen ご紹介 石谷太一 本日の内容 1. 自己紹介 2. RgGen ご紹介
3. 使ってみる (デモ) 4. 使用例紹介 3
SP13 RgGen ご紹介 石谷太一 自己紹介 • 石谷太一(いしたにたいち) ◦ GitHub https://github.com/taichi-ishitani
▪ RgGen: 本日紹介します ▪ TNoC: SystemVerilog で実装した合成可能な NoC router ▪ tvip-axi: UVM ベースの AMBA AXI VIP ▪ tue: UVM の拡張パッケージ ◦ Twitter @taichi600730 • SystemVerilog/Ruby 歴 13 年ちょっと ◦ SV で RTL 書いたり、UVM ベースの検証環境のおもりをしたり • 所属 ◦ PEZY Computing K.K. ▪ PEZY-SC3 がローンチしました ▪ 新規チップを開発中です ◦ 求人あります ▪ https://www.pezy.co.jp/career/ 4
SP13 RgGen ご紹介 石谷太一 RgGen ご紹介 • レジスタマップから、コンフィグレジスタ (CSR) 関連のファイルを自動生成するツー
ルです ◦ https://github.com/rggen/rggen • レジスタマップは人間様が読めるフォーマットです ◦ Ruby ▪ レジスタマップ記述用の DSL を使用 ◦ 各種構造化テキスト (YAML/JSON/TOML) ◦ 各種スプレッドシート (xlsx/xls/ods/csv/tsv) ◦ SiFive DUH ◦ SystemRDL はいずれ・・・ • 生成物 ◦ SystemVerilog/Verilog/VHDL RTL ◦ UVM RAL model ◦ Markdown 5
SP13 RgGen ご紹介 石谷太一 RgGen ご紹介 • 対応する型は(たぶん)多いです ◦ 配列状/外部アクセス/間接参照レジスタ
◦ ビットフィールド 33 種類 ▪ UVM RAL model で定義されている型は網羅しています ◦ レジスタファイルも対応 • 標準的なホストプロトコルに対応 ◦ AMBA AXI4 Lite/APB • プラグインによる機能拡張にも対応 ◦ 特殊なビットフィールド型の追加 ◦ 独自ホストプロトコルの対応 • EDA ツールの対応 ◦ シミュレータ: VCS/Xcelium/Verilator/Icarus Verilog ◦ 論理合成: Design Compiler/Vivado/Quartus • RTL/UVM RAL model はバックドアアクセスに対応 ◦ バスアクセスなしで、CSR の読み書きができます ◦ シミュレーションの時間短縮などに使えます 6
SP13 RgGen ご紹介 石谷太一 使ってみる • 紹介する入力/生成物のサンプルは、以下のリポジトリから取得できます ◦ https://github.com/rggen/rggen-sample •
生成物を組み込んだサンプルのテストベンチもあります ◦ https://github.com/rggen/rggen-sample-testbench ◦ 生成 RTL と RAL model を組み込んで、UVM で実装されている CSR のサニティチェック用テスト シーケンスを実行します 7
SP13 RgGen ご紹介 石谷太一 使ってみる - RgGen のインストール • 前準備
◦ Ruby (2.5 以上) と開発用パッケージをインストールしておきます ◦ apt-get install ruby/apt-get install ruby-dev とか • インストール ◦ Ruby のパッケージ管理ツール (gem) を使ってインストールします ▪ $ gem install rggen ▪ 依存する他のライブラリも一緒にインストールされます ◦ 追加のプラグインもインストールします ▪ $ gem install rggen-verilog $ gem install rggen-vhdl $ gem install rggen-duh 8
SP13 RgGen ご紹介 石谷太一 使ってみる - 入力ファイル準備 • コンフィグレーションファイル ◦
アドレス幅、データ幅、プロトコル等を指定します ◦ YAML/JSON/TOML で記述します ◦ https://github.com/rggen/rggen-sample/blob/master/config.yml • レジスタマップ ◦ CSR の仕様を記述します ◦ register block/register file/register/bit field の4階層 ▪ 詳しくは Wiki を参照ください https://github.com/rggen/rggen/wiki/Register-Map-Specifications ◦ https://github.com/rggen/rggen-sample/blob/master/block_0.yml https://github.com/rggen/rggen-sample/blob/master/block_1.yml 9
SP13 RgGen ご紹介 石谷太一 使ってみる - 実行! • 実行コマンド rggen
に、コンフィグレーションファイルとレジスタマップを食わせるだ けです • $ rggen --plugin rggen-verilog --plugin rggen-vhdl -o out -c config.yml block_0.yml block_1.yml ◦ --plugin rggen-verilog/--plugin rggen-vhdl ▪ Verilog/VHDL 出力プラグインを有効にします ◦ -o out ▪ 出力ディレクトリを指定します ◦ -c config.yml ▪ コンフィグレーションファイルのパスをしています ◦ 生成物は “out” ディレクトリに書き出されます • 実行時に、レジスタマップ上のエラーチェックが行われます ◦ 識別子の唯一性、アドレスやビットフィールドの重複など 10
SP13 RgGen ご紹介 石谷太一 使ってみる - 生成物の組み込み • RTL/UVM RAL
model は、共通モジュール/クラス を使って構成されています ◦ 以下のリポジトリから取得しておきます ▪ https://github.com/rggen/rggen-sv-rtl.git ▪ https://github.com/rggen/rggen-verilog-rtl.git ▪ https://github.com/rggen/rggen-vhdl-rtl.git ▪ https://github.com/rggen/rggen-sv-ral.git ◦ 生成物と一緒に共通モジュール /クラスもEDAツールに入力します 11
SP13 RgGen ご紹介 石谷太一 使用例紹介 (PEZY での使用例) • 採用前 ◦
各モジュール担当者が CSR モジュールを各々で実装していた ▪ アドレスのデコード方法などが統一されていなかった ▪ あるレジスタがどのような動作をするかは、 RTL を見なければならなかった ◦ RTL とドキュメントが差分があった • 現在 ◦ 全 CSR モジュールを RgGen で生成 ▪ レジスタマップをは YAML で記述 • Git で管理していて、変更履歴を追いやすくて良いです ▪ レジスタ仕様、実装を標準化できた ◦ 社内用プラグインを作成 ▪ 社内用バスプロトコル、特殊ビットフィールドに対応 ◦ ドキュメントを自動生成 ▪ Markdown の生成とドキュメント用サーバーへのアップロードを、更新毎に自動実行 • 仕様、RTL、ドキュメントの乖離を防止 12
SP13 RgGen ご紹介 石谷太一 おわり 13