mirror of https://github.com/YosysHQ/yosys.git
Add test
This commit is contained in:
parent
af3c374a35
commit
0eb7150a57
|
@ -0,0 +1,118 @@
|
||||||
|
module split_shiftx_test01(i, s, o);
|
||||||
|
wire [3:0] _0_;
|
||||||
|
input [8:0] i;
|
||||||
|
output [2:0] o;
|
||||||
|
input [1:0] s;
|
||||||
|
\$macc #(
|
||||||
|
.A_WIDTH(32'd4),
|
||||||
|
.B_WIDTH(32'd0),
|
||||||
|
.CONFIG(10'h282),
|
||||||
|
.CONFIG_WIDTH(32'd10),
|
||||||
|
.Y_WIDTH(32'd4)
|
||||||
|
) _1_ (
|
||||||
|
.A({ 2'h3, s }),
|
||||||
|
.B(),
|
||||||
|
.Y(_0_)
|
||||||
|
);
|
||||||
|
\$shiftx #(
|
||||||
|
.A_SIGNED(32'd0),
|
||||||
|
.A_WIDTH(32'd9),
|
||||||
|
.B_SIGNED(32'd1),
|
||||||
|
.B_WIDTH(32'd5),
|
||||||
|
.Y_WIDTH(32'd3)
|
||||||
|
) _2_ (
|
||||||
|
.A(i),
|
||||||
|
.B({ 1'h0, _0_ }),
|
||||||
|
.Y(o)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
// Sign bit is 1
|
||||||
|
module split_shiftx_test02(i, s, o);
|
||||||
|
wire [3:0] _0_;
|
||||||
|
input [8:0] i;
|
||||||
|
output [2:0] o;
|
||||||
|
input [1:0] s;
|
||||||
|
\$macc #(
|
||||||
|
.A_WIDTH(32'd4),
|
||||||
|
.B_WIDTH(32'd0),
|
||||||
|
.CONFIG(10'h282),
|
||||||
|
.CONFIG_WIDTH(32'd10),
|
||||||
|
.Y_WIDTH(32'd4)
|
||||||
|
) _1_ (
|
||||||
|
.A({ 2'h3, s }),
|
||||||
|
.B(),
|
||||||
|
.Y(_0_)
|
||||||
|
);
|
||||||
|
\$shiftx #(
|
||||||
|
.A_SIGNED(32'd0),
|
||||||
|
.A_WIDTH(32'd9),
|
||||||
|
.B_SIGNED(32'd1),
|
||||||
|
.B_WIDTH(32'd5),
|
||||||
|
.Y_WIDTH(32'd3)
|
||||||
|
) _2_ (
|
||||||
|
.A(i),
|
||||||
|
.B({ 1'h1, _0_ }),
|
||||||
|
.Y(o)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
// Non constant $macc
|
||||||
|
module split_shiftx_test03(i, s, o);
|
||||||
|
wire [3:0] _0_;
|
||||||
|
input [8:0] i;
|
||||||
|
output [2:0] o;
|
||||||
|
input [1:0] s;
|
||||||
|
\$macc #(
|
||||||
|
.A_WIDTH(32'd4),
|
||||||
|
.B_WIDTH(32'd0),
|
||||||
|
.CONFIG(10'h282),
|
||||||
|
.CONFIG_WIDTH(32'd10),
|
||||||
|
.Y_WIDTH(32'd4)
|
||||||
|
) _1_ (
|
||||||
|
.A({ s, s }),
|
||||||
|
.B(),
|
||||||
|
.Y(_0_)
|
||||||
|
);
|
||||||
|
\$shiftx #(
|
||||||
|
.A_SIGNED(32'd0),
|
||||||
|
.A_WIDTH(32'd9),
|
||||||
|
.B_SIGNED(32'd1),
|
||||||
|
.B_WIDTH(32'd5),
|
||||||
|
.Y_WIDTH(32'd3)
|
||||||
|
) _2_ (
|
||||||
|
.A(i),
|
||||||
|
.B({ 1'h0, _0_ }),
|
||||||
|
.Y(o)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
// Wrong constant $macc
|
||||||
|
module split_shiftx_test04(i, s, o);
|
||||||
|
wire [3:0] _0_;
|
||||||
|
input [8:0] i;
|
||||||
|
output [2:0] o;
|
||||||
|
input [1:0] s;
|
||||||
|
\$macc #(
|
||||||
|
.A_WIDTH(32'd4),
|
||||||
|
.B_WIDTH(32'd0),
|
||||||
|
.CONFIG(10'h282),
|
||||||
|
.CONFIG_WIDTH(32'd10),
|
||||||
|
.Y_WIDTH(32'd4)
|
||||||
|
) _1_ (
|
||||||
|
.A({ 2'h2, s }),
|
||||||
|
.B(),
|
||||||
|
.Y(_0_)
|
||||||
|
);
|
||||||
|
\$shiftx #(
|
||||||
|
.A_SIGNED(32'd0),
|
||||||
|
.A_WIDTH(32'd9),
|
||||||
|
.B_SIGNED(32'd1),
|
||||||
|
.B_WIDTH(32'd5),
|
||||||
|
.Y_WIDTH(32'd3)
|
||||||
|
) _2_ (
|
||||||
|
.A(i),
|
||||||
|
.B({ 1'h0, _0_ }),
|
||||||
|
.Y(o)
|
||||||
|
);
|
||||||
|
endmodule
|
|
@ -0,0 +1,21 @@
|
||||||
|
read_verilog -icells split_shiftx.v
|
||||||
|
split_shiftx
|
||||||
|
|
||||||
|
cd split_shiftx_test01
|
||||||
|
select -assert-count 3 t:$shiftx
|
||||||
|
select -assert-count 0 t: t:$shiftx %n %i
|
||||||
|
|
||||||
|
cd split_shiftx_test02
|
||||||
|
select -assert-count 1 t:$shiftx
|
||||||
|
select -assert-count 1 t:$macc
|
||||||
|
select -assert-count 0 t: t:$shiftx t:$macc %u %n %i
|
||||||
|
|
||||||
|
cd split_shiftx_test03
|
||||||
|
select -assert-count 1 t:$shiftx
|
||||||
|
select -assert-count 1 t:$macc
|
||||||
|
select -assert-count 0 t: t:$shiftx t:$macc %u %n %i
|
||||||
|
|
||||||
|
cd split_shiftx_test04
|
||||||
|
select -assert-count 1 t:$shiftx
|
||||||
|
select -assert-count 1 t:$macc
|
||||||
|
select -assert-count 0 t: t:$shiftx t:$macc %u %n %i
|
Loading…
Reference in New Issue