Naoya Hatta
Naoya Hatta
I've added a page to the book. https://doc.veryl-lang.org/book/02_features.html
The following cast is valid, so #884 implements it. ```systemverilog assign a = signed'(int'(x)); ```
I thought handling SDC directly, but a specialized language which can be transpiled into TCL may be better surely.
At the viewpoint of syntax complexity, introducing a `impl `declaration is probably better than adding function block to each `enum`, `struct` and `type` individually. ```systemverilog enum foo_bar_type: logic { FOO,...
Yes. `impl TYPE {}` means "define functions associated to TYPE".
Sorry for the documentation missing. The complete syntax definition is below: https://dalance.github.io/veryl/book/06_appendix/01_formal_syntax.html ``` InterfaceItem: VarDeclaration | LocalparamDeclaration | ModportDeclaration | InterfaceIfDeclaration | InterfaceForDeclaration | EnumDeclaration | StructDeclaration | InterfaceNamedBlock |...
幅0のconcatenateは面白いですね。 全部これに対応すると確かに可読性が厳しくなってしまうので、 `zeroable` みたいなtype modifierを付けた変数だけ展開するとかをイメージしていました。 マクロについてはRustの手続きマクロのようにアトリビュートを付けた構文要素の構文木変換として実装したら良さそうかと思っています。
良さそうですね。最初のコード例では ``` module multiplexer #( parameter N: u32 = 2 , localparam S: u32 = $clog2(N), ) ( i: input logic [N], o: output logic [1], s: input zeroable logic...
つけ忘れについては組み込み関数の場合でも関数を通し忘れるのがあると思うので、あまり変わらないような気もします。 ただ、`zeroable` については型修飾子としてはあまりよくない気がしていて、 `zeroable u32` みたいなものを書けてしまう点が (チェックでセマンティックエラーにするとしても)いまいちだと思っています。 本来幅0の`logic`だけを表現したかったはずなので `` 側、あるいはそこにいれるパラメータ型になにかつける方がいいでしょうかね。 構文は適当ですが例えば ``` localparam W: u32+ = 0; // 必ず1以上に評価される u32型 var a: logic; localparam W: u32 = 0; var a:...
`zeroable` modifier suggested in #73 seems to have the same purpose.