Changeset 86


Ignore:
Timestamp:
Dec 21, 2009, 11:55:05 PM (15 years ago)
Author:
demin
Message:

replace 3 ADC FIFO with one large FIFO

Location:
trunk/MultiChannelUSB
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MultiChannelUSB/Paella.v

    r84 r86  
    149149        reg     [15:0]  mux_min_addr, mux_max_addr;
    150150
    151         wire                    adc_clk [N-1:0];
    152151        wire    [11:0]  adc_data [N-1:0];
    153152
    154         wire                    data_ready [N-1:0];
     153        wire                    data_ready;
    155154    wire        [11:0]  data [N-1:0];
    156155    wire        [11:0]  int_data [N-1:0];
    157156
    158     wire                        cmp_data_ready;
    159157    wire        [11:0]  cmp_data;
    160 
    161     wire                        ept_data_ready;
    162     wire        [47:0]  ept_data;
    163158   
    164159        wire    [11:0]  nowhere;
     
    166161        wire                    sys_clk;
    167162
    168 
    169 /*
    170     assign      osc_thrs[0] = 16'd40;
    171     assign      osc_thrs[1] = 16'd60;
    172     assign      osc_thrs[2] = 16'd40;
    173     assign      osc_thrs[3] = 16'd1650;
    174 */
    175163        wire    [31:0]  uwt_d1 [N-1:0];
    176164        wire    [31:0]  uwt_a1 [N-1:0];
     
    187175        wire    [1:0]   uwt_flag3 [N-1:0];
    188176
    189         assign  adc_clk[0] = ADC_FCO;
    190         assign  adc_clk[1] = ADC_FCO;
    191         assign  adc_clk[2] = ADC_FCO;
    192 
    193 /*   
    194     assign      adc_clk[2] = CON_CCLK[0];
    195     assign      adc_data[2] = CON_C[11:0];
    196 */
    197177/*
    198178        adc_para adc_para_unit (
     
    219199                .data(adc_data[2]));
    220200//              .data(nowhere);
    221 
    222201
    223202        adc_lvds #(
     
    232211                                        adc_data[1],
    233212                                        adc_data[0] }));
    234 
    235213
    236214        reg             [15:0]  cfg_memory [31:0];
     
    262240        end
    263241
    264         assign ept_data_ready = cmp_data_ready & data_ready[2] & data_ready[1] & data_ready[0];
    265         assign ept_data = {cmp_data, int_data[2], int_data[1], int_data[0]};
    266 
    267         adc_fifo cmp_fifo_unit (
     242        adc_fifo #(.W(48)) adc_fifo_unit (
    268243                .adc_clk(ADC_FCO),
    269                 .adc_data(CON_B[11:0]),
     244                .adc_data({CON_B[11:0], adc_data[2], adc_data[1], adc_data[0]}),
    270245                .clk(sys_clk),
    271                 .data_ready(cmp_data_ready),
    272                 .data(cmp_data));
     246                .data_ready(data_ready),
     247                .data({cmp_data, int_data[2], int_data[1], int_data[0]}));
    273248
    274249        genvar i;
     
    289264                        assign bln_mux_sel[i] = cfg_memory[23+i][7:4];
    290265
    291                         adc_fifo adc_fifo_unit (
    292                                 .adc_clk(adc_clk[i]),
    293                                 .adc_data(adc_data[i]),
    294                                 .clk(sys_clk),
    295                                 .data_ready(data_ready[i]),
    296                                 .data(int_data[i]));
    297 
    298266                        assign data[i] = (cfg_polarity[i]) ? (int_data[i] ^ 12'hfff) : (int_data[i]);
    299267
    300268                        uwt_bior31 #(.L(1)) uwt_1_unit (
    301269                                .clk(sys_clk),
    302                                 .data_ready(data_ready[i]),
     270                                .data_ready(data_ready),
    303271                                .x({20'h00000, data[i]}),
    304272                                .d(uwt_d1[i]),
     
    309277                        uwt_bior31 #(.L(2)) uwt_2_unit (
    310278                                .clk(sys_clk),
    311                                 .data_ready(data_ready[i]),
     279                                .data_ready(data_ready),
    312280                                .x(uwt_a1[i]),
    313281                                .d(uwt_d2[i]),
     
    318286                        uwt_bior31 #(.L(3)) uwt_3_unit (
    319287                                .clk(sys_clk),
    320                                 .data_ready(data_ready[i]),
     288                                .data_ready(data_ready),
    321289                                .x(uwt_a2[i]),
    322290                                .d(uwt_d3[i]),
     
    364332                                .sel(hst_mux_sel[i][0]),
    365333                                .data({ {uwt_peak3[i][11:0], ana_peak_ready[i]},
    366                                                 {data[i], data_ready[i]} }),
     334                                                {data[i], data_ready} }),
    367335                                .result(hst_mux_data[i]));
    368336       
     
    379347                                .clk(sys_clk),
    380348                                .reset(bln_reset[i]),
    381                                 .data_ready(data_ready[i]),
     349                                .data_ready(data_ready),
    382350                                .uwt_flag(uwt_flag3[i]),
    383351                                .uwt_data(uwt_peak3[i]),
     
    387355                                .clk(sys_clk),
    388356                                .reset(ana_reset[i]),
    389                                 .data_ready(data_ready[i]),
     357                                .data_ready(data_ready),
    390358                                .uwt_flag(uwt_flag3[i]),
    391359                                .peak_ready(ana_peak_ready[i]),
     
    411379                                .clk(sys_clk),
    412380                                .reset(trg_reset[i]),
    413                                 .data_ready(data_ready[i]),
     381                                .data_ready(data_ready),
    414382                                .data(trg_mux_data[i]),
    415383                                .threshold(cfg_trg_threshold[i]),
     
    420388                                .clk(sys_clk),
    421389                                .reset(osc_reset[i]),
    422                                 .data_ready(data_ready[i]),
     390                                .data_ready(data_ready),
    423391                                .data(osc_mux_data[i]),
    424392                                .trigger(osc_trig[i]),
     
    440408
    441409                case(mux_type)
    442 //              case({mux_type, mux_chan})
    443410                        1'b0:
    444 //                      3'b000, 3'b001, 3'b010, 3'b011:
    445411                        begin
    446412                                osc_reset[mux_chan] = mux_reset;
     
    452418
    453419                        1'b1:
    454 //                      3'b100, 3'b101, 3'b110, 3'b011:
    455420                        begin
    456421                                hst_reset[mux_chan] = mux_reset;
     
    524489                .ram_addr(RAM_ADDR),
    525490                .ram_data({RAM_DQA, RAM_DQAP, RAM_DQB, RAM_DQBP}),
    526                 .ept_data_ready(ept_data_ready),
    527                 .ept_data(ept_data),
     491                .ept_data_ready(data_ready),
     492                .ept_data({cmp_data, data[2], data[1], data[0]}),
    528493                .i2c_wrreq(i2c_wrreq),
    529494                .i2c_data(i2c_data),
  • trunk/MultiChannelUSB/adc_fifo.v

    r84 r86  
    11module adc_fifo
     2        #(
     3                parameter       W       =       48 // fifo width
     4        )
    25        (
    36                input   wire                    adc_clk,
    4                 input   wire    [11:0]  adc_data,
     7                input   wire    [W-1:0] adc_data,
    58
    69                input   wire                    clk,
    710                output  wire                    data_ready,
    8                 output  wire    [11:0]  data
     11                output  wire    [W-1:0] data
    912        );
    1013
    11         wire    [11:0]  int_q;
    12         reg             [11:0]  int_data;
     14        wire    [W-1:0] int_q;
     15        reg             [W-1:0] int_data;
    1316       
    14         reg             [1:0]   state;
    15         reg                             int_rdreq, int_data_ready;
     17        reg                             state, int_rdreq, int_data_ready;
    1618        wire                    int_wrfull, int_rdempty;
    1719
     
    2123                .lpm_showahead("ON"),
    2224                .lpm_type("dcfifo"),
    23                 .lpm_width(12),
     25                .lpm_width(W),
    2426                .lpm_widthu(4),
    2527                .rdsync_delaypipe(4),
     
    4648        begin
    4749                case (state)
    48                         2'd0:
     50                        1'b0:
    4951                        begin
    5052                                int_rdreq <= 1'b1;
    5153                                int_data_ready <= 1'b0;
    52                                 state <= 2'd1;
     54                                state <= 1'b1;
    5355                        end
    5456
    55                         2'd1:
     57                        1'b1:
    5658                        begin
    5759                                if (~int_rdempty)
     
    6062                                        int_rdreq <= 1'b0;
    6163                                        int_data_ready <= 1'b1;
    62                                         state <= 2'd0;
     64                                        state <= 1'b0;
    6365                                end
    6466                        end
    65 
    66                         2'd2:
    67                         begin
    68                                 int_data_ready <= 1'b0;
    69                                 state <= 2'd3;
    70                         end
    71 
    72                         2'd3:
    73                         begin
    74                                 state <= 2'd0;
    75                         end
    76 
    7767                endcase
    7868        end
Note: See TracChangeset for help on using the changeset viewer.