在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5729|回复: 18

[讨论] 关于FPGA学习的困惑??!!

[复制链接]
发表于 2010-7-2 09:51:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好,我是一名在校学生,学习FPGA也有3个月时间了吧,从刚开始看VHDL和verilog到看一些代码或自己写一些小的代码到现在自己调试一个存储装置。期间有一些收获,但是困惑大于收获,感觉现在每进行一步,都感到力不从心。比如我现在调试的这个闪存的代码,老是出现不定态,也不知道哪里出现问题了,现在将一些困惑说一下,希望路过的高手能指点一下,谢谢!!
1、关于综合的困惑
     代码语法上没有错误,但怎么样看综合报告,以及怎么样评判一个代码综合的好坏
2、关于约束
     为什么用约束,什么时候用约束,在哪用约束,怎么样约束,这些在我脑海里面现在是一锅粥,看了一些资料,但就是不明白,也许是本人比较笨的原因吧,呵呵
3、关于引脚的分配
    引脚的分配对FPGA的实现过程中的布局布线有没有太大的影响,比如我前段时间引脚分配的时候同样性质的IO,为什么在一个地方布局布线就不通过,为什么在另一个地方就通过??引脚的分配是不是也要遵循什么原理,不是任凭感觉来进行的??
4、关于静态时序分析
    看了一些资料说静态时序分析比较重要,但这些在我脑海里面和设置约束一样,都是一锅粥,不知道怎么样分析,错在哪里,怎么样修正,怎么样看时序报告等等......
    现在先提出这么多问题吧,希望和我一样的菜鸟多多提出问题,讨论讨论,共同学习,共同进步!!!路过的高手希望你们多多传道授业解惑,也许你们不经意间的一句话,可以让我们少走很多弯路。我想不管是高手还是菜鸟在学习的过程中肯定都遇见过这样或那样的困惑可能有的通过某种方法或渠道已经解决,有的还在困惑着大家,也许你的困惑这是人家已经解决的,你已经解决的正是人家困惑的。还是那句话,多多交流,共同进步吧!!!谢谢!!!
发表于 2010-7-2 10:27:21 | 显示全部楼层
如果你用synlify综合,可以查看下综合后的报告,点一下下方窗口中的*.srr链接就可,看看里面的错误和warning,看是否有要引起重视的地方。
约束这东东,看你跑的时钟速率,如果低于100M,如5/60M,除了位置约束外,时钟和输入输出DELAY等都可以不作约束,主要是根据你跑出来的结果看静态时序分析,如果有不合时序要求的要考虑约束,比如扇出调整,寄存器打拍,组合逻辑优化,代码风格优化等,建议先适当降低工作频率。
引脚的位置还是有讲究的,比如差分管脚的P/N管脚,区域时钟与数据管脚最好分配在同一个BANK上等。
可以用一下time-quest,向厂家多要些培训资料。

最后,还是条:多借鉴下别人已有的设计,频率不要太高,先低一点。
三个月你能有这么多疑惑,说明挺用心了,进展可嘉,我在公司三个月的水平还想不了这么多。
 楼主| 发表于 2010-7-2 11:11:10 | 显示全部楼层
2# eaglelsb
您好,综合我也用过synplify pro,查看了一下警告或错误,貌似也没有太大的问题。我现在的频率用的比较低吧,20M的。约束和静态时序只是我想学习学习,所以在学的过程中感觉到比较乱,没有一点头绪,根本还不明白为什么、怎么样、何时、在哪要约束以及分析静态时序。而且我用的是ise并不是quartus,里面貌似没有time-quest吧,之前也接触过quartus感觉操作起来比ise方便。总之还是对这方面没有目标和针对性感觉老是在里面打圈,非常感谢您的建议!!
发表于 2010-7-2 12:03:36 | 显示全部楼层
ise里面也有专门的时序验证的工具,忘记叫什么名字了,你可以看看使用手册。如果你在使用ise的话,有一本书好像是专门针对ise的FPGA设计指导,你可以搜索或者到书店看看,应该是有的,西安电子科技大学出版的。里面或许能针对这款工具让你得到提高,至于普遍意义的一些知识,你可以从专用的工具上去拓展,比如时序或者约束之类的,可能光看论文分析不容易得到提高。
 楼主| 发表于 2010-7-2 14:15:12 | 显示全部楼层
4# gaurson
恩,我找找看吧,感谢您给的宝贵意见,呵呵
发表于 2010-7-2 20:06:42 | 显示全部楼层
这些东西初学时很多都没有概念,只能是在平时的实践中留意慢慢体会。
 楼主| 发表于 2010-7-3 10:30:09 | 显示全部楼层
6# tonylzez
恩,深有体会,不实际的经历就没有深切的体会!!
发表于 2010-7-3 11:42:26 | 显示全部楼层
1# kuloloo

1、多看一下关于coding style和synthesis方面的文章,主要关注的是什么样的编码会被综合成什么样的电路,这个电路是否耗用的资源过多,又或者是不是布线后时序较差。网络上有专门的关于coding style的大量文章,像quartus的handbook第一卷也是讲它的。在学习初期养成好的编程习惯,比到后面了再来改变固有想法,要简单的多。

2、关于约束和时序
首先可以看一下,关于时序优化方面的文章,能够了解什么原因会造成时序不好,从哪些方面着手优化。
其次,看一下静态时序分析的文章,说到底,就是建立保持时间,对于在芯片内部的逻辑来说,影响的是芯片的最大频率;对于芯片接口来说,影响的就是接口能够被正确采样了。
最后,实际的使用软件的时序分析器来应用你所知道的概念了。如果有实际的项目应用,会更加帮助你理解,因为你需要分析,这个接口的时序到底要怎样约束,功能才是正确的。

3、关于引脚分配问题
器件手册里面都有写,碰到问题就查一下。
发表于 2010-7-3 13:19:19 | 显示全部楼层
不错的帖子,发言都有实质意义。值得一看
发表于 2010-7-3 21:29:26 | 显示全部楼层
学习要慢慢来,别急
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 21:26 , Processed in 0.030641 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表