IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信 -> 正文阅读

[Java知识库]优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

dc3561b1152927710265df30de7a38a8.png

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

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

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

9b01194060c46dd8964fa19948de15f0.png

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

RIFFA项目

RIFFA(FPGA 加速器的可重用集成框架)是一个简单的框架,用于通过 PCI Express 总线将数据从主机 CPU 传送到 FPGA。该框架需要支持 PCIe 的工作站和带有 PCIe 连接器的板上的 FPGA。RIFFA 支持 Windows 和 Linux、Altera 和 Xilinx,具有 C/C++、Python、MATLAB 和 Java 的绑定。适配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

c99b36d67e66426f41e546834cccb5fb.png

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

fd0eb5db3387cb7b9df59df66191b2cd.png

Altera文件夹下:

7f5217d18be8e9a26a86df969f437b5a.pngXilinx文件夹下:

26f0ff6184ea90e6c4a7151d58d51a71.png

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

https://github.com/KastnerRG/riffa (阅读原文可跳转)

57e2e8d839bbf930e5c49d4272ff59b3.gif

Alex的众多项目

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

Alex Forencich主要项目

ef9abb45509b81a3cdc34dcb121ee832.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 测试平台 。)更加充实,适合研究总线接口。以上仅代表个人愚见,我读书少,喷我你就是对的!

7322b82837f84556aa927d747c1f2e89.gif

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

06e1de28529f214abfdbffea1ec0078b.gif

NOW

学习Xilinx FPGA最好的资料其实就是官方手册,下表总结了部分手册的主要介绍内容,关注我,持续更新中......

文件名主标题内容简单介绍是否有中文版
UG4767 Series FPGAs GTX/GTH ?TransceiversGTX和GTH介绍,PCIe、serdes等学习必备
UG4717 Series FPGAs SelectIO Resources描述 7 系列 FPGA 中可用的 SelectIO资源。
UG1114PetaLinux Tools DocumentatonPetaLinux 工具文档 参考指南是,V2019.2
UG949UltraFAST 设计方法指南(适用于 Vivado ?Design Suite)赛灵思? UltraFast? ?设计方法是用于为当今器件优化设计进程的一套最佳实践。这些设计的规模与复杂性需要执行特定的步骤与设计任务,从而确保设计每一个阶段的成功开展。依照这些步骤,并遵循最佳实践,将帮助您以最快的速度和最高的效率实现期望的设计目标是,V2018.1
IP手册pg057FIFO GeneratorFIFO生成器IP使用手册
pg104Complex Multiplier复数乘法器IP使用手册
pg122RAM-Based Shift Register?移位寄存器IP使用手册

72832166d1daede8da1a80ee75ec81ed.png

推荐阅读

【Vivado那些事】如何查找官网例程及如何使用官网例程

【Vivado使用误区与进阶】总结篇

【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键

SystemVerilog数字系统设计_夏宇闻 PDF

图书推荐|ARM Cortex-M0 全可编程SoC原理及实现

简谈:如何学习FPGA

Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目

AD936x+ZYNQ搭建收音机(一)

AD936x+ZYNQ搭建OpenWIFI

无招胜有招-Vivado非工程模式下的详细设计

面试中经常会遇到的FPGA基本概念,你会几个?

推荐一些可以获取免费的国外的原版书籍(电子版)网站

FPGA 的重构

浅析FPGA局部动态可重构技术

ISP(图像信号处理)算法概述、工作原理、架构、处理流程

国产CPU概括

从电子游戏历史看IC发展的助推剂

80年代电子游戏及电脑游戏的发展历史

PCIe总线的基础知识

万字长文带你回顾电子游戏的七十多年历史(完整版)

FPGA中异步复位,同步释放的理解

OpenFPGA系列文章总结

用Verilog设计一个16 位 RISC 处理器

介绍一些新手入门FPGA的优秀网站(新增)

Verilog数字系统基础设计-CR

Verilog数字系统基础设计-奇偶校验

建立和保持时间及时序简单理解

(Xilinx)FPGA中LVDS差分高速传输的实现

Xilinx Multiboot实例演示

高速串行通信常用的编码方式-8b/10b编码/解码
Verilog计时(微秒、毫秒和秒)脉冲的产生及同步整形电路

再说System Verilog 与 Verilog 的关系

图书推荐|一本图像/视频处理的强大工具书

Verilog HDL-同步技术

再说System Verilog 与 Verilog 的关系

数模混合信号建模语言Verilog-AMS

Intel/Altera 系列FPGA简介

一块带给无数人年少欢乐的CPU,别说你没用过它

Verilog在编写第一行代码之前

【例说】Verilog HDL 编译器指令,你见过几个?

穿越时空的爱恋-Z80 CPU的前世今生

【Vivado】那些事儿-汇总篇

古老CPU启示录-晶体管之路

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:18:12  更:2021-10-12 23:19:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:47:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码