上次发表博客还是四月份,现在都八月份了,也就是来Comba快五个月了,这五个月感觉自己参与的事情不是很多,但是感觉自己在FPGA领域算是真正入了门。
细细数来,就三个任务,一是,完成SPI接口设计;二是完成E1 crc校验功能;三是完成E1基于GPM传输的多时隙传输IPcore制作。
今天是周六,天气还算凉爽,本来约同学可以出游,但是想想任务已经延迟两个星期了,不得不继续加吧劲。从下午一点到晚上十点半,终于完成了第三个任务,一个月以来的强大压力一下释放,心情莫名的爽快,甚至我玩游戏的心情都没有了,只是买了个小布丁犒劳了下自己,因为我觉得,我有更重要的事情要做,那就是总结。
之前SPI比较简单,也做过小小总结,这里不再赘述。主要按照项目流程谈一下后两个项目的收获。
然后就是代码实现,写代码简单说就是实现之前的设计方案中各个模块功能,到达所需要的接口信号时序;所以应该在写代码之前,想好功能模块实现的算法设计,时序设计,包括可行性和误差分析,这个应该在详细设计方案中完成。这次在代码设计中也学到不少,比如fifo的控制、标准三段式状态机的编写,还有时序的控制(深深体会到拼凑时序和设计时序的差别和差距)。
其次是代码仿真,代码编写应该是自上而下设计,这样仿真激励也比较好写,比如E1只要写好E1两路输入的信号,然后一次查看后面模块的信号时序是否正确。老大说,激励写的越复杂越严谨,就越容易节约自己的时间。比如,这次的输出是串行信号,基本无法分析是否正确,然后老大建议加入e1_frame_syn模块和并行数据自行比对模块,大大节约了我分析仿真输出信号是否正确的时间。关于仿真一定要养成边写代码边仿真的习惯,不要把在线信号调试当成自己的利器,那只是最后modelsim严格通过但是上板验证不正确才使用的,因为在线调试需要综合编译,实现,下载,查看,然后修改代码,再综合编译,实现,下载,,,这个过程时间可能很长,效率会大大降低,而modelsim只需要几分钟;所以一定要正确熟练使用好modelsim; modelsim仿真我简称前仿,虽然我们无法仿真所有数据情形,但是前仿**严格通过**在我现在看来至少要达到:1、输出信号正确;2、长时间输出信号正确; 3、激励文件数据源多样性;4、一段时间再复位输出信号正确。
老大那几句真诚的建议:1、不要排斥流程性的东西;2、遇到问题很长时间不能解决应该学会回到数据源头去逐一排查问题,逻辑问题不要太相信自己的主观判断,应该去让modelsim判断;3、在设计方案的时候,要往复杂里想,然后选择最简单最合理的;4、让我最触动的一句话,遇到问题,想象他在身旁他会怎么想怎么做。
非常感谢领导和同事对我的关心和支持,尤其是老大。
深夜了,也该结题了 。
想起上个月去南京大屠杀纪念馆看到的几个大字,前事不忘,后事之师。写博客的意图也正是如此。
前事不忘后事之师
最新推荐文章于 2024-05-05 23:39:23 发布