Skip to content

Commit df9e342

Browse files
committed
extender
1 parent b6e89db commit df9e342

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/extend16to32.veryl

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
module Extend16to32 (
2+
i_data : input logic<16>,
3+
i_sign_ext: input logic ,
4+
o_data : output logic<32>,
5+
) {
6+
assign o_data = {i_data[msb] & i_sign_ext repeat 16, i_data};
7+
}
8+
9+
#[test(extend16to32)]
10+
embed (inline) sv{{{
11+
module test;
12+
logic [15:0] i_data;
13+
logic i_sign_ext;
14+
logic [31:0] o_data;
15+
vips_Extend16to32 Extend (i_data, i_sign_ext, o_data);
16+
17+
initial begin
18+
i_data = 16'h0000; i_sign_ext = 0;
19+
#10;
20+
assert (o_data == 32'h0000_0000) else $error("zero extend 0");
21+
22+
i_data = 16'hFFFF; i_sign_ext = 0;
23+
#10;
24+
assert (o_data == 32'h0000_FFFF) else $error("zero extend 0xFFFF");
25+
26+
i_data = 16'hFFFF; i_sign_ext = 1;
27+
#10;
28+
assert (o_data == 32'hFFFF_FFFF) else $error("sign extend 0xFFFF");
29+
30+
$finish;
31+
end
32+
endmodule
33+
}}}

0 commit comments

Comments
 (0)