0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀的 Verilog/FPGA开源项目介绍(一)

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2021-10-11 15:31 次阅读

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

今天开始会陆续介绍一些优秀的开源项目,项目基本都是和FPGA或HDL相关的。对于一些找工作或者急需项目经验的人来说,这些项目都有一定的参考价值。

这里再介绍一下开源协议的区别,方便大家在阅读使用这些开源项目时尊重规则。

详情查看:https://suisuisi.blog.csdn.net/article/details/120660472

RIFFA项目

RIFFA(FPGA 加速器的可重用集成框架)是一个简单的框架,用于通过 PCI Express 总线将数据从主机 CPU 传送到 FPGA。该框架需要支持 PCIe 的工作站和带有 PCIe 连接器的板上的 FPGA。RIFFA 支持 Windows 和 LinuxAltera 和 Xilinx,具有 C/C++PythonMATLABJava 的绑定。适配Xilinx和Intel的FPGA,支持PCIe 2.0设计中对底层硬件进行了抽象,用户使用的过程中无需关注底层的硬件,同时上层软件将PCIe的操作抽象为读和写操作,用户直接调用函数即可。公众号:OpenFPGA

方便软件工程师使用:

在软件方面有两个主要功能:数据发送和数据接收。这些函数通过 C/C++、Python、MATLAB 和 Java 中的用户库公开。该驱动程序支持一个系统中最多5个 FPGA。软件适用于 Linux 和 Windows 操作系统。用户只需编写几行代码即可与 FPGA IP 核进行通信。

方便硬件工程师使用:

在硬件方面,用户访问一个独立的发送和接收信号接口。这些信号提供事务握手和通过 FIFO 接口读取/写入数据。不需要了解总线地址、缓冲区大小或 PCIe 数据包格式。只需在 FIFO 接口上发送数据并在 FIFO 接口上接收数据。

RIFFA 不依赖于 PCIe 桥接器,因此不受桥接器实现的限制。相反,RIFFA 直接与 PCIe 端点配合使用,运行速度足以使 PCIe 链路饱和。软件和硬件接口都得到了极大的简化。详细信息可以在硬件接口页面上找到。公众号:OpenFPGA

RIFFA 使用直接内存访问 (DMA) 传输和中断信号传输数据。这实现了 PCIe 链路上的高带宽。在我们的测试中,我们能够使所有测试中的链路饱和(或接近饱和)。我们已经在 AVNet Spartan LX150T、Xilinx ML605 和 Xilinx VC707 以及 Altera DE5-Net、DE4 和 DE2i 板上实现了 RIFFA。RIFFA 发行版包含在上面列出的三个开发板上设置设计的示例和指南。

此外,该网站还提供了如何从所有软件绑定访问您的设计的示例。RIFFA 已经在 Fedora 13 和 17(32/64 位版本)和 Ubuntu Desktop 10.04 LTS 和 12.04 LTS(32/64 位版本)上进行了测试。RIFFA 依赖于 Linux 内核 2.6.27+(在 2.6.32 - 3.3.0 之间的版本上测试)支持的自定义 Linux 内核驱动程序。公众号:OpenFPGA

b0ae49c6-2a05-11ec-82a8-dac502259ad0.png

其中FPGA文件夹是我们关心的部分,里面包含了ALtera和XIlinx两大主流FPGA厂家的几款主要板卡的DEMO,如下:

b106e1c6-2a05-11ec-82a8-dac502259ad0.png

Altera文件夹下:

b15216c8-2a05-11ec-82a8-dac502259ad0.png

Xilinx文件夹下:

b1acd432-2a05-11ec-82a8-dac502259ad0.png

有兴趣的可以自己查看使用,项目地址:

https://github.com/KastnerRG/riffa

Alex的众多项目

Alex的项目可以用惊艳来形容,绝大部分都是个人开发的,都是非常专业的代码,非常敬佩其专业能力和分享精神,或许这才是真正的诗和远方。公众号:OpenFPGA

Alex Forencich主要项目

b282bb92-2a05-11ec-82a8-dac502259ad0.png

包含网络和PCIe相关,其中cocotbext-xxx是仿真测试模型(cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.cocotb是一套基于python的用于构建仿真及测试用例的lib库)。

其中cocotbext-axi也是一个非常出名的项目。

有兴趣的可以自己查看使用,项目地址:

https://github.com/alexforencich

个人感觉Alex Forencich的PCIe项目完成度不如RIFFA,前者目前仅支持与 Xilinx UltraScale 和 UltraScale+ PCIe 硬核 IP 核配合使用,接口介于 64 位和 512 位之间。而后者在Altera及Xilinx很多主要平台经过验证,同时配备上位机驱动,方便使用。但是后者的仿真理论(包括使用cocotbext-pcie和 cocotbext- axi 的完整 cocotb 测试平台 。)更加充实,适合研究总线接口。以上仅代表个人愚见,我读书少,喷我你就是对的!

