【FPGA】关于软核、固核、硬核的区别

首先,需要指出的是,软核、固核、硬核这三者都是IP(intellectual property,知识产权)核的呈现形式。在基于FPGA的数字系统设计当中,如果每个模块都自己编写的话,工作量和设计周期就太长了,因此个大FPGA器件厂商,在其自家的EDA软件当中预先写好了一些模块,比如数字信号处理的FFT、FIR、DDS、CIC,频率合成器MMCM/PLL,等等。

  1. 软核是用VHDL、Verilog HDL等硬件描述语言描述的功能模块,是与具体实现的工艺无关的1P核。软核以源文件形式出现,使用者可对软核的代码进行修改,扩展其功能,满足实际应用需求,使用灵活方便,在github等开源社区上的IP核,通常以这种方式分享。

  2. 固核是以网表文件的形式提交用户使用的IP核,是完成了综合后的可重用IP模块。这种方式不容易被盗版,因此viado或者quartus中的大部分IP核采用这种封装。

  3. 硬核是一些已经经过布局、并对尺寸和功耗进行优化的、不能由使用者修改的1P核。硬核以设计的最终阶段产品——掩模提供。

参考:《EDA技术与FPGA应用设计》

你可能感兴趣的:(fpga开发)