Ignore:
Timestamp:
Jun 26, 2011, 11:06:30 PM (13 years ago)
Author:
demin
Message:

add configuration registers for the clip module

Location:
sandbox/MultiChannelUSB
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sandbox/MultiChannelUSB/Paella.v

    r149 r154  
    9393        wire    [4*12-1:0]      int_mux_data [N-1:0];
    9494
    95         wire                    amp_flag1 [N-1:0];
    96         wire    [11:0]  amp_data1 [N-1:0];
    97 
    98         wire                    amp_flag2 [N-1:0];
    99         wire    [11:0]  amp_data2 [N-1:0];
     95        wire                    amp_flag [N-1:0];
     96        wire    [11:0]  amp_data [N-1:0];
    10097
    10198        wire                    cnt_good [N-1:0];
     
    160157                        adc_data[3], adc_data[2], adc_data[1], adc_data[0]}));
    161158
    162         wire    [15:0]  cfg_bits [31:0];
    163         wire    [511:0] int_cfg_bits;
     159        wire    [15:0]          cfg_bits [63:0];
     160        wire    [1023:0]        int_cfg_bits;
    164161
    165162        wire    [39:0]  cfg_mux_selector;
     
    182179
    183180        generate
    184                 for (j = 0; j < 32; j = j + 1)
     181                for (j = 0; j < 64; j = j + 1)
    185182                begin : CONFIGURATION_OUTPUT
    186183                        assign cfg_bits[j] = int_cfg_bits[j*16+15:j*16];
     
    193190                .bus_ssel(bus_ssel[0]),
    194191                .bus_wren(bus_wren),
    195                 .bus_addr(bus_addr[4:0]),
     192                .bus_addr(bus_addr[5:0]),
    196193                .bus_mosi(bus_mosi),
    197194                .bus_miso(bus_miso[0]),
     
    203200                begin : MUX_DATA
    204201                        assign int_mux_data[j] = {
    205                                 amp_data2[j],
     202                                amp_data[j],
    206203                                clp_data[j],
    207204                                cic_data[j][19:8],
     
    283280                for (j = 0; j < 3; j = j + 1)
    284281                begin : DECONV_CHAIN
    285 /*
    286                         deconv #(.shift(22), .width(20), .widthr(12)) deconv_unit (
    287                                 .clock(sys_clock),
    288                                 .frame(sys_frame),
    289                                 .reset(1'b0),
    290                                 .del_data({6'd14, 6'd14, 6'd14, 6'd14}),
    291                                 .amp_data({6'd17, 6'd17, 6'd17, 6'd17}),
    292                                 .tau_data({16'd16320, 16'd16320, 16'd16320, 16'd16320}),
    293 //                              .del_data({cfg_bits[16][5:0], cfg_bits[15][13:8], cfg_bits[15][5:0]}),
    294 //                              .amp_data({cfg_bits[18][7:0], cfg_bits[17][15:8], cfg_bits[17][7:0]}),
    295 //                              .tau_data({cfg_bits[21], cfg_bits[20], cfg_bits[19]}),
    296                                 .inp_data({
    297                                         cic_data[j*4+3][19:0], cic_data[j*4+2][19:0],
    298                                         cic_data[j*4+1][19:0], cic_data[j*4+0][19:0]}),
    299                                 .out_data({
    300                                         dec_data[j*4+3], dec_data[j*4+2],
    301                                         dec_data[j*4+1], dec_data[j*4+0]}));
    302 */
     282
    303283                        clip #(.shift(22), .width(20), .widthr(12)) clip_unit (
    304284                                .clock(sys_clock),
    305285                                .frame(sys_frame),
    306286                                .reset(1'b0),
    307                                 .del_data({6'd12, 6'd12, 6'd12, 6'd12}),
     287//                              .del_data({6'd14, 6'd14, 6'd14, 6'd14}),
     288                                .del_data({cfg_bits[39+8*j][5:0], cfg_bits[37+8*j][5:0], cfg_bits[35+8*j][5:0], cfg_bits[33+8*j][5:0]}),
    308289                                .amp_data({6'd17, 6'd17, 6'd17, 6'd17}),
    309                                 .tau_data({16'd16560, 16'd16560, 16'd16560, 16'd16560}), // exp(-12/240)*1024*17
     290//                              .tau_data({16'd17193, 16'd17193, 16'd17193, 16'd17193}), /* exp(-14/1125)*1024*17 */
     291                                .tau_data({cfg_bits[38+8*j], cfg_bits[36+8*j], cfg_bits[34+8*j], cfg_bits[32+8*j]}),
    310292                                .inp_data({
    311293                                        cic_data[j*4+3][19:0], cic_data[j*4+2][19:0],
     
    315297                                        clp_data[j*4+1], clp_data[j*4+0]}));
    316298
    317 /*
    318                         clip #(.shift(22), .width(22), .widthr(12)) clip_unit (
    319                                 .clock(sys_clock),
    320                                 .frame(sys_frame),
    321                                 .reset(1'b0),
    322                                 .del_data({6'd18, 6'd18, 6'd18, 6'd18}),
    323                                 .amp_data({6'd5, 6'd5, 6'd5, 6'd5}),
    324                                 .tau_data({16'd4932, 16'd4932, 16'd4932, 16'd4932}), // exp(-18/480)*1024*5
    325                                 .inp_data({
    326                                         cic_data[j*4+3][21:0], cic_data[j*4+2][21:0],
    327                                         cic_data[j*4+1][21:0], cic_data[j*4+0][21:0]}),
    328                                 .out_data({
    329                                         clp_data[j*4+3], clp_data[j*4+2],
    330                                         clp_data[j*4+1], clp_data[j*4+0]}));
    331 */
    332299                end
    333300        endgenerate
     
    338305
    339306                        assign sys_data[j] = (cfg_bits[1][j]) ? (adc_data[j] ^ 12'hfff) : (adc_data[j]);
    340 /*
    341                         amplitude #(.width(12)) amplitude_unit_1 (
    342                                 .clock(sys_clock),
    343                                 .frame(sys_frame),
    344                                 .reset(cfg_bits[0][2+j]),
    345                                 .cfg_data({1'b0, 12'd0, 12'd5}),
    346 //                              .cfg_data({cfg_bits[7+2*j][12:0], cfg_bits[6+2*j][11:0]}),
    347                                 .inp_data(dec_data[j]),
    348                                 .out_flag(amp_flag1[j]),
    349                                 .out_data(amp_data1[j]));
    350 */
     307
    351308                        amplitude #(.width(12)) amplitude_unit_2 (
    352309                                .clock(sys_clock),
     
    357314//                              .inp_data(dec_data[j]),
    358315                                .inp_data(clp_data[j]),
    359                                 .out_flag(amp_flag2[j]),
    360                                 .out_data(amp_data2[j]));
     316                                .out_flag(amp_flag[j]),
     317                                .out_data(amp_data[j]));
    361318                end
    362319        endgenerate
     
    366323                .frame(sys_frame),
    367324                .reset(cfg_bits[0][5]),
    368                 .hst_good((amp_flag1[0]) & (cnt_good[0]) & (cfg_bits[13][1])),
    369                 .hst_data(amp_data1[0]),
     325                .hst_good((amp_flag[0]) & (cnt_good[0]) & (cfg_bits[13][1])),
     326                .hst_data(amp_data[0]),
    370327/*
    371328                .hst_good((amp_flag[j]) & (cnt_good[j]) & (cfg_bits[13][1])),
  • sandbox/MultiChannelUSB/clip.v

    r144 r154  
    104104                - {2'b0, mul_data_wire1};
    105105
    106         assign out_data_wire =
     106        assign out_data_wire = add_data_wire[width3-1] ? {(widthr){1'b0}} :
    107107                  add_data_wire[shift+widthr-1:shift]
    108108                + {{(widthr-1){add_data_wire[width3-1]}}, add_data_wire[shift-1]};
  • sandbox/MultiChannelUSB/configuration.v

    r99 r154  
    44
    55                input   wire                    bus_ssel, bus_wren,
    6                 input   wire    [4:0]   bus_addr,
     6                input   wire    [5:0]   bus_addr,
    77                input   wire    [15:0]  bus_mosi,
    88
     
    1010                output  wire                    bus_busy,
    1111               
    12                 output  wire    [511:0] cfg_bits
     12                output  wire    [1023:0]        cfg_bits
    1313        );
    1414
    15         wire    [31:0]  int_ssel_wire;
     15        wire    [63:0]  int_ssel_wire;
    1616        wire    [15:0]  int_miso_wire;
    1717        reg             [15:0]  int_miso_reg;
    1818
    19         wire    [511:0] int_bits_wire;
     19        wire    [1023:0]        int_bits_wire;
    2020
    2121        integer i;
     
    2323
    2424        generate
    25                 for (j = 0; j < 32; j = j + 1)
     25                for (j = 0; j < 64; j = j + 1)
    2626                begin : BUS_OUTPUT
    2727                        lpm_ff #(
     
    4343
    4444        lpm_mux #(
    45                 .lpm_size(32),
     45                .lpm_size(64),
    4646                .lpm_type("LPM_MUX"),
    4747                .lpm_width(16),
    48                 .lpm_widths(5)) bus_miso_mux_unit (
     48                .lpm_widths(6)) bus_miso_mux_unit (
    4949                .sel(bus_addr),
    5050                .data(int_bits_wire),
     
    5353
    5454        lpm_decode #(
    55                 .lpm_decodes(32),
     55                .lpm_decodes(64),
    5656                .lpm_type("LPM_DECODE"),
    57                 .lpm_width(5)) lpm_decode_unit (
     57                .lpm_width(6)) lpm_decode_unit (
    5858                .data(bus_addr),
    5959                .eq(int_ssel_wire),
Note: See TracChangeset for help on using the changeset viewer.