【黑金原创教程连载】FPGA那些事儿-驱动篇I,每周更新
黑金的FPGA原创资料已经有很多了,不过我们还将继续,不断的提供相关的教程给大家学习。这个帖子里面,我已经收集了之前的原创教程和重要的资料
http://www.amobbs.com/thread-5582550-1-1.html
从今天开始,我们将连载《FPGA那些事儿-驱动篇I》,每周更新一次。
这篇连载文档,我们已经发布了三篇
【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块
http://www.cnblogs.com/alinx/p/3754495.html
文档和源码下载地址:
链接: http://pan.baidu.com/s/1dB7C6 密码: bsbb
【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二:按键模块① - 消抖
http://www.cnblogs.com/alinx/p/3768672.html
文档和源码下载地址:
链接:http://pan.baidu.com/s/1kTBPDKN 密码:pboc
【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验三:按键模块② — 点击与长点击
http://www.cnblogs.com/alinx/p/3777233.html
文档和源码下载地址:
链接:http://pan.baidu.com/s/1sjFHoQx 密码:7f57 有nand flash的相关例程不 支持下楼主{:victory:} 大家都在考试呢么? 【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验四】按键模块③ — 单击与双击
链接:http://pan.baidu.com/s/1hqwwULe 密码:4p9q 29. 0:
30. if( C1 == T -1) begin C1 <= 26'd0; i <= i + 1'b1; end
31. else begin C1 <= C1 + 1'b1; D <= 4'b0001; end
32.
33. 1:
34. if( C1 == T -1) begin C1 <= 26'd0; i <= i + 1'b1; end
35. else begin C1 <= C1 + 1'b1; D <= 4'b0010; end
这种风格的代码能改下不?太别扭了 {:victory:}{:victory:}{:victory:} 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验五:按键模块④ — 点击,长点击,双击
链接:http://pan.baidu.com/s/1dDgoldn 密码:zsl0 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验六:数码管模块
链接:http://pan.baidu.com/s/1hGwSA 密码:zbqb 竟然没人顶 顶一下,这个坛子里,搞fpga不多,fpga有点小众。 fengyunyu 发表于 2014-7-16 09:46
顶一下,这个坛子里,搞fpga不多,fpga有点小众。
是啊,门槛稍微有点高 avic 发表于 2014-7-16 09:48
是啊,门槛稍微有点高
不涉及具体的工作,基础、入门的东西,门槛有啥高不高的。用的人少是事实。 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验七:PS/2模块① — 键盘
链接:http://pan.baidu.com/s/1mgun44C 密码:fty4 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验八:PS/2模块② — 键盘与组合键
链接: http://pan.baidu.com/s/1jGwZ7bo 密码: rm08 支持楼主,刚刚买了你们家的板子,学习中。板子做工很好,也很专业 mark记号下 好贴,这么少人顶。。。。。。。。。。。。。。。。。。 tlong_1919 发表于 2014-7-27 10:24
好贴,这么少人顶。。。。。。。。。。。。。。。。。。
谢谢支持 支持。。。。。。。。。。。。 学习了,mark!! 你好,我在学习你的串口模块的时候,在实践发送接收接口的时候(接收pc发送,并返回给pc)
测试发现当发送较多的数据的时候,会出现乱码的现象,数据少的时候不会。
后来我分析是发送的时序这里造成的原因,我分析如下。
教程里的程序如下:
else if( TX_En_Sig )
case ( i )
4'd0 :
if( BPS_CLK ) begin i <= i + 1'b1; rTX <= 1'b0; end
4'd1, 4'd2, 4'd3, 4'd4, 4'd5, 4'd6, 4'd7, 4'd8 :
if( BPS_CLK ) begin i <= i + 1'b1; rTX <= TX_Data[ i - 1 ]; end
4'd9 :
if( BPS_CLK ) begin i <= i + 1'b1; rTX <= 1'b1; end
4'd10 :
if( BPS_CLK ) begin i <= i + 1'b1; rTX <= 1'b1; end
4'd11 :
if( BPS_CLK ) begin i <= i + 1'b1; isDone <= 1'b1; end
4'd12 :
begin i <= 1'b0; isDone <= 1'b0; end
endcase
在发送完后 case 11我觉得不需要判断if( BPS_CLK ) ,应为这样会有一个累计误差。后来我修改成为
4'd11 :
begin i <= i + 1'b1; isDone <= 1'b1; end
后测试,pc发送多个数据,也没有错误。
不知道这是不是个问题,希望有人能回答我,以解我刚入门的菜鸟疑惑?
导致乱码的原因在于,当发送数据超过382个字节时,会导致fifo溢出,这时发送的数据就不对了。
但是还是不知道为什么,还在分析当中,,,,,
寻求大家的帮助 仔细分析了下,我觉得教程里的接收发送的时序没什么问题,应该是fifo的读取时间要略大于保存时间,导致保存过快,导致fifo溢出了。
等高手给下个结论把 大赞楼主,果断收藏了! 好东西要收藏 黑金的,还是一如既往的给力!~ 楼主能出个现在的合集吗,一个个下太麻烦了
页:
[1]