FPGA验证和FPGA测试的区别(ASIC IC FPGA的区别)

从认识FPGA到今天已经四年了。但有些概念我依然模糊。今天被领导问住了,决定好好补一补基础概念。

http://xilinx.eetop.cn/viewthread-339516

先看了遍这里说的。我就把自己理解的放在这里便于记忆,大家觉得说的不对的可以补充,我再改正。

我现在理解的FPGA都是现成的芯片,比如altera和Xilinx出的一些芯片,我们拿过来用,加一些外设驱动功能代码什么的,在规定的开发工具quartus或者vivado或者ise上写代码开发,实现比如串口收发,hdmi显示vga显示等功能。

ASIC 之前有查过一些,大概的意思是专用集成芯片。比如我平时只用过开发板上的Xilinx的某芯片,里面具有什么功能,支持什么功能都定下来了。但有的时候我们的项目中并不会把FPGA这个芯片中的所有功能都要用。可能只用其中的几个功能即可,比如以太网通信加hdmi显示。那我们去用FPGA大资源的芯片就比较浪费,可以选择用具有专门功能的芯片,我这里可能例子举得不恰当,一般都是要实现特定功能,平时可能没有的,比如某算法啥的,不只是考虑芯片成本和资源利用率的问题。然后就用FPGA的开发工具去开发然后固话到芯片中去成为专用的集成电路(ASIC)

IC 很明显了就是集成电路的意思。ASIC是IC中的一种了。说白了IC部门应该就是以做芯片,开发芯片为主。可以开发出ASIC也可以开发出FPGA芯片

FPGA测试:平时做的小项目,比如我们刚开始学习FPGA,一般都是先买块开发板,拿过来做实验,实现一些功能,比如led灯亮灭,按键等最基本的功能。那这些都是在已用的开发板上进行调试验证实现的是否是我们想要的结果,这就叫做FPGA测试了。可以直接下载到板子上调试看结果。

FPGA验证:这里我理解是我们要做一块芯片,这块芯片不是现成的已有的,而是我们最终要设计出来的,那么我们就不能在没保证的情况下直接去大规模生产芯片然后再去挨个测试验证。必须在生产芯片前有个系统的测试验证过程,证明我设计的芯片是对的,功能是好的,各方面指标是合格的。而不是我们主观看到的基本实现了就行了。需要想到各种可能。这就是逻辑中很可怕的地方,我们可能想到的可能只是几种,而如果要把每个可能都测试到,这里就像二进数一样2的n次方个可能,所以不能用笨方法人工测试了,而是要用可靠地验证软件来测试操作。最终各方面都测试通过后方可生产该芯片(有相关指标做参考)

 

大牛的解释放这里:

在FPGA工作里,设计、验证、测试本来是一体的,一般都是一个人玩到底,都会负责到。 对于有旧案例的新项目,一般代码复用得较多,设计和验证很多都直接复用了,测试会相对多点。 对于中小型的项目,一般验证就和设计的一块做了,对大型的项目,才会单独的团队和环境,去进行系统仿真。 总的来说,FPGA项目里,写代码的最牛,代码写不好会被骂死,一般都是熟手才会被安排去做;新手会做测试和验证多点,但同样在测试和验证里能找到问题,并DEBUG出问题的原因,这个也是很考验人的能力的。大半时间还是在测试中度过的,写代码只占小部分时间。 在IC设计里的FPGA验证一般是原型验证,一般来说,在一个团队里做这块的人数很少,零星一二人,大部分还是在做coding和verification,而国内的市场里写代码的机会相对少些,做验证的更多。 这年头做验证的越来越向软件靠齐,VMM/OVM/UVM等都是需要大量学习的,现在推行的很多,需求会越来越大。 在一个项目里(FPGA/IC),写代码的是最累的,验证会相对轻松点,加班少些。

在公司里,就钱途而言,自然是做DESIGN会更好点。这也是个专精与广泛的关系,做DESIGN的其实方向也很窄,有的人就只做一个小小的IP,还有人就做集成的,把众多AHB/AXI的接口连在一起,只负责很小一块的内容。 而验证和测试,对具体实现细节不CARE,但对总体的参数、指标、性能,会有更多的了解。 在FPGA上做测试,就是实战,代码编写得如何拉出来练练,用真实的电路、真实的DRIVER、真实的软件来跑CASE(可能会降频使用);验证呢,就是模拟这些DRIVER、软件之类的,也来跑CASE,这两者就是相互补充的。对于FPGA应用和简单些的IC,能方便地上板测试的,更倾向于直接上板来测试和修改代码,对验证就相对少些;对一般的IC公司来说,大多时间还是以验证为主,因为一块芯片能流片或上FPGA,这表明整体开发已经接近完成了,而IC开发的时间很长,不可能等到都完了再大规模地验证。 如果你对专精的比较有兴趣,那做DESIGN更好;如果你想对整体方案与参数更有兴趣,想以后转FAE或市场销售,那具体实现细节不用太CARE,做验证和测试会更合适些。

再补充下,DESIGN是解决有没有的问题,比如某项功能具备了没,验证和测试是解决好不好、有多好的问题,比如设计的稳定性、健壮性、可靠性,DESIGN的功劳比如好看得到,而充分的验证与测试可能是高投入而回报不一定看得到的事。 所以就像IP,大公司肯舍得花钱投入,养一帮子人和DEMO板在那里测,小问题也不放过;小公司也能开发得差不多的,也能用,但可靠性可能就差了一些。资金在那里摆着,多少钱做多少的事嘛

还加个验证,对IC公司里的验证,也是开发里的一项,还是MS更重要的一项,对整体把握也要求很高,对软件工程和testing等知识性也越来越高,学习的东西也越来越多,而DEISGN还是VERILOG那么点东西打转,if, case两招吃遍天下,也许以后对DESIGN还更有钱途。 现在市面上验证招的人比容易找着工作,需求更大,也更易从一种不同项目转到另外的方向上来,因为对OVM之类的理解够丰富就可,而DESIGN会偏向于你要实现的东西本身的专精,比如做算法的,那换个地方还做算法,可能还是同一类算法。

你可能感兴趣的:(FPGA)