Ignore:
Timestamp:
Sep 4, 2009, 10:16:52 PM (15 years ago)
Author:
demin
Message:

attemp to improve USB interface

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MultiChannelUSB/Paella.v

    r30 r31  
    7070
    7171        reg             [31:0]  counter;       
     72        reg                             led_reg;       
    7273//      assign  LED                     =       counter[24];
    73         assign  LED                     =       usb_fifo_rx_empty;
     74//      assign  LED                     =       ~usb_fifo_rx_empty;
     75        assign  LED                     =       led_reg;
     76//      assign  LED                     =       usb_fifo_led;
    7477
    7578        wire                    usb_wrreq, usb_rdreq, usb_rden, usb_pktend;
     
    103106                .tx_full(usb_fifo_tx_full),
    104107                .rx_empty(usb_fifo_rx_empty),
    105 //              .led(usb_fifo_led),
    106                 .rx_data(usb_fifo_rx_data)
     108                .rx_data(usb_fifo_rx_data),
     109                .led(usb_fifo_led)
    107110        );
    108111       
     
    216219                        2:
    217220                        begin
     221                                usb_fifo_rx_rdreq <= ~usb_fifo_rx_empty;
    218222                                if (~usb_fifo_rx_empty)
    219223                                begin
    220                                         usb_fifo_rx_rdreq <= 1'b1;
    221224                                        case (usb_fifo_rx_data)
    222225                                                8'h30:
     
    227230                                                8'h31:
    228231                                                begin
     232                                                        led_reg <= 1'b1;
    229233                                                        hst_addr <= 12'd0;
    230234                                                        hst_byte_num <= 2'd0;   
     
    238242                                                8'h33:
    239243                                                begin
     244                                                        led_reg <= 1'b0;
    240245                                                        osc_addr <= osc_start_addr;
    241246                                                        osc_counter <= 10'd0;
     
    243248                                                        state1 <= 3'd4;
    244249                                                end
     250
    245251                                        endcase
    246252                                end
    247                                 else
    248                                 begin
    249                                         usb_fifo_rx_rdreq <= 1'b0;
    250                                 end                             
    251253                        end
    252254
     
    254256                        begin
    255257                                // hst transfer
     258                                usb_fifo_rx_rdreq <= 1'b0;
     259                                usb_fifo_tx_wrreq <= ~usb_fifo_tx_full;
    256260                                if (~usb_fifo_tx_full)
    257261                                begin
    258                                         usb_fifo_tx_wrreq <= 1'b1;
    259 
    260262                                        case (hst_byte_num)
    261263                                                2'd0: usb_fifo_tx_data <= hst_q[7:0];
     
    267269                                        if (&hst_byte_num)
    268270                                        begin
    269                                                 hst_byte_num <= 2'd0;                           
    270271                                                if (&hst_addr)
    271272                                                begin
     
    277278                                                end
    278279                                        end
    279                                         else
    280                                         begin
    281                                                 hst_byte_num <= hst_byte_num + 2'd1;                           
    282                                         end                             
    283                                 end
    284                                 else
    285                                 begin
    286                                         usb_fifo_tx_wrreq <= 1'b0;
     280
     281                                        hst_byte_num <= hst_byte_num + 2'd1;                           
    287282                                end
    288283                        end
     
    291286                        begin
    292287                                // osc transfer
     288                                usb_fifo_rx_rdreq <= 1'b0;
     289                                usb_fifo_tx_wrreq <= ~usb_fifo_tx_full;
    293290                                if(~usb_fifo_tx_full)
    294291                                begin
    295                                         usb_fifo_tx_wrreq <= 1'b1;
    296 
    297292                                        case (osc_byte_num)
    298293                                                1'd0: usb_fifo_tx_data <= osc_q[7:0];
     
    302297                                        if (osc_byte_num)
    303298                                        begin
    304                                                 osc_byte_num <= 1'd0;                           
    305299                                                if (&osc_counter)
    306300                                                begin
     
    313307                                                end
    314308                                        end
    315                                         else
    316                                         begin
    317                                                 osc_byte_num <= 1'd1;                           
    318                                         end                                                                             
    319                                 end
    320                                 else
    321                                 begin
    322                                         usb_fifo_tx_wrreq <= 1'b0;
     309
     310                                        osc_byte_num <= ~osc_byte_num;                         
    323311                                end
    324312                        end
     
    331319                endcase
    332320        end
     321
    333322/*
    334323        always @(posedge CLK_50MHz)
Note: See TracChangeset for help on using the changeset viewer.