Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

プロジェクト設定

[project] セクション

Veryl.toml の最初のセクションは [project] です。nameversion は必須です。

name フィールド

プロジェクト名は生成されるコードのプレフィックスに使われます。そのためプロジェクト名はアルファベットか _ で始まり、英数字と_ しか使ってはいけません。

version フィールド

プロジェクトのバージョンは セマンティックバージョニングに従います。バージョンは以下の3つの数字からなります。

  • メジャー – 互換性のない変更時に上げる
  • マイナー – 互換性のある機能追加時に上げる
  • バッチ – 互換性のあるバグ修正時に上げる
[project]
version = "0.1.0"

authors フィールド

オプションの authors フィールドにはこのプロジェクトの作者である人や組織を配列にリストアップします。配列内の各文字列のフォーマットは自由です。名前のみ、Eメールアドレスのみ、名前と括弧で囲んだEメールアドレスといった形式がよく使われます。

[project]
authors = ["Fnu Lnu", "anonymous@example.com", "Fnu Lnu <anonymous@example.com>"]

description フィールド

description はプロジェクトの短い説明です。マークダウンではなくプレーンテキスト形式で書きます。

license フィールド

license フィールドはこのプロジェクトがどのライセンスで公開されているかを指定します。指定する文字列はSPDX 2.3 license expressionに従ってください。

[project]
license = "MIT OR Apache-2.0"

repository フィールド

repository フィールドはプロジェクトのソースリポジトリへのURLです。

[project]
repository = "https://github.com/veryl-lang/veryl"

categories フィールド

任意の categories フィールドは、プロジェクトが属するカテゴリを列挙します。Veryl レジストリがプロジェクトを分類するために使われます。

[project]
categories = ["interconnect", "verification"]

認識されるカテゴリは Veryl コンパイラではなくレジストリ自身が定義しています。レジストリが認識しないカテゴリは veryl register で警告として報告され、無視されます。

[build] セクション

[build] セクションはコード生成の設定です。詳細はこちら

[format] セクション

[format] セクションはコードフォーマッターの設定です。詳細はこちら

[lint] セクション

[lint] セクションはリンタの設定です。詳細はこちら

[test] セクション

[test] セクションはRTLシミュレータによるテストの設定です。詳細はこちら

[publish] セクション

[publish] セクションはプロジェクト公開の設定です。詳細はこちら

[synth] セクション

[synth] セクションはシンセサイザの設定です。詳細はこちら

[properties] セクション

[properties] セクションはプロジェクトプロパティを含みます。プロジェクトプロパティは、そのプロジェクトのソースコードから $prop 名前空間を通して参照できるコンパイル時定数です。

プロパティ名はソースコード中で識別子として参照されるため、Veryl の有効な識別子である必要があります。プロパティの値は整数または真偽値です。プロパティの型は与えた値によって決まり、ソースコード中では整数のプロパティは i64 型、真偽値のプロパティは bbool 型になります。

[properties]
DATA_WIDTH   = 32
ENABLE_DEBUG = false

ここで定義した値はプロパティの既定値です。この値は、このプロジェクトに依存する側のプロジェクトから上書きできます。ソースコード中での使い方はプロジェクトプロパティを、上書きについては依存関係を参照してください。

[dependencies] セクション

[dependencies] セクションはライブラリの依存関係です。詳細はこちら

[[components]] エントリ

[[components]] エントリは Rust で書かれた検証コンポーネントの cargo パッケージを登録します。詳細はこちら