44 lines
801 B
Verilog
44 lines
801 B
Verilog
|
|
typedef struct packed {
|
|
logic [1:0] hig;
|
|
logic [1:0] low;
|
|
} word_as_nibbles;
|
|
|
|
typedef union packed {
|
|
logic [3:0] bits;
|
|
word_as_nibbles words;
|
|
} bits_t;
|
|
|
|
module main;
|
|
|
|
bits_t foo;
|
|
|
|
initial begin
|
|
foo.bits = 'b1001;
|
|
if (foo.bits != 'b1001) begin
|
|
$display("FAILED -- foo.bits=%b", foo.bits);
|
|
$finish;
|
|
end
|
|
|
|
if (foo.words != 'b1001) begin
|
|
$display("FAILED -- foo.words=%b", foo.words);
|
|
$finish;
|
|
end
|
|
|
|
//foo.words.low = 'b00;
|
|
//foo.words.hig = 'b11;
|
|
foo.words = 'b1100;
|
|
if (foo.words != 'b1100) begin
|
|
$display("FAILED -- foo.words=%b", foo.words);
|
|
$finish;
|
|
end
|
|
if (foo.bits != 'b1100) begin
|
|
$display("FAILED -- foo.bits=%b", foo.bits);
|
|
$finish;
|
|
end
|
|
|
|
$display("PASSED");
|
|
end
|
|
|
|
endmodule // main
|