在进行FPGA工程开发中,咱们都会接触到仿真这个环节。笔者在之前就大略的提及过FPGA开发一定要仿真,要养成仿真的习气。
许多初学者或许学艺不精的工程师都比较排挤仿真。当然,假如您也排挤仿真,那么您就要抚躬自问一下自己是归于初学者仍是学艺不精的工程师。
许多初学者入门FPGA的时分所学习的编程比方都是很简略的,比方流水灯、数码管点亮之类的。这种入门级其他比方有个特色,代码量少,逻辑简略,剖析简单。并且我们刚开端都是照着书本抄一遍的,基本上都是没有什么问题的。一上板子就发现作用出来了。
当然,初学者也会进行一些仿真,可是也仅仅是由于书本有提及到这样一个功用,然后就测验一下这个功用。一朝一夕许多人厌恶了仿真,觉得仿真很浪费时刻,他们往往更倾向于直接烧录到板子上,然后调查作用,最终调试代码。
忽然有一天,初学者发现了FPGA开发东西中有个虚拟逻辑剖析仪,以Xilinx 公司为例,初学者发现了ChipScope这个东西。这个东西能够直接在板子上捕捉内部寄存器值。许多初学者觉得能够用这个软件彻底替代仿真。
笔者想先从哲学的视点来剖析一下。一个技能没有被筛选,证明它是商场公认的,不行替代的。遐想当年的BB机,一会儿就被筛选了,由于现已有了能够替代它的产品呈现了。FPGA的仿真是一个大方向,乃至有许多第三方的仿真软件。为什么这些软件没有被筛选,这就说明晰还没有哪项技能能够替代仿真这个环节,假如真的有,就不会有仿真软件了。
为什么需求仿真?仿真有什么优势?
仿真能够让设计者能够很快知道模块输出值是否正确。提到这,就有读者想问,直接上板子不是更快吗?假如你今后的作业都是用FPGA来跑流水灯,点数码管的话,那么直接上板子确实是比较快。可是笔者信任,不会有哪个公司要求你用FPGA仅仅是跑个流水灯的。假如设计者遇到略微杂乱一点的工程,留意笔者说的是略微杂乱一点,还不是很杂乱。那么当您完结一次归纳、布局布线、生成bit文件的时刻超越半个小时是很正常的。当你发现作用不对,又返回来计划用个ChipScope刺进寄存器检查置疑目标,那么问题来了,你计划用ChipScope检查多少个寄存器值呢?ChipScope是使用FPGA内部资源来存储数据到达捕捉的功用,参加过大的ChipScope会使得布局布线更为困难,时刻会更久。再者ChipScope存储量是有限的,不行能从时刻0开端一向存储下去。存满了,下次再来就改写了。从上面看开,假如不仿真,单纯的用ChipScope进行捕捉,每归纳一次耗费许多的时刻,再者ChipScope能调查到的信号有限,以及功用单一。这样一个流程下来,或许一天也未必能找到问题的地点,更甭说处理问题了。
假如换成仿真,你能够增加许多的调查信号,能够从时刻0开端就得到数据,关于略微杂乱的工程,不必跑半个小时的仿真现已能够出许多数据了,满足开发者逐渐剖析了。
或许初学者在笔者的一再强调下仍是不喜欢仿真。笔者也仅仅期望我们不要走太多弯路,纵观现在网上FPGA论坛或许是沟通社区,我们更多评论的是我这儿有个项目,我这儿出了个问题,我这儿这个不知道应该怎样处理。许多书本也是,直接告知我们怎样建工程,举例一些代码什么的,乃至有些书本仅仅翻译FPGA厂家手册罢了。笔者并不是说哪些书本欠好,哪些论坛欠好,我们仍是要多读书,多沟通。仅仅在FPGA的学习上,有许多东西被我们疏忽的,人们疏忽的不是技能,而是思维。没有一个正确的思维,怎样能做好一件事呢。
最终,让咱们从今天开端,翻开软件,开端仿真!