このサイトに掲載しているmailboxは、型を渡さないサンプルになっています。
でもホントは、適切に使うならインスタンス時に型を渡すべきだと思っています。
例えばこんな感じで。
class packet; byte header; byte payload; function new(header,payload); this.header = header; this.payload = payload; endfunction endclass mailbox #(packet) pkt_mbx;ところで、mailboxをすこしいじっているときに出てきたエラーに std.sv というのがありましたので開いてみたところ、SVの基本クラスが定義されているのを見つけました。ただ、無料で入手できる環境ではある けれど、ソースを公開していいかはわからないので、興味のある方はmodelsim-aseや商用のmodelsim, QuestaSimなどのインストールディレクトリあたりを探してみてください。
C:/altera/13.0/modelsim_ase/win32aloem/../verilog_src/std/std.sv
このコードを見る限りは、class mailboxは型を渡さないとintegerを型として認識するみたいなんですが、でもそれだと、型未指定のときに他の型、例えばbitやlogic、自作classなどをputしたらエラーになると思う のですが、問題なく動くんですね。コメントに「dynamic_singular_type」とありますが、これ、Simulator側でうまく処理しているんじゃないかと…。
なお、問題なく動くと言ってもそれはmodelsim-ase上での話です。QuestaSimやCadence、SynopsysなどのSimulatorではどうなるかわからないので、やはり「使用する型を明示」した上で使うのがマナー(予期 せぬエラーを回避)だと思います。