// 粘度测量模块 - 通过衰减率测量FHP的运动粘度
module viscosity_meter #(
    parameter WIDTH = 128,
    parameter HEIGHT = 128,
    parameter WAVELENGTH = 32
)(
    input  wire             clk,
    input  wire             rst_n,
    input  wire [6:0]       grid [0:WIDTH*HEIGHT-1],
    output wire [15:0]      viscosity,
    output wire [15:0]      amplitude,
    output wire             measurement_valid
);
    // 测量特定y坐标处的x方向动量
    localparam SAMPLE_Y = HEIGHT / 2;
    localparam K = 2 * 31416 / WAVELENGTH;  // 波数
    
    reg signed [31:0] vx_sum;
    integer x;
    always @(*) begin
        vx_sum = 32'd0;
        for (x = 0; x < WIDTH; x = x + 1) begin
            // x方向动量 = 方向0粒子数 - 方向3粒子数
            vx_sum = vx_sum + grid[SAMPLE_Y*WIDTH+x][0] - grid[SAMPLE_Y*WIDTH+x][3];
        end
    end
    
    assign amplitude = (vx_sum[31:16] < 0) ? -vx_sum[15:0] : vx_sum[15:0];
    assign viscosity = 16'd0;  // 需要多步测量计算
    assign measurement_valid = 1'b1;
endmodule