FPGA设计学习经验小谈
下面的内容转自edacn论坛,对初学者会有帮助。
看的时候脑子多转几下,不要被动的接受!!
****************************************************************************************************
很久没有发帖子了,很对不住大家。工作上已经不做FPGA了,并且工作上太忙。今天跟一个人聊FPGA,我就将我当时的一些话贴出来,大家就当随便看看,浪费一两分钟时间。
有人问我,三态门自己写了一个程序,却调试不出来。当然,我现在也没有用语言自己写一个三态门出来,我更习惯Ip Core里面的Tribuffer。自己编写的,是需要有点技巧,尤其是在控制信号那个地方。最好还是用ip core,用ip core的好处在于整个电路非常清晰。我曾经尝试着自己写一个三态门,但是调试过程中发现问题很多,所有后来干脆用系统提供的了。
另外,她说学习语言学了一个月,我觉得大可没有这个必要。语言那东西,只是工具。并且,常用的语法也就那么多,所以根本没有必要去专门学习。最好是用到的时候去查一下书,或者查一下外国人写的那个电子版的handbook。
拿到一个设计要求后,首先就用你学到的数字电路知识把整个系统大体给搭一个原理图出来,就像怯茫穑颍铮簦澹熳鞯缏钒逡谎J裁吹胤侥苡靡桓鲆肼肫骶涂梢越饩隽耍裁吹胤侥苡靡桓龈从闷骶涂梢越饩隽耍鹊取5鹊侥忝靼琢苏庑陀Ω煤苋菀椎淖觯疲校牵亮恕N乙豢家彩亲茉诳幢鹑怂的母鲇镅院茫苣母龉ぞ吆茫⑶乙豢季醯迷硗忌杓剖淙敕椒ㄊ亲畋康模堑胶罄矗液鋈环⑾郑獠攀钦嬲母呤帧O低成杓频亩ゲ阕詈貌捎迷硗寄J剑庋鱿低撤浅G逦阌诙嗳撕妥约何ぃ谝恍┑筒隳?椋梢杂胕p core的,尽量用ip core;不行的,就把功能细分,每一个子功能写一个vhd或v文件,然后编译成symbol,在原理图中调用symbol。
我只是在这里泛泛而谈,希望能够对初学者有一点帮助,如果有说得不对的地方,希望大家多多指正。
by channelelle
******************************************************************************************** 其实FPGA不是学会的,是做会的。遇到问题,解决问题和总结经验,不断往复,水平就提高了。
刚开始做,谁都会遇到问题。这时候不要动不动就张口问别人,要自己多想一想,试一试。比如,刚焊好的板子,上电后,下载不了,这是一个新手经常遇到的问题。
一般来说,大多数人会去检查下载电路的原理图,如果发现和正确的原理图没有区别就没办法了,开始怀疑芯片是不是坏了,焊接是不是有问题,是不是哪里有干扰啊等等。
而有的细心一些的人,就会仔细的看看下载的原理,信号的时序,用示波器看看板上信号的时序,一步一步的找原因。如果没有找到,就会仔细检查FPGA的电路,从电源设计,到去耦电容摆放等等方面去动手查找原因。如果觉得那里有问题,就动手改一看看,测一侧有没有改变,而不是坐着想哪里出问题。
可能最后就是芯片坏了,或者没有焊接好,但是后者确在这个过程中学到了很多东西,至少对fpga下载的原理了解的十分清楚。
以上是随便举的一个例子,还有一点要忠告大家的就是不要轻易的怀疑芯片有问题,如果电路工作不正常,那么99%的原因是和设计有关的,是可以找到确定的原因的,而不是偶然的,即使是噪声或者干扰。
by RedLogic
************************************************************************************************
fpga这东西最需要的就是自己去实际动手编写程序,哪怕仅仅是编写一个737,只有在不断的编写调试的过程中才能找到感觉。同意楼上的观点,不要过分的去看语法,常用的其实不多。我刚开始也是认为整个系统全部用语言编写最好,通过个人的经验教训才发现,顶层文件最后用原理图。
还有个建议就是平时多自己编写联系一些东西,比如花点时间编一点任意分频器啊锁相环啊什么的,从中会找到很多乐趣。当然必须要遇到很多困难才有乐趣了。如果什么困难都没有,那只能说您是高手了。
还有就是要互相之间多讨论,每个人的观点都可能是你学习的内容。 也乱想到这里. 还有要补充一点就是如果是做系统的设计,最后一定用同步系统。
by bluetooth884
************************************************************************************************* |