Ignore:
Timestamp:
Dec 20, 2013, 10:10:03 AM (11 years ago)
Author:
demin
Message:

adapt to 6ch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/3DEES/amplitude.v

    r155 r178  
    55        (
    66                input   wire                            clock, frame, reset,
    7                 input   wire    [width-1:0]     cfg_data,
     7                input   wire    [width-1:0]     min_data,
     8                input   wire    [width-1:0]     max_data,
    89                input   wire    [width-1:0]     inp_data,
    910                output  wire    [width-1:0]     out_data,
    10                 output  wire                            out_flag
     11                output  wire    [1:0]           out_flag
    1112        );
    1213
     
    2021        wire                            int_comp_wire;
    2122        reg                                     int_comp_reg, int_comp_next;
     23
     24        reg             [5:0]           int_cntr_reg, int_cntr_next;
    2225
    2326        assign int_comp_wire = (inp_data_reg[1] < inp_data);
     
    3538                        int_flag_reg <= 1'b0;
    3639                        int_comp_reg <= 1'b0;
     40                        int_cntr_reg <= 6'd0;
    3741                end
    3842                else
     
    4650                        int_flag_reg <= int_flag_next;
    4751                        int_comp_reg <= int_comp_next;
     52                        int_cntr_reg <= int_cntr_next;
    4853                end
    4954        end
     
    5964                int_flag_next = int_flag_reg;
    6065                int_comp_next = int_comp_reg;
     66                int_cntr_next = int_cntr_reg;
    6167               
    6268                case (int_case_reg)
     
    7177                                        out_flag_next = 1'b0;
    7278                                        // minimum
    73                                         if ((~int_comp_reg) & (int_comp_wire))
     79                                        if ((~int_comp_reg) & (int_comp_wire) & int_cntr_reg[5])
    7480                                        begin
    7581                                                int_mini_next = inp_data_reg[0];
    7682                                                int_flag_next = 1'b1;
    7783                                        end
    78                                         // maximum
     84                                        // maximum after minimum
    7985                                        else if ((int_comp_reg) & (~int_comp_wire) & (int_flag_reg))
    8086                                        begin
     
    8389                                                int_case_next = 1'b1;
    8490                                        end
     91                                        else if (~int_cntr_reg[5])
     92                                        begin
     93                                                int_cntr_next = int_cntr_reg + 6'd1;
     94                                        end
    8595                end
    8696                        end
     
    8898                        1:
    8999                        begin
    90                                 out_flag_next = (out_data_reg >= cfg_data);
     100                                if (out_data_reg > min_data)
     101                                begin
     102                                        int_cntr_next = 6'b0;
     103//                                      out_flag_next = 1'b1;
     104                                        out_flag_next = (inp_data_reg[1] < max_data);
     105                                end
    91106                                int_case_next = 1'b0;
    92107                        end
     
    96111
    97112        assign out_data = out_data_reg;
    98         assign out_flag = out_flag_reg;
     113        assign out_flag = {~int_cntr_reg[5], out_flag_reg};
    99114
    100115endmodule
Note: See TracChangeset for help on using the changeset viewer.