Changeset 76 for trunk/MultiChannelUSB


Ignore:
Timestamp:
Nov 28, 2009, 2:12:09 AM (15 years ago)
Author:
demin
Message:

add counter between peaks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MultiChannelUSB/analyser.v

    r72 r76  
    44                input   wire                    data_ready,
    55                input   wire    [1:0]   uwt_flag,
    6                 input   wire    [11:0]  uwt_data,
    7                 output  wire                    peak_ready,
    8                 output  wire    [11:0]  peak
     6                output  wire                    peak_ready
    97        );
    108
     
    1210        reg             [3:0]   counter_reg, counter_next;
    1311        reg                             peak_ready_reg, peak_ready_next;
    14         reg             [11:0]  peak_reg, peak_next;
     12
     13        wire                    counter_max = (&counter_reg);
    1514
    1615        always @(posedge clk)
     
    2120                        counter_reg <= 4'd0;
    2221                        peak_ready_reg <= 1'b0;
    23                         peak_reg <= 12'd0;
    2422                end
    2523                else
     
    2826                        counter_reg <= counter_next;
    2927                        peak_ready_reg <= peak_ready_next;
    30                         peak_reg <= peak_next;                 
    3128                end
    3229        end
     
    3734                counter_next = counter_reg;
    3835                peak_ready_next = peak_ready_reg;
    39                 peak_next = peak_reg;
    4036                case (state_reg)
    4137                        0: // skip first 16 samples
    4238                        begin
    43                                 peak_next = 12'd0;
    4439                                peak_ready_next = 1'b0;
    4540                                if (data_ready)
    4641                                begin
    4742                                        counter_next = counter_reg + 4'd1;
    48                                         if (&counter_reg)
     43                                        if (counter_max)
    4944                                        begin
    5045                                                state_next = 2'd1;
     
    5853                                begin
    5954                                        counter_next = counter_reg + 4'd1;
    60                                         if (&counter_reg)
     55                                        if (counter_max)
    6156                                        begin
    6257                                                state_next = 2'd2;
     
    6560                        end
    6661
    67                         2: // calculate peak height
     62                        2:
    6863                        begin
    69                                 if (data_ready & uwt_flag[0])
     64                                if (data_ready & uwt_flag[0] & counter_max)
    7065                                begin
    71                                         peak_next = uwt_data;
     66                                        counter_next = 4'd0;
    7267                                        peak_ready_next = 1'b1;
    7368                end
    7469                else
    7570                begin
     71                                        if (~counter_max)
     72                                        begin
     73                                                counter_next = counter_reg + 4'd1;
     74                                        end
    7675                                        peak_ready_next = 1'b0;
    7776                                end
     
    8079                        default:
    8180                        begin
    82                                 peak_next = 12'd0;
     81                                state_next = 2'd0;
     82                                counter_next = 4'd0;
    8383                                peak_ready_next = 1'b0;
    84                                 state_next = 2'd0;
    8584                        end
    8685                endcase
     
    8887
    8988        assign  peak_ready = peak_ready_reg;
    90         assign  peak = peak_reg;
    9189endmodule
Note: See TracChangeset for help on using the changeset viewer.