Changeset 117


Ignore:
Timestamp:
Feb 15, 2011, 10:42:52 PM (14 years ago)
Author:
demin
Message:

remove unnecessary registers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/MultiChannelUSB/deconv.v

    r116 r117  
    22        #(
    33                parameter       size    =       1, // number of channels
    4                 parameter       width   =       16 // bit width of the input data
     4                parameter       width   =       24 // bit width of the input data
    55        )
    66        (
     
    2929        wire    [size*widthr-1:0]       out_data_wire;
    3030
    31         reg             [size*widthr-1:0]       mul_data_reg [7:0], mul_data_next [7:0];
    3231        wire    [size*widthr-1:0]       mul_data_wire [1:0];
    3332
     
    3534        wire    [size*width2-1:0]       acc_data_wire;
    3635
    37         reg             [size*width1-1:0]       sub_data_reg [3:0], sub_data_next [3:0];
    3836        wire    [size*width1-1:0]       sub_data_wire;
    3937
     
    10199                                .lpm_type("LPM_ADD_SUB"),
    102100                                .lpm_width(width2)) acc_unit_1 (
    103                                 .dataa({{(width2-width1+1){sub_data_reg[0][j*width1+width1-1]}}, sub_data_reg[0][j*width1+width1-2:j*width1]}),
     101                                .dataa({{(width2-width1+1){sub_data_wire[j*width1+width1-1]}}, sub_data_reg[0][j*width1+width1-2:j*width1]}),
    104102                                .datab(acc_data_reg[0][j*width2+width2-1:j*width2]),
    105103                                .result(acc_data_wire[j*width2+width2-1:j*width2]));
     
    115113                                .clock(clock),
    116114                                .clken(int_wren_reg),
    117                                 .dataa(sub_data_reg[0][j*width1+width1-1:j*width1]),
     115                                .dataa(sub_data_wire[j*width1+width1-1:j*width1]),
    118116                                .datab({1'b0, tau_data_reg[j*16+16-1:j*16]}),
    119117                                .result(mul_data_wire[0][j*widthr+widthr-1:j*widthr]));
     
    139137                                .lpm_type("LPM_ADD_SUB"),
    140138                                .lpm_width(widthr)) add_unit_2 (
    141                                 .dataa(mul_data_reg[0][j*widthr+widthr-1:j*widthr]),
    142                                 .datab(mul_data_reg[1][j*widthr+widthr-1:j*widthr]),
     139                                .dataa(mul_data_wire[0][j*widthr+widthr-1:j*widthr]),
     140                                .datab(mul_data_wire[1][j*widthr+widthr-1:j*widthr]),
    143141                                .result(out_data_wire[j*widthr+widthr-1:j*widthr]));
    144142
     143/*
     144                        lpm_clshift     #(
     145                                .lpm_shifttype("LOGICAL"),
     146                                .lpm_type("LPM_CLSHIFT"),
     147                                .lpm_width(64),
     148                                .lpm_widthdist(6)) shift_unit_1 (
     149                                .distance(distance),
     150                                .direction(sub_wire1),
     151                                .data(data),
     152                                .result(sub_wire0));
     153*/
    145154                end
    146155        endgenerate
     
    209218                        for(i = 0; i <= 3; i = i + 1)
    210219                        begin
    211                                 sub_data_reg[i] <= {(size*width1){1'b0}};
    212220                                acc_data_reg[i] <= {(size*width2){1'b0}};
    213                         end
    214                         for(i = 0; i <= 7; i = i + 1)
    215                         begin
    216                                 mul_data_reg[i] <= {(size*widthr){1'b0}};
    217221                        end
    218222                end
     
    233237                        for(i = 0; i <= 3; i = i + 1)
    234238                        begin
    235                                 sub_data_reg[i] <= sub_data_next[i];
    236239                                acc_data_reg[i] <= acc_data_next[i];
    237240                        end                 
    238                         for(i = 0; i <= 7; i = i + 1)
    239                         begin
    240                                 mul_data_reg[i] <= mul_data_next[i];
    241                         end
    242241                end             
    243242        end
     
    259258                for(i = 0; i <= 3; i = i + 1)
    260259                begin
    261                         sub_data_next[i] = sub_data_reg[i];
    262260                        acc_data_next[i] = acc_data_reg[i];
    263261                end                 
    264                 for(i = 0; i <= 7; i = i + 1)
    265                 begin
    266                         mul_data_next[i] = mul_data_reg[i];
    267                 end
    268262
    269263                case (int_case_reg)             
     
    283277                                for(i = 0; i <= 3; i = i + 1)
    284278                                begin
    285                                         sub_data_next[i] = {(size*width1){1'b0}};
    286279                                        acc_data_next[i] = {(size*width2){1'b0}};
    287280                                end                 
    288                                 for(i = 0; i <= 7; i = i + 1)
    289                                 begin
    290                                         mul_data_next[i] = {(size*widthr){1'b0}};
    291                                 end
    292281
    293282                                int_case_next = 3'd1;
     
    321310                                        // prepare registers for 1st sum                                       
    322311                                        inp_data_next[0] = inp_data_wire[0];
    323 
    324                                         sub_data_next[0] = sub_data_reg[1];
    325312                                        acc_data_next[0] = acc_data_reg[1];
    326313
    327                                         mul_data_next[0] = mul_data_reg[2];
    328                                         mul_data_next[1] = mul_data_reg[3];
    329                                        
    330314                                        tau_data_next = tau_data_wire[0];
    331315                                        amp_data_next = amp_data_wire[0];
     
    344328                                // prepare registers for 2nd sum
    345329                                inp_data_next[0] = inp_data_reg[1];
    346                                        
    347                                 sub_data_next[0] = sub_data_reg[2];
    348330                                acc_data_next[0] = acc_data_reg[2];
    349331                               
    350                                 mul_data_next[0] = mul_data_reg[4];
    351                                 mul_data_next[1] = mul_data_reg[5];
    352 
    353332                                tau_data_next = tau_data_wire[1];
    354333                                amp_data_next = amp_data_wire[1];
    355334
    356335                                // register 1st sum
    357                                 sub_data_next[1] = sub_data_wire;
    358336                                acc_data_next[1] = acc_data_wire;
    359                                 mul_data_next[2] = mul_data_wire[0];
    360                                 mul_data_next[3] = mul_data_wire[1];
    361337                                out_data_next[0] = out_data_wire;
    362338
     
    369345                                // prepare registers for 3rd sum       
    370346                                inp_data_next[0] = inp_data_reg[2];
    371 
    372                                 sub_data_next[0] = sub_data_reg[3];
    373347                                acc_data_next[0] = acc_data_reg[3];
    374 
    375                                 mul_data_next[0] = mul_data_reg[6];
    376                                 mul_data_next[1] = mul_data_reg[7];
    377348
    378349                                tau_data_next = tau_data_wire[2];
     
    380351                               
    381352                                // register 2nd sum
    382                                 sub_data_next[2] = sub_data_wire;
    383353                                acc_data_next[2] = acc_data_wire;
    384                                 mul_data_next[4] = mul_data_wire[0];
    385                                 mul_data_next[5] = mul_data_wire[1];
    386354                                out_data_next[1] = out_data_wire;
    387355                               
     
    398366
    399367                                // register 3rd sum
    400                                 sub_data_next[3] = sub_data_wire;
    401368                                acc_data_next[3] = acc_data_wire;
    402                                 mul_data_next[6] = mul_data_wire[0];
    403                                 mul_data_next[7] = mul_data_wire[1];
    404369                                out_data_next[2] = out_data_wire;
    405370                                             
Note: See TracChangeset for help on using the changeset viewer.