基本内容都写好了,接下来再简单检查修改一下准备给老师看看
这个是和学弟一起做的,我提供思路和指导,学弟写程序时遇到的问题比较多,包括:
在下周二前做出个能实际测试的,子卡到主卡传输数据的demo出来
之前我说过硬件型号是xczu7eg-ffvc1156-2-e
,请在之后继续使用这个型号
之前我提供过时钟相关的代码Clock_Reset.v
,并且另一个简单的led程序也有使用时钟的案例代码,这两个案例都可以复用,之后遇到时钟问题时可以参考这两个案例的代码
之前我提供过时钟相关的约束和关于sfp+信号的约束,建议是直接复用相关信号的约束,不要省略或者自己乱改
已经写好的程序或者我发的参考程序可以放到一个文件夹中,方便之后参考
请给每个程序写一个有意义的名字,有需要的话建议在文件夹里再写一个readme,说明这个程序是做什么的,有没有遇到什么问题,如何解决
举个例子:写verilog程序都需要时钟,首先要考虑,这个硬件提供的时钟的频率是多少,这个时钟是什么时钟,是否需要分频或者其他处理?如果没有这个思考的过程的话,就胡乱整一个时钟上去,结果是用不了的,不正确的
首先遇到问题第一反应是去搜索,没问题,但不一定搜得到,另外,如果问AI的话,请慎重考虑其给出的答案
如果搜索解决不了问题(这是很常见的),那应该有目的的去定位问题所在的点,而不是大海捞针一样去试
举个例子:程序无法导入板子上,可能的原因有 1. 板子坏了 2. 接线有问题 3. vivado有问题 4. 写的程序有问题
那怎么排查呢?写一个简单的led程序,尝试导进板子里,如果也失败了,那问题就锁定在1,2,3这边上,如果成功了,那1,2,3是没问题的,就可以排除了,剩下就是4有问题了,这其实也是个控制变量法,其他条件都相同,只是换了个程序就能导入,那说明是程序的问题
然后排查程序里面仍然可以用控制变量法,另外写一个程序,有部分和源程序相同,有部分不同(或者就是某部分去掉),这时再去测试,如果能够导入,那说明问题就出在这个部分上
这样一步一步缩小问题所在的范围,最后找到问题所在,然后解决,就比无头苍蝇那样乱找好多了
本文章使用limfx的vscode插件快速发布