当前位置: 首页 > article >正文

使用 IP 核和开源库减少 FPGA 设计周期

FPGA 开发的目标是按时、按质交付项目。

944859f732a54ecee9fee4bafaebd9d6.jpeg

然而,这一目标说起来简单,实现起来老费劲了。根据业内最广泛的调查之一,西门子威尔逊集团 2022 年的调查(https://blogs.sw.siemens.com/verificationhorizons/2022/10/10/prologue-the-2022-wilson-research-group-functional-verification-study/),70% 的 FPGA 项目落后于计划,12% 的项目落后计划 50% 以上。

8403b49711aa61ee6918b4ebe531e204.png

为此,很多FPGA厂商都在自己EDA工具里嵌入IP减少FPGA项目的开发周期,使用 IP 是一种有助于实现按时、高质量且经济高效的项目交付的方法。

03bdd5da22f7c8537aab4b2865b82391.jpeg

我们现在处于一个比较好的时期,例如,Vivado 2024.1 提供了 681 个 IP,使用这些IP可以快速的搭建FPGA系统,比如XDMA IP可以快速搭建基于PCIe的应用。当然,这些 IP 核的适用性取决于目标设备系列和设备的所需功能。

利用这些 IP 模块可以加快开发速度,并通过利用经过验证的组件降低技术风险。此外,这些 IP 核通常附带示例和测试平台,这有助于我们了解它们的操作和用法。

然而,这些IP并不能提供我们设计中需要的所有功能。在这种情况下,我们可能需要开发定制解决方案、购买第三方 IP 或使用开源IP库。

接下来,我们介绍几个高质量开源库来支持我们的设计:

FPGA_Library

https://github.com/suisuisi/FPGA_Library

该库包含诸多IP,包括图像处理、数字信号处理、接口等。

676a62c5e05cecbae5cbe9f691aa9ec7.png

Open Logic

https://github.com/open-logic/open-logic

这个开源 VHDL 库提供了各种专注于 IP 外设创建的 IP 核。它提供了用于CDC、内存、FIFO、仲裁器、时分复用和其他功能(如 PRBS、延迟和桶形移位器)的模块。对于 AXI 支持,Open Logic 包括 AXI 主设备、从设备和流水线。它还提供用于 UART、SPI、I2C 等的接口 IP,使其成为 AXI 端点的宝贵资源。

3691436c2738316d177c68847dc89afd.png

HDL 模块

https://hdl-modules.com/index.html

该库提供一系列 AXI IP,包括interconnects 和 crossbars,以及 FIFO 等基本基础设施。为了支持仿真,HDL 模块还包括总线功能模型和通用组件,例如环形缓冲区、LFSR、数学函数和正弦发生器。通过阅读文档可以很好地了解它。

dfea5e0e630807ca52c5ae4c49f85b77.png

SURF(SLAC 终极 RTL 框架):

https://github.com/slaclab/surf

SURF 提供 AXI、以太网和设备库。设备库特别有用,带有 ADC 和 DAC 等外围设备的驱动程序。SURF 使用 CocoTB 和 GHDL 进行验证,使流程变得简单。

68725153e2d00bc376706eca86cf57a5.png

PSI Lib

https://github.com/paulscherrerinstitute/psi_fpga_all

由 Paul Scherrer 研究所开发,该库提供内存、FIFO、跨时钟域、时分复用、AXI 接口和其他常见模块的 IP 模块。

f98ba2e6bc59d14d7540f41dac3e47c1.png

PoC Lib(Pile of Cores)

https://github.com/VLSI-EDA/PoC

由Technical University of Dresden大学提供,PoC 专注于内存、FIFO 和 I/O 控制器。它利用了 CocoTB、OSVVM、UVVM 和 VUnit 进行验证。

c54a754e1064b1ffd7d547631988a277.png

以上这些只是一些常用的库,可以结合之前推荐的开源库一起使用:

这些开源库可以帮助开发解决方案,而无需从头开始。其中许多库与 Vivado 完美集成,简化了它们的使用。

当然,这些库并不权威,需要结合使用场景进行修改和优化。

最后要注意的是:使用这些开源库时,请确保阅读、理解并遵守其开源许可证,以避免潜在的麻烦。

优秀的 Verilog/FPGA开源项目介绍(二十五)- FPGA图像处理库

IP库新增经过实践的Verilog 库

Verilog常用可综合IP模块库


http://www.kler.cn/a/472057.html

相关文章:

  • Scala语言的循环实现
  • 009:传统计算机视觉之边缘检测
  • Linux 常用命令 - touch 【创建空文件与修改时间戳】
  • 【C语言】可移植性陷阱与缺陷(八): 随机数的大小
  • 如何安装和配置PHP开发环境?
  • apex安装
  • crawl4ai 大模型友好格式输入爬虫框架
  • LLM架构从基础到精通之NLP基础1
  • Java-基于Redisson的Redis工具类RedissonUtils
  • WebSocket 性能优化:从理论到实践
  • 51单片机——中断(重点)
  • 《空舞的巨兽》官方学习版
  • 批量写入数据到数据库,卡顿怎么解决
  • 根据状态修改圆锥扩散材质并实现扩散效果【Mars3d】
  • 百度Android面试题及参考答案 (下)
  • unity学习14:unity里的C#脚本的几个基本生命周期方法, 脚本次序order等
  • 使用 Conda创建新的环境遇到的问题
  • Vue3 + Vite + Electron + Ts 项目快速创建
  • 基于python的网络爬虫爬取天气数据及可视化分析(Matplotlib、sk-learn等,包括ppt,视频)
  • [项目实战2]贪吃蛇游戏