本文为OpenFPGA作者原创,未经本人授权禁止转载!
编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21302

    浏览量

    593109
  • PCIe
    +关注

    关注

    13

    文章

    1083

    浏览量

    80801
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72899
  • 代码
    +关注

    关注

    30

    文章

    4554

    浏览量

    66734
  • python
    +关注

    关注

    51

    文章

    4671

    浏览量

    83458

原文标题:Alex的众多项目

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA开源项目Verilog常用可综合IP模块库

    所有代码在典型的 FPGA 和主流 FPGA 供应商中都具有高度可重用性。 可以出于任何目的对文件进行重新混合、转换和构建,甚至是商业用途。
    发表于 03-29 11:31 131次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>:<b class='flag-5'>Verilog</b>常用可综合IP模块库

    fpga是用c语言还是verilog

    FPGA(现场可编程逻辑门阵列)开发主要使用的编程语言是硬件描述语言(HDL),其中Verilog是最常用的编程语言之一。而C语言通常用于传统的软件编程,与FPGA的硬件编程有所区别。
    的头像 发表于 03-27 14:38 299次阅读

    FPGA? 开搞!

    。 该工具链使用 Yosys 和 OpenFPGALoader 等开源工具,并与 Cologne Chip 合作开发实施和比特流生成工具。在设计输入方面,工程师可以使用 Verilog、VHDL(通过
    发表于 01-11 00:52

    关于FPGA开源项目介绍

    Hello,大家好,之前给大家分享了大约一百多个关于FPGA开源项目,涉及PCIe、网络、RISC-V、视频编码等等,这次给大家带来的是不枯燥的娱乐项目,主要偏向老的游戏内核使用
    的头像 发表于 01-10 10:54 531次阅读
    关于<b class='flag-5'>FPGA</b>的<b class='flag-5'>开源</b><b class='flag-5'>项目</b><b class='flag-5'>介绍</b>

    开源FPGA项目有哪些

    请问开源FPGA项目有哪些?
    发表于 12-26 12:09

    为你的FPGA设计加加速,NIC、Router、Switch任意实现

    为你的FPGA设计加加速,NIC、Router、Switch任意实现 优秀的IC/FPGA开源项目(二)-Net
    发表于 11-01 16:27

    基于FPGA的DDR3读写测试

    本文介绍一个FPGA开源项目:DDR3读写。该工程基于MIG控制器IP核对FPGA DDR3实现读写操作。
    的头像 发表于 09-01 16:23 844次阅读
    基于<b class='flag-5'>FPGA</b>的DDR3读写测试

    使用FPGA做的开源示波器

    其实用FPGA做的示波器有很多,开源的相对较少,我们今天就简单介绍一个使用FPGA做的开源示波器。
    的头像 发表于 08-29 09:30 987次阅读

    介绍一个使用FPGA做的开源示波器

    其实用FPGA做的示波器有很多,开源的相对较少,我们今天就简单介绍一个使用FPGA做的开源示波器:
    发表于 08-14 09:03 940次阅读

    【每日练】参与FPGA技术社区每日学习,轻松掌握Verilog语法!

    活动介绍: 每日练活动主要针对 Verilog 入门常用语法及常用技巧的练习,30个关于语法练习的题目,每天更新个题目及公布前天的参
    发表于 08-01 10:37

    优秀Verilog/FPGA开源项目-MATH库介绍

    数字信号处理( Digital Signal Processing)技术广泛地应用于通信与信息系统、信号与信息处理、自动控制、 雷达、军事、航空航天、医疗、家用电器等许多领域。
    的头像 发表于 06-19 09:06 1085次阅读

    优秀的IC/FPGA开源项目:伪红外图像处理

    优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《
    的头像 发表于 06-09 09:42 1430次阅读
    <b class='flag-5'>优秀</b>的IC/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>:伪红外图像处理

    FPGA开发环境的搭建和verilog代码的实现

    FPGA需要良好的数电模电基础,verilog需要良好C语言基础。
    发表于 05-22 15:04 504次阅读
    <b class='flag-5'>FPGA</b>开发环境的搭建和<b class='flag-5'>verilog</b>代码的实现

    优秀的IC/FPGA开源项目(二)-NetFPGA

    从上面的工作可以看出DPU的核心是:网络。所以我们今天讲一个未来的发展核心之一:用FPGA实现NIC(network interface controller,网络接口控制器),从该项目出发可以实现数据可控制化,进而实现DPU功能。
    的头像 发表于 05-19 11:11 2172次阅读
    <b class='flag-5'>优秀</b>的IC/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>(二)-Net<b class='flag-5'>FPGA</b>

    FPGA开发环境的搭建和verilog代码的实现

    FPGA需要良好的数电模电基础,verilog需要良好C语言基础。
    的头像 发表于 05-11 17:30 1417次阅读
    <b class='flag-5'>FPGA</b>开发环境的搭建和<b class='flag-5'>verilog</b>代码的实现