// DESCRIPTION: Verilator: Verilog Test module // // This file ONLY is placed into the Public Domain, for any use, // without warranty, 2016 by Wilson Snyder. module t (clk); input clk; typedef struct packed { logic [2:0] _foo; logic [2:0] _bar; } struct_t; logic [2:0] meh; struct_t param; localparam integer twentyone = 21; // verilator lint_off WIDTH assign param = '{ _foo: twentyone % 8 + 1, _bar: (twentyone / 8) + 1 }; assign meh = twentyone % 8 + 1; // verilator lint_on WIDTH always @ (posedge clk) begin `ifdef TEST_VERBOSE $display("param: %d, %d, %b, %d", param._foo, param._bar, param, meh); `endif if (param._foo != 6) $stop; if (param._bar != 3) $stop; if (param != 6'b110011) $stop; if (meh != 6) $stop; $write("*-* All Finished *-*\n"); $finish; end endmodule