💎

ハードウェア記述言語 Veryl 2024年のまとめ

2024/12/01に公開

はじめに

VerylはSystemVerilogの代替言語として開発中のハードウェア記述言語です。
2022年末に開発開始し、現在2年目のプロジェクトになります。
この記事では今年1年の進捗をまとめてご紹介します。

https://github.com/veryl-lang/veryl

2023年のまとめはこちら。

https://zenn.dev/dalance/articles/004e160dcccd68

言語自体に興味のある方はこちらのドキュメントをご参照ください。

https://doc.veryl-lang.org/book/ja

Veryl リリース

今年は v0.6.0 から v0.13.3 まで19回のリリースを行いました。
主な変更点は以下の通りです。

  • #471: 拡張子を *.veryl に変更
  • #648: veryl test によるユニットテスト
  • #679: ジェネリクス
  • #701: clock, reset型の導入
  • #789: クロックドメインアノテーション

GitHub Stars とエコシステムの成長

VerylプロジェクトのGitHub Starsはこの1年で200から500まで増えました。4月頃にHacker Newsのトップページに載った影響で一気に100以上増えていますが、それ以外でもコンスタントに伸びているようです。

また、GitHub上にあるVerylのプロジェクト数(Veryl.tomlのファイル数)とソースコード数を今年の4月から計測しています。ソースコード数は8カ月で100ファイルから200ファイルまで増えました。ちなみにこのファイル数が2000を超えるとGitHubにシンタックスハイライトを追加できるようになります。

veryl-lang.org

ドキュメントなどの置き場として veryl-lang.org ドメインを取得し、GitHubもOrganizationに移行しました。

https://veryl-lang.org

言語の紹介ページやドキュメント・Playgroundへのリンクがまとまっています。
また、リリースごとにリリースブログを書くようにしています。

verylup

Verylの公式インストーラとして verylup を公開しました。

https://github.com/veryl-lang/verylup

Rustの公式インストーラである rustup と同様に、以下のような機能を提供しています。

  • Verylコンパイラのアップデート
  • ディレクトリ毎のコンパイラバージョン固定
  • コマンドラインでのバージョン指定(例: veryl +0.13.1 build

発表

Veryl についての発表は2回行いました。DVCon Japanでは発表後の質問も多く、それなりに興味を持っていただけたようです。

関連プロジェクト

今年は私以外の方によるVeryl関連のプロジェクトもいくつか出てきましたのでご紹介します。

  • Verylで作るCPU 基本編 第I部
    VerylでRISC-Vプロセッサを実装するという内容の本です。基本編 第I部ではRV64Iの実装まででしたが、今後Linuxブートまで計画されているようですので楽しみですね。

    GitHub: https://github.com/nananapo/veryl-riscv-book
    紙版 : https://booth.pm/ja/items/6260688
    Web版 : https://cpu.kanataso.net

  • rggen-veryl
    CSRの自動生成ツールである RgGen をVerylに対応させるためのプラグインです。従来VerylからRgGenを扱うにはSystemVerilogのモジュールとしてインスタンスするしかなかったのですが、Verylに対応したことで補完や接続チェックなどが効くようになります。

    https://github.com/rggen/rggen-veryl

おわりに

今年はジェネリクスなど比較的大きな実装をいくつか入れることができました。次の目標としては式の型評価を考えています。これができると代入やポート接続時のビット幅不一致など多くのチェックが実現できるようになります。

また、初のVeryl本が出るなど、ユーザの広まりも感じられるようになってきました。宣伝活動の方も引き続き頑張っていきたいと思います。

Discussion