SURF - SLAC Ultimate RTL Framework
The SLAC Ultimate RTL Framework (SURF) is a firmware framework that has been developed by SLAC National Accelerator Laboratory. It is a substantial VHDL library, built upon more than 10 years of development. It finds extensive utilization in AMD/Xilinx FPGAs and custom digital ASIC designs. The framework comprises VHDL-based intellectual properties (IPs) for commonly implemented modules. It has been widely adopted by numerous experiments and applications. SURF is open source and published on Github..
Problem trying to solve:
- "The devil created graphical programming" -Wirth's Law
- Vendor IP cores difficult to work with and reconfigure
- Need to open toolchain and use GUI
- Vendor IP cores are not cross-platform
- Using IP cores for base blocks guarantees you will never be able to reuse them elsewhere, even in the same toolchain
Solution:
- “Real code is better!” - Ben Reese (SLAC)
- Wanted pure VHDL implementation of library modules with Generics to control configuration
- RAMs, FIFOs, Everything!
Toolchains infer (e.g. Block RAMs) for cross platform VHDL
What is “SURF”?
- Acronym for SLAC Ultimate RTL Framework (SURF)
- Open-source VHDL framework for rapid FPGA/ASIC development using common generic, extensible libraries
- Published on Github:
- Over 13 years of cumulative development
- 1st commit on Wed Jun 9 23:05:52 2010
- More than >7k commits and >1k pull requests from both SLAC and non-SLAC developers
- Maintained and managed by SLAC