以下内容摘自《步步惊芯——软核处理器内部设计分析》一书
随着FPGA技术的发展,以及EDA软件工具的进步,如今的FPGA应用范围越来越广,以致出现了SOPC(System-On-a-Programmable-Chip:可编程片上系统)的概念,用可编程逻辑技术把整个系统放到一块可编程逻辑芯片上,其中可以包含处理器、DSP、RAM、ROM、总线控制器、UART控制器、以太网控制器、USB控制器、JTAG接口、FPGA编程接口等各种功能模块,且每个功能模块都可以设计成为IP(Intellectual Property)核,IP核指的是完成某种功能的设计模块。借助于IP核以及一些标准的总线接口,硬件设计开发者可以像搭积木那样搭建硬件平台。
IP核有三种:软核、固核、硬核。软核指的是在寄存器级或者门级对电路功能用HDL(Hardware Description Language)进行描述,表现为VHDL或Verilog HDL代码,软核与生产工艺无关,不涉及物理实现,为后续设计留有很大的空间,增大了IP的灵活性和适应性。用户可以对软核的功能加以裁剪以符合特定的应用,也可以对软核的参数进行设置,包括总线宽度、存储器容量、使能或禁止某些功能块等。固核是完成了综合的功能块,通常以网表的形式提交给客户使用。硬核指的是以版图的形式实现的设计模块,它基于一定的设计工艺,不同的客户可以根据自己的需要选用特定生产工艺下的硬核。软核使用灵活,但其可预测性差,延时不一定能达到要求;硬核可靠性高,能确保性能,如速度、功耗等,可以很快投入使用。
本书关注的并不是如何使用各种IP核搭建SOPC系统