FPGA中的IP核是什么意思?

IP(Intellectual Property)内核模块是具有某种功能的集成电路、器件或元件,是预先设计好的,甚至是经过验证的。它有几种不同的形式。IP核模块有三个层次的设计:行为、结构和物理,对应三个层次:主要描述功能行为的“软IP核”,完成结构描述的“硬IP核”,基于物理描述并经过流程验证的“硬IP核”。这相当于集成电路(器件或元件)的毛坯、半成品、成品的设计技术。

用更容易理解的术语来说,它如下:

软核是用VHDL等硬件描述语言描述的功能块,但它不涉及任何实现这些功能的具体电路元件。软IP通常以硬件描述语言HDL源文件的形式出现,应用开发过程也与普通HDL设计非常相似,只是所需的软硬件开发环境昂贵。软IP的设计周期短,设计投入低。由于不涉及物理实现,给后续设计留下了很大的空间,增加了IP的灵活性和适应性。其主要缺点是后续工艺在一定程度上无法适应整体设计,需要一定程度的软IP修正,无法在性能上获得全面优化。由于软核是以源代码的形式提供的,虽然源代码可以加密,但其知识产权保护不容忽视。

硬核提供了设计阶段的最终产品:面膜。它以完全布局的网表形式提供。这种硬核是可预测的,并且还可以针对特定工艺或购买者在功耗和尺寸方面进行优化。虽然硬核由于缺乏灵活性,可移植性较差,但由于不需要提供寄存器传输级(RTL)文件,更容易实现IP保护。

实芯是软芯和硬芯的折中。FPGA中使用的IP核大多是软核,帮助用户调整参数,增强可重用性。软核通常以加密形式提供,因此用户看不到实际的RTL,但布局和布线很灵活。在这些加密软核中,如果内核被参数化,用户可以很容易地通过头文件或图形用户界面(GUI)操作参数。对于那些有严格时序要求的内核(比如PCI接口内核),可以对特定的信号进行预路由,或者分配特定的路由资源来满足时序要求。这些型芯可以归类为实心型芯。由于内核是预先设计的代码模块,这可能会影响包括内核在内的整体设计。因为内核的建立、保持时间和握手信号可能是固定的,所以其他电路的设计必须考虑与内核的正确接口。如果核心有固定或部分固定的布局,也会影响其他电路的布局。

软IP内核通常以一些HDL(硬件描述语言)文本的形式提交给用户,经过了行为设计的优化和功能的验证,但并不包含任何具体的物理信息。基于此,用户可以综合正确的门级网表,设计后续结构,具有最大的灵活性。借助EDA综合工具,它们可以很容易地与其他外部逻辑电路集成,并根据各种半导体工艺设计具有不同性能的器件。可商业化的软IP核一般电路结构的总门电路数在5000门以上。但如果后续设计不当,可能会导致整个结果的失败。软IP内核也称为虚拟设备。