jemas963852741 发表于 2010-4-13 20:31:08

吐血求助啊

难道我真的就没有学FPGA的天分吗?~~~~~~~

帮我看下这个超级简单的uart的接收程序



顶层

module uart_test(clk,rst,rx,sig1,qout);
input clk,rst;
input rx;
output sig1;               //sig1=1表示正在接收,sig1=0检测起始位
output qout;      //输出我直接接lED了
wire clk16;
fredivn u1(.clk(clk),.clkout(clk16));
rxd3 u2(.clk(clk16),.rst(rst),.rx(rx),.sig1(sig1),.q(qout));
endmodule



分频

module fredivn(clk,clkout);
input clk;
output clkout;
reg counter;
reg tmp_clk;
always @(posedge clk) begin
    if(counter==17'd5208)      //600bps*16波特率60016倍波特率晶50M
      begin
      tmp_clk=~tmp_clk;
       counter=0;
      end
    else
      counter=counter+1;
end
assign clkout = tmp_clk;
endmodule



接收程序

module rxd3(clk,rst,rx,sig1,q);
input clk,rst;
input rx;
output sig1;                  //用于判断是否正在接收
output q;
reg sig1;         
reg sig2;               //sig2=8判断起始位0    sig2=16接收数据间隔
reg i;
reg sig3;            //接收数据的位数
reg q;


always @(posedge clk) begin
    if(rst) begin
      sig1=0;
      sig2=0;
      sig3=0;
      q=0;
      i=0;
    end
else
    if(~sig1)
      begin
      if(sig2==8)
          begin
            sig2=0;
            sig1=1;         
          end
      else
          begin
            if(~rx)
            sig2=sig2+1;
            else
            sig2=0;
          end
      end
    else                     //start to receive char
      begin
      if(sig2==16)
          begin
            q=q<<1;
            q=rx;
            sig2=0;
            sig3=sig3+1;      //received char's counter
            if(sig3==8)
            begin
                sig3=0;
                sig1=0;      //transmit over
            end
          end
      else
          sig2=sig2+1;
      end
end

endmodule



为什么下载到板后,用串口调试软件试过没有反应,到底哪里出了问题了,

我要疯了。请大家帮帮忙

tear086 发表于 2010-4-13 21:20:43

点击此处下载 ourdev_546170.zip(文件大小:2.04M) (原文件名:鄙人写得Verilog例程若干.zip)

asus119 发表于 2010-4-13 23:18:08

程序中好像没有对接收数据位的判决做处理吧。
个人觉得在UART的串行通信中,波特率是设置和数据的采样时刻是至关重要的,否则就无法采集到正确的数据。一般而言,在时钟的边缘进行数据位的判决,且最好最好是在每一数据位的中点进行判决和采样。

jemas963852741 发表于 2010-4-14 10:30:57

回复【1楼】tear086 .COM 缺氧
-----------------------------------------------------------------------

谢谢你呀,我认真看看
页: [1]
查看完整版本: 吐血求助啊