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
ArkEdge LT #1 dalance
Search
dalance
June 08, 2023
Programming
3
550
ArkEdge LT #1 dalance
dalance
June 08, 2023
Tweet
Share
More Decks by dalance
See All by dalance
OSS Silicon EDA #1
dalance
0
120
Make CPU #3 dalance
dalance
1
530
RTL talk #17 dalance
dalance
0
570
Shinjuku.rs #8 dalance
dalance
2
690
RTL talk #16 dalance
dalance
1
880
Rust LT #3 dalance
dalance
1
850
Other Decks in Programming
See All in Programming
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
270
今インフラ技術をイチから学び直すなら
yuhta28
1
140
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
220
私のEbitengineの第一歩
qt_luigi
0
450
Architecture Decision Record (ADR)
nearme_tech
PRO
1
690
Developer Joy == Developer Productivity (really!)
hollycummins
1
220
マルチモジュールにおけるテスト最適化
fxwx23
0
210
『ドメイン駆動設計をはじめよう』中核の業務領域
masuda220
PRO
5
990
Pythonで改めて考える「クラス(class)」の使いどころ
os1ma
1
360
Android開発以外のAndroid開発経験の活かしどころ
konifar
2
1k
Some more adventure of Happy Eyeballs
coe401_
2
190
意外とフォントが大事だった話 / Font Issues on Internationalization
fumi23
0
110
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
48
2.8k
Code Reviewing Like a Champion
maltzj
517
39k
The Illustrated Children's Guide to Kubernetes
chrisshort
47
48k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Designing with Data
zakiwarfel
98
5k
How to name files
jennybc
75
98k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
2.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Ruby is Unlike a Banana
tanoku
96
11k
Design by the Numbers
sachag
277
19k
Transcript
RustでLSI開発 PEZY Computing 初田 直也
自己紹介 名前:初田 直也 dalance @ GitHub 所属:PEZY
Computing スーパーコンピュータ向けのプロセッサLSIの設計 LSI設計のサポートにRustを使っている
Rustの使いどころ SystemVerilog周りのツール SystemVerilog:ハードウェア記述言語の1つ ツールサポートが弱い → 自作するしかない
プロセッサの命令セット周りの自動化ツール 独自プロセッサなのでコンパイラからドキュメントまで自作する必要あり ハードウェアの検証サポート
SystemVerilog周りのツール sv-parser/svlint/svls RustでSystemVerilogのパーサを作成 作成したパーサを使ってlinterとlanguage serverを作成 社内リポジトリでのCIチェックなどで使用中
OSSとしてGitHubで公開 https://github.com/dalance/sv-parser https://github.com/dalance/svlint https://github.com/dalance/svls Veryl SystemVerilogを改善するために新しい言語を作る試み 次のプロジェクトで実戦投入したい https://github.com/dalance/veryl
命令セット周りのツール scx_isa TOMLで命令セットを定義して、いろいろなものを自動生成するツール 生成できるもの 命令をデコードするSystemVerilogのソースコード
命令をデコードするRustのソースコード RestructuredText形式のドキュメント scx_random ↑のTOMLを読み込んで、ランダム検証用のアセンブリを生成するツール 2021年に夏季インターン(2名 x 2か月)で作ってもらった
検証サポート 命令セットシミュレータ プロセッサの挙動をソフトで書いて、SystemVerilog記述との一致を確認する ハードウェア設計中にソフトウェアエンジニアがプロセッサの挙動を確認する scx_forest_rs
メニーコアプロセッサ(~4096コア)の挙動をマルチスレッドで高速に実行する 昔はC++実装だったがマルチスレッドがなかなか安定しなかったのでRustに移行