| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- module WinCalcTb();
- reg Clk_i;
- reg WindClk;
- reg Rst_i;
- reg [31:0] WinValue_i;
- reg WinType_i;
- reg CalcWind_i;
- reg Val;
- always #10 Clk_i = ~Clk_i;
- always #2.5 WindClk = ~WindClk;
- parameter WV = 32;
- initial begin
- Rst_i = 1;
- Clk_i = 1;
- WindClk = 1;
- WinValue_i = 0;
- WinType_i = 0;
- CalcWind_i = 0;
- #200
- Rst_i = 0;
- end
- // localparam [31:0] win_start_value = 32'h02AAAAAB;
- // localparam [31:0] win_step_value = 32'h05555555;
- localparam [31:0] win_start_value = 32'h0;
- localparam [31:0] win_step_value = 32'h4325c53;
- localparam [31:0] winPointsNum = 32'h3D;
- reg [31:0] pointsCnt;
- reg [31:0] tb_cnt;
- always @(posedge Clk_i) begin
- if (!Rst_i) begin
- if (CalcWind_i) begin
- if (pointsCnt != winPointsNum-1) begin
- pointsCnt <= pointsCnt+1;
- end else begin
- pointsCnt <= 0;
- end
- end else begin
- pointsCnt <= 0;
- end
- end else begin
- pointsCnt <= 0;
- end
- end
- always @(posedge Clk_i) begin
- if (!Rst_i) begin
- tb_cnt <= tb_cnt+1;
- end else begin
- tb_cnt <= 0;
- end
- end
- always @(posedge Clk_i) begin
- if (!Rst_i) begin
- if (tb_cnt == 50) begin
- CalcWind_i <= 1;
- end else if (pointsCnt == winPointsNum-1) begin
- CalcWind_i <= 0;
- end
- end
- end
- reg [WV-1:0] windArg;
- // reg [WV-1:0] win_value_reg;
- // wire [WV-1:0] win_value;
- // wire [WV :0] win_next_value;
- // assign win_next_value = win_value_reg + win_step_value;
- // assign win_value = (CalcWind_i) ? win_next_value : win_start_value;
-
- // always @(posedge Clk_i) begin
- // if (!Rst_i) begin
- // win_value_reg <= win_value;
- // end else begin
- // win_value_reg <= 48'b0;
- // end
- // end
-
- always @(posedge Clk_i) begin
- if (!Rst_i) begin
- if (CalcWind_i) begin
- windArg <= windArg+win_step_value;
- end else begin
- windArg <= win_start_value;
- end
- end else begin
- windArg <= 0;
- end
- end
-
- Win_calc WinCalcInst
- (
- .clk_i (Clk_i),
- .wind_clk (WindClk),
- .reset_i (Rst_i),
- .win_value_i (windArg),
- .win_type_i (WinType_i),
- .calc_wind_i (CalcWind_i),
- .win_o ()
- );
- endmodule
|