riple网友说:“写作是最好的学习方式”。所以我决定从现在开始就把自己所学所领悟的写出来,一方面是为了自我总结,另一方面也希望能对需要的同行们起到学习的作用!
我写verilog也有一年时间了,可是真正入门估计也是在最近吧。最近我正在做一个256灰度级的LED全彩图像屏。老师设计了方案,我所要做的就是领悟并在FPGA上实现它。一开始的时候,我觉得蛮简单的,所以就照着设计的逻辑写了一堆代码,要说真正领悟,估计连皮毛都没沾上吧。我希望出现奇迹,那就是把它下载到FPGA上立刻就能正确运行,并且完美的显示我想要的图像。可是当我第一次心急如焚的下载了代码,发现我的LED显示屏一片黑,什么都没有。我顿时心灰意冷,觉得自己什么也干不了。
后来在同事的帮助下,我知道我这么做是不对的。
第一:“设计必须文档化。要将设计思路,详细实现等写入文档,然后经过严格评审通过后才能进行下一步的工作。这样做乍看起来很花时间,但是从整个项目过程来看,绝对要比一上来就写代码要节约时间,且这种做法可以使项目处于可控、可实现的状态。”,这是我最近才看了一个编写代码规范中的第一条。这一条实在尤为重要,我必须完全掌握设计思路,才能在写代码的时候不会照猫画虎,才能做到起步就是对的。
第二:在我编译的时候,总会出现关键路径时序要求不满足的这个严重警告。因为我在设计中用了很多很多的分频时钟,可以说是整个设计是时钟满天飞。后来在我修改程序中,我按照设计的思路,只用整个模块的系统时钟做为全局时钟,这样,问题就不会出现了。而且,因为时钟很多,在我用到TimingQuest时,都不知道从哪里着手。
第三:设计中产生了很多门控时钟,像这样的警告:"Found * node(s) in clock paths which may be acting as ripple and /or gated clocks-node(s) analyzed as buffle(s) resulting in clolk skew;"在我之后用了全局时钟以后,它就消失了,而且也保证了时序电路稳定。
暂时先写这么多吧,我的256灰度级图像屏已经可以很清楚地显示一个漂亮的小孩子和美丽的玫瑰花了。虽然还有很多不足,但我相信一定可以克服的!也希望大家补充。
wujing55_837670780 2011-7-14 01:45
w990412_478938348 2009-5-14 13:31