module FPGAUSB 
( 
        // {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE! 
        FLAGA, FLAGB, FLAGC, SLOE, SLRD, PKTEND, SLWR, FIFOADR, FLAGD, FD 
        // {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE! 
); 
// Port Declaration 
 
        // {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! 
        input FLAGA; 
        input FLAGB; 
        input FLAGC; 
        output SLOE; 
        output SLRD; 
        output PKTEND; 
        output SLWR; 
        output [1:0]FIFOADR; 
        inout FLAGD; 
        inout [7:0]FD; 
        // {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! 
         
    reg [7:0]FD_buf[63:0];//512 buff data 
    reg [1:0]FIFO;    // FIFOaddress 
    reg state=0; 
    reg empty,full,count=0; 
    reg SLOE,SLWR,PKTEND,SLRD; 
 
 
    parameter IDEL=1'b0; 
 
//assign  full=FLAGB; 
//assign  empty=FLAGC; 
 
 
 
always@(negedge SLOE or negedge SLRD)//case 1,2,3,4 
  begin 
    case(state) 
    IDEL:begin 
        SLOE<=1'b1; 
        SLWR<=1'b1;         
        PKTEND<=1'b1;         
 
        state<=1; 
         end 
    1:begin 
                FIFO<=1'b00;// choice EP2 OUT 
        state<=2; 
      end   //end state 1 
    2:begin 
        if(!FLAGC)begin state<=3;end 
        else state<=2; 
      end  //end state 2 
    3:begin 
        fork 
        SLOE<=1'b0; 
        SLRD<=1'b0;//read 
        join         
    // for(;count<63;count++)//count the 512 byte data 
      // begin 
       FD_buf[count]<=FD;//read the data into buffer 
        count=count+1; 
      // end 
        fork 
        SLOE<=1'b1; 
        SLRD<=1'b1;//read reset 
        join 
        state<=4;       
      end //end state 3 
     4:begin 
         if(count==64)state<=0; 
         else state<=IDEL; 
 
       end //end state 4 
 
 
     default:state<=0; 
     endcase 
  end 
 
 
 
endmodule 
 
 
完成的过程是: 
外部主控器典型的进程如下: 
IDLE:当写事件发生时,转到状态1 
状态1:指向OUT FIFO,激活FIFOADR[1:0],转向状态2 
状态2:激活SLOE,如果FIFO空标志为“假”(FIFO不空),则转向状态3;否则,停留状态2. 
状态3:激活SLOE、SLRD,传送总线采样数据;撤销激活SLRD(指针加1)和SLOE,转向状态4. 
状态4:如果有更多的数据要读,则转向状态2;否则转向IDLE 
 
 
我是verilog学习的新手,请指教啊!!!! |