FPGA工程开发中仿真的重要性

时间:2025-09-11  作者:Diven  阅读:0

在进行FPGA工程开发中,我们都会接触到仿真这个环节。笔者在之前就粗略的提及过FPGA开发一定要仿真,要养成仿真的习惯。

FPGA工程开发中仿真的重要性

很多初学者或者学艺不精的工程师都比较排斥仿真。当然,如果您也排斥仿真,那么您就要扪心自问一下自己是属于初学者还是学艺不精的工程师。

很多初学者入门FPGA的时候所学习的编程例子都是很简单的,比如流水灯、数码管点亮之类的。这种入门级别的例子有个特点,代码量少,逻辑简单,分析容易。而且大家刚开始都是照着书本抄一遍的,基本上都是没有什么问题的。一上板子就发现效果出来了。

当然,初学者也会进行一些仿真,但是也仅仅是因为书籍有提及到这样一个功能,然后就尝试一下这个功能。久而久之很多人厌倦了仿真,觉得仿真很浪费时间,往往更倾向于直接烧录到板子上,然后观察效果,最后调试代码。

突然有一天,初学者发现了FPGA开发工具中有个虚拟逻辑分析仪,以Xilinx 公司为例,初学者发现了ChipScope这个工具。这个工具可以直接在板子上捕捉内部寄存器值。很多初学者觉得可以用这个软件完全取代仿真。

笔者想先从哲学的角度来分析一下。一个技术没有被淘汰,证明是市场公认的,不可取代的。遥想当年的BB机,一下子就被淘汰了,因为已经有了可以取代产品出现了。FPGA的仿真是一个大方向,甚至有很多第三方的仿真软件。为什么这些软件没有被淘汰,这就说明了还没有哪项技术可以取代仿真这个环节,如果真的有,就不会有仿真软件了。

为什么需要仿真?仿真有什么优势?

仿真可以让设计者能够很快知道模块输出值是否正确。说到这,就有读者想问,直接上板子不是更快吗?如果你以后的工作都是用FPGA来跑流水灯,点数码管的话,那么直接上板子确实是比较快。但是笔者相信,不会有哪个公司要求你用FPGA仅仅是跑个流水灯的。如果设计者遇到稍微复杂一点的工程,注意笔者说的是稍微复杂一点,还不是很复杂。那么当您完成一次综合、布局布线、生成bit文件的时间超过半个小时是很正常的。当你发现效果不对,又返回来打算用个ChipScope插入寄存器查看怀疑对象,那么问题来了,你打算用ChipScope查看多少个寄存器值呢?ChipScope是利用FPGA内部资源来存储数据达到捕捉的功能,加入过大的ChipScope会使得布局布线更为困难,时间会更久。再者ChipScope存储量是有限的,不可能从时间0开始一直存储下去。存满了,下次再来就刷新了。从上面看开,如果不仿真,单纯的用ChipScope进行捕捉,每综合一次消耗大量的时间,再者ChipScope能观察到的信号有限,以及功能单一。这样一个流程下来,也许一天也未必能找到问题的所在,更别说处理问题了。

如果换成仿真,你可以添加大量的观察信号,可以从时间0开始就得到数据,对于稍微复杂的工程,不用跑半个小时的仿真已经可以出很多数据了,足够开发者逐步分析了。

可能初学者在笔者的再三强调下还是不喜欢仿真。笔者也只是希望大家不要走太多弯路,纵观现在网上FPGA论坛或者是交流社区,大家更多讨论的是我这里有个项目,我这里出了个问题,我这里这个不知道应该怎么处理。很多书籍也是,直接告诉大家怎么建工程,举例一些代码什么的,甚至有些书籍只是翻译FPGA厂家手册而已。笔者并不是说哪些书籍不好,哪些论坛不好,大家还是要多读书,多交流。只是在FPGA的学习上,有很多东西被大家忽略的,人们忽略的不是技术,而是思想。没有一个正确的思想,怎么能做好一件事呢。

让我们从今天开始,打开软件,开始仿真!

猜您喜欢

Intel公司的Stratix 10 SoC FPGA系列采用14nm三栅极(FinFET)和异构三维封装系统工艺技术,比以前高性能SoC FPGA提供2x核性...
2018-05-22 11:19:00

Profinet是一种工业以太网协议,可以用于实现自动化控制系统中的数据通信。而Profinet IRT(Isochronous Real-Time)则是Pro...
2023-08-22 14:49:00

在选择按钮开关附件时,规格尺寸是一个非常重要的因素。不同型号的按钮开关其附件的尺寸和规格可能会有所不同,因此在购买之前,了解具体尺寸可以帮助您做出更合适的选择。...
2008-12-06 00:00:00

贴片电阻小巧的体积、高精度的阻值控制以及的应用领域,成为了现代电子设计中不可少的基础元件。而在众多贴片电阻制造商中,SSM(日本)凭借其很好的品质和技术创新,在...
2015-10-28 23:39:16

整流二极管是电子电路中不可少的重要元件,应用于电源转换、整流及保护电路中。在选型整流二极管时,了解其关键参数非常重要,这不仅关系到电路的性能,还影响到系统的稳定...
2025-03-31 04:31:39

SO-8(SmallOutline8)是一种广泛应用于电子元器件封装的形式,因其小巧、轻便和高效的特性,受到许多电子工程师的青睐。SO-8封装通常用于集成电路(...
2025-02-24 15:11:50

 今天给大侠带来基于FPGA的数字视频信号处理器设计,由于篇幅较长,分三篇。今天带来第三篇,下篇,程序测试与运行。话不多说,上货。  ...
2022-07-18 11:04:00


梅花槽盘头自攻螺钉是常见的紧固件,应用于各类机械和设备中。其主要区别体现在以下几个方面。梅花槽设计使得螺钉在拧紧时更加稳定,减少打滑的可能性,提升了操作的安全性...
2008-07-12 00:00:00

贴片电阻上的6202并不是直接代表阻值,而是一种编码方式。代表的是62乘以10的2次方欧姆,也就是6200欧姆,通常简写为6.2kΩ。这种编码方式的前两位数字代...
2024-11-29 10:26:22