一、能量触发
(1)代码及注释:
module power_trigger
(
input clock,
input enable,
input reset,
input set_stb,
input [7:0] set_addr,
input [31:0] set_data,
input [31:0] sample_in,
input sample_in_strobe,
output reg trigger
);
`include "common_params.v"
localparam S_SKIP = 0;
localparam S_IDLE = 1;
localparam S_PACKET = 2;
reg [1:0] state;
wire [15:0] power_thres;
wire [15:0] window_size;
wire [31:0] num_sample_to_skip;
wire num_sample_changed;
reg [31:0] sample_count;
wire [15:0] input_i = sample_in[31:16];
reg [15:0] abs_i;
// threshold to claim a power trigger. the macro is 3, sr means setting_reg
setting_reg #(.my_addr(SR_POWER_THRES), .width(16), .at_reset(100)) sr_0 (
.clk(clock), .rst(reset), .strobe(set_stb), .addr(set_addr), .in(set_data),
.out(power_thres), .changed());
// power trigger window, the macro is 4
setting_reg #(.my_addr(SR_POWER_WI