马上注册,看完整文章,学更多FPGA知识。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
温馨提示:明德扬2023推出了全新课程——逻辑设计基本功修炼课,降低学习FPGA门槛的同时,增加了学习的趣味性,并组织了考试赢积分活动
【提问题之前的重要建议】
项目遇到困难想求助是非常正常的事。
但求助也是十分有技巧的。要设身处地想一下,大家平时都很忙,要学习、要工作,能够特地留出一段时间来帮你解决问题的大佬,真是少之又少。
所以在提问之前,您应该摆正自己的定位,要想办法让大佬用最少的时间帮您解决问题。
怎么做呢?
1. 首先是问题现象要说清楚。
2. 自己已经做了哪些工作,这些要主动说出来。别等着大佬来一个一个来问。想象一下,大佬给出很多方法,结果你才回复都做了,心情可想而知:不早点说,费我那么多精力来想无用功。
3. 自己做的检查和定位,要截图出来确认。因为很多时候,自认为是“正确”的东西,其实才是错误的,而自己又不知道。截图出来,好让大家帮你检查检查。
4. 最好问“是非题”,不要问“问答题”。 把自己的观点摆出来,然后问“是不是这样”,大家都节省时间。
【案例1:要有查资料的习惯】:DDS IP 核中,PINC设置为0,非编程模式,POFF设置为0,编程模式,这个IP有什么用
建议:建议打开数据手册,数据手册时肯定有这个信号的解释,然后把这段解释截图出来,然后来求证。
(遇到问题,建议先看资料,或者百度相关内容。查资料本身就是研发工程师必备的能力。)
【案例2:多问“是非题”,少问“问答题”】:这个知识不太理解,你讲一遍
建议:遇到这样的问题,实在是不知道从哪里回答。建议你说清楚是哪点不清楚,是如何不清楚,或者你的理解是如何,这样老师才能清楚知道哪一个点需要再详细解释。
【案例3:仿真问题的技巧】:遇到功能仿真不正确,不清楚哪里有错误。(在做下面截图的过程中,80%的问题都自己解决了问题,强烈建议试一试做!)
建议:如果仿真出错,建议截如下的图来提问。
1. 上面是波形图,下面是对应的代码。
2. 哪个信号有错误,就看哪个代码。
3. 波形图要放大,能看到错误时刻的时钟上升沿。
4. 波形图要将代码中出现的所有信号拉出来。
5. 波形图的信号排列顺序是:时钟、复位、条件、结果信号。
6. 哪一个时刻有错,要按上图的箭头标示出来。
7. 对于觉得上面步骤太麻烦的,只想说一句:如果你能定位出问题,可以不这么仔细。如果你定位不出来了,此时就应该仔细了,能多仔细就有仔细!
【案例4:在线调试工具问题技巧】:在线调试工具,如SIGNALTAP、CHIPSCOPE调试有问题,很奇怪。(在做下面截图的过程中,80%的问题都自己解决了问题,强烈建议试一试做!)
建议:如果是在线调试工具,建议截如下样式的图片来讨论。
1. 上面是在线调试工具的波形图,下面是对应的代码。
2. 哪个信号有错误,就看哪个代码。
3. 波形图要放大,能看到错误时刻"某一个采样点",如图中的最上行。
4. 波形图要将代码中出现的所有信号拉出来。
5. 波形图的信号排列顺序是:复位、条件、结果信号。
6. 哪一个时刻有错,要按上图的箭头标示出来。
7. 特别注意:在线调试工具的采样时钟,必须为该信号的工作时钟!!!
8. 如果组合逻辑信号不能观察,那可以拉组成该组合逻辑的所有信号,然后推测出结果。
9. 对于觉得上面步骤太麻烦的,我只想说一句:如果你能定位出问题,可以不这么仔细。如果你都定位不出来了,此时不就是要更加认真仔细一些吗?
关于定位问题能力,可以学习以下资料:08 定位问题能力 http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=268
【案例5:要找错误时刻,错误时间点】:我预期dout_eop是只有一个时钟周期,但它却持续拉高了,如下图。
建议:
该同学的错误时刻点没有找到。只想到“dout_eop一直变高”,也就是看到的是一个“整体”,一段连续的高电平,然后认为这是不正确的。
我们应该是要找错误时间点,它是“一个时钟上升沿”时刻。
例如本案例,把“dout_eop一直变高”这个问题,变成“在第XX个时钟上升沿,我认为它是0,结果它是1”(也就是图中箭头的下一个时钟)。这个才是错误的时刻,所以图中的箭头时刻指的不正确,需要重新截图再来提问。
【案例6:软件工具问题】:对于软件提示的错误,自己又觉得没有问题,检查不出来的情况。
答:这种情况,建议把每个步骤截图出来,给大家确认。 例如,有人反映,模块明明已经定义了端口a,但软件提示就是没有此端口。在此案例中,建议截如下图来确认:1. 代码的截图;2. 文件添加到工程的截图;3. 工程提示错误的截图。
【案例7:程序看了半天,不知道哪里出问题】如下图
答:1. 不要随便就发代码让我们检查,我们也是检查不出来的,通常我们的方法都是仿真和定位。
2. 我们仿真和定位,也是要花很多时间的,特别是我们不理解你代码的情况下,更需要时间。
3. 建议您掌握一下仿真和定位问题的技巧。详细见下面贴子:08 定位问题能力 http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=268
【案例6】对于自行修改工程,导致出现了错误,这种问题的解决方法。答:MDY提供的每个工程,都是要精心设计,一步一步精心调试,才最终实现所需要的功能。任何一步出错,都不可能实现正确的效果。
在自己编写的工程,或者修改了我们的工程,从而出现错误,我们的工程师也是要花很多时间和精力来解决的,何况每个人出现的错误都不同。
在这里,强烈建议您自己去定位,以下是一些常用的定位方法,供您使用。
1. 有问题时,可以在参考工程上也看看是否也有此问题,从而辨别出是不是使用方法、使用工具有问题
2. 可以将您写的代码,替换到参考工程上,从而确定是否本代码的问题。注意,要一个代码一个代码地替换。
3. 可以替换的,包括:源代码、管脚配置等,这些都是有影响的。
|