Ignore:
Timestamp:
Dec 21, 2009, 5:09:06 PM (15 years ago)
Author:
demin
Message:

improve timings in all components

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MultiChannelUSB/histogram.v

    r72 r84  
    1212        // signal declaration
    1313        reg             [3:0]   state_reg, state_next;
    14         reg                             flag_reg, flag_next;
    1514        reg                             wren_reg, wren_next;
    1615        reg             [11:0]  addr_reg, addr_next;
     
    1817
    1918        wire    [W-1:0] q_a_wire, q_b_wire;
    20        
    21         wire    [11:0]  addr_wire;
    22         wire    [W-1:0] data_wire;
    23        
    24         assign  addr_wire = (flag_reg) ? data : addr_reg;
    25         assign  data_wire = (flag_reg) ? (q_a_wire + 32'd1) : data_reg;
    2619
    2720        altsyncram #(
     
    3932                .outdata_aclr_a("NONE"),
    4033                .outdata_aclr_b("NONE"),
    41                 .outdata_reg_a("UNREGISTERED"),
    42                 .outdata_reg_b("UNREGISTERED"),
     34                .outdata_reg_a("CLOCK0"),
     35                .outdata_reg_b("CLOCK0"),
    4336                .power_up_uninitialized("FALSE"),
    4437                .read_during_write_mode_mixed_ports("OLD_DATA"),
     
    5346                .clock0(clk),
    5447                .wren_b(1'b0),
    55                 .address_a(addr_wire),
     48                .address_a(addr_reg),
    5649                .address_b(address),
    57                 .data_a(data_wire),
     50                .data_a(data_reg),
    5851                .data_b(),
    5952                .q_a(q_a_wire),
     
    7972                if (reset)
    8073        begin
    81                         flag_reg <= 1'b0;
    8274                        wren_reg <= 1'b1;
    8375                        addr_reg <= 12'd0;
     
    8779                else
    8880                begin
    89                         flag_reg <= flag_next;
    9081                        wren_reg <= wren_next;
    9182                        addr_reg <= addr_next;
     
    9788        always @*
    9889        begin
    99                 flag_next = flag_reg;
    10090                wren_next = wren_reg;
    10191                addr_next = addr_reg;
     
    10696                        begin
    10797                                // nothing to do
    108                                 flag_next = 1'b0;
    10998                                wren_next = 1'b0;
    11099                                addr_next = 12'd0;
     
    118107                                if (&addr_reg)
    119108                                begin
    120                                         flag_next = 1'b1;
    121109                                        wren_next = 1'b0;
    122110                                        state_next = 4'd2;
     
    130118                        2:
    131119                        begin
     120                                wren_next = 1'b0;
    132121                                if (data_ready)
    133122                                begin
    134                                         if (&q_a_wire)
    135                                         begin
    136                                                 flag_next = 1'b0;
    137                                                 state_next = 4'd0;
    138                                         end
    139                                         else
    140                                         begin
    141                                                 wren_next = 1'b1;
    142                                                 state_next = 4'd3;
    143                                         end
     123                                        addr_next = data;
     124                                        state_next = 4'd3;
    144125                                end
    145126                        end
     
    147128                        3:
    148129                        begin
    149                                 wren_next = 1'b0;
    150                                 state_next = 4'd2;
     130                                state_next = 4'd4;
     131                        end
     132
     133                        4:
     134                        begin
     135                                if (&q_a_wire)
     136                                begin
     137                                        state_next = 4'd0;
     138                                end
     139                                else
     140                                begin
     141                                        wren_next = 1'b1;
     142                                        data_next = q_a_wire + 32'd1;
     143                                        state_next = 4'd2;
     144                                end
    151145                        end
    152146
    153147                        default:
    154148                        begin
    155                                 flag_next = 1'b0;
    156149                                wren_next = 1'b0;
    157150                                addr_next = 12'd0;
Note: See TracChangeset for help on using the changeset viewer.