
近些年来,全可编程片上系统(SOPC)概念在 FPGA 厂商的推动之下,日益普及。所谓“全可编程”,指的是在 FPGA 硬件逻辑可编程的基础上,通过在 FPGA 芯片中添加处理器核实现软件层面的可编程特性。软硬兼备,是为全可编程也。
软硬可编程性
硬件可编程是 FPGA 芯片安身立命之所在,借助 Verilog 等硬件编程语言编程,通过改变逻辑单元之间的连线,实现不同的逻辑门排布,适用于不同输入输出场景下的应用。
在与 CPU,GPU,ASIC,ASSP 等兄弟器件的比拼中,
如果性能败下阵来,FPGA:我硬件可编程。
成本败下阵来,FPGA:我硬件可编程。
开发周期难度败下阵来,FPGA:我硬件可编程。
功耗败下阵来,众人:行行行,你硬件可编程。

软件可编程,乍一听可能有些突兀,Ha,软件不编程,难道等快递小哥送上门?
程序员使用 C 等高级语言编写源代码,通过编译,链接等步骤,生成对应平台可运行的二进制文件,如果没有 BUG(那是不可能的)的话,一个软件就编写完成了。
那如果不幸发现了 BUG (那是常有的),怎么办,修改源代码,再来一次。
编译的过程可以是