Changeset 178 for trunk/3DEES


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

adapt to 6ch

Location:
trunk/3DEES
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/3DEES/Paella.dpf

    r152 r178  
    2727                <pin name="ADC_D[3](n)" direction="Input" source="Assignments" diff_pair_node="ADC_D[3]" >
    2828                </pin>
     29                <pin name="ADC_DCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_DCO" >
     30                </pin>
     31                <pin name="ADC_FCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_FCO" >
     32                </pin>
    2933                <pin name="ADC_D[4](n)" direction="Input" source="Assignments" diff_pair_node="ADC_D[4]" >
    3034                </pin>
    3135                <pin name="ADC_D[5](n)" direction="Input" source="Assignments" diff_pair_node="ADC_D[5]" >
    32                 </pin>
    33                 <pin name="ADC_DCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_DCO" >
    34                 </pin>
    35                 <pin name="ADC_FCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_FCO" >
    3636                </pin>
    3737        </pin_info>
  • trunk/3DEES/Paella.qsf

    r153 r178  
    248248
    249249set_global_assignment -name MISC_FILE "D:/altera/MultiChannelUSB/Paella.dpf"
     250
    250251set_global_assignment -name VERILOG_FILE Paella.v
    251252set_global_assignment -name VERILOG_FILE adc_lvds.v
     
    258259set_global_assignment -name VERILOG_FILE amplitude.v
    259260set_global_assignment -name VERILOG_FILE deconv.v
     261set_global_assignment -name VERILOG_FILE shift.v
    260262set_global_assignment -name VERILOG_FILE delay.v
    261263set_global_assignment -name VERILOG_FILE coincidence.v
     
    272274set_global_assignment -name MIF_FILE test.mif
    273275set_global_assignment -name VERILOG_FILE average.v
    274 set_global_assignment -name VERILOG_FILE extrema.v
    275276set_global_assignment -name VERILOG_FILE filter.v
    276277set_global_assignment -name VERILOG_FILE new_filter.v
    277278set_global_assignment -name VERILOG_FILE clip.v
    278279set_global_assignment -name VERILOG_FILE pwm.v
    279 
     280set_global_assignment -name MISC_FILE "D:/altera/3DEES-6ch/Paella.dpf"
     281set_global_assignment -name FMAX_REQUIREMENT "100 MHz" -section_id "100 MHz Clock"
     282set_instance_assignment -name CLOCK_SETTINGS "100 MHz Clock" -to CLK_100MHz
    280283set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
  • trunk/3DEES/Paella.v

    r154 r178  
    3434        );
    3535
    36         localparam      N               =       12;
     36        localparam      N               =       6;
    3737
    3838        //      Turn output ports off
     
    8383        );
    8484               
     85/*
     86        reg             [31:0]  led_counter;
     87        always @(posedge CLK_50MHz)
     88        begin
     89                led_counter = led_counter + 32'd1;
     90        end
     91        assign LED = led_counter[28];
     92*/     
    8593        wire    [11:0]  osc_mux_data [4:0];
    8694
     
    8896        wire                    trg_flag;
    8997
    90         wire    [2:0]   coi_data;
    91         wire                    coi_flag;
    92 
    9398        wire    [4*12-1:0]      int_mux_data [N-1:0];
    9499
    95         wire                    amp_flag [N-1:0];
    96         wire    [11:0]  amp_data [N-1:0];
    97 
    98         wire                    cnt_good [N-1:0];
     100        wire    [1:0]   amp_flag [3*N-1:0];
     101        wire    [12:0]  amp_data [3*N-1:0];
     102
     103        wire    [1:0]   amp_mux_flag [2:0];
     104        wire    [11:0]  amp_mux_data [2:0];
     105
     106        wire                    cnt_good [3:0];
    99107        wire    [15:0]  cnt_bits_wire;
    100108
     
    105113        wire    [11:0]  tst_data;
    106114
    107     wire        [11:0]  cmp_data;
    108     wire        [11:0]  del_data;
    109 
    110         wire    [20:0]  cic_data [N-1:0];
     115    wire        [3:0]   cmp_data;
     116    wire        [1:0]   del_data;
     117
     118        wire    [19:0]  cic_data [N-1:0];
    111119
    112120        wire    [11:0]  dec_data [N-1:0];
    113         wire    [11:0]  clp_data [N-1:0];
    114         wire    [11:0]  tmp_data [1:0];
     121        wire    [12:0]  clp_data [N-1:0];
     122        wire    [11:0]  tmp_data;
     123
    115124
    116125        wire                    i2c_reset;
     126
     127        assign  tmp_data        =       12'h000;
     128        assign  sys_clock       =       CLK_100MHz;
     129/*
     130        sys_pll sys_pll_unit(
     131                .inclk0(CLK_100MHz),
     132                .c0(sys_clock));
     133*/
    117134/*
    118135        sys_pll sys_pll_unit(
     
    124141        wire                    ADC_DCO, ADC_FCO;
    125142
     143
    126144        test test_unit(
    127145                .clock(ADC_FCO),
    128146                .data(tst_data));
     147*/
    129148
    130149        adc_lvds #(
    131                 .size(3),
     150                .size(6),
    132151                .width(12)) adc_lvds_unit (
    133152                .clock(sys_clock),
    134153                .lvds_dco(ADC_DCO),
    135154                .lvds_fco(ADC_FCO),
    136                 .lvds_d(36'd0),
    137                 .test(tst_data),
    138                 .trig(12'd0),
    139                 .adc_frame(sys_frame),
    140                 .adc_data({cmp_data, adc_data[2], adc_data[1], adc_data[0]}));
    141 */
    142         sys_pll sys_pll_unit(
    143                 .inclk0(CLK_100MHz),
    144                 .c0(sys_clock));
    145 
    146         adc_lvds #(
    147                 .size(6),
    148                 .width(24)) adc_lvds_unit (
    149                 .clock(sys_clock),
    150                 .lvds_dco(ADC_DCO),
    151                 .lvds_fco(ADC_FCO),
    152                 .lvds_d({ADC_D[5], ADC_D[4], ADC_D[3], ADC_D[2], ADC_D[1], ADC_D[0]}),
     155                .lvds_d(ADC_D),
     156//              .test(tst_data),
    153157                .adc_frame(sys_frame),
    154158                .adc_data({
    155                         adc_data[11], adc_data[10], adc_data[9], adc_data[8],
    156                         adc_data[7], adc_data[6], adc_data[5], adc_data[4],
    157                         adc_data[3], adc_data[2], adc_data[1], adc_data[0]}));
     159                        adc_data[5], adc_data[4], adc_data[3],
     160                        adc_data[2], adc_data[1], adc_data[0]}));
    158161
    159162        wire    [15:0]          cfg_bits [63:0];
     
    174177        wire                    mrg_bus_busy;
    175178
    176         wire    [12*16-1:0]     int_bus_miso;
     179        wire    [11*16-1:0]     int_bus_miso;
    177180
    178181        genvar j;
     
    197200
    198201        generate
    199                 for (j = 0; j < 12; j = j + 1)
     202                for (j = 0; j < 6; j = j + 1)
    200203                begin : MUX_DATA
    201204                        assign int_mux_data[j] = {
    202                                 amp_data[j],
    203                                 clp_data[j],
    204                                 cic_data[j][19:8],
     205                                {4'd0, amp_flag[j][0], 7'd0},
     206                                amp_data[j][11:0],
     207                                clp_data[j][11:0],
    205208                                sys_data[j]};
    206209                end
     
    210213
    211214        lpm_mux #(
    212                 .lpm_size(4*12),
     215                .lpm_size(4*6),
    213216                .lpm_type("LPM_MUX"),
    214217                .lpm_width(12),
    215                 .lpm_widths(6)) trg_mux_unit (
    216                 .sel(cfg_bits[4][13:8]),
     218                .lpm_widths(5)) trg_mux_unit (
     219                .sel(cfg_bits[4][12:8]),
    217220                .data({
    218                         int_mux_data[11], int_mux_data[10], int_mux_data[9], int_mux_data[8],
    219                         int_mux_data[7], int_mux_data[6], int_mux_data[5], int_mux_data[4],
    220                         int_mux_data[3], int_mux_data[2], int_mux_data[1], int_mux_data[0]}),
     221                        int_mux_data[5], int_mux_data[4], int_mux_data[3],
     222                        int_mux_data[2], int_mux_data[1], int_mux_data[0]}),
    221223                .result(trg_mux_data));
    222224
     
    226228               
    227229                        lpm_mux #(
    228                                 .lpm_size(4*12),
     230                                .lpm_size(4*6),
    229231                                .lpm_type("LPM_MUX"),
    230232                                .lpm_width(12),
    231                                 .lpm_widths(6)) osc_mux_unit (
    232                                 .sel(cfg_mux_selector[j*8+5:j*8]),
     233                                .lpm_widths(5)) osc_mux_unit (
     234                                .sel(cfg_mux_selector[j*8+4:j*8]),
    233235                                .data({
    234                                         int_mux_data[11], int_mux_data[10], int_mux_data[9], int_mux_data[8],
    235                                         int_mux_data[7], int_mux_data[6], int_mux_data[5], int_mux_data[4],
    236                                         int_mux_data[3], int_mux_data[2], int_mux_data[1], int_mux_data[0]}),
     236                                        int_mux_data[5], int_mux_data[4], int_mux_data[3],
     237                                        int_mux_data[2], int_mux_data[1], int_mux_data[0]}),
    237238                                .result(osc_mux_data[j]));
    238239                end
     
    264265                .bus_busy(bus_busy[1]));
    265266
    266         new_filter #(.size(12), .width(12)) filter_unit (
     267        filter #(.size(6), .width(12)) filter_unit (
    267268                .clock(sys_clock),
    268269                .frame(sys_frame),
    269270                .reset(1'b0),
    270                 .inp_data({
    271                         sys_data[11], sys_data[10], sys_data[9], sys_data[08],
    272                         sys_data[7], sys_data[6], sys_data[5], sys_data[4],
    273                         sys_data[3], sys_data[2], sys_data[1], sys_data[0]}),
    274                 .out_data({
    275                         cic_data[11], cic_data[10], cic_data[9], cic_data[8],
    276                         cic_data[7], cic_data[6], cic_data[5], cic_data[4],
    277                         cic_data[3], cic_data[2], cic_data[1], cic_data[0]}));
    278 
    279         generate
    280                 for (j = 0; j < 3; j = j + 1)
     271                .inp_data({sys_data[5], sys_data[4], sys_data[3],
     272                        sys_data[2], sys_data[1], sys_data[0]}),
     273                .out_data({cic_data[5], cic_data[4], cic_data[3],
     274                        cic_data[2], cic_data[1], cic_data[0]}));
     275/* 
     276  new_filter #(.size(6), .width(12)) filter_unit (
     277                .clock(sys_clock),
     278                .frame(sys_frame),
     279                .reset(1'b0),
     280                .inp_data({sys_data[5], sys_data[4], sys_data[3],
     281                        sys_data[2], sys_data[1], sys_data[0]}),
     282                .out_data({cic_data[5], cic_data[4], cic_data[3],
     283                        cic_data[2], cic_data[1], cic_data[0]}));
     284*/
     285
     286        generate
     287                for (j = 0; j < 2; j = j + 1)
    281288                begin : DECONV_CHAIN
    282289
    283                         clip #(.shift(22), .width(20), .widthr(12)) clip_unit (
     290                        clip #(.shift(22), .width(19), .widthr(12)) clip_unit (
    284291                                .clock(sys_clock),
    285292                                .frame(sys_frame),
    286293                                .reset(1'b0),
    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]}),
    289                                 .amp_data({6'd17, 6'd17, 6'd17, 6'd17}),
    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]}),
     294                                .del_data({6'd0, 6'd32, 6'd32, 6'd32}),
     295//                              .del_data({6'd0, cfg_bits[37+6*j][5:0], cfg_bits[35+6*j][5:0], cfg_bits[33+6*j][5:0]}),
     296                                .amp_data({6'd0, 6'd20, 6'd20, 6'd20}),
     297                                .tau_data({16'd0, 16'd19835, 16'd19835, 16'd19835}),
     298// exp(-32/1000)*1024*20
     299//                              .tau_data({16'd0, cfg_bits[36+6*j], cfg_bits[34+6*j], cfg_bits[32+6*j]}),
    292300                                .inp_data({
    293                                         cic_data[j*4+3][19:0], cic_data[j*4+2][19:0],
    294                                         cic_data[j*4+1][19:0], cic_data[j*4+0][19:0]}),
     301                                        19'd0, cic_data[j*3+2][18:0], cic_data[j*3+1][18:0], cic_data[j*3+0][18:0]}),
    295302                                .out_data({
    296                                         clp_data[j*4+3], clp_data[j*4+2],
    297                                         clp_data[j*4+1], clp_data[j*4+0]}));
    298 
    299                 end
    300         endgenerate
    301 
    302         generate
    303                 for (j = 0; j < 12; j = j + 1)
     303                                        tmp_data, clp_data[j*3+2], clp_data[j*3+1], clp_data[j*3+0]}));
     304
     305                end
     306        endgenerate
     307
     308        generate
     309                for (j = 0; j < 6; j = j + 1)
    304310                begin : MCA_CHAIN
    305 
    306                         assign sys_data[j] = (cfg_bits[1][j]) ? (adc_data[j] ^ 12'hfff) : (adc_data[j]);
    307 
    308                         amplitude #(.width(12)) amplitude_unit_2 (
     311/*
     312                        shift #(.shift(11), .width(19), .widthr(13)) shift_unit (
    309313                                .clock(sys_clock),
    310314                                .frame(sys_frame),
    311315                                .reset(1'b0),
    312                                 .cfg_data({1'b0, 12'd0, 12'd5}),
    313 //                              .cfg_data({cfg_bits[7+2*j][12:0], cfg_bits[6+2*j][11:0]}),
    314 //                              .inp_data(dec_data[j]),
     316                                .amp_data(6'd21),
     317                                .inp_data(cic_data[j][18:0]),
     318                                .out_data(clp_data[j]));   
     319*/
     320                        assign sys_data[j] = (cfg_bits[1][j]) ? (adc_data[j] ^ 12'hfff) : (adc_data[j]);
     321
     322                        amplitude #(.width(13)) amplitude_unit (
     323                                .clock(sys_clock),
     324                                .frame(sys_frame),
     325                                .reset(1'b0),
     326                                .min_data({1'b0, cfg_bits[7][11:0]}),
     327                                .max_data(13'd4095),
     328//                              .cfg_data(cfg_bits[6+2*j][11:0]),
    315329                                .inp_data(clp_data[j]),
    316330                                .out_flag(amp_flag[j]),
     
    323337                .frame(sys_frame),
    324338                .reset(cfg_bits[0][5]),
    325                 .hst_good((amp_flag[0]) & (cnt_good[0]) & (cfg_bits[13][1])),
     339                .hst_good((amp_flag[0][1]) & (cnt_good[0]) & (cfg_bits[13][1])),
    326340                .hst_data(amp_data[0]),
    327 /*
    328                 .hst_good((amp_flag[j]) & (cnt_good[j]) & (cfg_bits[13][1])),
    329                 .hst_data(amp_data[j]),
    330 */
    331341                .bus_ssel(bus_ssel[2]),
    332342                .bus_wren(bus_wren),
     
    338348        counter hst_counter_unit (
    339349                .clock(sys_clock),
    340 //              .frame((sys_frame) & (~ana_dead[0])),
    341                 .frame(sys_frame),
     350                .frame((sys_frame) & (~amp_flag[0][1])),
     351//              .frame(sys_frame),
    342352                .reset(cfg_bits[0][8]),
    343353                .setup(cfg_bits[13][0]),
     
    395405
    396406        lpm_mux #(
    397                 .lpm_size(12),
     407                .lpm_size(11),
    398408                .lpm_type("LPM_MUX"),
    399409                .lpm_width(16),
  • trunk/3DEES/adc_lvds.v

    r148 r178  
    44module adc_lvds
    55        #(
    6                 parameter       size    =       8, // number of channels
    7                 parameter       width   =       24 // channel resolution
     6                parameter       size    =       3, // number of channels
     7                parameter       width   =       12 // channel resolution
    88        )
    99        (
     
    1313                input   wire                                            lvds_fco,
    1414                input   wire    [size-1:0]                      lvds_d,
     15                input   wire    [11:0]              test,
    1516
    1617                output  wire                                            adc_frame,
     
    2021        localparam      width2  =       width + 2;
    2122               
     23
    2224        reg                                                     state, int_rdreq, adc_frame_reg;
    2325        wire                                            int_wrfull, int_rdempty;
     
    4749// LSB first
    4850//                      assign int_data_wire[j*width+width-1:j*width] = {int_data_n[j], int_data_p[j], int_data_reg[j*width+width-1:j*width+2]};
    49                         assign int_data_wire[j*width2+width2-1:j*width2] = {int_data_n[j], int_data_p[j], int_data_reg[j*width2+width2-1:j*width2+2]};
    50                         assign int_fifo_wire[j*width+width-1:j*width] = int_data_reg[j*width2+width2-3:j*width2];
     51
     52//                      assign int_fifo_wire[j*width+width-1:j*width] = test;
     53
     54                        assign int_data_wire[j*width2+width2-1:j*width2] = {int_data_reg[j*width2+width2-3:j*width2], int_data_p[j], int_data_n[j]};
     55                        assign int_fifo_wire[j*width+width-1:j*width] = int_data_reg[j*width2+width2-1:j*width2+2];
     56//                      assign int_fifo_wire[j*width+width-1:j*width] = int_data_reg[j*width2+width2-1:j*width2+8];
     57
     58//                      assign int_data_wire[j*width2+width2-1:j*width2] = {int_data_n[j], int_data_p[j], int_data_reg[j*width2+width2-1:j*width2+2]};
     59//                      assign [j*width+width-1:j*width] = int_data_reg[j*width2+width2-3:j*width2];
    5160                end
    5261        endgenerate
     62
    5363
    5464        dcfifo #(
  • 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
  • trunk/3DEES/clip.v

    r154 r178  
    3131        wire    [widthr-1:0]    out_data_wire;
    3232
     33        reg             [width3-1:0]    add_data_reg [4:0], add_data_next [4:0];
    3334        wire    [width3-1:0]    add_data_wire;
    3435
     
    104105                - {2'b0, mul_data_wire1};
    105106
    106         assign out_data_wire = add_data_wire[width3-1] ? {(widthr){1'b0}} :
    107                   add_data_wire[shift+widthr-1:shift]
    108                 + {{(widthr-1){add_data_wire[width3-1]}}, add_data_wire[shift-1]};
     107        assign out_data_wire = add_data_reg[0][width3-1] ? {(widthr){1'b0}} :
     108                  add_data_reg[0][shift+widthr-1:shift]
     109                + {{(widthr-1){add_data_reg[0][width3-1]}}, add_data_reg[0][shift-1]};
    109110
    110111
     
    172173                        begin
    173174                                out_data_reg[i] <= {(widthr){1'b0}};
     175                                add_data_reg[i] <= {(width3){1'b0}};
    174176                        end
    175177                end
     
    191193                        begin
    192194                                out_data_reg[i] <= out_data_next[i];
     195                                add_data_reg[i] <= add_data_next[i];
    193196                        end                 
    194197                end             
     
    212215                begin
    213216                        out_data_next[i] = out_data_reg[i];
     217                        add_data_next[i] = add_data_reg[i];
    214218                end                 
    215219
     
    230234                                begin
    231235                                        out_data_next[i] = {(widthr){1'b0}};
     236                                        add_data_next[i] = {(width3){1'b0}};
    232237                                end                 
    233238
     
    264269                                        // prepare registers for 1st sum                                       
    265270                                        inp_data_next[0] = inp_data_wire[0];
     271                                        // prepare registers for 2nd shift                                     
     272                                        add_data_next[0] = add_data_reg[2];
    266273
    267274                                        tau_data_next = tau_data_wire[0];
     
    274281                                        int_addr_next[5:0] = del_addr_reg;
    275282                                        // register 1st product
    276                                         out_data_next[0] = out_data_wire;
     283                                        add_data_next[1] = add_data_wire;
     284                                        out_data_next[1] = out_data_wire;
    277285                                end
    278286                        end
     
    286294                                // prepare registers for 2nd sum
    287295                                inp_data_next[0] = inp_data_reg[1];
     296                                // prepare registers for 3rd shift
     297                                add_data_next[0] = add_data_reg[3];
    288298                               
    289299                                tau_data_next = tau_data_wire[1];
     
    291301
    292302                                // register 2nd product
    293                                 out_data_next[1] = out_data_wire;
     303                                add_data_next[2] = add_data_wire;
     304                                out_data_next[2] = out_data_wire;
    294305
    295306                                int_case_next = 3'd4;
     
    304315                                // prepare registers for 3rd sum       
    305316                                inp_data_next[0] = inp_data_reg[2];
     317                                // prepare registers for 4th shift     
     318                                add_data_next[0] = add_data_reg[4];
    306319
    307320                                tau_data_next = tau_data_wire[2];
     
    309322                               
    310323                                // register 3rd product
    311                                 out_data_next[2] = out_data_wire;
     324                                add_data_next[3] = add_data_wire;
     325                                out_data_next[3] = out_data_wire;
    312326                               
    313327                                del_addr_next = del_addr_reg + 6'd1;
     
    326340                                // prepare registers for 4th sum       
    327341                                inp_data_next[0] = inp_data_reg[3];
     342                                // prepare registers for 1st shift     
     343                                add_data_next[0] = add_data_reg[1];
    328344
    329345                                tau_data_next = tau_data_wire[3];
     
    331347                               
    332348                                // register 4th product
    333                                 out_data_next[3] = out_data_wire;
     349                                add_data_next[4] = add_data_wire;
     350                                out_data_next[4] = out_data_wire;
    334351                                             
    335352                                // register 4th output
    336                                 out_data_next[4] = out_data_reg[0];
     353                                out_data_next[0] = out_data_reg[1];
    337354
    338355                                int_case_next = 3'd2;
     
    345362        end
    346363
    347         assign out_data = {out_data_reg[3], out_data_reg[2], out_data_reg[1], out_data_reg[4]};
     364        assign out_data = {out_data_reg[4], out_data_reg[3], out_data_reg[2], out_data_reg[0]};
    348365
    349366endmodule
  • trunk/3DEES/histogram16.v

    r107 r178  
    3838                .intended_device_family("Cyclone III"),
    3939                .lpm_type("altsyncram"),
    40                 .numwords_a(16384),
    41                 .numwords_b(16384),
     40                .numwords_a(10000),
     41                .numwords_b(10000),
    4242                .operation_mode("BIDIR_DUAL_PORT"),
    4343                .outdata_aclr_a("NONE"),
  • trunk/3DEES/sys_pll.v

    r84 r178  
    3939module sys_pll (
    4040        inclk0,
    41         c0);
     41        c0,
     42        c1,
     43        c2);
    4244
    4345        input     inclk0;
    4446        output    c0;
     47        output    c1;
     48        output    c2;
    4549
    4650        wire [4:0] sub_wire0;
    47         wire [0:0] sub_wire4 = 1'h0;
     51        wire [0:0] sub_wire6 = 1'h0;
     52        wire [2:2] sub_wire3 = sub_wire0[2:2];
     53        wire [1:1] sub_wire2 = sub_wire0[1:1];
    4854        wire [0:0] sub_wire1 = sub_wire0[0:0];
    4955        wire  c0 = sub_wire1;
    50         wire  sub_wire2 = inclk0;
    51         wire [1:0] sub_wire3 = {sub_wire4, sub_wire2};
     56        wire  c1 = sub_wire2;
     57        wire  c2 = sub_wire3;
     58        wire  sub_wire4 = inclk0;
     59        wire [1:0] sub_wire5 = {sub_wire6, sub_wire4};
    5260
    5361        altpll  altpll_component (
    54                                 .inclk (sub_wire3),
     62                                .inclk (sub_wire5),
    5563                                .clk (sub_wire0),
    5664                                .activeclock (),
     
    6876                                .fbmimicbidir (),
    6977                                .fbout (),
     78                                .fref (),
     79                                .icdrclk (),
    7080                                .locked (),
    7181                                .pfdena (1'b1),
     
    91101                altpll_component.clk0_divide_by = 10,
    92102                altpll_component.clk0_duty_cycle = 50,
    93                 altpll_component.clk0_multiply_by = 17,
     103                altpll_component.clk0_multiply_by = 9,
    94104                altpll_component.clk0_phase_shift = "0",
     105                altpll_component.clk1_divide_by = 10,
     106                altpll_component.clk1_duty_cycle = 50,
     107                altpll_component.clk1_multiply_by = 6,
     108                altpll_component.clk1_phase_shift = "0",
     109                altpll_component.clk2_divide_by = 10,
     110                altpll_component.clk2_duty_cycle = 50,
     111                altpll_component.clk2_multiply_by = 1,
     112                altpll_component.clk2_phase_shift = "0",
    95113                altpll_component.compensate_clock = "CLK0",
    96                 altpll_component.inclk0_input_frequency = 20000,
     114                altpll_component.inclk0_input_frequency = 10000,
    97115                altpll_component.intended_device_family = "Cyclone III",
    98                 altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll",
     116                altpll_component.lpm_hint = "CBX_MODULE_PREFIX=sys_pll",
    99117                altpll_component.lpm_type = "altpll",
    100118                altpll_component.operation_mode = "NORMAL",
     
    126144                altpll_component.port_scanwrite = "PORT_UNUSED",
    127145                altpll_component.port_clk0 = "PORT_USED",
    128                 altpll_component.port_clk1 = "PORT_UNUSED",
    129                 altpll_component.port_clk2 = "PORT_UNUSED",
     146                altpll_component.port_clk1 = "PORT_USED",
     147                altpll_component.port_clk2 = "PORT_USED",
    130148                altpll_component.port_clk3 = "PORT_UNUSED",
    131149                altpll_component.port_clk4 = "PORT_UNUSED",
Note: See TracChangeset for help on using the changeset viewer.