kanlidy 发表于 2011-8-8 20:26:41

【求助】FPGA与USB 68013芯片的通信读程序,出问题了~

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 FIFOADR;
        inout FLAGD;
        inout FD;
        // {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
       
    reg FD_buf;//512 buff data
    reg FIFO;    // FIFOaddress
    reg state=0;
    reg empty,full,count=0;
    reg SLOE,SLWR,PKTEND,SLRD;


    parameter IDEL=1'b0;

//assignfull=FLAGB;
//assignempty=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<=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,转向状态2
状态2:激活SLOE,如果FIFO空标志为“假”(FIFO不空),则转向状态3;否则,停留状态2.
状态3:激活SLOE、SLRD,传送总线采样数据;撤销激活SLRD(指针加1)和SLOE,转向状态4.
状态4:如果有更多的数据要读,则转向状态2;否则转向IDLE


我是verilog学习的新手,请指教啊!!!!

kanlidy 发表于 2011-8-8 20:30:07

在线等~~~在线等~~~在线等~~~在线等~~~

liujilei311 发表于 2011-8-11 08:05:25

恩,学习一下!!!!!!!!

wushimin6 发表于 2011-8-19 17:06:39

:handshake:handshake:handshake:handshake

liujilei311 发表于 2011-8-22 08:24:13

对verilog不是很熟悉啊,呵呵!!!!!!!!!!

zhouhuaguo 发表于 2011-9-17 08:50:36

好像你这个写法有点像用c语言的感觉,实际fpga控制68013做usb,是要看时序的。就是SLOE等的低电平宽度很重要的。你仔细看看68013的datasheet吧!或者在网络上找找别人的到吗吧(两年前我有一个放在论坛上--具体哪个论坛我忘记了)! 你自己好好研究一下。
页: [1]
查看完整版本: 【求助】FPGA与USB 68013芯片的通信读程序,出问题了~