SURF(SLAC Ultimate RTL Framework)是斯坦福线性加速器中心(SLAC National Accelerator Laboratory)开源的大型 VHDL 库与 FPGA/ASIC 通用设计框架,它为复杂数字系统开发提供了丰富的基础 IP 模块。该项目由 SLAC 的 TID-ID 电子系统部门维护,适用于 Xilinx、Intel FPGA 以及 ASIC 的数字逻辑设计。
📌 什么是 SURF?
SURF 是一个用 VHDL 实现的 IP 库和设计框架,包含大量常见模块,可直接用于 FPGA 或 ASIC 设计中,目标是让硬件开发者能够快速构建可靠的系统。该库包含:
- 以太网协议栈 IP:支持 IPv4, ARP, DHCP, ICMP, UDP 等协议
- AXI4 / AXI4-Lite / AXI4-Stream 基础设施:包括 crossbar、DMA 引擎、FIFO、桥接等
- 设备驱动与外围接口库:支持 ADC, DAC, I2C, SPI, UART 等常见设备
- 同步库:跨时钟域同步解决方案
- 包装好的 FPGA 厂商模块:如时钟管理、DNA 读取、IPROG 等
- SLAC 特定协议支持:如 CoaXPress 等协议支持
总之,SURF 是一个可复用的 RTL IP 集合与通用逻辑框架,可极大缩短 FPGA/ASIC 的开发周期。
🔧 适用范围
SURF 不仅仅是头文件的集合,它是一个系统级库,适合以下场景:
✅ 通用 FPGA 设计加速
将常见协议、总线与硬件结构封装成 IP,可直接在工程中复用,而不必从零开始设计。
✅ ASIC/数字芯片设计
由于 SURF 完全采用 VHDL 编写,它也适用于 ASIC 设计流程,方便在硅实现前做一致性测试与验证。
✅ 高速网络与数据采集系统
拥有完整的 UDP/IP 以太网库及 DMA 结构,适用于数据流密集、需要高带宽的系统,如科学仪器、DAQ 等。
🔍 库结构与内容

SURF 的代码组织结构非常清晰,各类基础组件均有对应目录:
📦 Ethernet Library
提供链路层以上完整的 IP 栈模块:MAC、帧解析、UDP/IP 支持等。

📦 AXI 系列库
支持不同 AXI 协议族,包括
AXI4:主从接口、DMA、FIFO 等
AXI4-Lite:轻量控制总线
AXI4-Stream:高带宽数据流管线

📦 Serial Protocols
包含 I2C、SPI、UART、线码以及 JESD204B 等常见串行通信协议的 VHDL 实现。




