官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师

08 定位问题能力

发布时间:2021-06-18   作者:admin 浏览量:

08 定位问题能力


设计能力和定位问题能力,是FPGA里非常重要的技能,理论上掌握了这两个能力,什么东西都可以开发出来。FPGA不像软件那样,靠单步执行来检查结果,FPGA定位问题太难了,同一个错误现象,其原因真是千奇百怪,出现的地方也是不可预测的。

      明德扬会教授大家通用的定位方法,掌握一个技巧,无论什么错误都能定位出来。
---------------------------------------------------------------------------------------------------------------------------------------------------------
定位问题的重要性

       作为初学者,仿真和调试时经常遇到如下问题:时钟一直为低、信号为X态或高阻态、波形与想象中的不一致、功能实现不出来等。 这种情况下,大部分学员都是从网上求助的。由于其他人不知道你写的具体代码,所以根本无法得到有效的帮助和解决。

       定位和解决问题,是工程师的基本能力,因此遇到问题不必急于求助,而应静下心来,自己解决。

       明德扬的系列视频,教授您一个“任何问题都能找到”的定位问题方法和思路,并通过多个案例,让您一步步掌握定位问题和解决问题的最佳方法。
----------------------------------------------------------------------------------------------------------------------------------------------------------
定位最朴素思维:波形不正确,就找产生这个波形的“代码”,对着代码检查“此时此刻”为什么出错。      

-----------------------------------------------------------------------------------------------------------------------------------------------
定位举例
下面举一个简单的例子,例如发现下面波形中,希望cnt值128,但结果为0(注:或者是红色、蓝色、其他值,总之就不是你想要的那个值),不正确,如下图。
1. 不用怀疑,就去找产生cnt的这份代码,如下图(注:不管这代码是测试文件、设计文件、其他模块给的,不管在哪里,总之就找出产生这个波形的代码出来!)
2. 对着错误的时刻,把代码和波形对照着看,看这个时候为什么出错。(一定要对着错误时刻找!一定是看此时此刻!!!)
3. 对着错误时刻分析代码。例如上图,此时rst_n等于1,所以第21行肯定没执行;此时cnt等于127,第23行条件不满足,所以第24行肯定没执行。所以一定是执行了第27行代码。一定是第27行代码,使得cnt变成0。(注:我们是要看此时此此刻条件是多少,看是哪一行代码执行了,就要这么仔细检查的)

4. 分析:希望是128,结果它是0,很容易就想到是溢出问题,所以可以推导出是cnt的位宽不够!



FPGA如何查找定位问题1  视频编号:002300000188   https://www.bilibili.com/video/BV1Jk4y1k7NM?from=search&seid=8987281343172802316

      本视频是明德扬查找定位问题的总纲视频。明德扬将错误类型归结为三类:软件工具错误、语法编译错误和功能错误。

      本视频介绍了三种错误类型的解决方法和一般原则。其中语法错误中,我们创新性地提出了“代入法”,可以定位大部分的语法错误问题。

----------------------------------------------------------------------------------------------------------------------------------------------------------


定位问题案例1  视频编号:002300000190   https://www.bilibili.com/video/BV1Jk4y1k7NM?p=2

      一气呵成把代码写出来了,开开心心来仿真,本来想着马上就要看到结果了。但想得太天真了,最有可能出现的就是波形跟你想的不一样。

即使潘老师这么有经验,也经常出现这样的情形。


      这个时候怎么办?当然是硬着头皮去找问题啊,指望别人来告诉你是不现实的,没有多少人愿意花自己的时间给你解决定位问题。

      但定位问题,你的思路对了吗?很多人第一反应就是去检查代码,从头浏览一遍,这是正确的定位思维吗?

      本视频将告诉你正确的答案。

--------------------------------------------------------------------------------------------------------------------------------------------------------

定位问题案例2   视频编号:002300000191  https://www.bilibili.com/video/BV1Jk4y1k7NM?p=3

      有同学会怀疑,用明德扬的定位方法,真能什么问题都找到吗?万一我不是设计代码问题,而是测试文件问题,也能找到?

      明德扬很有自信,没错!所有问题都能找到。本视频就告诉你,即使是测试文件问题,你也能通过我们的方法,顺藤摸瓜,把问题找到。

---------------------------------------------------------------------------------------------------------------------------------------------------------


定位问题案例3   视频案例:002300000192    https://www.bilibili.com/video/BV1Jk4y1k7NM?p=4

      我们是否曾经遇到这样的情况:已经找到具体的某一行代码有问题,通过波形和代码一一对照,波形就是与代码不一致,这个时候甚至你都怀疑仿真软件是否出现了

BUG。


      但是,首先相信一点,仿真软件出BUG的可能性微乎其微,本视频就通过一个具体的案例,教你如何定位这种错误。

      相信一个真理,FPGA是很简单的,是0就是0,是1就是1,不会有奇怪的现象的。当你发现很奇怪的时候,一般就是自己粗心了。

-------------------------------------------------------------------------------------------------------------------------------------------------------

定位问题案例4   视频案例:002300000193  https://www.bilibili.com/video/BV1Jk4y1k7NM?p=5 

          
      仿真出现高阻态(下图),是不是很常见?你是怎么定位的呢?是不是急急忙忙去求助?本视频告诉你,别急,高阻态也能用我们方法定位。

--------------------------------------------------------------------------------------------------------------------------------------------------------

定位问题案例5    视频案例:002300000194     https://www.bilibili.com/video/BV1Jk4y1k7NM?p=6

      又一个常见的错误类似,输出的值也是高阻类,再次看看用明德扬方法是如何定位的,提高一下能力,以后再遇到问题就不慌了。

---------------------------------------------------------------------------------------------------------------------------------------------------------


定位问题案例6    视频案例:002300000195      https://www.bilibili.com/video/BV1Jk4y1k7NM?p=7

      我明明在测试文件产生了时钟,但仿真时却发现时钟信号一直为0。你的第一反应是不是去检查代码?别忘了,我们一直强调的定位思维。

任何错误都不要去检查代码来发现,而是要通过定位的思维。前者找到问题靠运气,后者找到问题那是一定的。


      本视频用一个案例告诉你,通过我们方法去定位到某一行,认定就是这一行出错,盯着去思考,就能发现问题。




---------------------------------------------------------------------------------------------------------------------------------------------------------
以下是定位问题的相关文档,欢迎下载



 定位问题 简介.docx   (35.5 KB


 prob_check_exec.zip19.06 KB



下一篇:没有了
   拓展阅读