Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RgGen ご紹介
Search
Taichi Ishitani
November 08, 2021
Technology
0
410
RgGen ご紹介
Design Solution Forum 2021
Taichi Ishitani
November 08, 2021
Tweet
Share
More Decks by Taichi Ishitani
See All by Taichi Ishitani
Introduction of RgGen
taichi730
0
110
CSR を自動生成する!
taichi730
0
67
Other Decks in Technology
See All in Technology
Web Intelligence and Visual Media Analytics
weblyzard
PRO
1
6.1k
本部長の代わりに提案書レビュー! KDDI営業が毎日使うAIエージェント「A-BOSS」開発秘話
minorun365
PRO
12
1.5k
Devin(Deep) Wiki/Searchの活用で変わる開発の世界観/devin-wiki-search-impact
tomoki10
0
280
What's new in OpenShift 4.19
redhatlivestreaming
1
190
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
370k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
36
17k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
770
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
9
2.3k
Two-Tower モデルで実現する 検索リランキング / Shibuya_AI_2
visional_engineering_and_design
2
190
AI Engineering Summit Pre Event LT #10
okaru
2
560
Roo CodeとClaude Code比較してみた
pharma_x_tech
1
290
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
2
130
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
770
How to Ace a Technical Interview
jacobian
276
23k
Facilitating Awesome Meetings
lara
54
6.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
900
Visualization
eitanlees
146
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Designing Experiences People Love
moore
142
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
A better future with KSS
kneath
239
17k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
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