PCIE的物理通路是Serdes,FPGA内的Serdes,其PMA都是硬IP,PCS可以用IP的也可以自己编写。在Serdes之上增加了传输协议,就有了PCIE协议。所以Serdes里面模拟的硬的电气电路无法用软IP来实现,PCS和PCIE传输协议可以用软IP实现。
至于为何都习惯用硬Core,因为PCIE协议是很复杂的,所以耗费的资源很多,而且调试起来也比较困难,器件里面直接做成硬核,固化成HAC,就可以节省LUT/FF等资源来给其它功能模块使用。而且PCIE硬Core都是从IP供应商定制的,标准协议,FPGA集成设计起来简单,又能多卖钱,所以一般都会集成到芯片里面。
带PCIE硬核的FPGA价格一般比较贵,为了降低芯片成本,所以去掉PCIE硬核,但是可以自己写协议实现。