Hello, World!
プロジェクトを作る
まず始めに、新しい Veryl プロジェクトを作りましょう。
veryl new hello
コマンドを実行すると、以下のようなディレクトリとファイルが作成されます。
$ veryl new hello
[INFO ] Created "hello" project
$ cd hello
$ tree
.
`-- Veryl.toml
0 directories, 1 file
Veryl.toml
はプロジェクトの設定ファイルです。
[project]
name = "hello"
version = "0.1.0"
全設定の説明はこちら。
コードを書く
ソースコードはプロジェクトディレクトリ内のどこに書いても構いません。これは Veryl プロジェクトが独立したプロジェクトである場合もあれば、他のSystemVerilog プロジェクトに組み込まれている場合もあるからです。Veryl のソースコードの拡張子は .veryl
です。
例えば以下のコードを src/hello.veryl
に書いてみましょう。
module ModuleA {
initial {
$display("Hello, world!");
}
}
$ tree
.
|-- src
| `-- hello.veryl
`-- Veryl.toml
1 directory, 2 files
注:この本のいくつかのソースコードには、マウスをホバーすると現れるプレイボタン “▶” があります。ボタンをクリックすると、トランスパイルされた SystemVerilog のコードが現れます。
module ModuleA
のコードのボタンを押してみましょう。
ビルドする
veryl build
コマンドで SystemVerilog のソースコードを生成できます。
$ veryl build
[INFO ] Processing file ([path to hello]/src/hello.veryl)
[INFO ] Output filelist ([path to hello]/hello.f)
$ tree
.
|-- dependencies
|-- hello.f
|-- src
| |-- hello.sv
| `-- hello.veryl
`-- Veryl.toml
2 directories, 4 files
デフォルトでは SystemVerilog のコードは Veryl のコードと同じディレクトリに生成されます。つまり src/hello.sv
です。
module hello_ModuleA;
initial begin
$display("Hello, world!");
end
endmodule
さらに、生成されたコードのファイルリスト hello.f
も生成されます。これは SystemVerilog コンパイラで使用できます。Verilator で使用するには以下のようにします。
$ verilator --cc -f hello.f
生成されたコードを片づける
生成されたコードは veryl clean
コマンドで削除することができます。
$ veryl clean
[INFO ] Removing file ([path to hello]/src/hello.sv)
[INFO ] Removing file ([path to hello]/src/hello.sv.map)
[INFO ] Removing dir ([path to hello]/dependencies)
[INFO ] Removing file ([path to hello]/hello.f)