先说两点:
讨论技术,不谈情怀和主义。
开源不等于免费。
关于各种开源协议的对比,阮一峰的博客上有张图片可以参考。具体细节以协议条款为准,请咨询专业法律人士。
RISC-V
RISC-V是开源指令集(ISA)。
SiFive Freedom E300/U500 Platform
包含E300和U500的RTL代码,cpu内核基于Rocket,增加了SoC总线和外设IP,可以在FPGA上运行。
有比较详细的文档资料,但是基于Chisel语言,生成的verilog可读性差。
缺少rtl仿真验证环境。
蜂鸟E200开源处理器
E200是开源RISC-V内核,外设IP及SoC基于SiFive E300架构。
有详细中文资料,内核采用verilog设计,包含仿真验证环境,可以在FPGA上运行。
ucb RISC-V Project Template
Chisel HDL和RocketChip SoC生成器。包括Rocket-chip(标量),BOOM-chip(超标量乱序)。
PULPino
包含32位 CPU内核实现和完整的SoC环境,开发语言为SystemVerilog。有完整的仿真环境,可以在FPGA运行。
Lowrisc
基于UCB Rocket-Chip基础,采用System Verilog编写改进部分的代码。
NVDLA : NVIDIA Deep Learning Accelerator
深度学习加速器IP,包含RTL,仿真环境,FPGA环境,综合环境。后续会发布基于UVM的验证环境。
设计采用verilog描述,但是包含很多基于Catapult-C转出来的部分,以及一些NV公司内部脚本生成的代码。生成的代码可读性较差。
这里有一些开源爱好者研究代码之后的技术参考资料
LEON/GRLIB
LEON系列是基于SPARC V8架构的处理器。最初的LEON1与LEON2由欧洲航天局发布,LEON3由GaislerResearch公司设计发布,2008年Aeroflex收购了Gaisler Research公司,并于2010年1月发布了LEON4,不过LEON4至今还没有公布源代码。LEON系列使用VHDL编写代码,LEON2采用5级流水线,LEON3采用7级流水线,同时增加了对多处理器的支持。LEON4又引入了静态分支预测、2级缓存。
LEON内核通常和GRLIB IP 库一起用的。GRLIB中可用的IP内核包括:
AMBA AHB/APB control
LEON3 SPARC processor
32-bit PC133 SDRAM controller
32-bit PCI bridge with DMA
10/100/1000 Mbit Ethernet MAC
8/16/32-bit PROM and SRAM controller
16/32/64-bit DDR/DDR2 controllers
USB 2.0 host and device controllers
CAN controller
TAP controller
SPI
I2C
UART with FIFO
modular timer unit
interrupt controller
32-bit GPIO port
Opencores
始建于1999年,开源IP的大本营,包含CPU,通信接口,外设接口等各种数字IP core。
以verilog为主,也包含部分vhdl代码,很多IP基于Wishbone总线接口。
代码管理基于CVS,2009年迁移到svn,也有人把代码上传到了github
OpenASIC, 开源H.264 H.265硬件编码器
由复旦大学范益波团队维护,包括H.264编码器、H.264解码器、H.265/HEVC的编码器IP。
代码采用verilog(部分sv)设计,有仿真环境。
UVM 1.2
UVM (Standard Universal Verification Methodology)源码和文档。有example仿真环境。
fusesoc: 基于Python的IP管理工具
FuseSoC is a package manager and a set of build tools for FPGA/ASIC development.
Pyverilog
verilog的Python处理包,用于代码解析,数据流分析,控制流分析,代码生成。
开源Verilog工具
Verilator
Emacs Verilog-mode
Verilog-Perl
领取专属 10元无门槛券
私享最新 技术干货