一. 各FPGA厂家IP库

对于一些常用的IP,通常各FPGA厂商的开发软件中会自带,并长期免费提供给用户使用或者允许申请IP评估免费使用一段时间。这些IP通常是不开源的,但使用起来很方便,有助于开发者快速实现相关功能。

1.1 Xilinx(AMD) IP核

IP 核 (xilinx)

Xilinx官网的IP核界面如上图所示,我们可以按各种分类查找IP核,也可以根据关键词搜索IP核,对于一些较新的IP,Xilinx会开发IP评估,我们也可以申请IP评估资格来先一步使用这些IP。关于IP评估的申请使用请参考我的另一篇博客:

如何申请Xilinx的评估IP_徐大康的博客-CSDN博客

另一种方法是在Vivado软件中的IP Catalog中搜索,注意将隐藏和禁用不匹配的IP关掉(这里Vivado的中文翻译错了),这样就能搜索到所有IP,否则只会显示和当前器件匹配的IP。

1.2 Altera(Inter) IP核

[查找英特尔® FPGA 知识产权 (IP) 核心 (intel)](https://www.intel/content/www/cn/zh/products/programmable/intellectual-property/find-fpga-ip.html#sort=%40title ascending)

Inter官网的FPGA知识产权界面如上图所示,同样可搜索IP或者根据分类查找,也可在Quartus软件的IP Catalog中搜索,选择Show IP for all device families,表示显示所有器件可用的IP; 选择Show IP for active device families,表示仅显示当前器件可用的IP。


二. 开源FPGA IP网站

FPGA和IC设计发展多年,大量的IP已经被设计完成并开源分享出来,找到这些开源的代码能帮助我们事半功倍的完成工作。当然,这些开源IP用起来不如FPGA厂家提供的IP方便,有些能直接使用,有些则需要我们先消化理解代码并做少量修改才能实现需要的功能,但相较于从头开发已经算是站在了巨人的肩膀上。

2.1 OpenCores

Home :: OpenCores

网站简介:世界上最大的FPGA开源IP核网站,里面包含大量已经测试好/没有完全测试好的Verilog/VHDL源代码。

在左侧点击Projects可以看到网站的目录,如下图所示。此网站需要先注册(免费的),登录后才能下载。

2.2 Github

GitHub: Where the world builds software · GitHub

GIthub是世界上最大的软件代码分享平台,虽然相较于C语言、Python等软件语言,HDL语言在Github上资源较少,但仍然有大量优秀的HDL代码值的借鉴。可以在Github上搜索关键词,如下图的I2C Verilog即可找到开源的IP核。

2.3 CSDN

CSDN - 专业开发者社区

CSDN上有大量博主会分享HDL代码,有优质的,有凑数的,需要自行把控。

2.4 alexforencic

[Welcome Alex Forencich]

可以看到,该网站的Verilog IP包含:

  1. AXI总线
  2. AXI Stream总线
  3. 以太网
  4. Mersenne Twister PRNG
  5. UART
  6. Wishbone总线

其实还包括pcie的IP核,没有在上图显示出来。该网站源码在Github上开源,有人持续维护。

2.5 zipcpu

The ZipCPU by Gisselquist Technology

这是一个个人博客网站,博主有分享大量自己编写的IP核,包括AXI-Lite,AXI Stream,UART,I2C等。当然从网站名称我们可以知道,博主设计了一个CPU,名叫ZipCPU,并配备了一个操作系统,叫ZipOS。

2.6 其它开源IP网站

后续了解更多会更新此博客,先占个坑。


三. 总结

建议优先使用厂商提供的IP核完成设计。如果厂商未提供相关IP,优先去OpenCores中找,再去Github上搜索,基本就能找到相关/类似的IP或HDL功能模块。当然,我的博客中也有个人工作中总结的一些Verilog功能模块,都经过本人实际上板验证可供参考,觉得有用可订阅加关注。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

更多推荐

避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块?