blob: 916aa7703d43af65eec5f1aecbab5c11dae48bb1 [file] [log] [blame]
/* Generated by Yosys 0.8+314 (git sha1 ef84b434, clang 6.0.0-1ubuntu2 -fPIC -Os) */
(* \nmigen.hierarchy = "top.black_fill_east" *)
(* generator = "nMigen" *)
module black_fill_east(empty, \output , pieces);
wire [7:0] \$1 ;
wire [64:0] \$10 ;
wire [64:0] \$12 ;
wire [64:0] \$13 ;
wire [64:0] \$15 ;
wire [66:0] \$17 ;
wire [66:0] \$18 ;
wire [66:0] \$20 ;
wire [66:0] \$22 ;
wire [66:0] \$24 ;
wire [66:0] \$25 ;
wire [66:0] \$27 ;
wire [70:0] \$29 ;
wire [63:0] \$3 ;
wire [70:0] \$30 ;
wire [70:0] \$32 ;
wire [70:0] \$34 ;
wire [64:0] \$36 ;
wire [64:0] \$37 ;
wire [7:0] \$39 ;
wire [64:0] \$41 ;
wire [64:0] \$5 ;
wire [64:0] \$6 ;
wire [64:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 1'h1;
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = empty0 <<< (* src = "attacks-qbb.py:35" *) 2'h2;
assign \$1 = ~ (* src = "attacks-qbb.py:177" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 2'h2;
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = empty1 <<< (* src = "attacks-qbb.py:37" *) 3'h4;
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = empty2 <<< (* src = "attacks-qbb.py:38" *) 1'h1;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:177" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = empty <<< (* src = "attacks-qbb.py:33" *) 1'h1;
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_north" *)
(* generator = "nMigen" *)
module black_fill_north(empty, \output , pieces);
wire [63:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$11 ;
wire [78:0] \$13 ;
wire [94:0] \$15 ;
wire [94:0] \$16 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$23 ;
wire [94:0] \$25 ;
wire [126:0] \$27 ;
wire [126:0] \$28 ;
wire [78:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [78:0] \$34 ;
wire [78:0] \$35 ;
wire [78:0] \$37 ;
wire [78:0] \$4 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$11 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 4'h8;
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = empty0 <<< (* src = "attacks-qbb.py:35" *) 5'h10;
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = pieces & (* src = "attacks-qbb.py:32" *) 64'hffffffffffffffff;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 5'h10;
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = empty1 <<< (* src = "attacks-qbb.py:37" *) 6'h20;
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$35 = empty2 <<< (* src = "attacks-qbb.py:38" *) 4'h8;
assign \$37 = \$35 & (* src = "attacks-qbb.py:38" *) 64'hffffffffffffffff;
assign \$4 = empty <<< (* src = "attacks-qbb.py:33" *) 4'h8;
assign \$6 = pieces0 & (* src = "attacks-qbb.py:33" *) \$4 ;
assign \$8 = empty | (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$1 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$3 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$10 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$34 [63:0];
end
assign \$3 = \$8 ;
assign \$10 = \$13 ;
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \$34 = \$37 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_northeast" *)
(* generator = "nMigen" *)
module black_fill_northeast(empty, \output , pieces);
wire [7:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$12 ;
wire [78:0] \$13 ;
wire [78:0] \$15 ;
wire [94:0] \$17 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$24 ;
wire [94:0] \$25 ;
wire [94:0] \$27 ;
wire [126:0] \$29 ;
wire [63:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [126:0] \$34 ;
wire [78:0] \$36 ;
wire [78:0] \$37 ;
wire [7:0] \$39 ;
wire [78:0] \$41 ;
wire [78:0] \$5 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 4'h9;
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = empty0 <<< (* src = "attacks-qbb.py:35" *) 5'h12;
assign \$1 = ~ (* src = "attacks-qbb.py:176" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 5'h12;
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = empty1 <<< (* src = "attacks-qbb.py:37" *) 6'h24;
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = empty2 <<< (* src = "attacks-qbb.py:38" *) 4'h9;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:176" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = empty <<< (* src = "attacks-qbb.py:33" *) 4'h9;
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_northwest" *)
(* generator = "nMigen" *)
module black_fill_northwest(empty, \output , pieces);
wire [63:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$12 ;
wire [70:0] \$13 ;
wire [70:0] \$15 ;
wire [78:0] \$17 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$24 ;
wire [78:0] \$25 ;
wire [78:0] \$27 ;
wire [94:0] \$29 ;
wire [63:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [94:0] \$34 ;
wire [70:0] \$36 ;
wire [70:0] \$37 ;
wire [63:0] \$39 ;
wire [70:0] \$41 ;
wire [70:0] \$5 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff9);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff2);
assign \$1 = ~ (* src = "attacks-qbb.py:182" *) 64'h8080808080808080;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff2);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe4);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff9);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:182" *) 64'h8080808080808080;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff9);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_south" *)
(* generator = "nMigen" *)
module black_fill_south(empty, \output , pieces);
wire [63:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$11 ;
wire [70:0] \$13 ;
wire [78:0] \$15 ;
wire [78:0] \$16 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$23 ;
wire [78:0] \$25 ;
wire [94:0] \$27 ;
wire [94:0] \$28 ;
wire [70:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [70:0] \$34 ;
wire [70:0] \$35 ;
wire [70:0] \$37 ;
wire [70:0] \$4 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$11 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff8);
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff0);
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = pieces & (* src = "attacks-qbb.py:32" *) 64'hffffffffffffffff;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff0);
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe0);
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$35 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff8);
assign \$37 = \$35 & (* src = "attacks-qbb.py:38" *) 64'hffffffffffffffff;
assign \$4 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff8);
assign \$6 = pieces0 & (* src = "attacks-qbb.py:33" *) \$4 ;
assign \$8 = empty | (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$1 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$3 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$10 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$34 [63:0];
end
assign \$3 = \$8 ;
assign \$10 = \$13 ;
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \$34 = \$37 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_southeast" *)
(* generator = "nMigen" *)
module black_fill_southeast(empty, \output , pieces);
wire [7:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$12 ;
wire [70:0] \$13 ;
wire [70:0] \$15 ;
wire [78:0] \$17 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$24 ;
wire [78:0] \$25 ;
wire [78:0] \$27 ;
wire [94:0] \$29 ;
wire [63:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [94:0] \$34 ;
wire [70:0] \$36 ;
wire [70:0] \$37 ;
wire [7:0] \$39 ;
wire [70:0] \$41 ;
wire [70:0] \$5 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff9);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff2);
assign \$1 = ~ (* src = "attacks-qbb.py:178" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff2);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe4);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff9);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:178" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff9);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_southwest" *)
(* generator = "nMigen" *)
module black_fill_southwest(empty, \output , pieces);
wire [63:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$12 ;
wire [78:0] \$13 ;
wire [78:0] \$15 ;
wire [94:0] \$17 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$24 ;
wire [94:0] \$25 ;
wire [94:0] \$27 ;
wire [126:0] \$29 ;
wire [63:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [126:0] \$34 ;
wire [78:0] \$36 ;
wire [78:0] \$37 ;
wire [63:0] \$39 ;
wire [78:0] \$41 ;
wire [78:0] \$5 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff7);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hffffffffffffffee);
assign \$1 = ~ (* src = "attacks-qbb.py:180" *) 64'h8080808080808080;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hffffffffffffffee);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffdc);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff7);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:180" *) 64'h8080808080808080;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff7);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_fill_west" *)
(* generator = "nMigen" *)
module black_fill_west(empty, \output , pieces);
wire [63:0] \$1 ;
wire [63:0] \$11 ;
wire [63:0] \$13 ;
wire [64:0] \$15 ;
wire [64:0] \$16 ;
wire [64:0] \$18 ;
wire [64:0] \$20 ;
wire [64:0] \$22 ;
wire [64:0] \$23 ;
wire [64:0] \$25 ;
wire [66:0] \$27 ;
wire [66:0] \$28 ;
wire [63:0] \$3 ;
wire [66:0] \$30 ;
wire [66:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [63:0] \$38 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [63:0] \$9 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$9 = empty | (* src = "attacks-qbb.py:33" *) \$7 ;
assign \$11 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hffffffffffffffff);
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffffe);
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = ~ (* src = "attacks-qbb.py:181" *) 64'h8080808080808080;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffffe);
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hfffffffffffffffc);
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hffffffffffffffff);
assign \$36 = ~ (* src = "attacks-qbb.py:181" *) 64'h8080808080808080;
assign \$38 = \$34 & (* src = "attacks-qbb.py:38" *) \$36 ;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$5 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hffffffffffffffff);
assign \$7 = pieces0 & (* src = "attacks-qbb.py:33" *) \$5 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$9 ;
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$13 ;
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$38 ;
end
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.black_king" *)
(* generator = "nMigen" *)
module black_king(n, ne, e, se, s, sw, w, nw, pieces);
wire [78:0] \$1 ;
wire [64:0] \$11 ;
wire [63:0] \$12 ;
wire [63:0] \$14 ;
wire [64:0] \$16 ;
wire [63:0] \$18 ;
wire [78:0] \$2 ;
wire [63:0] \$20 ;
wire [63:0] \$22 ;
wire [63:0] \$24 ;
wire [7:0] \$26 ;
wire [63:0] \$28 ;
wire [63:0] \$30 ;
wire [7:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [70:0] \$38 ;
wire [7:0] \$39 ;
wire [78:0] \$4 ;
wire [63:0] \$41 ;
wire [70:0] \$43 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:80" *)
reg [63:0] \$next\e ;
(* src = "attacks-qbb.py:78" *)
reg [63:0] \$next\n ;
(* src = "attacks-qbb.py:79" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:85" *)
reg [63:0] \$next\nw ;
(* src = "attacks-qbb.py:82" *)
reg [63:0] \$next\s ;
(* src = "attacks-qbb.py:81" *)
reg [63:0] \$next\se ;
(* src = "attacks-qbb.py:83" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:84" *)
reg [63:0] \$next\w ;
(* src = "attacks-qbb.py:80" *)
output [63:0] e;
(* src = "attacks-qbb.py:78" *)
output [63:0] n;
(* src = "attacks-qbb.py:79" *)
output [63:0] ne;
(* src = "attacks-qbb.py:85" *)
output [63:0] nw;
(* src = "attacks-qbb.py:76" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:82" *)
output [63:0] s;
(* src = "attacks-qbb.py:81" *)
output [63:0] se;
(* src = "attacks-qbb.py:83" *)
output [63:0] sw;
(* src = "attacks-qbb.py:84" *)
output [63:0] w;
assign \$9 = \$7 <<< (* src = "attacks-qbb.py:92" *) 4'h9;
assign \$12 = ~ (* src = "attacks-qbb.py:93" *) 64'h8080808080808080;
assign \$14 = pieces & (* src = "attacks-qbb.py:93" *) \$12 ;
assign \$16 = \$14 <<< (* src = "attacks-qbb.py:93" *) 1'h1;
assign \$18 = ~ (* src = "attacks-qbb.py:94" *) 64'h8080808080808080;
assign \$20 = pieces & (* src = "attacks-qbb.py:94" *) \$18 ;
assign \$22 = \$20 >>> (* src = "attacks-qbb.py:94" *) 3'h7;
assign \$24 = pieces >>> (* src = "attacks-qbb.py:95" *) 4'h8;
assign \$26 = ~ (* src = "attacks-qbb.py:96" *) 8'hff;
assign \$28 = pieces & (* src = "attacks-qbb.py:96" *) \$26 ;
assign \$2 = pieces <<< (* src = "attacks-qbb.py:91" *) 4'h8;
assign \$30 = \$28 >>> (* src = "attacks-qbb.py:96" *) 4'h9;
assign \$32 = ~ (* src = "attacks-qbb.py:97" *) 8'hff;
assign \$34 = pieces & (* src = "attacks-qbb.py:97" *) \$32 ;
assign \$36 = \$34 >>> (* src = "attacks-qbb.py:97" *) 1'h1;
assign \$39 = ~ (* src = "attacks-qbb.py:98" *) 8'hff;
assign \$41 = pieces & (* src = "attacks-qbb.py:98" *) \$39 ;
assign \$43 = \$41 <<< (* src = "attacks-qbb.py:98" *) 3'h7;
assign \$5 = ~ (* src = "attacks-qbb.py:92" *) 64'h8080808080808080;
assign \$7 = pieces & (* src = "attacks-qbb.py:92" *) \$5 ;
always @* begin
\$next\n = 64'h0000000000000000;
\$next\n = \$1 [63:0];
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = \$4 [63:0];
end
always @* begin
\$next\e = 64'h0000000000000000;
\$next\e = \$11 [63:0];
end
always @* begin
\$next\se = 64'h0000000000000000;
\$next\se = \$22 ;
end
always @* begin
\$next\s = 64'h0000000000000000;
\$next\s = \$24 ;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = \$30 ;
end
always @* begin
\$next\w = 64'h0000000000000000;
\$next\w = \$36 ;
end
always @* begin
\$next\nw = 64'h0000000000000000;
\$next\nw = \$38 [63:0];
end
assign \$1 = \$2 ;
assign \$4 = \$9 ;
assign \$11 = \$16 ;
assign \$38 = \$43 ;
assign nw = \$next\nw ;
assign w = \$next\w ;
assign sw = \$next\sw ;
assign s = \$next\s ;
assign se = \$next\se ;
assign e = \$next\e ;
assign ne = \$next\ne ;
assign n = \$next\n ;
endmodule
(* \nmigen.hierarchy = "top.black_knights" *)
(* generator = "nMigen" *)
module black_knights(nne, ene, ese, sse, ssw, wsw, wnw, nnw, knights);
wire [94:0] \$1 ;
wire [7:0] \$11 ;
wire [78:0] \$13 ;
wire [15:0] \$15 ;
wire [78:0] \$17 ;
wire [63:0] \$19 ;
wire [94:0] \$2 ;
wire [7:0] \$21 ;
wire [63:0] \$23 ;
wire [15:0] \$25 ;
wire [63:0] \$27 ;
wire [63:0] \$29 ;
wire [7:0] \$31 ;
wire [63:0] \$33 ;
wire [63:0] \$35 ;
wire [63:0] \$37 ;
wire [63:0] \$39 ;
wire [7:0] \$4 ;
wire [63:0] \$41 ;
wire [55:0] \$43 ;
wire [63:0] \$45 ;
wire [63:0] \$47 ;
wire [63:0] \$49 ;
wire [70:0] \$51 ;
wire [70:0] \$52 ;
wire [55:0] \$54 ;
wire [70:0] \$56 ;
wire [63:0] \$58 ;
wire [94:0] \$6 ;
wire [70:0] \$60 ;
wire [78:0] \$62 ;
wire [78:0] \$63 ;
wire [63:0] \$65 ;
wire [78:0] \$67 ;
wire [78:0] \$8 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:49" *)
reg [63:0] \$next\ene ;
(* src = "attacks-qbb.py:50" *)
reg [63:0] \$next\ese ;
(* src = "attacks-qbb.py:48" *)
reg [63:0] \$next\nne ;
(* src = "attacks-qbb.py:55" *)
reg [63:0] \$next\nnw ;
(* src = "attacks-qbb.py:51" *)
reg [63:0] \$next\sse ;
(* src = "attacks-qbb.py:52" *)
reg [63:0] \$next\ssw ;
(* src = "attacks-qbb.py:54" *)
reg [63:0] \$next\wnw ;
(* src = "attacks-qbb.py:53" *)
reg [63:0] \$next\wsw ;
(* src = "attacks-qbb.py:49" *)
output [63:0] ene;
(* src = "attacks-qbb.py:50" *)
output [63:0] ese;
(* src = "attacks-qbb.py:46" *)
input [63:0] knights;
(* src = "attacks-qbb.py:48" *)
output [63:0] nne;
(* src = "attacks-qbb.py:55" *)
output [63:0] nnw;
(* src = "attacks-qbb.py:51" *)
output [63:0] sse;
(* src = "attacks-qbb.py:52" *)
output [63:0] ssw;
(* src = "attacks-qbb.py:54" *)
output [63:0] wnw;
(* src = "attacks-qbb.py:53" *)
output [63:0] wsw;
assign \$9 = knights <<< (* src = "attacks-qbb.py:62" *) 4'ha;
assign \$11 = ~ (* src = "attacks-qbb.py:62" *) 8'hff;
assign \$13 = \$9 & (* src = "attacks-qbb.py:62" *) \$11 ;
assign \$15 = ~ (* src = "attacks-qbb.py:62" *) 16'haaaa;
assign \$17 = \$13 & (* src = "attacks-qbb.py:62" *) \$15 ;
assign \$19 = knights >>> (* src = "attacks-qbb.py:63" *) 3'h6;
assign \$21 = ~ (* src = "attacks-qbb.py:63" *) 8'hff;
assign \$23 = \$19 & (* src = "attacks-qbb.py:63" *) \$21 ;
assign \$25 = ~ (* src = "attacks-qbb.py:63" *) 16'haaaa;
assign \$27 = \$23 & (* src = "attacks-qbb.py:63" *) \$25 ;
assign \$2 = knights <<< (* src = "attacks-qbb.py:61" *) 5'h11;
assign \$29 = knights >>> (* src = "attacks-qbb.py:64" *) 4'hf;
assign \$31 = ~ (* src = "attacks-qbb.py:64" *) 8'hff;
assign \$33 = \$29 & (* src = "attacks-qbb.py:64" *) \$31 ;
assign \$35 = knights >>> (* src = "attacks-qbb.py:65" *) 5'h11;
assign \$37 = ~ (* src = "attacks-qbb.py:65" *) 64'h8080808080808080;
assign \$39 = \$35 & (* src = "attacks-qbb.py:65" *) \$37 ;
assign \$41 = knights >>> (* src = "attacks-qbb.py:66" *) 4'ha;
assign \$43 = ~ (* src = "attacks-qbb.py:66" *) 56'h81020408102040;
assign \$45 = \$41 & (* src = "attacks-qbb.py:66" *) \$43 ;
assign \$47 = ~ (* src = "attacks-qbb.py:66" *) 64'h8080808080808080;
assign \$4 = ~ (* src = "attacks-qbb.py:61" *) 8'hff;
assign \$49 = \$45 & (* src = "attacks-qbb.py:66" *) \$47 ;
assign \$52 = knights <<< (* src = "attacks-qbb.py:67" *) 3'h6;
assign \$54 = ~ (* src = "attacks-qbb.py:67" *) 56'h81020408102040;
assign \$56 = \$52 & (* src = "attacks-qbb.py:67" *) \$54 ;
assign \$58 = ~ (* src = "attacks-qbb.py:67" *) 64'h8080808080808080;
assign \$60 = \$56 & (* src = "attacks-qbb.py:67" *) \$58 ;
assign \$63 = knights <<< (* src = "attacks-qbb.py:68" *) 4'hf;
assign \$65 = ~ (* src = "attacks-qbb.py:68" *) 64'h8080808080808080;
assign \$67 = \$63 & (* src = "attacks-qbb.py:68" *) \$65 ;
assign \$6 = \$2 & (* src = "attacks-qbb.py:61" *) \$4 ;
always @* begin
\$next\nne = 64'h0000000000000000;
\$next\nne = \$1 [63:0];
end
always @* begin
\$next\ene = 64'h0000000000000000;
\$next\ene = \$8 [63:0];
end
always @* begin
\$next\ese = 64'h0000000000000000;
\$next\ese = \$27 ;
end
always @* begin
\$next\sse = 64'h0000000000000000;
\$next\sse = \$33 ;
end
always @* begin
\$next\ssw = 64'h0000000000000000;
\$next\ssw = \$39 ;
end
always @* begin
\$next\wsw = 64'h0000000000000000;
\$next\wsw = \$49 ;
end
always @* begin
\$next\wnw = 64'h0000000000000000;
\$next\wnw = \$51 [63:0];
end
always @* begin
\$next\nnw = 64'h0000000000000000;
\$next\nnw = \$62 [63:0];
end
assign \$1 = \$6 ;
assign \$8 = \$17 ;
assign \$51 = \$60 ;
assign \$62 = \$67 ;
assign nnw = \$next\nnw ;
assign wnw = \$next\wnw ;
assign wsw = \$next\wsw ;
assign ssw = \$next\ssw ;
assign sse = \$next\sse ;
assign ese = \$next\ese ;
assign ene = \$next\ene ;
assign nne = \$next\nne ;
endmodule
(* \nmigen.hierarchy = "top.black_pawns" *)
(* generator = "nMigen" *)
module black_pawns(se, sw, pawns);
(* src = "attacks-qbb.py:108" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:111" *)
reg [63:0] \$next\nw ;
(* src = "attacks-qbb.py:109" *)
reg [63:0] \$next\se ;
(* src = "attacks-qbb.py:76" *)
reg [63:0] \$next\step_pieces ;
(* src = "attacks-qbb.py:110" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:108" *)
wire [63:0] ne;
(* src = "attacks-qbb.py:111" *)
wire [63:0] nw;
(* src = "attacks-qbb.py:106" *)
input [63:0] pawns;
(* src = "attacks-qbb.py:109" *)
output [63:0] se;
(* src = "attacks-qbb.py:79" *)
wire [63:0] step_ne;
(* src = "attacks-qbb.py:85" *)
wire [63:0] step_nw;
(* src = "attacks-qbb.py:76" *)
wire [63:0] step_pieces;
(* src = "attacks-qbb.py:81" *)
wire [63:0] step_se;
(* src = "attacks-qbb.py:83" *)
wire [63:0] step_sw;
(* src = "attacks-qbb.py:110" *)
output [63:0] sw;
\step$1 step (
.ne(step_ne),
.nw(step_nw),
.pieces(step_pieces),
.se(step_se),
.sw(step_sw)
);
always @* begin
\$next\step_pieces = 64'h0000000000000000;
\$next\step_pieces = pawns;
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = step_ne;
end
always @* begin
\$next\se = 64'h0000000000000000;
\$next\se = step_se;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = step_sw;
end
always @* begin
\$next\nw = 64'h0000000000000000;
\$next\nw = step_nw;
end
assign nw = \$next\nw ;
assign sw = \$next\sw ;
assign se = \$next\se ;
assign ne = \$next\ne ;
assign step_pieces = \$next\step_pieces ;
endmodule
(* \nmigen.hierarchy = "top.white_king_pawn_attacks.step" *)
(* generator = "nMigen" *)
module step(ne, se, sw, nw, pieces);
wire [78:0] \$1 ;
wire [64:0] \$11 ;
wire [63:0] \$12 ;
wire [63:0] \$14 ;
wire [64:0] \$16 ;
wire [63:0] \$18 ;
wire [78:0] \$2 ;
wire [63:0] \$20 ;
wire [63:0] \$22 ;
wire [63:0] \$24 ;
wire [7:0] \$26 ;
wire [63:0] \$28 ;
wire [63:0] \$30 ;
wire [7:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [70:0] \$38 ;
wire [7:0] \$39 ;
wire [78:0] \$4 ;
wire [63:0] \$41 ;
wire [70:0] \$43 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:80" *)
reg [63:0] \$next\e ;
(* src = "attacks-qbb.py:78" *)
reg [63:0] \$next\n ;
(* src = "attacks-qbb.py:79" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:85" *)
reg [63:0] \$next\nw ;
(* src = "attacks-qbb.py:82" *)
reg [63:0] \$next\s ;
(* src = "attacks-qbb.py:81" *)
reg [63:0] \$next\se ;
(* src = "attacks-qbb.py:83" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:84" *)
reg [63:0] \$next\w ;
(* src = "attacks-qbb.py:80" *)
wire [63:0] e;
(* src = "attacks-qbb.py:78" *)
wire [63:0] n;
(* src = "attacks-qbb.py:79" *)
output [63:0] ne;
(* src = "attacks-qbb.py:85" *)
output [63:0] nw;
(* src = "attacks-qbb.py:76" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:82" *)
wire [63:0] s;
(* src = "attacks-qbb.py:81" *)
output [63:0] se;
(* src = "attacks-qbb.py:83" *)
output [63:0] sw;
(* src = "attacks-qbb.py:84" *)
wire [63:0] w;
assign \$9 = \$7 <<< (* src = "attacks-qbb.py:92" *) 4'h9;
assign \$12 = ~ (* src = "attacks-qbb.py:93" *) 64'h8080808080808080;
assign \$14 = pieces & (* src = "attacks-qbb.py:93" *) \$12 ;
assign \$16 = \$14 <<< (* src = "attacks-qbb.py:93" *) 1'h1;
assign \$18 = ~ (* src = "attacks-qbb.py:94" *) 64'h8080808080808080;
assign \$20 = pieces & (* src = "attacks-qbb.py:94" *) \$18 ;
assign \$22 = \$20 >>> (* src = "attacks-qbb.py:94" *) 3'h7;
assign \$24 = pieces >>> (* src = "attacks-qbb.py:95" *) 4'h8;
assign \$26 = ~ (* src = "attacks-qbb.py:96" *) 8'hff;
assign \$28 = pieces & (* src = "attacks-qbb.py:96" *) \$26 ;
assign \$2 = pieces <<< (* src = "attacks-qbb.py:91" *) 4'h8;
assign \$30 = \$28 >>> (* src = "attacks-qbb.py:96" *) 4'h9;
assign \$32 = ~ (* src = "attacks-qbb.py:97" *) 8'hff;
assign \$34 = pieces & (* src = "attacks-qbb.py:97" *) \$32 ;
assign \$36 = \$34 >>> (* src = "attacks-qbb.py:97" *) 1'h1;
assign \$39 = ~ (* src = "attacks-qbb.py:98" *) 8'hff;
assign \$41 = pieces & (* src = "attacks-qbb.py:98" *) \$39 ;
assign \$43 = \$41 <<< (* src = "attacks-qbb.py:98" *) 3'h7;
assign \$5 = ~ (* src = "attacks-qbb.py:92" *) 64'h8080808080808080;
assign \$7 = pieces & (* src = "attacks-qbb.py:92" *) \$5 ;
always @* begin
\$next\n = 64'h0000000000000000;
\$next\n = \$1 [63:0];
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = \$4 [63:0];
end
always @* begin
\$next\e = 64'h0000000000000000;
\$next\e = \$11 [63:0];
end
always @* begin
\$next\se = 64'h0000000000000000;
\$next\se = \$22 ;
end
always @* begin
\$next\s = 64'h0000000000000000;
\$next\s = \$24 ;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = \$30 ;
end
always @* begin
\$next\w = 64'h0000000000000000;
\$next\w = \$36 ;
end
always @* begin
\$next\nw = 64'h0000000000000000;
\$next\nw = \$38 [63:0];
end
assign \$1 = \$2 ;
assign \$4 = \$9 ;
assign \$11 = \$16 ;
assign \$38 = \$43 ;
assign nw = \$next\nw ;
assign w = \$next\w ;
assign sw = \$next\sw ;
assign s = \$next\s ;
assign se = \$next\se ;
assign e = \$next\e ;
assign ne = \$next\ne ;
assign n = \$next\n ;
endmodule
(* \nmigen.hierarchy = "top.black_pawns.step" *)
(* generator = "nMigen" *)
module \step$1 (ne, se, sw, nw, pieces);
wire [78:0] \$1 ;
wire [64:0] \$11 ;
wire [63:0] \$12 ;
wire [63:0] \$14 ;
wire [64:0] \$16 ;
wire [63:0] \$18 ;
wire [78:0] \$2 ;
wire [63:0] \$20 ;
wire [63:0] \$22 ;
wire [63:0] \$24 ;
wire [7:0] \$26 ;
wire [63:0] \$28 ;
wire [63:0] \$30 ;
wire [7:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [70:0] \$38 ;
wire [7:0] \$39 ;
wire [78:0] \$4 ;
wire [63:0] \$41 ;
wire [70:0] \$43 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:80" *)
reg [63:0] \$next\e ;
(* src = "attacks-qbb.py:78" *)
reg [63:0] \$next\n ;
(* src = "attacks-qbb.py:79" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:85" *)
reg [63:0] \$next\nw ;
(* src = "attacks-qbb.py:82" *)
reg [63:0] \$next\s ;
(* src = "attacks-qbb.py:81" *)
reg [63:0] \$next\se ;
(* src = "attacks-qbb.py:83" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:84" *)
reg [63:0] \$next\w ;
(* src = "attacks-qbb.py:80" *)
wire [63:0] e;
(* src = "attacks-qbb.py:78" *)
wire [63:0] n;
(* src = "attacks-qbb.py:79" *)
output [63:0] ne;
(* src = "attacks-qbb.py:85" *)
output [63:0] nw;
(* src = "attacks-qbb.py:76" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:82" *)
wire [63:0] s;
(* src = "attacks-qbb.py:81" *)
output [63:0] se;
(* src = "attacks-qbb.py:83" *)
output [63:0] sw;
(* src = "attacks-qbb.py:84" *)
wire [63:0] w;
assign \$9 = \$7 <<< (* src = "attacks-qbb.py:92" *) 4'h9;
assign \$12 = ~ (* src = "attacks-qbb.py:93" *) 64'h8080808080808080;
assign \$14 = pieces & (* src = "attacks-qbb.py:93" *) \$12 ;
assign \$16 = \$14 <<< (* src = "attacks-qbb.py:93" *) 1'h1;
assign \$18 = ~ (* src = "attacks-qbb.py:94" *) 64'h8080808080808080;
assign \$20 = pieces & (* src = "attacks-qbb.py:94" *) \$18 ;
assign \$22 = \$20 >>> (* src = "attacks-qbb.py:94" *) 3'h7;
assign \$24 = pieces >>> (* src = "attacks-qbb.py:95" *) 4'h8;
assign \$26 = ~ (* src = "attacks-qbb.py:96" *) 8'hff;
assign \$28 = pieces & (* src = "attacks-qbb.py:96" *) \$26 ;
assign \$2 = pieces <<< (* src = "attacks-qbb.py:91" *) 4'h8;
assign \$30 = \$28 >>> (* src = "attacks-qbb.py:96" *) 4'h9;
assign \$32 = ~ (* src = "attacks-qbb.py:97" *) 8'hff;
assign \$34 = pieces & (* src = "attacks-qbb.py:97" *) \$32 ;
assign \$36 = \$34 >>> (* src = "attacks-qbb.py:97" *) 1'h1;
assign \$39 = ~ (* src = "attacks-qbb.py:98" *) 8'hff;
assign \$41 = pieces & (* src = "attacks-qbb.py:98" *) \$39 ;
assign \$43 = \$41 <<< (* src = "attacks-qbb.py:98" *) 3'h7;
assign \$5 = ~ (* src = "attacks-qbb.py:92" *) 64'h8080808080808080;
assign \$7 = pieces & (* src = "attacks-qbb.py:92" *) \$5 ;
always @* begin
\$next\n = 64'h0000000000000000;
\$next\n = \$1 [63:0];
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = \$4 [63:0];
end
always @* begin
\$next\e = 64'h0000000000000000;
\$next\e = \$11 [63:0];
end
always @* begin
\$next\se = 64'h0000000000000000;
\$next\se = \$22 ;
end
always @* begin
\$next\s = 64'h0000000000000000;
\$next\s = \$24 ;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = \$30 ;
end
always @* begin
\$next\w = 64'h0000000000000000;
\$next\w = \$36 ;
end
always @* begin
\$next\nw = 64'h0000000000000000;
\$next\nw = \$38 [63:0];
end
assign \$1 = \$2 ;
assign \$4 = \$9 ;
assign \$11 = \$16 ;
assign \$38 = \$43 ;
assign nw = \$next\nw ;
assign w = \$next\w ;
assign sw = \$next\sw ;
assign s = \$next\s ;
assign se = \$next\se ;
assign e = \$next\e ;
assign ne = \$next\ne ;
assign n = \$next\n ;
endmodule
(* \nmigen.hierarchy = "top" *)
(* top = 1 *)
(* generator = "nMigen" *)
module top(nbk, rqk, enemy, pieces, empty, \pieces$1 , \empty$2 , \pieces$3 , n, ne, e, s, sw, w, pbq);
wire [63:0] \$10 ;
wire [63:0] \$100 ;
wire [63:0] \$102 ;
wire [63:0] \$104 ;
wire [63:0] \$106 ;
wire [63:0] \$108 ;
wire [63:0] \$110 ;
wire [63:0] \$112 ;
wire [63:0] \$114 ;
wire [63:0] \$116 ;
wire [63:0] \$118 ;
wire [63:0] \$12 ;
wire [63:0] \$120 ;
wire [63:0] \$122 ;
wire [63:0] \$125 ;
wire [63:0] \$127 ;
wire [63:0] \$129 ;
wire [63:0] \$131 ;
wire [63:0] \$133 ;
wire [63:0] \$135 ;
wire [63:0] \$137 ;
wire [63:0] \$139 ;
wire [63:0] \$14 ;
wire [63:0] \$141 ;
wire [63:0] \$143 ;
wire [63:0] \$145 ;
wire [63:0] \$147 ;
wire [63:0] \$149 ;
wire [63:0] \$151 ;
wire [63:0] \$153 ;
wire [63:0] \$155 ;
wire [63:0] \$157 ;
wire [63:0] \$159 ;
wire [63:0] \$16 ;
wire [63:0] \$161 ;
wire [63:0] \$163 ;
wire [63:0] \$165 ;
wire [63:0] \$167 ;
wire [63:0] \$169 ;
wire [63:0] \$171 ;
wire [63:0] \$173 ;
wire [63:0] \$175 ;
wire [63:0] \$177 ;
wire [63:0] \$179 ;
wire [63:0] \$18 ;
wire [63:0] \$181 ;
wire [63:0] \$183 ;
wire [63:0] \$185 ;
wire [63:0] \$187 ;
wire [63:0] \$189 ;
wire [63:0] \$191 ;
wire [63:0] \$193 ;
wire [63:0] \$195 ;
wire [63:0] \$197 ;
wire [63:0] \$199 ;
wire [63:0] \$20 ;
wire [63:0] \$201 ;
wire [63:0] \$203 ;
wire [63:0] \$205 ;
wire [63:0] \$207 ;
wire [63:0] \$209 ;
wire [63:0] \$211 ;
wire [63:0] \$213 ;
wire [63:0] \$215 ;
wire [63:0] \$217 ;
wire [63:0] \$219 ;
wire [63:0] \$22 ;
wire [63:0] \$221 ;
wire [63:0] \$223 ;
wire [63:0] \$225 ;
wire [63:0] \$227 ;
wire [63:0] \$229 ;
wire [63:0] \$231 ;
wire [63:0] \$233 ;
wire [63:0] \$235 ;
wire [63:0] \$237 ;
wire [63:0] \$239 ;
wire [63:0] \$24 ;
wire [63:0] \$241 ;
wire [63:0] \$243 ;
wire [63:0] \$245 ;
wire [63:0] \$247 ;
wire [63:0] \$249 ;
wire [63:0] \$251 ;
wire [63:0] \$253 ;
wire [63:0] \$255 ;
wire [63:0] \$257 ;
wire [63:0] \$259 ;
wire [63:0] \$26 ;
wire [63:0] \$261 ;
wire [63:0] \$263 ;
wire [63:0] \$265 ;
wire [63:0] \$267 ;
wire [63:0] \$269 ;
wire [63:0] \$271 ;
wire [63:0] \$273 ;
wire [63:0] \$275 ;
wire [63:0] \$277 ;
wire [63:0] \$279 ;
wire [63:0] \$28 ;
wire [63:0] \$281 ;
wire [64:0] \$283 ;
wire [63:0] \$284 ;
wire [64:0] \$286 ;
wire [64:0] \$288 ;
wire [65:0] \$290 ;
wire [64:0] \$291 ;
wire [64:0] \$293 ;
wire [65:0] \$295 ;
wire [65:0] \$297 ;
wire [64:0] \$299 ;
wire [63:0] \$30 ;
wire [63:0] \$300 ;
wire [64:0] \$302 ;
wire [64:0] \$304 ;
wire [63:0] \$305 ;
wire [63:0] \$307 ;
wire [64:0] \$309 ;
wire [63:0] \$311 ;
wire [63:0] \$313 ;
wire [63:0] \$314 ;
wire [63:0] \$317 ;
wire [63:0] \$319 ;
wire [63:0] \$32 ;
wire [63:0] \$321 ;
wire [63:0] \$323 ;
wire [63:0] \$325 ;
wire [63:0] \$326 ;
wire [63:0] \$329 ;
wire [63:0] \$331 ;
wire [63:0] \$333 ;
wire [63:0] \$335 ;
wire [63:0] \$337 ;
wire [63:0] \$338 ;
wire [63:0] \$34 ;
wire [63:0] \$341 ;
wire [63:0] \$343 ;
wire [63:0] \$345 ;
wire [63:0] \$347 ;
wire [63:0] \$349 ;
wire [63:0] \$351 ;
wire [63:0] \$353 ;
wire [63:0] \$354 ;
wire [63:0] \$357 ;
wire [63:0] \$36 ;
wire [63:0] \$38 ;
wire [63:0] \$4 ;
wire [63:0] \$40 ;
wire [63:0] \$42 ;
wire [63:0] \$44 ;
wire [63:0] \$46 ;
wire [63:0] \$48 ;
wire [63:0] \$50 ;
wire [63:0] \$52 ;
wire [63:0] \$54 ;
wire [63:0] \$56 ;
wire [63:0] \$58 ;
wire [63:0] \$6 ;
wire [63:0] \$60 ;
wire [63:0] \$62 ;
wire [63:0] \$64 ;
wire [63:0] \$66 ;
wire [63:0] \$68 ;
wire [63:0] \$70 ;
wire [63:0] \$72 ;
wire [63:0] \$74 ;
wire [63:0] \$76 ;
wire [63:0] \$78 ;
wire [63:0] \$8 ;
wire [63:0] \$80 ;
wire [63:0] \$82 ;
wire [63:0] \$84 ;
wire [63:0] \$86 ;
wire [63:0] \$88 ;
wire [63:0] \$90 ;
wire [63:0] \$92 ;
wire [63:0] \$94 ;
wire [63:0] \$96 ;
wire [63:0] \$98 ;
(* src = "attacks-qbb.py:332" *)
reg [63:0] \$next\all_in_between ;
(* src = "attacks-qbb.py:329" *)
reg [63:0] \$next\antidiagonal_in_between ;
(* src = "attacks-qbb.py:439" *)
reg [63:0] \$next\antidiagonal_sliders ;
(* src = "attacks-qbb.py:326" *)
reg [63:0] \$next\attacked_by_black ;
(* src = "attacks-qbb.py:245" *)
reg [63:0] \$next\bbishops ;
(* src = "attacks-qbb.py:248" *)
reg [63:0] \$next\bking ;
(* src = "attacks-qbb.py:244" *)
reg [63:0] \$next\bknights ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_east_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_east_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_north_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_north_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_northeast_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_northeast_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_northwest_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_northwest_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_south_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_south_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_southeast_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_southeast_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_southwest_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_southwest_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\black_fill_west_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\black_fill_west_pieces ;
(* src = "attacks-qbb.py:76" *)
reg [63:0] \$next\black_king_pieces ;
(* src = "attacks-qbb.py:46" *)
reg [63:0] \$next\black_knights_knights ;
(* src = "attacks-qbb.py:106" *)
reg [63:0] \$next\black_pawns_pawns ;
(* src = "attacks-qbb.py:413" *)
reg [63:0] \$next\blockers ;
(* src = "attacks-qbb.py:243" *)
reg [63:0] \$next\bpawns ;
(* src = "attacks-qbb.py:247" *)
reg [63:0] \$next\bqueens ;
(* src = "attacks-qbb.py:246" *)
reg [63:0] \$next\brooks ;
(* src = "attacks-qbb.py:417" *)
reg [63:0] \$next\check_dest ;
(* src = "attacks-qbb.py:414" *)
reg [63:0] \$next\checking_pieces ;
(* src = "attacks-qbb.py:335" *)
reg [63:0] \$next\diag_king_attacks ;
(* src = "attacks-qbb.py:328" *)
reg [63:0] \$next\diagonal_in_between ;
(* src = "attacks-qbb.py:438" *)
reg [63:0] \$next\diagonal_sliders ;
(* src = "attacks-qbb.py:141" *)
reg [63:0] \$next\e ;
(* src = "attacks-qbb.py:252" *)
reg [63:0] \$next\empty$124 ;
(* src = "attacks-qbb.py:250" *)
reg [63:0] \$next\friendly ;
(* src = "attacks-qbb.py:330" *)
reg [63:0] \$next\horizontal_in_between ;
(* src = "attacks-qbb.py:436" *)
reg [63:0] \$next\horizontal_sliders ;
(* src = "attacks-qbb.py:337" *)
reg [63:0] \$next\knight_king_attacks ;
(* src = "attacks-qbb.py:139" *)
reg [63:0] \$next\n ;
(* src = "attacks-qbb.py:140" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:251" *)
reg [63:0] \$next\occ ;
(* src = "attacks-qbb.py:334" *)
reg [63:0] \$next\ortho_king_attacks ;
(* src = "attacks-qbb.py:336" *)
reg [63:0] \$next\pawn_king_attacks ;
(* src = "attacks-qbb.py:143" *)
reg [63:0] \$next\s ;
(* src = "attacks-qbb.py:144" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:418" *)
reg [63:0] \$next\target_mask ;
(* src = "attacks-qbb.py:331" *)
reg [63:0] \$next\vertical_in_between ;
(* src = "attacks-qbb.py:437" *)
reg [63:0] \$next\vertical_sliders ;
(* src = "attacks-qbb.py:145" *)
reg [63:0] \$next\w ;
(* src = "attacks-qbb.py:238" *)
reg [63:0] \$next\wbishops ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_fill_east_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_fill_east_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_fill_north_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_fill_north_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_fill_northeast_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_fill_northeast_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_fill_south_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_fill_south_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_fill_southwest_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_fill_southwest_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_fill_west_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_fill_west_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_east_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_east_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_north_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_north_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_northeast_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_northeast_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_northwest_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_northwest_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_south_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_south_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_southeast_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_southeast_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_southwest_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_southwest_pieces ;
(* src = "attacks-qbb.py:14" *)
reg [63:0] \$next\white_king_fill_west_empty ;
(* src = "attacks-qbb.py:15" *)
reg [63:0] \$next\white_king_fill_west_pieces ;
(* src = "attacks-qbb.py:46" *)
reg [63:0] \$next\white_king_knight_attacks_knights ;
(* src = "attacks-qbb.py:106" *)
reg [63:0] \$next\white_king_pawn_attacks_pawns ;
(* src = "attacks-qbb.py:46" *)
reg [63:0] \$next\white_knights_knights ;
(* src = "attacks-qbb.py:241" *)
reg [63:0] \$next\wking ;
(* src = "attacks-qbb.py:237" *)
reg [63:0] \$next\wknights ;
(* src = "attacks-qbb.py:236" *)
reg [63:0] \$next\wpawns ;
(* src = "attacks-qbb.py:240" *)
reg [63:0] \$next\wqueens ;
(* src = "attacks-qbb.py:239" *)
reg [63:0] \$next\wrooks ;
(* src = "attacks-qbb.py:415" *)
reg [63:0] \$next\zero_if_check ;
(* src = "attacks-qbb.py:416" *)
reg [63:0] \$next\zero_if_double_check ;
(* src = "attacks-qbb.py:332" *)
wire [63:0] all_in_between;
(* src = "attacks-qbb.py:329" *)
wire [63:0] antidiagonal_in_between;
(* src = "attacks-qbb.py:439" *)
wire [63:0] antidiagonal_sliders;
(* src = "attacks-qbb.py:326" *)
wire [63:0] attacked_by_black;
(* src = "attacks-qbb.py:245" *)
wire [63:0] bbishops;
(* src = "attacks-qbb.py:248" *)
wire [63:0] bking;
(* src = "attacks-qbb.py:244" *)
wire [63:0] bknights;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_east_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_east_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_east_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_north_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_north_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_north_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_northeast_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_northeast_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_northeast_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_northwest_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_northwest_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_northwest_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_south_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_south_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_south_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_southeast_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_southeast_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_southeast_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_southwest_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_southwest_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_southwest_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] black_fill_west_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] black_fill_west_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] black_fill_west_pieces;
(* src = "attacks-qbb.py:80" *)
wire [63:0] black_king_e;
(* src = "attacks-qbb.py:78" *)
wire [63:0] black_king_n;
(* src = "attacks-qbb.py:79" *)
wire [63:0] black_king_ne;
(* src = "attacks-qbb.py:85" *)
wire [63:0] black_king_nw;
(* src = "attacks-qbb.py:76" *)
wire [63:0] black_king_pieces;
(* src = "attacks-qbb.py:82" *)
wire [63:0] black_king_s;
(* src = "attacks-qbb.py:81" *)
wire [63:0] black_king_se;
(* src = "attacks-qbb.py:83" *)
wire [63:0] black_king_sw;
(* src = "attacks-qbb.py:84" *)
wire [63:0] black_king_w;
(* src = "attacks-qbb.py:49" *)
wire [63:0] black_knights_ene;
(* src = "attacks-qbb.py:50" *)
wire [63:0] black_knights_ese;
(* src = "attacks-qbb.py:46" *)
wire [63:0] black_knights_knights;
(* src = "attacks-qbb.py:48" *)
wire [63:0] black_knights_nne;
(* src = "attacks-qbb.py:55" *)
wire [63:0] black_knights_nnw;
(* src = "attacks-qbb.py:51" *)
wire [63:0] black_knights_sse;
(* src = "attacks-qbb.py:52" *)
wire [63:0] black_knights_ssw;
(* src = "attacks-qbb.py:54" *)
wire [63:0] black_knights_wnw;
(* src = "attacks-qbb.py:53" *)
wire [63:0] black_knights_wsw;
(* src = "attacks-qbb.py:106" *)
wire [63:0] black_pawns_pawns;
(* src = "attacks-qbb.py:109" *)
wire [63:0] black_pawns_se;
(* src = "attacks-qbb.py:110" *)
wire [63:0] black_pawns_sw;
(* src = "attacks-qbb.py:413" *)
wire [63:0] blockers;
(* src = "attacks-qbb.py:243" *)
wire [63:0] bpawns;
(* src = "attacks-qbb.py:247" *)
wire [63:0] bqueens;
(* src = "attacks-qbb.py:246" *)
wire [63:0] brooks;
(* src = "attacks-qbb.py:417" *)
wire [63:0] check_dest;
(* src = "attacks-qbb.py:414" *)
wire [63:0] checking_pieces;
(* src = "attacks-qbb.py:335" *)
wire [63:0] diag_king_attacks;
(* src = "attacks-qbb.py:328" *)
wire [63:0] diagonal_in_between;
(* src = "attacks-qbb.py:438" *)
wire [63:0] diagonal_sliders;
(* src = "attacks-qbb.py:141" *)
output [63:0] e;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:252" *)
wire [63:0] \empty$124 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] \empty$2 ;
(* src = "attacks-qbb.py:136" *)
input [63:0] enemy;
(* src = "attacks-qbb.py:250" *)
wire [63:0] friendly;
(* src = "attacks-qbb.py:330" *)
wire [63:0] horizontal_in_between;
(* src = "attacks-qbb.py:436" *)
wire [63:0] horizontal_sliders;
(* src = "attacks-qbb.py:337" *)
wire [63:0] knight_king_attacks;
(* src = "attacks-qbb.py:139" *)
output [63:0] n;
(* src = "attacks-qbb.py:134" *)
input [63:0] nbk;
(* src = "attacks-qbb.py:140" *)
output [63:0] ne;
(* src = "attacks-qbb.py:251" *)
wire [63:0] occ;
(* src = "attacks-qbb.py:334" *)
wire [63:0] ortho_king_attacks;
(* src = "attacks-qbb.py:336" *)
wire [63:0] pawn_king_attacks;
(* src = "attacks-qbb.py:133" *)
input [63:0] pbq;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:15" *)
input [63:0] \pieces$1 ;
(* src = "attacks-qbb.py:76" *)
input [63:0] \pieces$3 ;
(* src = "attacks-qbb.py:135" *)
input [63:0] rqk;
(* src = "attacks-qbb.py:143" *)
output [63:0] s;
(* src = "attacks-qbb.py:144" *)
output [63:0] sw;
(* src = "attacks-qbb.py:418" *)
wire [63:0] target_mask;
(* src = "attacks-qbb.py:331" *)
wire [63:0] vertical_in_between;
(* src = "attacks-qbb.py:437" *)
wire [63:0] vertical_sliders;
(* src = "attacks-qbb.py:145" *)
output [63:0] w;
(* src = "attacks-qbb.py:238" *)
wire [63:0] wbishops;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_fill_east_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_fill_east_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_fill_east_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_fill_north_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_fill_north_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_fill_north_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_fill_northeast_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_fill_northeast_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_fill_northeast_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_fill_south_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_fill_south_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_fill_south_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_fill_southwest_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_fill_southwest_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_fill_southwest_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_fill_west_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_fill_west_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_fill_west_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_east_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_east_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_east_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_north_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_north_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_north_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_northeast_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_northeast_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_northeast_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_northwest_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_northwest_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_northwest_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_south_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_south_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_south_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_southeast_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_southeast_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_southeast_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_southwest_empty;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_southwest_pieces;
(* src = "attacks-qbb.py:14" *)
wire [63:0] white_king_fill_west_empty;
(* src = "attacks-qbb.py:16" *)
wire [63:0] white_king_fill_west_output;
(* src = "attacks-qbb.py:15" *)
wire [63:0] white_king_fill_west_pieces;
(* src = "attacks-qbb.py:49" *)
wire [63:0] white_king_knight_attacks_ene;
(* src = "attacks-qbb.py:50" *)
wire [63:0] white_king_knight_attacks_ese;
(* src = "attacks-qbb.py:46" *)
wire [63:0] white_king_knight_attacks_knights;
(* src = "attacks-qbb.py:48" *)
wire [63:0] white_king_knight_attacks_nne;
(* src = "attacks-qbb.py:55" *)
wire [63:0] white_king_knight_attacks_nnw;
(* src = "attacks-qbb.py:51" *)
wire [63:0] white_king_knight_attacks_sse;
(* src = "attacks-qbb.py:52" *)
wire [63:0] white_king_knight_attacks_ssw;
(* src = "attacks-qbb.py:54" *)
wire [63:0] white_king_knight_attacks_wnw;
(* src = "attacks-qbb.py:53" *)
wire [63:0] white_king_knight_attacks_wsw;
(* src = "attacks-qbb.py:108" *)
wire [63:0] white_king_pawn_attacks_ne;
(* src = "attacks-qbb.py:111" *)
wire [63:0] white_king_pawn_attacks_nw;
(* src = "attacks-qbb.py:106" *)
wire [63:0] white_king_pawn_attacks_pawns;
(* src = "attacks-qbb.py:46" *)
wire [63:0] white_knights_knights;
(* src = "attacks-qbb.py:241" *)
wire [63:0] wking;
(* src = "attacks-qbb.py:237" *)
wire [63:0] wknights;
(* src = "attacks-qbb.py:236" *)
wire [63:0] wpawns;
(* src = "attacks-qbb.py:240" *)
wire [63:0] wqueens;
(* src = "attacks-qbb.py:239" *)
wire [63:0] wrooks;
(* src = "attacks-qbb.py:415" *)
wire [63:0] zero_if_check;
(* src = "attacks-qbb.py:416" *)
wire [63:0] zero_if_double_check;
assign \$100 = pbq & (* src = "attacks-qbb.py:266" *) rqk;
assign \$102 = ~ (* src = "attacks-qbb.py:266" *) enemy;
assign \$104 = \$100 & (* src = "attacks-qbb.py:266" *) \$102 ;
assign \$106 = nbk & (* src = "attacks-qbb.py:267" *) rqk;
assign \$108 = ~ (* src = "attacks-qbb.py:267" *) enemy;
assign \$10 = \$6 & (* src = "attacks-qbb.py:255" *) \$8 ;
assign \$110 = \$106 & (* src = "attacks-qbb.py:267" *) \$108 ;
assign \$112 = pbq & (* src = "attacks-qbb.py:269" *) nbk;
assign \$114 = \$112 & (* src = "attacks-qbb.py:269" *) rqk;
assign \$116 = ~ (* src = "attacks-qbb.py:269" *) enemy;
assign \$118 = \$114 & (* src = "attacks-qbb.py:269" *) \$116 ;
assign \$120 = pbq | (* src = "attacks-qbb.py:270" *) nbk;
assign \$122 = \$120 | (* src = "attacks-qbb.py:270" *) rqk;
assign \$125 = ~ (* src = "attacks-qbb.py:271" *) pbq;
assign \$127 = ~ (* src = "attacks-qbb.py:271" *) nbk;
assign \$12 = ~ (* src = "attacks-qbb.py:255" *) enemy;
assign \$129 = \$125 & (* src = "attacks-qbb.py:271" *) \$127 ;
assign \$131 = ~ (* src = "attacks-qbb.py:271" *) rqk;
assign \$133 = \$129 & (* src = "attacks-qbb.py:271" *) \$131 ;
assign \$135 = bqueens | (* src = "attacks-qbb.py:278" *) brooks;
assign \$137 = bqueens | (* src = "attacks-qbb.py:279" *) bbishops;
assign \$139 = bqueens | (* src = "attacks-qbb.py:280" *) brooks;
assign \$141 = bqueens | (* src = "attacks-qbb.py:281" *) bbishops;
assign \$143 = bqueens | (* src = "attacks-qbb.py:282" *) brooks;
assign \$145 = bqueens | (* src = "attacks-qbb.py:283" *) bbishops;
assign \$147 = bqueens | (* src = "attacks-qbb.py:284" *) brooks;
assign \$14 = \$10 & (* src = "attacks-qbb.py:255" *) \$12 ;
assign \$149 = bqueens | (* src = "attacks-qbb.py:285" *) bbishops;
assign \$151 = occ ^ (* src = "attacks-qbb.py:287" *) wking;
assign \$153 = occ ^ (* src = "attacks-qbb.py:288" *) wking;
assign \$155 = occ ^ (* src = "attacks-qbb.py:289" *) wking;
assign \$157 = occ ^ (* src = "attacks-qbb.py:290" *) wking;
assign \$159 = occ ^ (* src = "attacks-qbb.py:291" *) wking;
assign \$161 = occ ^ (* src = "attacks-qbb.py:292" *) wking;
assign \$163 = occ ^ (* src = "attacks-qbb.py:293" *) wking;
assign \$165 = occ ^ (* src = "attacks-qbb.py:294" *) wking;
assign \$167 = black_fill_northwest_output | (* src = "attacks-qbb.py:365" *) black_fill_north_output;
assign \$16 = ~ (* src = "attacks-qbb.py:256" *) pbq;
assign \$169 = \$167 | (* src = "attacks-qbb.py:365" *) black_fill_northeast_output;
assign \$171 = \$169 | (* src = "attacks-qbb.py:365" *) black_fill_east_output;
assign \$173 = \$171 | (* src = "attacks-qbb.py:365" *) black_fill_southeast_output;
assign \$175 = \$173 | (* src = "attacks-qbb.py:365" *) black_fill_south_output;
assign \$177 = \$175 | (* src = "attacks-qbb.py:365" *) black_fill_southwest_output;
assign \$179 = \$177 | (* src = "attacks-qbb.py:365" *) black_fill_west_output;
assign \$181 = \$179 | (* src = "attacks-qbb.py:365" *) black_pawns_se;
assign \$183 = \$181 | (* src = "attacks-qbb.py:365" *) black_pawns_sw;
assign \$185 = \$183 | (* src = "attacks-qbb.py:365" *) black_knights_nne;
assign \$187 = \$185 | (* src = "attacks-qbb.py:365" *) black_knights_ene;
assign \$18 = \$16 & (* src = "attacks-qbb.py:256" *) nbk;
assign \$189 = \$187 | (* src = "attacks-qbb.py:365" *) black_knights_ese;
assign \$191 = \$189 | (* src = "attacks-qbb.py:365" *) black_knights_sse;
assign \$193 = \$191 | (* src = "attacks-qbb.py:365" *) black_knights_ssw;
assign \$195 = \$193 | (* src = "attacks-qbb.py:365" *) black_knights_wsw;
assign \$197 = \$195 | (* src = "attacks-qbb.py:365" *) black_knights_wnw;
assign \$199 = \$197 | (* src = "attacks-qbb.py:365" *) black_knights_nnw;
assign \$201 = \$199 | (* src = "attacks-qbb.py:365" *) black_king_n;
assign \$203 = \$201 | (* src = "attacks-qbb.py:365" *) black_king_ne;
assign \$205 = \$203 | (* src = "attacks-qbb.py:365" *) black_king_e;
assign \$207 = \$205 | (* src = "attacks-qbb.py:365" *) black_king_se;
assign \$20 = ~ (* src = "attacks-qbb.py:256" *) rqk;
assign \$209 = \$207 | (* src = "attacks-qbb.py:365" *) black_king_s;
assign \$211 = \$209 | (* src = "attacks-qbb.py:365" *) black_king_sw;
assign \$213 = \$211 | (* src = "attacks-qbb.py:365" *) black_king_w;
assign \$215 = \$213 | (* src = "attacks-qbb.py:366" *) black_king_nw;
assign \$217 = black_fill_north_output & (* src = "attacks-qbb.py:370" *) white_king_fill_south_output;
assign \$219 = black_fill_south_output & (* src = "attacks-qbb.py:371" *) white_king_fill_north_output;
assign \$221 = \$217 | (* src = "attacks-qbb.py:371" *) \$219 ;
assign \$223 = black_fill_west_output & (* src = "attacks-qbb.py:374" *) white_king_fill_east_output;
assign \$225 = black_fill_east_output & (* src = "attacks-qbb.py:375" *) white_king_fill_west_output;
assign \$227 = \$223 | (* src = "attacks-qbb.py:375" *) \$225 ;
assign \$22 = \$18 & (* src = "attacks-qbb.py:256" *) \$20 ;
assign \$229 = black_fill_southwest_output & (* src = "attacks-qbb.py:378" *) white_king_fill_northeast_output;
assign \$231 = black_fill_northeast_output & (* src = "attacks-qbb.py:379" *) white_king_fill_northeast_output;
assign \$233 = \$229 | (* src = "attacks-qbb.py:379" *) \$231 ;
assign \$235 = black_fill_northwest_output & (* src = "attacks-qbb.py:382" *) white_king_fill_southeast_output;
assign \$237 = black_fill_southeast_output & (* src = "attacks-qbb.py:383" *) white_king_fill_northwest_output;
assign \$239 = \$235 | (* src = "attacks-qbb.py:383" *) \$237 ;
assign \$241 = horizontal_in_between | (* src = "attacks-qbb.py:387" *) vertical_in_between;
assign \$243 = diagonal_in_between | (* src = "attacks-qbb.py:390" *) antidiagonal_in_between;
assign \$245 = white_king_pawn_attacks_ne | (* src = "attacks-qbb.py:395" *) white_king_pawn_attacks_nw;
assign \$247 = white_king_knight_attacks_nne | (* src = "attacks-qbb.py:404" *) white_king_knight_attacks_ene;
assign \$24 = ~ (* src = "attacks-qbb.py:256" *) enemy;
assign \$249 = \$247 | (* src = "attacks-qbb.py:404" *) white_king_knight_attacks_ese;
assign \$251 = \$249 | (* src = "attacks-qbb.py:404" *) white_king_knight_attacks_sse;
assign \$253 = \$251 | (* src = "attacks-qbb.py:404" *) white_king_knight_attacks_ssw;
assign \$255 = \$253 | (* src = "attacks-qbb.py:404" *) white_king_knight_attacks_wsw;
assign \$257 = \$255 | (* src = "attacks-qbb.py:404" *) white_king_knight_attacks_wnw;
assign \$259 = \$257 | (* src = "attacks-qbb.py:405" *) white_king_knight_attacks_nnw;
assign \$261 = ortho_king_attacks | (* src = "attacks-qbb.py:409" *) diag_king_attacks;
assign \$263 = all_in_between & (* src = "attacks-qbb.py:421" *) \empty$124 ;
assign \$265 = brooks | (* src = "attacks-qbb.py:425" *) bqueens;
assign \$267 = ortho_king_attacks & (* src = "attacks-qbb.py:425" *) \$265 ;
assign \$26 = \$22 & (* src = "attacks-qbb.py:256" *) \$24 ;
assign \$269 = bbishops | (* src = "attacks-qbb.py:425" *) bqueens;
assign \$271 = diag_king_attacks & (* src = "attacks-qbb.py:425" *) \$269 ;
assign \$273 = \$267 | (* src = "attacks-qbb.py:425" *) \$271 ;
assign \$275 = knight_king_attacks & (* src = "attacks-qbb.py:425" *) bknights;
assign \$277 = \$273 | (* src = "attacks-qbb.py:425" *) \$275 ;
assign \$279 = pawn_king_attacks & (* src = "attacks-qbb.py:426" *) bpawns;
assign \$281 = \$277 | (* src = "attacks-qbb.py:426" *) \$279 ;
assign \$284 = attacked_by_black & (* src = "attacks-qbb.py:428" *) wking;
assign \$286 = \$284 - (* src = "attacks-qbb.py:428" *) 1'h1;
assign \$288 = \$286 >>> (* src = "attacks-qbb.py:428" *) 6'h3f;
assign \$28 = pbq & (* src = "attacks-qbb.py:257" *) nbk;
assign \$291 = checking_pieces - (* src = "attacks-qbb.py:430" *) 1'h1;
assign \$293 = checking_pieces & (* src = "attacks-qbb.py:430" *) \$291 ;
assign \$295 = \$293 - (* src = "attacks-qbb.py:430" *) 1'h1;
assign \$297 = \$295 >>> (* src = "attacks-qbb.py:430" *) 6'h3f;
assign \$300 = checking_pieces | (* src = "attacks-qbb.py:432" *) blockers;
assign \$302 = $signed(\$300 ) | (* src = "attacks-qbb.py:432" *) $signed(zero_if_check);
assign \$305 = ~ (* src = "attacks-qbb.py:433" *) friendly;
assign \$307 = \$305 & (* src = "attacks-qbb.py:433" *) check_dest;
assign \$30 = ~ (* src = "attacks-qbb.py:257" *) enemy;
assign \$309 = $signed(\$307 ) & (* src = "attacks-qbb.py:433" *) $signed(zero_if_double_check);
assign \$311 = wrooks | (* src = "attacks-qbb.py:443" *) wqueens;
assign \$314 = all_in_between ^ (* src = "attacks-qbb.py:444" *) horizontal_in_between;
assign \$313 = ~ (* src = "attacks-qbb.py:444" *) \$314 ;
assign \$317 = \$311 & (* src = "attacks-qbb.py:444" *) \$313 ;
assign \$319 = white_fill_east_output & (* src = "attacks-qbb.py:449" *) target_mask;
assign \$321 = white_fill_west_output & (* src = "attacks-qbb.py:453" *) target_mask;
assign \$323 = wrooks | (* src = "attacks-qbb.py:456" *) wqueens;
assign \$326 = all_in_between ^ (* src = "attacks-qbb.py:457" *) vertical_in_between;
assign \$325 = ~ (* src = "attacks-qbb.py:457" *) \$326 ;
assign \$32 = \$28 & (* src = "attacks-qbb.py:257" *) \$30 ;
assign \$329 = \$323 & (* src = "attacks-qbb.py:457" *) \$325 ;
assign \$331 = white_fill_north_output & (* src = "attacks-qbb.py:462" *) target_mask;
assign \$333 = white_fill_south_output & (* src = "attacks-qbb.py:466" *) target_mask;
assign \$335 = wbishops | (* src = "attacks-qbb.py:469" *) wqueens;
assign \$338 = all_in_between ^ (* src = "attacks-qbb.py:470" *) diagonal_in_between;
assign \$337 = ~ (* src = "attacks-qbb.py:470" *) \$338 ;
assign \$341 = \$335 & (* src = "attacks-qbb.py:470" *) \$337 ;
assign \$343 = white_fill_northeast_output & (* src = "attacks-qbb.py:475" *) target_mask;
assign \$345 = white_fill_northeast_output & (* src = "attacks-qbb.py:488" *) target_mask;
assign \$347 = white_fill_southwest_output & (* src = "attacks-qbb.py:479" *) target_mask;
assign \$34 = ~ (* src = "attacks-qbb.py:258" *) pbq;
assign \$349 = white_fill_southwest_output & (* src = "attacks-qbb.py:492" *) target_mask;
assign \$351 = wbishops | (* src = "attacks-qbb.py:482" *) wqueens;
assign \$354 = all_in_between ^ (* src = "attacks-qbb.py:483" *) antidiagonal_in_between;
assign \$353 = ~ (* src = "attacks-qbb.py:483" *) \$354 ;
assign \$357 = \$351 & (* src = "attacks-qbb.py:483" *) \$353 ;
assign \$36 = ~ (* src = "attacks-qbb.py:258" *) nbk;
assign \$38 = \$34 & (* src = "attacks-qbb.py:258" *) \$36 ;
assign \$40 = \$38 & (* src = "attacks-qbb.py:258" *) rqk;
assign \$42 = ~ (* src = "attacks-qbb.py:258" *) enemy;
assign \$44 = \$40 & (* src = "attacks-qbb.py:258" *) \$42 ;
assign \$46 = pbq & (* src = "attacks-qbb.py:259" *) rqk;
assign \$48 = ~ (* src = "attacks-qbb.py:259" *) enemy;
assign \$4 = ~ (* src = "attacks-qbb.py:255" *) nbk;
assign \$50 = \$46 & (* src = "attacks-qbb.py:259" *) \$48 ;
assign \$52 = nbk & (* src = "attacks-qbb.py:260" *) rqk;
assign \$54 = ~ (* src = "attacks-qbb.py:260" *) enemy;
assign \$56 = \$52 & (* src = "attacks-qbb.py:260" *) \$54 ;
assign \$58 = ~ (* src = "attacks-qbb.py:262" *) nbk;
assign \$60 = pbq & (* src = "attacks-qbb.py:262" *) \$58 ;
assign \$62 = ~ (* src = "attacks-qbb.py:262" *) rqk;
assign \$64 = \$60 & (* src = "attacks-qbb.py:262" *) \$62 ;
assign \$66 = ~ (* src = "attacks-qbb.py:262" *) enemy;
assign \$68 = \$64 & (* src = "attacks-qbb.py:262" *) \$66 ;
assign \$6 = pbq & (* src = "attacks-qbb.py:255" *) \$4 ;
assign \$70 = ~ (* src = "attacks-qbb.py:263" *) pbq;
assign \$72 = \$70 & (* src = "attacks-qbb.py:263" *) nbk;
assign \$74 = ~ (* src = "attacks-qbb.py:263" *) rqk;
assign \$76 = \$72 & (* src = "attacks-qbb.py:263" *) \$74 ;
assign \$78 = ~ (* src = "attacks-qbb.py:263" *) enemy;
assign \$80 = \$76 & (* src = "attacks-qbb.py:263" *) \$78 ;
assign \$82 = pbq & (* src = "attacks-qbb.py:264" *) nbk;
assign \$84 = ~ (* src = "attacks-qbb.py:264" *) enemy;
assign \$86 = \$82 & (* src = "attacks-qbb.py:264" *) \$84 ;
assign \$88 = ~ (* src = "attacks-qbb.py:265" *) pbq;
assign \$8 = ~ (* src = "attacks-qbb.py:255" *) rqk;
assign \$90 = ~ (* src = "attacks-qbb.py:265" *) nbk;
assign \$92 = \$88 & (* src = "attacks-qbb.py:265" *) \$90 ;
assign \$94 = \$92 & (* src = "attacks-qbb.py:265" *) rqk;
assign \$96 = ~ (* src = "attacks-qbb.py:265" *) enemy;
assign \$98 = \$94 & (* src = "attacks-qbb.py:265" *) \$96 ;
black_fill_east black_fill_east (
.empty(black_fill_east_empty),
.\output (black_fill_east_output),
.pieces(black_fill_east_pieces)
);
black_fill_north black_fill_north (
.empty(black_fill_north_empty),
.\output (black_fill_north_output),
.pieces(black_fill_north_pieces)
);
black_fill_northeast black_fill_northeast (
.empty(black_fill_northeast_empty),
.\output (black_fill_northeast_output),
.pieces(black_fill_northeast_pieces)
);
black_fill_northwest black_fill_northwest (
.empty(black_fill_northwest_empty),
.\output (black_fill_northwest_output),
.pieces(black_fill_northwest_pieces)
);
black_fill_south black_fill_south (
.empty(black_fill_south_empty),
.\output (black_fill_south_output),
.pieces(black_fill_south_pieces)
);
black_fill_southeast black_fill_southeast (
.empty(black_fill_southeast_empty),
.\output (black_fill_southeast_output),
.pieces(black_fill_southeast_pieces)
);
black_fill_southwest black_fill_southwest (
.empty(black_fill_southwest_empty),
.\output (black_fill_southwest_output),
.pieces(black_fill_southwest_pieces)
);
black_fill_west black_fill_west (
.empty(black_fill_west_empty),
.\output (black_fill_west_output),
.pieces(black_fill_west_pieces)
);
black_king black_king (
.e(black_king_e),
.n(black_king_n),
.ne(black_king_ne),
.nw(black_king_nw),
.pieces(black_king_pieces),
.s(black_king_s),
.se(black_king_se),
.sw(black_king_sw),
.w(black_king_w)
);
black_knights black_knights (
.ene(black_knights_ene),
.ese(black_knights_ese),
.knights(black_knights_knights),
.nne(black_knights_nne),
.nnw(black_knights_nnw),
.sse(black_knights_sse),
.ssw(black_knights_ssw),
.wnw(black_knights_wnw),
.wsw(black_knights_wsw)
);
black_pawns black_pawns (
.pawns(black_pawns_pawns),
.se(black_pawns_se),
.sw(black_pawns_sw)
);
white_fill_east white_fill_east (
.empty(white_fill_east_empty),
.\output (white_fill_east_output),
.pieces(white_fill_east_pieces)
);
white_fill_north white_fill_north (
.empty(white_fill_north_empty),
.\output (white_fill_north_output),
.pieces(white_fill_north_pieces)
);
white_fill_northeast white_fill_northeast (
.empty(white_fill_northeast_empty),
.\output (white_fill_northeast_output),
.pieces(white_fill_northeast_pieces)
);
white_fill_northwest white_fill_northwest (
.empty(\empty$2 ),
.pieces(\pieces$1 )
);
white_fill_south white_fill_south (
.empty(white_fill_south_empty),
.\output (white_fill_south_output),
.pieces(white_fill_south_pieces)
);
white_fill_southeast white_fill_southeast (
.empty(empty),
.pieces(pieces)
);
white_fill_southwest white_fill_southwest (
.empty(white_fill_southwest_empty),
.\output (white_fill_southwest_output),
.pieces(white_fill_southwest_pieces)
);
white_fill_west white_fill_west (
.empty(white_fill_west_empty),
.\output (white_fill_west_output),
.pieces(white_fill_west_pieces)
);
white_king white_king (
.pieces(\pieces$3 )
);
white_king_fill_east white_king_fill_east (
.empty(white_king_fill_east_empty),
.\output (white_king_fill_east_output),
.pieces(white_king_fill_east_pieces)
);
white_king_fill_north white_king_fill_north (
.empty(white_king_fill_north_empty),
.\output (white_king_fill_north_output),
.pieces(white_king_fill_north_pieces)
);
white_king_fill_northeast white_king_fill_northeast (
.empty(white_king_fill_northeast_empty),
.\output (white_king_fill_northeast_output),
.pieces(white_king_fill_northeast_pieces)
);
white_king_fill_northwest white_king_fill_northwest (
.empty(white_king_fill_northwest_empty),
.\output (white_king_fill_northwest_output),
.pieces(white_king_fill_northwest_pieces)
);
white_king_fill_south white_king_fill_south (
.empty(white_king_fill_south_empty),
.\output (white_king_fill_south_output),
.pieces(white_king_fill_south_pieces)
);
white_king_fill_southeast white_king_fill_southeast (
.empty(white_king_fill_southeast_empty),
.\output (white_king_fill_southeast_output),
.pieces(white_king_fill_southeast_pieces)
);
white_king_fill_southwest white_king_fill_southwest (
.empty(white_king_fill_southwest_empty),
.pieces(white_king_fill_southwest_pieces)
);
white_king_fill_west white_king_fill_west (
.empty(white_king_fill_west_empty),
.\output (white_king_fill_west_output),
.pieces(white_king_fill_west_pieces)
);
white_king_knight_attacks white_king_knight_attacks (
.ene(white_king_knight_attacks_ene),
.ese(white_king_knight_attacks_ese),
.knights(white_king_knight_attacks_knights),
.nne(white_king_knight_attacks_nne),
.nnw(white_king_knight_attacks_nnw),
.sse(white_king_knight_attacks_sse),
.ssw(white_king_knight_attacks_ssw),
.wnw(white_king_knight_attacks_wnw),
.wsw(white_king_knight_attacks_wsw)
);
white_king_pawn_attacks white_king_pawn_attacks (
.ne(white_king_pawn_attacks_ne),
.nw(white_king_pawn_attacks_nw),
.pawns(white_king_pawn_attacks_pawns)
);
white_knights white_knights (
.knights(white_knights_knights)
);
always @* begin
\$next\wpawns = 64'h0000000000000000;
\$next\wpawns = \$14 ;
end
always @* begin
\$next\wknights = 64'h0000000000000000;
\$next\wknights = \$26 ;
end
always @* begin
\$next\bqueens = 64'h0000000000000000;
\$next\bqueens = \$104 ;
end
always @* begin
\$next\bking = 64'h0000000000000000;
\$next\bking = \$110 ;
end
always @* begin
\$next\friendly = 64'h0000000000000000;
\$next\friendly = \$118 ;
end
always @* begin
\$next\occ = 64'h0000000000000000;
\$next\occ = \$122 ;
end
always @* begin
\$next\empty$124 = 64'h0000000000000000;
\$next\empty$124 = \$133 ;
end
always @* begin
\$next\black_fill_north_pieces = 64'h0000000000000000;
\$next\black_fill_north_pieces = \$135 ;
end
always @* begin
\$next\black_fill_northeast_pieces = 64'h0000000000000000;
\$next\black_fill_northeast_pieces = \$137 ;
end
always @* begin
\$next\black_fill_east_pieces = 64'h0000000000000000;
\$next\black_fill_east_pieces = \$139 ;
end
always @* begin
\$next\black_fill_southeast_pieces = 64'h0000000000000000;
\$next\black_fill_southeast_pieces = \$141 ;
end
always @* begin
\$next\black_fill_south_pieces = 64'h0000000000000000;
\$next\black_fill_south_pieces = \$143 ;
end
always @* begin
\$next\wbishops = 64'h0000000000000000;
\$next\wbishops = \$32 ;
end
always @* begin
\$next\black_fill_southwest_pieces = 64'h0000000000000000;
\$next\black_fill_southwest_pieces = \$145 ;
end
always @* begin
\$next\black_fill_west_pieces = 64'h0000000000000000;
\$next\black_fill_west_pieces = \$147 ;
end
always @* begin
\$next\black_fill_northwest_pieces = 64'h0000000000000000;
\$next\black_fill_northwest_pieces = \$149 ;
end
always @* begin
\$next\black_fill_north_empty = 64'h0000000000000000;
\$next\black_fill_north_empty = \$151 ;
end
always @* begin
\$next\black_fill_northeast_empty = 64'h0000000000000000;
\$next\black_fill_northeast_empty = \$153 ;
end
always @* begin
\$next\black_fill_east_empty = 64'h0000000000000000;
\$next\black_fill_east_empty = \$155 ;
end
always @* begin
\$next\black_fill_southeast_empty = 64'h0000000000000000;
\$next\black_fill_southeast_empty = \$157 ;
end
always @* begin
\$next\black_fill_south_empty = 64'h0000000000000000;
\$next\black_fill_south_empty = \$159 ;
end
always @* begin
\$next\black_fill_southwest_empty = 64'h0000000000000000;
\$next\black_fill_southwest_empty = \$161 ;
end
always @* begin
\$next\black_fill_west_empty = 64'h0000000000000000;
\$next\black_fill_west_empty = \$163 ;
end
always @* begin
\$next\wrooks = 64'h0000000000000000;
\$next\wrooks = \$44 ;
end
always @* begin
\$next\black_fill_northwest_empty = 64'h0000000000000000;
\$next\black_fill_northwest_empty = \$165 ;
end
always @* begin
\$next\black_pawns_pawns = 64'h0000000000000000;
\$next\black_pawns_pawns = bpawns;
end
always @* begin
\$next\black_knights_knights = 64'h0000000000000000;
\$next\black_knights_knights = bknights;
end
always @* begin
\$next\black_king_pieces = 64'h0000000000000000;
\$next\black_king_pieces = bking;
end
always @* begin
\$next\white_king_fill_north_pieces = 64'h0000000000000000;
\$next\white_king_fill_north_pieces = wking;
end
always @* begin
\$next\white_king_fill_northeast_pieces = 64'h0000000000000000;
\$next\white_king_fill_northeast_pieces = wking;
end
always @* begin
\$next\white_king_fill_east_pieces = 64'h0000000000000000;
\$next\white_king_fill_east_pieces = wking;
end
always @* begin
\$next\white_king_fill_southeast_pieces = 64'h0000000000000000;
\$next\white_king_fill_southeast_pieces = wking;
end
always @* begin
\$next\white_king_fill_south_pieces = 64'h0000000000000000;
\$next\white_king_fill_south_pieces = wking;
end
always @* begin
\$next\white_king_fill_southwest_pieces = 64'h0000000000000000;
\$next\white_king_fill_southwest_pieces = wking;
end
always @* begin
\$next\wqueens = 64'h0000000000000000;
\$next\wqueens = \$50 ;
end
always @* begin
\$next\white_king_fill_west_pieces = 64'h0000000000000000;
\$next\white_king_fill_west_pieces = wking;
end
always @* begin
\$next\white_king_fill_northwest_pieces = 64'h0000000000000000;
\$next\white_king_fill_northwest_pieces = wking;
end
always @* begin
\$next\white_king_fill_north_empty = 64'h0000000000000000;
\$next\white_king_fill_north_empty = occ;
end
always @* begin
\$next\white_king_fill_northeast_empty = 64'h0000000000000000;
\$next\white_king_fill_northeast_empty = occ;
end
always @* begin
\$next\white_king_fill_east_empty = 64'h0000000000000000;
\$next\white_king_fill_east_empty = occ;
end
always @* begin
\$next\white_king_fill_southeast_empty = 64'h0000000000000000;
\$next\white_king_fill_southeast_empty = occ;
end
always @* begin
\$next\white_king_fill_south_empty = 64'h0000000000000000;
\$next\white_king_fill_south_empty = occ;
end
always @* begin
\$next\white_king_fill_southwest_empty = 64'h0000000000000000;
\$next\white_king_fill_southwest_empty = occ;
end
always @* begin
\$next\white_king_fill_west_empty = 64'h0000000000000000;
\$next\white_king_fill_west_empty = occ;
end
always @* begin
\$next\white_king_fill_northwest_empty = 64'h0000000000000000;
\$next\white_king_fill_northwest_empty = occ;
end
always @* begin
\$next\wking = 64'h0000000000000000;
\$next\wking = \$56 ;
end
always @* begin
\$next\white_king_pawn_attacks_pawns = 64'h0000000000000000;
\$next\white_king_pawn_attacks_pawns = wking;
end
always @* begin
\$next\white_king_knight_attacks_knights = 64'h0000000000000000;
\$next\white_king_knight_attacks_knights = wking;
end
always @* begin
\$next\white_knights_knights = 64'h0000000000000000;
\$next\white_knights_knights = wknights;
end
always @* begin
\$next\attacked_by_black = 64'h0000000000000000;
\$next\attacked_by_black = \$215 ;
end
always @* begin
\$next\vertical_in_between = 64'h0000000000000000;
\$next\vertical_in_between = \$221 ;
end
always @* begin
\$next\horizontal_in_between = 64'h0000000000000000;
\$next\horizontal_in_between = \$227 ;
end
always @* begin
\$next\diagonal_in_between = 64'h0000000000000000;
\$next\diagonal_in_between = \$233 ;
end
always @* begin
\$next\antidiagonal_in_between = 64'h0000000000000000;
\$next\antidiagonal_in_between = \$239 ;
end
always @* begin
\$next\ortho_king_attacks = 64'h0000000000000000;
\$next\ortho_king_attacks = \$241 ;
end
always @* begin
\$next\diag_king_attacks = 64'h0000000000000000;
\$next\diag_king_attacks = \$243 ;
end
always @* begin
\$next\bpawns = 64'h0000000000000000;
\$next\bpawns = \$68 ;
end
always @* begin
\$next\pawn_king_attacks = 64'h0000000000000000;
\$next\pawn_king_attacks = \$245 ;
end
always @* begin
\$next\knight_king_attacks = 64'h0000000000000000;
\$next\knight_king_attacks = \$259 ;
end
always @* begin
\$next\all_in_between = 64'h0000000000000000;
\$next\all_in_between = \$261 ;
end
always @* begin
\$next\blockers = 64'h0000000000000000;
\$next\blockers = \$263 ;
end
always @* begin
\$next\checking_pieces = 64'h0000000000000000;
\$next\checking_pieces = \$281 ;
end
always @* begin
\$next\zero_if_check = 64'h0000000000000000;
\$next\zero_if_check = \$283 [63:0];
end
always @* begin
\$next\zero_if_double_check = 64'h0000000000000000;
\$next\zero_if_double_check = \$290 [63:0];
end
always @* begin
\$next\check_dest = 64'h0000000000000000;
\$next\check_dest = \$299 [63:0];
end
always @* begin
\$next\target_mask = 64'h0000000000000000;
\$next\target_mask = \$304 [63:0];
end
always @* begin
\$next\horizontal_sliders = 64'h0000000000000000;
\$next\horizontal_sliders = \$317 ;
end
always @* begin
\$next\bknights = 64'h0000000000000000;
\$next\bknights = \$80 ;
end
always @* begin
\$next\white_fill_east_pieces = 64'h0000000000000000;
\$next\white_fill_east_pieces = horizontal_sliders;
end
always @* begin
\$next\white_fill_east_empty = 64'h0000000000000000;
\$next\white_fill_east_empty = \empty$124 ;
end
always @* begin
\$next\e = 64'h0000000000000000;
\$next\e = \$319 ;
end
always @* begin
\$next\white_fill_west_pieces = 64'h0000000000000000;
\$next\white_fill_west_pieces = horizontal_sliders;
end
always @* begin
\$next\white_fill_west_empty = 64'h0000000000000000;
\$next\white_fill_west_empty = \empty$124 ;
end
always @* begin
\$next\w = 64'h0000000000000000;
\$next\w = \$321 ;
end
always @* begin
\$next\vertical_sliders = 64'h0000000000000000;
\$next\vertical_sliders = \$329 ;
end
always @* begin
\$next\white_fill_north_pieces = 64'h0000000000000000;
\$next\white_fill_north_pieces = vertical_sliders;
end
always @* begin
\$next\white_fill_north_empty = 64'h0000000000000000;
\$next\white_fill_north_empty = \empty$124 ;
end
always @* begin
\$next\n = 64'h0000000000000000;
\$next\n = \$331 ;
end
always @* begin
\$next\bbishops = 64'h0000000000000000;
\$next\bbishops = \$86 ;
end
always @* begin
\$next\white_fill_south_pieces = 64'h0000000000000000;
\$next\white_fill_south_pieces = vertical_sliders;
end
always @* begin
\$next\white_fill_south_empty = 64'h0000000000000000;
\$next\white_fill_south_empty = \empty$124 ;
end
always @* begin
\$next\s = 64'h0000000000000000;
\$next\s = \$333 ;
end
always @* begin
\$next\diagonal_sliders = 64'h0000000000000000;
\$next\diagonal_sliders = \$341 ;
end
always @* begin
\$next\white_fill_northeast_pieces = 64'h0000000000000000;
\$next\white_fill_northeast_pieces = diagonal_sliders;
\$next\white_fill_northeast_pieces = antidiagonal_sliders;
end
always @* begin
\$next\white_fill_northeast_empty = 64'h0000000000000000;
\$next\white_fill_northeast_empty = \empty$124 ;
\$next\white_fill_northeast_empty = \empty$124 ;
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = \$343 ;
\$next\ne = \$345 ;
end
always @* begin
\$next\white_fill_southwest_pieces = 64'h0000000000000000;
\$next\white_fill_southwest_pieces = diagonal_sliders;
\$next\white_fill_southwest_pieces = antidiagonal_sliders;
end
always @* begin
\$next\white_fill_southwest_empty = 64'h0000000000000000;
\$next\white_fill_southwest_empty = \empty$124 ;
\$next\white_fill_southwest_empty = \empty$124 ;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = \$347 ;
\$next\sw = \$349 ;
end
always @* begin
\$next\brooks = 64'h0000000000000000;
\$next\brooks = \$98 ;
end
always @* begin
\$next\antidiagonal_sliders = 64'h0000000000000000;
\$next\antidiagonal_sliders = \$357 ;
end
assign \$283 = \$288 ;
assign \$290 = \$297 ;
assign \$299 = \$302 ;
assign \$304 = \$309 ;
assign antidiagonal_sliders = \$next\antidiagonal_sliders ;
assign sw = \$next\sw ;
assign white_fill_southwest_empty = \$next\white_fill_southwest_empty ;
assign white_fill_southwest_pieces = \$next\white_fill_southwest_pieces ;
assign ne = \$next\ne ;
assign white_fill_northeast_empty = \$next\white_fill_northeast_empty ;
assign white_fill_northeast_pieces = \$next\white_fill_northeast_pieces ;
assign diagonal_sliders = \$next\diagonal_sliders ;
assign s = \$next\s ;
assign white_fill_south_empty = \$next\white_fill_south_empty ;
assign white_fill_south_pieces = \$next\white_fill_south_pieces ;
assign n = \$next\n ;
assign white_fill_north_empty = \$next\white_fill_north_empty ;
assign white_fill_north_pieces = \$next\white_fill_north_pieces ;
assign vertical_sliders = \$next\vertical_sliders ;
assign w = \$next\w ;
assign white_fill_west_empty = \$next\white_fill_west_empty ;
assign white_fill_west_pieces = \$next\white_fill_west_pieces ;
assign e = \$next\e ;
assign white_fill_east_empty = \$next\white_fill_east_empty ;
assign white_fill_east_pieces = \$next\white_fill_east_pieces ;
assign horizontal_sliders = \$next\horizontal_sliders ;
assign target_mask = \$next\target_mask ;
assign check_dest = \$next\check_dest ;
assign zero_if_double_check = \$next\zero_if_double_check ;
assign zero_if_check = \$next\zero_if_check ;
assign checking_pieces = \$next\checking_pieces ;
assign blockers = \$next\blockers ;
assign all_in_between = \$next\all_in_between ;
assign knight_king_attacks = \$next\knight_king_attacks ;
assign pawn_king_attacks = \$next\pawn_king_attacks ;
assign diag_king_attacks = \$next\diag_king_attacks ;
assign ortho_king_attacks = \$next\ortho_king_attacks ;
assign antidiagonal_in_between = \$next\antidiagonal_in_between ;
assign diagonal_in_between = \$next\diagonal_in_between ;
assign horizontal_in_between = \$next\horizontal_in_between ;
assign vertical_in_between = \$next\vertical_in_between ;
assign attacked_by_black = \$next\attacked_by_black ;
assign white_knights_knights = \$next\white_knights_knights ;
assign white_king_knight_attacks_knights = \$next\white_king_knight_attacks_knights ;
assign white_king_pawn_attacks_pawns = \$next\white_king_pawn_attacks_pawns ;
assign white_king_fill_northwest_empty = \$next\white_king_fill_northwest_empty ;
assign white_king_fill_west_empty = \$next\white_king_fill_west_empty ;
assign white_king_fill_southwest_empty = \$next\white_king_fill_southwest_empty ;
assign white_king_fill_south_empty = \$next\white_king_fill_south_empty ;
assign white_king_fill_southeast_empty = \$next\white_king_fill_southeast_empty ;
assign white_king_fill_east_empty = \$next\white_king_fill_east_empty ;
assign white_king_fill_northeast_empty = \$next\white_king_fill_northeast_empty ;
assign white_king_fill_north_empty = \$next\white_king_fill_north_empty ;
assign white_king_fill_northwest_pieces = \$next\white_king_fill_northwest_pieces ;
assign white_king_fill_west_pieces = \$next\white_king_fill_west_pieces ;
assign white_king_fill_southwest_pieces = \$next\white_king_fill_southwest_pieces ;
assign white_king_fill_south_pieces = \$next\white_king_fill_south_pieces ;
assign white_king_fill_southeast_pieces = \$next\white_king_fill_southeast_pieces ;
assign white_king_fill_east_pieces = \$next\white_king_fill_east_pieces ;
assign white_king_fill_northeast_pieces = \$next\white_king_fill_northeast_pieces ;
assign white_king_fill_north_pieces = \$next\white_king_fill_north_pieces ;
assign black_king_pieces = \$next\black_king_pieces ;
assign black_knights_knights = \$next\black_knights_knights ;
assign black_pawns_pawns = \$next\black_pawns_pawns ;
assign black_fill_northwest_empty = \$next\black_fill_northwest_empty ;
assign black_fill_west_empty = \$next\black_fill_west_empty ;
assign black_fill_southwest_empty = \$next\black_fill_southwest_empty ;
assign black_fill_south_empty = \$next\black_fill_south_empty ;
assign black_fill_southeast_empty = \$next\black_fill_southeast_empty ;
assign black_fill_east_empty = \$next\black_fill_east_empty ;
assign black_fill_northeast_empty = \$next\black_fill_northeast_empty ;
assign black_fill_north_empty = \$next\black_fill_north_empty ;
assign black_fill_northwest_pieces = \$next\black_fill_northwest_pieces ;
assign black_fill_west_pieces = \$next\black_fill_west_pieces ;
assign black_fill_southwest_pieces = \$next\black_fill_southwest_pieces ;
assign black_fill_south_pieces = \$next\black_fill_south_pieces ;
assign black_fill_southeast_pieces = \$next\black_fill_southeast_pieces ;
assign black_fill_east_pieces = \$next\black_fill_east_pieces ;
assign black_fill_northeast_pieces = \$next\black_fill_northeast_pieces ;
assign black_fill_north_pieces = \$next\black_fill_north_pieces ;
assign \empty$124 = \$next\empty$124 ;
assign occ = \$next\occ ;
assign friendly = \$next\friendly ;
assign bking = \$next\bking ;
assign bqueens = \$next\bqueens ;
assign brooks = \$next\brooks ;
assign bbishops = \$next\bbishops ;
assign bknights = \$next\bknights ;
assign bpawns = \$next\bpawns ;
assign wking = \$next\wking ;
assign wqueens = \$next\wqueens ;
assign wrooks = \$next\wrooks ;
assign wbishops = \$next\wbishops ;
assign wknights = \$next\wknights ;
assign wpawns = \$next\wpawns ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_east" *)
(* generator = "nMigen" *)
module white_fill_east(empty, \output , pieces);
wire [7:0] \$1 ;
wire [64:0] \$10 ;
wire [64:0] \$12 ;
wire [64:0] \$13 ;
wire [64:0] \$15 ;
wire [66:0] \$17 ;
wire [66:0] \$18 ;
wire [66:0] \$20 ;
wire [66:0] \$22 ;
wire [66:0] \$24 ;
wire [66:0] \$25 ;
wire [66:0] \$27 ;
wire [70:0] \$29 ;
wire [63:0] \$3 ;
wire [70:0] \$30 ;
wire [70:0] \$32 ;
wire [70:0] \$34 ;
wire [64:0] \$36 ;
wire [64:0] \$37 ;
wire [7:0] \$39 ;
wire [64:0] \$41 ;
wire [64:0] \$5 ;
wire [64:0] \$6 ;
wire [64:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 1'h1;
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = empty0 <<< (* src = "attacks-qbb.py:35" *) 2'h2;
assign \$1 = ~ (* src = "attacks-qbb.py:168" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 2'h2;
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = empty1 <<< (* src = "attacks-qbb.py:37" *) 3'h4;
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = empty2 <<< (* src = "attacks-qbb.py:38" *) 1'h1;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:168" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = empty <<< (* src = "attacks-qbb.py:33" *) 1'h1;
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_north" *)
(* generator = "nMigen" *)
module white_fill_north(empty, \output , pieces);
wire [63:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$11 ;
wire [78:0] \$13 ;
wire [94:0] \$15 ;
wire [94:0] \$16 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$23 ;
wire [94:0] \$25 ;
wire [126:0] \$27 ;
wire [126:0] \$28 ;
wire [78:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [78:0] \$34 ;
wire [78:0] \$35 ;
wire [78:0] \$37 ;
wire [78:0] \$4 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$11 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 4'h8;
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = empty0 <<< (* src = "attacks-qbb.py:35" *) 5'h10;
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = pieces & (* src = "attacks-qbb.py:32" *) 64'hffffffffffffffff;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 5'h10;
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = empty1 <<< (* src = "attacks-qbb.py:37" *) 6'h20;
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$35 = empty2 <<< (* src = "attacks-qbb.py:38" *) 4'h8;
assign \$37 = \$35 & (* src = "attacks-qbb.py:38" *) 64'hffffffffffffffff;
assign \$4 = empty <<< (* src = "attacks-qbb.py:33" *) 4'h8;
assign \$6 = pieces0 & (* src = "attacks-qbb.py:33" *) \$4 ;
assign \$8 = empty | (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$1 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$3 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$10 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$34 [63:0];
end
assign \$3 = \$8 ;
assign \$10 = \$13 ;
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \$34 = \$37 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_northeast" *)
(* generator = "nMigen" *)
module white_fill_northeast(empty, \output , pieces);
wire [7:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$12 ;
wire [78:0] \$13 ;
wire [78:0] \$15 ;
wire [94:0] \$17 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$24 ;
wire [94:0] \$25 ;
wire [94:0] \$27 ;
wire [126:0] \$29 ;
wire [63:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [126:0] \$34 ;
wire [78:0] \$36 ;
wire [78:0] \$37 ;
wire [7:0] \$39 ;
wire [78:0] \$41 ;
wire [78:0] \$5 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 4'h9;
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = empty0 <<< (* src = "attacks-qbb.py:35" *) 5'h12;
assign \$1 = ~ (* src = "attacks-qbb.py:167" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 5'h12;
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = empty1 <<< (* src = "attacks-qbb.py:37" *) 6'h24;
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = empty2 <<< (* src = "attacks-qbb.py:38" *) 4'h9;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:167" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = empty <<< (* src = "attacks-qbb.py:33" *) 4'h9;
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_northwest" *)
(* generator = "nMigen" *)
module white_fill_northwest(empty, pieces);
wire [63:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$12 ;
wire [70:0] \$13 ;
wire [70:0] \$15 ;
wire [78:0] \$17 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$24 ;
wire [78:0] \$25 ;
wire [78:0] \$27 ;
wire [94:0] \$29 ;
wire [63:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [94:0] \$34 ;
wire [70:0] \$36 ;
wire [70:0] \$37 ;
wire [63:0] \$39 ;
wire [70:0] \$41 ;
wire [70:0] \$5 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
wire [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff9);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff2);
assign \$1 = ~ (* src = "attacks-qbb.py:173" *) 64'h8080808080808080;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff2);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe4);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff9);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:173" *) 64'h8080808080808080;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff9);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_south" *)
(* generator = "nMigen" *)
module white_fill_south(empty, \output , pieces);
wire [63:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$11 ;
wire [70:0] \$13 ;
wire [78:0] \$15 ;
wire [78:0] \$16 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$23 ;
wire [78:0] \$25 ;
wire [94:0] \$27 ;
wire [94:0] \$28 ;
wire [70:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [70:0] \$34 ;
wire [70:0] \$35 ;
wire [70:0] \$37 ;
wire [70:0] \$4 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$11 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff8);
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff0);
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = pieces & (* src = "attacks-qbb.py:32" *) 64'hffffffffffffffff;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff0);
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe0);
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$35 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff8);
assign \$37 = \$35 & (* src = "attacks-qbb.py:38" *) 64'hffffffffffffffff;
assign \$4 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff8);
assign \$6 = pieces0 & (* src = "attacks-qbb.py:33" *) \$4 ;
assign \$8 = empty | (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$1 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$3 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$10 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$34 [63:0];
end
assign \$3 = \$8 ;
assign \$10 = \$13 ;
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \$34 = \$37 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_southeast" *)
(* generator = "nMigen" *)
module white_fill_southeast(empty, pieces);
wire [7:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$12 ;
wire [70:0] \$13 ;
wire [70:0] \$15 ;
wire [78:0] \$17 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$24 ;
wire [78:0] \$25 ;
wire [78:0] \$27 ;
wire [94:0] \$29 ;
wire [63:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [94:0] \$34 ;
wire [70:0] \$36 ;
wire [70:0] \$37 ;
wire [7:0] \$39 ;
wire [70:0] \$41 ;
wire [70:0] \$5 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
wire [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff9);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff2);
assign \$1 = ~ (* src = "attacks-qbb.py:169" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff2);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe4);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff9);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:169" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff9);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_southwest" *)
(* generator = "nMigen" *)
module white_fill_southwest(empty, \output , pieces);
wire [63:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$12 ;
wire [78:0] \$13 ;
wire [78:0] \$15 ;
wire [94:0] \$17 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$24 ;
wire [94:0] \$25 ;
wire [94:0] \$27 ;
wire [126:0] \$29 ;
wire [63:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [126:0] \$34 ;
wire [78:0] \$36 ;
wire [78:0] \$37 ;
wire [63:0] \$39 ;
wire [78:0] \$41 ;
wire [78:0] \$5 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff7);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hffffffffffffffee);
assign \$1 = ~ (* src = "attacks-qbb.py:171" *) 64'h8080808080808080;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hffffffffffffffee);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffdc);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff7);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:171" *) 64'h8080808080808080;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff7);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_fill_west" *)
(* generator = "nMigen" *)
module white_fill_west(empty, \output , pieces);
wire [63:0] \$1 ;
wire [63:0] \$11 ;
wire [63:0] \$13 ;
wire [64:0] \$15 ;
wire [64:0] \$16 ;
wire [64:0] \$18 ;
wire [64:0] \$20 ;
wire [64:0] \$22 ;
wire [64:0] \$23 ;
wire [64:0] \$25 ;
wire [66:0] \$27 ;
wire [66:0] \$28 ;
wire [63:0] \$3 ;
wire [66:0] \$30 ;
wire [66:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [63:0] \$38 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [63:0] \$9 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$9 = empty | (* src = "attacks-qbb.py:33" *) \$7 ;
assign \$11 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hffffffffffffffff);
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffffe);
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = ~ (* src = "attacks-qbb.py:172" *) 64'h8080808080808080;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffffe);
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hfffffffffffffffc);
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hffffffffffffffff);
assign \$36 = ~ (* src = "attacks-qbb.py:172" *) 64'h8080808080808080;
assign \$38 = \$34 & (* src = "attacks-qbb.py:38" *) \$36 ;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$5 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hffffffffffffffff);
assign \$7 = pieces0 & (* src = "attacks-qbb.py:33" *) \$5 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$9 ;
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$13 ;
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$38 ;
end
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king" *)
(* generator = "nMigen" *)
module white_king(pieces);
wire [78:0] \$1 ;
wire [64:0] \$11 ;
wire [63:0] \$12 ;
wire [63:0] \$14 ;
wire [64:0] \$16 ;
wire [63:0] \$18 ;
wire [78:0] \$2 ;
wire [63:0] \$20 ;
wire [63:0] \$22 ;
wire [63:0] \$24 ;
wire [7:0] \$26 ;
wire [63:0] \$28 ;
wire [63:0] \$30 ;
wire [7:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [70:0] \$38 ;
wire [7:0] \$39 ;
wire [78:0] \$4 ;
wire [63:0] \$41 ;
wire [70:0] \$43 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:80" *)
reg [63:0] \$next\e ;
(* src = "attacks-qbb.py:78" *)
reg [63:0] \$next\n ;
(* src = "attacks-qbb.py:79" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:85" *)
reg [63:0] \$next\nw ;
(* src = "attacks-qbb.py:82" *)
reg [63:0] \$next\s ;
(* src = "attacks-qbb.py:81" *)
reg [63:0] \$next\se ;
(* src = "attacks-qbb.py:83" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:84" *)
reg [63:0] \$next\w ;
(* src = "attacks-qbb.py:80" *)
wire [63:0] e;
(* src = "attacks-qbb.py:78" *)
wire [63:0] n;
(* src = "attacks-qbb.py:79" *)
wire [63:0] ne;
(* src = "attacks-qbb.py:85" *)
wire [63:0] nw;
(* src = "attacks-qbb.py:76" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:82" *)
wire [63:0] s;
(* src = "attacks-qbb.py:81" *)
wire [63:0] se;
(* src = "attacks-qbb.py:83" *)
wire [63:0] sw;
(* src = "attacks-qbb.py:84" *)
wire [63:0] w;
assign \$9 = \$7 <<< (* src = "attacks-qbb.py:92" *) 4'h9;
assign \$12 = ~ (* src = "attacks-qbb.py:93" *) 64'h8080808080808080;
assign \$14 = pieces & (* src = "attacks-qbb.py:93" *) \$12 ;
assign \$16 = \$14 <<< (* src = "attacks-qbb.py:93" *) 1'h1;
assign \$18 = ~ (* src = "attacks-qbb.py:94" *) 64'h8080808080808080;
assign \$20 = pieces & (* src = "attacks-qbb.py:94" *) \$18 ;
assign \$22 = \$20 >>> (* src = "attacks-qbb.py:94" *) 3'h7;
assign \$24 = pieces >>> (* src = "attacks-qbb.py:95" *) 4'h8;
assign \$26 = ~ (* src = "attacks-qbb.py:96" *) 8'hff;
assign \$28 = pieces & (* src = "attacks-qbb.py:96" *) \$26 ;
assign \$2 = pieces <<< (* src = "attacks-qbb.py:91" *) 4'h8;
assign \$30 = \$28 >>> (* src = "attacks-qbb.py:96" *) 4'h9;
assign \$32 = ~ (* src = "attacks-qbb.py:97" *) 8'hff;
assign \$34 = pieces & (* src = "attacks-qbb.py:97" *) \$32 ;
assign \$36 = \$34 >>> (* src = "attacks-qbb.py:97" *) 1'h1;
assign \$39 = ~ (* src = "attacks-qbb.py:98" *) 8'hff;
assign \$41 = pieces & (* src = "attacks-qbb.py:98" *) \$39 ;
assign \$43 = \$41 <<< (* src = "attacks-qbb.py:98" *) 3'h7;
assign \$5 = ~ (* src = "attacks-qbb.py:92" *) 64'h8080808080808080;
assign \$7 = pieces & (* src = "attacks-qbb.py:92" *) \$5 ;
always @* begin
\$next\n = 64'h0000000000000000;
\$next\n = \$1 [63:0];
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = \$4 [63:0];
end
always @* begin
\$next\e = 64'h0000000000000000;
\$next\e = \$11 [63:0];
end
always @* begin
\$next\se = 64'h0000000000000000;
\$next\se = \$22 ;
end
always @* begin
\$next\s = 64'h0000000000000000;
\$next\s = \$24 ;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = \$30 ;
end
always @* begin
\$next\w = 64'h0000000000000000;
\$next\w = \$36 ;
end
always @* begin
\$next\nw = 64'h0000000000000000;
\$next\nw = \$38 [63:0];
end
assign \$1 = \$2 ;
assign \$4 = \$9 ;
assign \$11 = \$16 ;
assign \$38 = \$43 ;
assign nw = \$next\nw ;
assign w = \$next\w ;
assign sw = \$next\sw ;
assign s = \$next\s ;
assign se = \$next\se ;
assign e = \$next\e ;
assign ne = \$next\ne ;
assign n = \$next\n ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_east" *)
(* generator = "nMigen" *)
module white_king_fill_east(empty, \output , pieces);
wire [7:0] \$1 ;
wire [64:0] \$10 ;
wire [64:0] \$12 ;
wire [64:0] \$13 ;
wire [64:0] \$15 ;
wire [66:0] \$17 ;
wire [66:0] \$18 ;
wire [66:0] \$20 ;
wire [66:0] \$22 ;
wire [66:0] \$24 ;
wire [66:0] \$25 ;
wire [66:0] \$27 ;
wire [70:0] \$29 ;
wire [63:0] \$3 ;
wire [70:0] \$30 ;
wire [70:0] \$32 ;
wire [70:0] \$34 ;
wire [64:0] \$36 ;
wire [64:0] \$37 ;
wire [7:0] \$39 ;
wire [64:0] \$41 ;
wire [64:0] \$5 ;
wire [64:0] \$6 ;
wire [64:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 1'h1;
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = empty0 <<< (* src = "attacks-qbb.py:35" *) 2'h2;
assign \$1 = ~ (* src = "attacks-qbb.py:159" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 2'h2;
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = empty1 <<< (* src = "attacks-qbb.py:37" *) 3'h4;
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = empty2 <<< (* src = "attacks-qbb.py:38" *) 1'h1;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:159" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = empty <<< (* src = "attacks-qbb.py:33" *) 1'h1;
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_north" *)
(* generator = "nMigen" *)
module white_king_fill_north(empty, \output , pieces);
wire [63:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$11 ;
wire [78:0] \$13 ;
wire [94:0] \$15 ;
wire [94:0] \$16 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$23 ;
wire [94:0] \$25 ;
wire [126:0] \$27 ;
wire [126:0] \$28 ;
wire [78:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [78:0] \$34 ;
wire [78:0] \$35 ;
wire [78:0] \$37 ;
wire [78:0] \$4 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$11 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 4'h8;
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = empty0 <<< (* src = "attacks-qbb.py:35" *) 5'h10;
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = pieces & (* src = "attacks-qbb.py:32" *) 64'hffffffffffffffff;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 5'h10;
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = empty1 <<< (* src = "attacks-qbb.py:37" *) 6'h20;
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$35 = empty2 <<< (* src = "attacks-qbb.py:38" *) 4'h8;
assign \$37 = \$35 & (* src = "attacks-qbb.py:38" *) 64'hffffffffffffffff;
assign \$4 = empty <<< (* src = "attacks-qbb.py:33" *) 4'h8;
assign \$6 = pieces0 & (* src = "attacks-qbb.py:33" *) \$4 ;
assign \$8 = empty | (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$1 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$3 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$10 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$34 [63:0];
end
assign \$3 = \$8 ;
assign \$10 = \$13 ;
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \$34 = \$37 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_northeast" *)
(* generator = "nMigen" *)
module white_king_fill_northeast(empty, \output , pieces);
wire [7:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$12 ;
wire [78:0] \$13 ;
wire [78:0] \$15 ;
wire [94:0] \$17 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$24 ;
wire [94:0] \$25 ;
wire [94:0] \$27 ;
wire [126:0] \$29 ;
wire [63:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [126:0] \$34 ;
wire [78:0] \$36 ;
wire [78:0] \$37 ;
wire [7:0] \$39 ;
wire [78:0] \$41 ;
wire [78:0] \$5 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = pieces0 <<< (* src = "attacks-qbb.py:34" *) 4'h9;
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = empty0 <<< (* src = "attacks-qbb.py:35" *) 5'h12;
assign \$1 = ~ (* src = "attacks-qbb.py:158" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = pieces1 <<< (* src = "attacks-qbb.py:36" *) 5'h12;
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = empty1 <<< (* src = "attacks-qbb.py:37" *) 6'h24;
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = empty2 <<< (* src = "attacks-qbb.py:38" *) 4'h9;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:158" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = empty <<< (* src = "attacks-qbb.py:33" *) 4'h9;
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_northwest" *)
(* generator = "nMigen" *)
module white_king_fill_northwest(empty, \output , pieces);
wire [63:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$12 ;
wire [70:0] \$13 ;
wire [70:0] \$15 ;
wire [78:0] \$17 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$24 ;
wire [78:0] \$25 ;
wire [78:0] \$27 ;
wire [94:0] \$29 ;
wire [63:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [94:0] \$34 ;
wire [70:0] \$36 ;
wire [70:0] \$37 ;
wire [63:0] \$39 ;
wire [70:0] \$41 ;
wire [70:0] \$5 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff9);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff2);
assign \$1 = ~ (* src = "attacks-qbb.py:164" *) 64'h8080808080808080;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff2);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe4);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff9);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:164" *) 64'h8080808080808080;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff9);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_south" *)
(* generator = "nMigen" *)
module white_king_fill_south(empty, \output , pieces);
wire [63:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$11 ;
wire [70:0] \$13 ;
wire [78:0] \$15 ;
wire [78:0] \$16 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$23 ;
wire [78:0] \$25 ;
wire [94:0] \$27 ;
wire [94:0] \$28 ;
wire [70:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [70:0] \$34 ;
wire [70:0] \$35 ;
wire [70:0] \$37 ;
wire [70:0] \$4 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$11 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff8);
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff0);
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = pieces & (* src = "attacks-qbb.py:32" *) 64'hffffffffffffffff;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff0);
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe0);
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$35 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff8);
assign \$37 = \$35 & (* src = "attacks-qbb.py:38" *) 64'hffffffffffffffff;
assign \$4 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff8);
assign \$6 = pieces0 & (* src = "attacks-qbb.py:33" *) \$4 ;
assign \$8 = empty | (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$1 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$3 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$10 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$34 [63:0];
end
assign \$3 = \$8 ;
assign \$10 = \$13 ;
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \$34 = \$37 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_southeast" *)
(* generator = "nMigen" *)
module white_king_fill_southeast(empty, \output , pieces);
wire [7:0] \$1 ;
wire [70:0] \$10 ;
wire [70:0] \$12 ;
wire [70:0] \$13 ;
wire [70:0] \$15 ;
wire [78:0] \$17 ;
wire [78:0] \$18 ;
wire [78:0] \$20 ;
wire [78:0] \$22 ;
wire [78:0] \$24 ;
wire [78:0] \$25 ;
wire [78:0] \$27 ;
wire [94:0] \$29 ;
wire [63:0] \$3 ;
wire [94:0] \$30 ;
wire [94:0] \$32 ;
wire [94:0] \$34 ;
wire [70:0] \$36 ;
wire [70:0] \$37 ;
wire [7:0] \$39 ;
wire [70:0] \$41 ;
wire [70:0] \$5 ;
wire [70:0] \$6 ;
wire [70:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff9);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffff2);
assign \$1 = ~ (* src = "attacks-qbb.py:160" *) 8'hff;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffff2);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffe4);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff9);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:160" *) 8'hff;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff9);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_southwest" *)
(* generator = "nMigen" *)
module white_king_fill_southwest(empty, pieces);
wire [63:0] \$1 ;
wire [78:0] \$10 ;
wire [78:0] \$12 ;
wire [78:0] \$13 ;
wire [78:0] \$15 ;
wire [94:0] \$17 ;
wire [94:0] \$18 ;
wire [94:0] \$20 ;
wire [94:0] \$22 ;
wire [94:0] \$24 ;
wire [94:0] \$25 ;
wire [94:0] \$27 ;
wire [126:0] \$29 ;
wire [63:0] \$3 ;
wire [126:0] \$30 ;
wire [126:0] \$32 ;
wire [126:0] \$34 ;
wire [78:0] \$36 ;
wire [78:0] \$37 ;
wire [63:0] \$39 ;
wire [78:0] \$41 ;
wire [78:0] \$5 ;
wire [78:0] \$6 ;
wire [78:0] \$8 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
wire [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$10 = empty | (* src = "attacks-qbb.py:33" *) \$8 ;
assign \$13 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hfffffffffffffff7);
assign \$15 = pieces0 & (* src = "attacks-qbb.py:34" *) \$13 ;
assign \$18 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hffffffffffffffee);
assign \$1 = ~ (* src = "attacks-qbb.py:162" *) 64'h8080808080808080;
assign \$20 = pieces1 & (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$22 = empty0 | (* src = "attacks-qbb.py:35" *) \$20 ;
assign \$25 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hffffffffffffffee);
assign \$27 = pieces1 & (* src = "attacks-qbb.py:36" *) \$25 ;
assign \$30 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hffffffffffffffdc);
assign \$32 = pieces2 & (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = empty1 | (* src = "attacks-qbb.py:37" *) \$32 ;
assign \$37 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hfffffffffffffff7);
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$39 = ~ (* src = "attacks-qbb.py:162" *) 64'h8080808080808080;
assign \$41 = \$37 & (* src = "attacks-qbb.py:38" *) \$39 ;
assign \$6 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hfffffffffffffff7);
assign \$8 = pieces0 & (* src = "attacks-qbb.py:33" *) \$6 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$5 [63:0];
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$12 [63:0];
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$17 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$24 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$29 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$36 [63:0];
end
assign \$5 = \$10 ;
assign \$12 = \$15 ;
assign \$17 = \$22 ;
assign \$24 = \$27 ;
assign \$29 = \$34 ;
assign \$36 = \$41 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_fill_west" *)
(* generator = "nMigen" *)
module white_king_fill_west(empty, \output , pieces);
wire [63:0] \$1 ;
wire [63:0] \$11 ;
wire [63:0] \$13 ;
wire [64:0] \$15 ;
wire [64:0] \$16 ;
wire [64:0] \$18 ;
wire [64:0] \$20 ;
wire [64:0] \$22 ;
wire [64:0] \$23 ;
wire [64:0] \$25 ;
wire [66:0] \$27 ;
wire [66:0] \$28 ;
wire [63:0] \$3 ;
wire [66:0] \$30 ;
wire [66:0] \$32 ;
wire [63:0] \$34 ;
wire [63:0] \$36 ;
wire [63:0] \$38 ;
wire [63:0] \$5 ;
wire [63:0] \$7 ;
wire [63:0] \$9 ;
(* src = "attacks-qbb.py:25" *)
reg [63:0] \$next\empty0 ;
(* src = "attacks-qbb.py:27" *)
reg [63:0] \$next\empty1 ;
(* src = "attacks-qbb.py:29" *)
reg [63:0] \$next\empty2 ;
(* src = "attacks-qbb.py:16" *)
reg [63:0] \$next\output ;
(* src = "attacks-qbb.py:24" *)
reg [63:0] \$next\pieces0 ;
(* src = "attacks-qbb.py:26" *)
reg [63:0] \$next\pieces1 ;
(* src = "attacks-qbb.py:28" *)
reg [63:0] \$next\pieces2 ;
(* src = "attacks-qbb.py:14" *)
input [63:0] empty;
(* src = "attacks-qbb.py:25" *)
wire [63:0] empty0;
(* src = "attacks-qbb.py:27" *)
wire [63:0] empty1;
(* src = "attacks-qbb.py:29" *)
wire [63:0] empty2;
(* src = "attacks-qbb.py:16" *)
output [63:0] \output ;
(* src = "attacks-qbb.py:15" *)
input [63:0] pieces;
(* src = "attacks-qbb.py:24" *)
wire [63:0] pieces0;
(* src = "attacks-qbb.py:26" *)
wire [63:0] pieces1;
(* src = "attacks-qbb.py:28" *)
wire [63:0] pieces2;
assign \$9 = empty | (* src = "attacks-qbb.py:33" *) \$7 ;
assign \$11 = $signed(pieces0) <<< (* src = "attacks-qbb.py:34" *) $signed(64'hffffffffffffffff);
assign \$13 = pieces0 & (* src = "attacks-qbb.py:34" *) \$11 ;
assign \$16 = $signed(empty0) <<< (* src = "attacks-qbb.py:35" *) $signed(64'hfffffffffffffffe);
assign \$18 = pieces1 & (* src = "attacks-qbb.py:35" *) \$16 ;
assign \$1 = ~ (* src = "attacks-qbb.py:163" *) 64'h8080808080808080;
assign \$20 = empty0 | (* src = "attacks-qbb.py:35" *) \$18 ;
assign \$23 = $signed(pieces1) <<< (* src = "attacks-qbb.py:36" *) $signed(64'hfffffffffffffffe);
assign \$25 = pieces1 & (* src = "attacks-qbb.py:36" *) \$23 ;
assign \$28 = $signed(empty1) <<< (* src = "attacks-qbb.py:37" *) $signed(64'hfffffffffffffffc);
assign \$30 = pieces2 & (* src = "attacks-qbb.py:37" *) \$28 ;
assign \$32 = empty1 | (* src = "attacks-qbb.py:37" *) \$30 ;
assign \$34 = $signed(empty2) <<< (* src = "attacks-qbb.py:38" *) $signed(64'hffffffffffffffff);
assign \$36 = ~ (* src = "attacks-qbb.py:163" *) 64'h8080808080808080;
assign \$38 = \$34 & (* src = "attacks-qbb.py:38" *) \$36 ;
assign \$3 = pieces & (* src = "attacks-qbb.py:32" *) \$1 ;
assign \$5 = $signed(empty) <<< (* src = "attacks-qbb.py:33" *) $signed(64'hffffffffffffffff);
assign \$7 = pieces0 & (* src = "attacks-qbb.py:33" *) \$5 ;
always @* begin
\$next\pieces0 = 64'h0000000000000000;
\$next\pieces0 = \$3 ;
end
always @* begin
\$next\empty0 = 64'h0000000000000000;
\$next\empty0 = \$9 ;
end
always @* begin
\$next\pieces1 = 64'h0000000000000000;
\$next\pieces1 = \$13 ;
end
always @* begin
\$next\empty1 = 64'h0000000000000000;
\$next\empty1 = \$15 [63:0];
end
always @* begin
\$next\pieces2 = 64'h0000000000000000;
\$next\pieces2 = \$22 [63:0];
end
always @* begin
\$next\empty2 = 64'h0000000000000000;
\$next\empty2 = \$27 [63:0];
end
always @* begin
\$next\output = 64'h0000000000000000;
\$next\output = \$38 ;
end
assign \$15 = \$20 ;
assign \$22 = \$25 ;
assign \$27 = \$32 ;
assign \output = \$next\output ;
assign empty2 = \$next\empty2 ;
assign pieces2 = \$next\pieces2 ;
assign empty1 = \$next\empty1 ;
assign pieces1 = \$next\pieces1 ;
assign empty0 = \$next\empty0 ;
assign pieces0 = \$next\pieces0 ;
endmodule
(* \nmigen.hierarchy = "top.white_king_knight_attacks" *)
(* generator = "nMigen" *)
module white_king_knight_attacks(nne, ene, ese, sse, ssw, wsw, wnw, nnw, knights);
wire [94:0] \$1 ;
wire [7:0] \$11 ;
wire [78:0] \$13 ;
wire [15:0] \$15 ;
wire [78:0] \$17 ;
wire [63:0] \$19 ;
wire [94:0] \$2 ;
wire [7:0] \$21 ;
wire [63:0] \$23 ;
wire [15:0] \$25 ;
wire [63:0] \$27 ;
wire [63:0] \$29 ;
wire [7:0] \$31 ;
wire [63:0] \$33 ;
wire [63:0] \$35 ;
wire [63:0] \$37 ;
wire [63:0] \$39 ;
wire [7:0] \$4 ;
wire [63:0] \$41 ;
wire [55:0] \$43 ;
wire [63:0] \$45 ;
wire [63:0] \$47 ;
wire [63:0] \$49 ;
wire [70:0] \$51 ;
wire [70:0] \$52 ;
wire [55:0] \$54 ;
wire [70:0] \$56 ;
wire [63:0] \$58 ;
wire [94:0] \$6 ;
wire [70:0] \$60 ;
wire [78:0] \$62 ;
wire [78:0] \$63 ;
wire [63:0] \$65 ;
wire [78:0] \$67 ;
wire [78:0] \$8 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:49" *)
reg [63:0] \$next\ene ;
(* src = "attacks-qbb.py:50" *)
reg [63:0] \$next\ese ;
(* src = "attacks-qbb.py:48" *)
reg [63:0] \$next\nne ;
(* src = "attacks-qbb.py:55" *)
reg [63:0] \$next\nnw ;
(* src = "attacks-qbb.py:51" *)
reg [63:0] \$next\sse ;
(* src = "attacks-qbb.py:52" *)
reg [63:0] \$next\ssw ;
(* src = "attacks-qbb.py:54" *)
reg [63:0] \$next\wnw ;
(* src = "attacks-qbb.py:53" *)
reg [63:0] \$next\wsw ;
(* src = "attacks-qbb.py:49" *)
output [63:0] ene;
(* src = "attacks-qbb.py:50" *)
output [63:0] ese;
(* src = "attacks-qbb.py:46" *)
input [63:0] knights;
(* src = "attacks-qbb.py:48" *)
output [63:0] nne;
(* src = "attacks-qbb.py:55" *)
output [63:0] nnw;
(* src = "attacks-qbb.py:51" *)
output [63:0] sse;
(* src = "attacks-qbb.py:52" *)
output [63:0] ssw;
(* src = "attacks-qbb.py:54" *)
output [63:0] wnw;
(* src = "attacks-qbb.py:53" *)
output [63:0] wsw;
assign \$9 = knights <<< (* src = "attacks-qbb.py:62" *) 4'ha;
assign \$11 = ~ (* src = "attacks-qbb.py:62" *) 8'hff;
assign \$13 = \$9 & (* src = "attacks-qbb.py:62" *) \$11 ;
assign \$15 = ~ (* src = "attacks-qbb.py:62" *) 16'haaaa;
assign \$17 = \$13 & (* src = "attacks-qbb.py:62" *) \$15 ;
assign \$19 = knights >>> (* src = "attacks-qbb.py:63" *) 3'h6;
assign \$21 = ~ (* src = "attacks-qbb.py:63" *) 8'hff;
assign \$23 = \$19 & (* src = "attacks-qbb.py:63" *) \$21 ;
assign \$25 = ~ (* src = "attacks-qbb.py:63" *) 16'haaaa;
assign \$27 = \$23 & (* src = "attacks-qbb.py:63" *) \$25 ;
assign \$2 = knights <<< (* src = "attacks-qbb.py:61" *) 5'h11;
assign \$29 = knights >>> (* src = "attacks-qbb.py:64" *) 4'hf;
assign \$31 = ~ (* src = "attacks-qbb.py:64" *) 8'hff;
assign \$33 = \$29 & (* src = "attacks-qbb.py:64" *) \$31 ;
assign \$35 = knights >>> (* src = "attacks-qbb.py:65" *) 5'h11;
assign \$37 = ~ (* src = "attacks-qbb.py:65" *) 64'h8080808080808080;
assign \$39 = \$35 & (* src = "attacks-qbb.py:65" *) \$37 ;
assign \$41 = knights >>> (* src = "attacks-qbb.py:66" *) 4'ha;
assign \$43 = ~ (* src = "attacks-qbb.py:66" *) 56'h81020408102040;
assign \$45 = \$41 & (* src = "attacks-qbb.py:66" *) \$43 ;
assign \$47 = ~ (* src = "attacks-qbb.py:66" *) 64'h8080808080808080;
assign \$4 = ~ (* src = "attacks-qbb.py:61" *) 8'hff;
assign \$49 = \$45 & (* src = "attacks-qbb.py:66" *) \$47 ;
assign \$52 = knights <<< (* src = "attacks-qbb.py:67" *) 3'h6;
assign \$54 = ~ (* src = "attacks-qbb.py:67" *) 56'h81020408102040;
assign \$56 = \$52 & (* src = "attacks-qbb.py:67" *) \$54 ;
assign \$58 = ~ (* src = "attacks-qbb.py:67" *) 64'h8080808080808080;
assign \$60 = \$56 & (* src = "attacks-qbb.py:67" *) \$58 ;
assign \$63 = knights <<< (* src = "attacks-qbb.py:68" *) 4'hf;
assign \$65 = ~ (* src = "attacks-qbb.py:68" *) 64'h8080808080808080;
assign \$67 = \$63 & (* src = "attacks-qbb.py:68" *) \$65 ;
assign \$6 = \$2 & (* src = "attacks-qbb.py:61" *) \$4 ;
always @* begin
\$next\nne = 64'h0000000000000000;
\$next\nne = \$1 [63:0];
end
always @* begin
\$next\ene = 64'h0000000000000000;
\$next\ene = \$8 [63:0];
end
always @* begin
\$next\ese = 64'h0000000000000000;
\$next\ese = \$27 ;
end
always @* begin
\$next\sse = 64'h0000000000000000;
\$next\sse = \$33 ;
end
always @* begin
\$next\ssw = 64'h0000000000000000;
\$next\ssw = \$39 ;
end
always @* begin
\$next\wsw = 64'h0000000000000000;
\$next\wsw = \$49 ;
end
always @* begin
\$next\wnw = 64'h0000000000000000;
\$next\wnw = \$51 [63:0];
end
always @* begin
\$next\nnw = 64'h0000000000000000;
\$next\nnw = \$62 [63:0];
end
assign \$1 = \$6 ;
assign \$8 = \$17 ;
assign \$51 = \$60 ;
assign \$62 = \$67 ;
assign nnw = \$next\nnw ;
assign wnw = \$next\wnw ;
assign wsw = \$next\wsw ;
assign ssw = \$next\ssw ;
assign sse = \$next\sse ;
assign ese = \$next\ese ;
assign ene = \$next\ene ;
assign nne = \$next\nne ;
endmodule
(* \nmigen.hierarchy = "top.white_king_pawn_attacks" *)
(* generator = "nMigen" *)
module white_king_pawn_attacks(ne, nw, pawns);
(* src = "attacks-qbb.py:108" *)
reg [63:0] \$next\ne ;
(* src = "attacks-qbb.py:111" *)
reg [63:0] \$next\nw ;
(* src = "attacks-qbb.py:109" *)
reg [63:0] \$next\se ;
(* src = "attacks-qbb.py:76" *)
reg [63:0] \$next\step_pieces ;
(* src = "attacks-qbb.py:110" *)
reg [63:0] \$next\sw ;
(* src = "attacks-qbb.py:108" *)
output [63:0] ne;
(* src = "attacks-qbb.py:111" *)
output [63:0] nw;
(* src = "attacks-qbb.py:106" *)
input [63:0] pawns;
(* src = "attacks-qbb.py:109" *)
wire [63:0] se;
(* src = "attacks-qbb.py:79" *)
wire [63:0] step_ne;
(* src = "attacks-qbb.py:85" *)
wire [63:0] step_nw;
(* src = "attacks-qbb.py:76" *)
wire [63:0] step_pieces;
(* src = "attacks-qbb.py:81" *)
wire [63:0] step_se;
(* src = "attacks-qbb.py:83" *)
wire [63:0] step_sw;
(* src = "attacks-qbb.py:110" *)
wire [63:0] sw;
step step (
.ne(step_ne),
.nw(step_nw),
.pieces(step_pieces),
.se(step_se),
.sw(step_sw)
);
always @* begin
\$next\step_pieces = 64'h0000000000000000;
\$next\step_pieces = pawns;
end
always @* begin
\$next\ne = 64'h0000000000000000;
\$next\ne = step_ne;
end
always @* begin
\$next\se = 64'h0000000000000000;
\$next\se = step_se;
end
always @* begin
\$next\sw = 64'h0000000000000000;
\$next\sw = step_sw;
end
always @* begin
\$next\nw = 64'h0000000000000000;
\$next\nw = step_nw;
end
assign nw = \$next\nw ;
assign sw = \$next\sw ;
assign se = \$next\se ;
assign ne = \$next\ne ;
assign step_pieces = \$next\step_pieces ;
endmodule
(* \nmigen.hierarchy = "top.white_knights" *)
(* generator = "nMigen" *)
module white_knights(knights);
wire [94:0] \$1 ;
wire [7:0] \$11 ;
wire [78:0] \$13 ;
wire [15:0] \$15 ;
wire [78:0] \$17 ;
wire [63:0] \$19 ;
wire [94:0] \$2 ;
wire [7:0] \$21 ;
wire [63:0] \$23 ;
wire [15:0] \$25 ;
wire [63:0] \$27 ;
wire [63:0] \$29 ;
wire [7:0] \$31 ;
wire [63:0] \$33 ;
wire [63:0] \$35 ;
wire [63:0] \$37 ;
wire [63:0] \$39 ;
wire [7:0] \$4 ;
wire [63:0] \$41 ;
wire [55:0] \$43 ;
wire [63:0] \$45 ;
wire [63:0] \$47 ;
wire [63:0] \$49 ;
wire [70:0] \$51 ;
wire [70:0] \$52 ;
wire [55:0] \$54 ;
wire [70:0] \$56 ;
wire [63:0] \$58 ;
wire [94:0] \$6 ;
wire [70:0] \$60 ;
wire [78:0] \$62 ;
wire [78:0] \$63 ;
wire [63:0] \$65 ;
wire [78:0] \$67 ;
wire [78:0] \$8 ;
wire [78:0] \$9 ;
(* src = "attacks-qbb.py:49" *)
reg [63:0] \$next\ene ;
(* src = "attacks-qbb.py:50" *)
reg [63:0] \$next\ese ;
(* src = "attacks-qbb.py:48" *)
reg [63:0] \$next\nne ;
(* src = "attacks-qbb.py:55" *)
reg [63:0] \$next\nnw ;
(* src = "attacks-qbb.py:51" *)
reg [63:0] \$next\sse ;
(* src = "attacks-qbb.py:52" *)
reg [63:0] \$next\ssw ;
(* src = "attacks-qbb.py:54" *)
reg [63:0] \$next\wnw ;
(* src = "attacks-qbb.py:53" *)
reg [63:0] \$next\wsw ;
(* src = "attacks-qbb.py:49" *)
wire [63:0] ene;
(* src = "attacks-qbb.py:50" *)
wire [63:0] ese;
(* src = "attacks-qbb.py:46" *)
input [63:0] knights;
(* src = "attacks-qbb.py:48" *)
wire [63:0] nne;
(* src = "attacks-qbb.py:55" *)
wire [63:0] nnw;
(* src = "attacks-qbb.py:51" *)
wire [63:0] sse;
(* src = "attacks-qbb.py:52" *)
wire [63:0] ssw;
(* src = "attacks-qbb.py:54" *)
wire [63:0] wnw;
(* src = "attacks-qbb.py:53" *)
wire [63:0] wsw;
assign \$9 = knights <<< (* src = "attacks-qbb.py:62" *) 4'ha;
assign \$11 = ~ (* src = "attacks-qbb.py:62" *) 8'hff;
assign \$13 = \$9 & (* src = "attacks-qbb.py:62" *) \$11 ;
assign \$15 = ~ (* src = "attacks-qbb.py:62" *) 16'haaaa;
assign \$17 = \$13 & (* src = "attacks-qbb.py:62" *) \$15 ;
assign \$19 = knights >>> (* src = "attacks-qbb.py:63" *) 3'h6;
assign \$21 = ~ (* src = "attacks-qbb.py:63" *) 8'hff;
assign \$23 = \$19 & (* src = "attacks-qbb.py:63" *) \$21 ;
assign \$25 = ~ (* src = "attacks-qbb.py:63" *) 16'haaaa;
assign \$27 = \$23 & (* src = "attacks-qbb.py:63" *) \$25 ;
assign \$2 = knights <<< (* src = "attacks-qbb.py:61" *) 5'h11;
assign \$29 = knights >>> (* src = "attacks-qbb.py:64" *) 4'hf;
assign \$31 = ~ (* src = "attacks-qbb.py:64" *) 8'hff;
assign \$33 = \$29 & (* src = "attacks-qbb.py:64" *) \$31 ;
assign \$35 = knights >>> (* src = "attacks-qbb.py:65" *) 5'h11;
assign \$37 = ~ (* src = "attacks-qbb.py:65" *) 64'h8080808080808080;
assign \$39 = \$35 & (* src = "attacks-qbb.py:65" *) \$37 ;
assign \$41 = knights >>> (* src = "attacks-qbb.py:66" *) 4'ha;
assign \$43 = ~ (* src = "attacks-qbb.py:66" *) 56'h81020408102040;
assign \$45 = \$41 & (* src = "attacks-qbb.py:66" *) \$43 ;
assign \$47 = ~ (* src = "attacks-qbb.py:66" *) 64'h8080808080808080;
assign \$4 = ~ (* src = "attacks-qbb.py:61" *) 8'hff;
assign \$49 = \$45 & (* src = "attacks-qbb.py:66" *) \$47 ;
assign \$52 = knights <<< (* src = "attacks-qbb.py:67" *) 3'h6;
assign \$54 = ~ (* src = "attacks-qbb.py:67" *) 56'h81020408102040;
assign \$56 = \$52 & (* src = "attacks-qbb.py:67" *) \$54 ;
assign \$58 = ~ (* src = "attacks-qbb.py:67" *) 64'h8080808080808080;
assign \$60 = \$56 & (* src = "attacks-qbb.py:67" *) \$58 ;
assign \$63 = knights <<< (* src = "attacks-qbb.py:68" *) 4'hf;
assign \$65 = ~ (* src = "attacks-qbb.py:68" *) 64'h8080808080808080;
assign \$67 = \$63 & (* src = "attacks-qbb.py:68" *) \$65 ;
assign \$6 = \$2 & (* src = "attacks-qbb.py:61" *) \$4 ;
always @* begin
\$next\nne = 64'h0000000000000000;
\$next\nne = \$1 [63:0];
end
always @* begin
\$next\ene = 64'h0000000000000000;
\$next\ene = \$8 [63:0];
end
always @* begin
\$next\ese = 64'h0000000000000000;
\$next\ese = \$27 ;
end
always @* begin
\$next\sse = 64'h0000000000000000;
\$next\sse = \$33 ;
end
always @* begin
\$next\ssw = 64'h0000000000000000;
\$next\ssw = \$39 ;
end
always @* begin
\$next\wsw = 64'h0000000000000000;
\$next\wsw = \$49 ;
end
always @* begin
\$next\wnw = 64'h0000000000000000;
\$next\wnw = \$51 [63:0];
end
always @* begin
\$next\nnw = 64'h0000000000000000;
\$next\nnw = \$62 [63:0];
end
assign \$1 = \$6 ;
assign \$8 = \$17 ;
assign \$51 = \$60 ;
assign \$62 = \$67 ;
assign nnw = \$next\nnw ;
assign wnw = \$next\wnw ;
assign wsw = \$next\wsw ;
assign ssw = \$next\ssw ;
assign sse = \$next\sse ;
assign ese = \$next\ese ;
assign ene = \$next\ene ;
assign nne = \$next\nne ;
endmodule