Announcing Veryl 0.13.4
The Veryl team has published a new release of Veryl, 0.13.4. Veryl is a new hardware description language as an alternate to SystemVerilog.
If you have a previous version of Veryl installed via verylup
, you can get the latest version with:
$ verylup update
If you don't have it already, you can get verylup
from release page.
New Features
Support port default value #1164
Ports of module becomes to be able to have default value. Ports which have default value can be omitted at the instantiation, and the default values are assigned to the omitted ports.
module ModuleA (
a: input logic ,
b: input logic = 1, // default value
x: output logic ,
y: output logic = _, // default value
) {
assign x = a;
assign y = b;
}
module ModubeB {
inst instA: ModuleA (
a: 1,
// b is omitted
x: _,
// y is omitted
);
}
Add mux/demux modules to std library #1148
Multiplexer and demultiplexer are added to the standard library.
inst u_mux: $std::mux (
i_select: _,
i_data : _,
o_data : _,
);
inst u_demux: $std::demux (
i_select: _,
i_data : _,
o_data : _,
);
Apply ifdef attributes in statement block #1136
ifdef
attribute can be used in statement block.
always_comb {
#[ifdef(DEFINE_A)]
{
a = 1;
b = 1;
}
#[ifdef(DEFINE_B)]
c = 1;
}
Support relative path dependency #1099
Dependencies to the project through local relative paths can be specified.
[dependencies]
"../../library/path" = "0.1.0"
Other Changes
Check out everything that changed in Release v0.13.4.