| /* 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 |
| |