// ============================================================================
// neighbor_counter.v - 高速Moore邻域计数器
// 使用3级加法器树，延迟仅3级LUT+进位链
// ============================================================================
module neighbor_counter (
    input  wire [7:0] neighbors,
    output wire [3:0] count
);
    // Level 1: 4个半加器（2输入→2输出）
    wire [1:0] s0 = neighbors[0] + neighbors[1];
    wire [1:0] s1 = neighbors[2] + neighbors[3];
    wire [1:0] s2 = neighbors[4] + neighbors[5];
    wire [1:0] s3 = neighbors[6] + neighbors[7];

    // Level 2: 2个3位加法器
    wire [2:0] t0 = s0 + s1;
    wire [2:0] t1 = s2 + s3;

    // Level 3: 最终4位加法
    assign count = t0 + t1;
endmodule