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
RTL talk #17 dalance
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
dalance
June 24, 2023
Programming
910
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RTL talk #17 dalance
dalance
June 24, 2023
More Decks by dalance
See All by dalance
RTL talk #18 dalance
dalance
0
490
OSS Silicon EDA #1
dalance
0
300
Make CPU #3 dalance
dalance
1
940
ArkEdge LT #1 dalance
dalance
3
700
Shinjuku.rs #8 dalance
dalance
2
880
RTL talk #16 dalance
dalance
1
1.1k
Rust LT #3 dalance
dalance
1
1k
Other Decks in Programming
See All in Programming
LLM 101
dalinaum
0
470
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
630
Event is what happens
moro
2
3.9k
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
200
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
230
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
210
AI-Powered Domain-Driven Design
ziobrando
0
410
Spec-driven Development with AI
simas
PRO
0
2.3k
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.6k
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
980
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Claude Code のすすめ
schroneko
67
230k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Writing Fast Ruby
sferik
630
63k
We Have a Design System, Now What?
morganepeng
55
8.4k
Ethics towards AI in product and experience design
skipperchong
2
460
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
Transcript
Veryl 新しいハードウェア記述言語 PEZY Computing 初田 直也
自己紹介 名前:初田 直也 dalance @ GitHub 所属:PEZY
Computing スーパーコンピュータ向けのプロセッサLSIの設計 SystemVerilogを全面的に使用中 OSS活動 SystemVerilog向けツール sv-parser/svlint/svls Google Open Source Peer Bonus貰った SystemVerilog Test Suiteへの貢献に対して
本題の前に svlintの宣伝 https://github.com/dalance/svlint SystemVerilog用のlinter もともとは社内CIで回すためのlinterとして開発
語る会(16)で紹介したSystemVerilogパーサの成果物 最近は某欧州のチップベンダーの中の人が積極的に開発中 ドキュメントなど大量に書いていただいた language serverでエディタ編集中にリアルタイムでチェックできる https://github.com/dalance/svls
Veryl SystemVerilogの代替となる新しいHDLを開発中 https://github.com/dalance/veryl
なぜ新しくHDLを作るのか? SystemVerilogへの不満 既存のAlt-HDLへの不満
SystemVerilogへの不満 構文が複雑であいまい SystemVerilogパーサ実装がとても大変 sv-parser では45000行くらい書いた 意味解析までしないと確定しない部分がある
有償のEDAツールですら完全な実装はできていない 各ツールのバグ回避のための記述を探索する羽目に 言語機能の不足 それほど困ってはいない 「あると便利なのに」程度のものはいくつか parameterized function
Alt-HDLへの不満 既存のプログラミング言語の内部DSL Chisel(Scala)やMyHDL(Python)など HDLとして自然な構文にできない ビット幅指定の数値リテラル
信号の方向 Verilogへのトランスパイラ 高度なデータ構造がフラットな変数群に分解されてしまう 生成されたVerilogの可読性が悪い RTL-Simでの波形デバッグが煩雑 元ソースとVerilogソースの対応付けが困難 ECOに伴う等価性検証などのフローに対応できない
新言語を作ろう いい感じのパーサジェネレータを見つけたので実装してみることに 「Parolというパーサ生成ツールがすごい」 https://zenn.dev/ryo33/articles/26f87f776b4bfa HDL Advent
Calendar 2022の記事でネタ出し 「新しいHDL(ハードウェア記述言語)を考える」 https://zenn.dev/dalance/articles/17017b7b95b2ca 2022年末実装開始 1週間ほどでプロトタイプ実装 Rustエコシステムの恩恵 年明けからGitHub上で構文の検討など @taichi-ishitaniさん、@ryuzさんと 最近は仕事が忙しいのであまり触れていない…
新言語の方針(1/3) シンプルな構文 LL(k)で構文解析可能にする k個(現時点で3)のトークン先読みで構文確定 パーサジェネレータの制約だが、シンプルさを保つために結果的には良かった
プリプロセッサマクロなし マクロはエディタの表示と実際の構文木が一致しなくなる language serverの実装が困難に SystemVerilog/Rustベースの構文 キーワードなどはSystemVerilogをベースにする 構文はRustなど最近の言語での知見を活かす
新言語の方針(2/3) SystemVerilogと(ほぼ)同じセマンティクス module/interface/packageなど意味的には同じ 単に構文を変えただけ 以下のようなことができるようになる
可読性の高いSystemVerilogを生成する 既存のSystemVerilogソースコードとの相互運用 将来的には一部拡張するかも
新言語の方針(3/3) 言語組み込みの開発ツール linter formatter SystemVerilogで実装できなかったものの1つ
特に縦方向のalignをうまくやりたい HDLの並列性は縦方向に現れることが多い気がする language server 補完や定義ジャンプなど高機能なもの パッケージマネージャ ドキュメント自動生成
現在の状況 出来ているもの 基本的な構文 とりあえず合成可能記述はだいたいカバーできている linter/formatter/language server
パッケージマネージャ gitからの依存関係解決 SemVerによるバージョン解決 ドキュメント自動生成 言語リファレンス(一部) 検討中のもの 組み込みテスト (プリプロセッサでない)マクロ Generics
構文の紹介 https://dalance.github.io/veryl/book