Ignore:
Timestamp:
Feb 28, 2010, 11:35:16 PM (15 years ago)
Author:
demin
Message:

fix communication with external SRAM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MultiChannelUSB/oscilloscope.v

    r90 r91  
    2424        reg             [47:0]  osc_data_reg, osc_data_next;
    2525
    26         reg             [19:0]  cfg_cntr_max_reg, cfg_cntr_max_next;
    27         reg             [19:0]  cfg_cntr_mid_reg, cfg_cntr_mid_next;
    28 
    2926        reg             [2:0]   int_case_reg, int_case_next;
    3027
    3128        reg                             int_trig_reg, int_trig_next;
    3229        reg             [19:0]  int_trig_addr_reg, int_trig_addr_next;
    33         reg             [19:0]  int_cntr_reg, int_cntr_next;
     30
     31        reg             [19:0]  int_cntr_reg [1:0];
     32        reg             [19:0]  int_cntr_next [1:0];
    3433
    3534        reg             [15:0]  bus_mosi_reg [2:0];
     
    7170                        bus_busy_reg <= 1'b0;
    7271                        int_case_reg <= 5'd0;
    73                         int_cntr_reg <= 20'd0;
     72                        int_cntr_reg[0] <= 20'd0;
     73                        int_cntr_reg[1] <= 20'd0;
    7474                        int_trig_reg <= 1'b0;
    7575                        int_trig_addr_reg <= 20'd0;
    76                         cfg_cntr_max_reg <= 20'd0;
    77                         cfg_cntr_mid_reg <= 20'd0;
    7876                       
    7977                        for(i = 0; i <= 2; i = i + 1)
     
    9189                        bus_busy_reg <= bus_busy_next;
    9290                        int_case_reg <= int_case_next;
    93                         int_cntr_reg <= int_cntr_next;
     91                        int_cntr_reg[0] <= int_cntr_next[0];
     92                        int_cntr_reg[1] <= int_cntr_next[1];
    9493                        int_trig_reg <= int_trig_next;
    9594                        int_trig_addr_reg <= int_trig_addr_next;
    96                         cfg_cntr_max_reg <= cfg_cntr_max_next;
    97                         cfg_cntr_mid_reg <= cfg_cntr_mid_next;
    9895
    9996                        for(i = 0; i <= 2; i = i + 1)
     
    104101                end
    105102        end
    106                
    107103
    108104        always @*
     
    115111                bus_busy_next = bus_busy_reg;
    116112                int_case_next = int_case_reg;
    117                 int_cntr_next = int_cntr_reg;
     113                int_cntr_next[0] = int_cntr_reg[0];
     114                int_cntr_next[1] = int_cntr_reg[1];
    118115                int_trig_next = int_trig_reg;
    119116                int_trig_addr_next = int_trig_addr_reg;
    120                 cfg_cntr_max_next = cfg_cntr_max_reg;
    121                 cfg_cntr_mid_next = cfg_cntr_mid_reg;
    122117
    123118                for(i = 0; i < 2; i = i + 1)
     
    135130                                ram_addr_next = 20'd0;
    136131                                bus_busy_next = 1'b0;
    137                                 int_cntr_next = 20'd0;
     132                                int_cntr_next[0] = 20'd0;
     133                                int_cntr_next[1] = 20'd0;
    138134                                int_trig_next = 1'b0;
    139135
     
    162158                                        int_case_next = 3'd1;
    163159                                        int_trig_addr_next = 20'd0;
    164                                         cfg_cntr_max_next = {cfg_data[7:0], 10'd0};
    165                                         cfg_cntr_mid_next = {cfg_data[15:8], 10'd0};
     160                                        int_cntr_next[0] = {cfg_data[7:0], 10'd0};
     161                                        int_cntr_next[1] = {cfg_data[15:8], 10'd0};
    166162                                end
    167163
     
    178174                                        int_case_next = 3'd2;
    179175
    180                                         if ((~int_trig_reg) & (trg_flag) &
    181                                                 (int_cntr_reg == cfg_cntr_mid_reg))
     176                                        if ((~int_trig_reg) & (trg_flag) & (int_cntr_reg[1] == 0))
    182177                                        begin
    183178                                                int_trig_next = 1'b1;
     
    185180                                        end
    186181                                       
    187                                         if (int_trig_reg | (int_cntr_reg < cfg_cntr_mid_reg))
    188                                         begin
    189                                                 int_cntr_next = int_cntr_reg + 20'd1;
     182                                        if ((int_trig_reg) & (|int_cntr_reg[0]))
     183                                        begin
     184                                                int_cntr_next[0] = int_cntr_reg[0] - 20'd1;
     185                                        end
     186
     187                                        if ((|int_cntr_reg[1]))
     188                                        begin
     189                                                int_cntr_next[1] = int_cntr_reg[1] - 20'd1;
    190190                                        end
    191191                                end
     
    213213                                ram_data_next = {osc_data_reg[47:40], 1'b0, osc_data_reg[39:32], 1'b0};
    214214                                int_case_next = 3'd1;
    215                                 if (int_cntr_reg >= cfg_cntr_max_reg)
     215                                if (int_cntr_reg[0] == 0)
    216216                                begin
    217217                                        ram_wren_next[0] = 1'b0;
Note: See TracChangeset for help on using the changeset viewer.