Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

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

作者头像
碎碎思
发布于 2021-10-18 06:23:45
发布于 2021-10-18 06:23:45
4K0
举报
文章被收录于专栏:OpenFPGAOpenFPGA

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

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

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

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

RIFFA项目

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

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

Altera文件夹下:

Xilinx文件夹下:

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

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

Alex的众多项目

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

Alex Forencich主要项目

包含网络和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作者原创,未经本人授权禁止转载!

NOW现在行动!

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

文件名

主标题

内容简单介绍

是否有中文版

UG476

7 Series FPGAs GTX/GTH Transceivers

GTX和GTH介绍,PCIe、serdes等学习必备

UG471

7 Series FPGAs SelectIO Resources

描述 7 系列 FPGA 中可用的 SelectIO资源。

UG1114

PetaLinux Tools Documentaton

PetaLinux 工具文档 参考指南

是,V2019.2

UG949

UltraFAST 设计方法指南(适用于 Vivado Design Suite)

赛灵思® UltraFast™ 设计方法是用于为当今器件优化设计进程的一套最佳实践。这些设计的规模与复杂性需要执行特定的步骤与设计任务,从而确保设计每一个阶段的成功开展。依照这些步骤,并遵循最佳实践,将帮助您以最快的速度和最高的效率实现期望的设计目标

是,V2018.1

IP手册

pg057

FIFO Generator

FIFO生成器IP使用手册

pg104

Complex Multiplier

复数乘法器IP使用手册

pg122

RAM-Based Shift Register

移位寄存器IP使用手册

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V
RISC-V(跟我读:“risk----------------five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。
碎碎思
2021/10/18
4.2K0
优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V
优秀的 Verilog/FPGA开源项目介绍(三十六)-RISC-V(新增一)
RISC-V(跟我读:“risk----------------five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。
碎碎思
2023/02/14
7.2K0
优秀的 Verilog/FPGA开源项目介绍(三十六)-RISC-V(新增一)
串行总线技术(一)-串行总线结构(以PCIe为例)
在早期的计算机系统中,多数外围设备使用并行总线结构。这些总线包括PCI和PATA(并行ATA)。当通信速率较低时,并行总线结构可以设计得非常简单和有效,可以连接大量外围设备。通过使用中央仲裁机制,可以方便地实现总线设备间的通信:然而,当速率和带宽不断增加时,并行结构的潜力不断被发掘并不再能够满足系统设计要求。
碎碎思
2021/10/18
3.7K0
串行总线技术(一)-串行总线结构(以PCIe为例)
【Vivado那些事儿】约束的顺序
很对人在使用Vivado时喜欢使用多个约束文件对整个工程进行约束,同时Vivado允许设计者使用一个或多个约束文件。虽然使用一个约束文件对于一个完整的编译流程来说看似更方便,但是在一些情况下,这会使得问题更加复杂,比如一个设计使用了不同的IP核或者由不同团队开发的模块。不管设计者在设计中,使用了一个还是多个XDC文件,Xilinx推荐设计者使用下面的顺序来组织约束。XDC文件的约束顺序如下:
碎碎思
2021/10/18
1.1K0
【Vivado那些事儿】约束的顺序
童年修复系列-SNES芯片组介绍及FPGA实现
超级任天堂1990年11月21日在日本开始发售,北美于1991年8月13日发售,欧洲于1992年4月11日发售。
碎碎思
2021/10/18
1.8K0
童年修复系列-SNES芯片组介绍及FPGA实现
Intel/Altera 系列FPGA简介
自从Altera被Intel收购后,似乎放弃了整个中国市场,Altera市场占有率被其他FPGA厂家所侵蚀,国内目前还有一些公司用Altera的FPGA(CPLD居多),所以今天我们再去了解一下Intel FPGA系列产品。
碎碎思
2021/09/27
1.9K0
RTL与LUT的关系理解
布局布线后,点击“Chip Planner”,Chip Planner打开后可以看到在版图模型中有一个块蓝色区域的颜色变深,说明有该区域的资源被占用,我们知道这是一个逻辑阵列块LAB,我们将该区域放大
碎碎思
2021/10/18
6680
RTL与LUT的关系理解
Verilog HDL-同步技术
在芯片设计中,数据同步和在不同时钟域之间进行数据传输会经常出现。为避免任何差错、系统故障和数据破坏,正确的同步和数据传输就显得格外重要。这些问题的出现往往比较隐蔽,不易被发现,因此正确进行跨时钟域处理就显得极为重要。实现数据同步有许多种方式,在不同的情况下进行恰当的同步方式选择非常重要。以计算机中的南桥芯片为例,它通过不同的接口(如PCIe USB 吉比特以太网等)与外部设备相连。南桥通过不同的接口与外围设备相连,它与北桥之间是一个通用数据接口。南桥芯片中需要使用数据同步技术,目前,常用的同步技术主要分为以下几类:
碎碎思
2021/10/18
6300
Verilog HDL-同步技术
优秀IC/FPGA开源项目 [二]
XiangShan (香山) 采用Chisel语言,是一个开源的高性能 RISC-V 处理器项目,隶属于中科院计算所包云岗团队-北京开源芯片研究院(开芯院)。
数字芯片社区
2022/09/19
3.1K0
优秀IC/FPGA开源项目 [二]
古老CPU启示录-第一款单芯片微处理器8080
从今天来看:“该芯片是二十世纪最重要的产品。8080及其后续的芯片和其它公司生产的竞争芯片,对世界产生了深远的影响,给人类社会带来了翻天覆地的变化。”,那么什么芯片具有如此大的魔力?那就是我们今天的“猪脚”-i8080。
碎碎思
2021/10/27
2.8K0
古老CPU启示录-第一款单芯片微处理器8080
优秀的 Verilog/FPGA开源项目介绍(十七)- AXI
AMBA总线是ARM研发的(Advanced Microcontroller Bus Architecture)提供的一种特殊的机制,可以将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。
碎碎思
2022/03/11
7K1
优秀的 Verilog/FPGA开源项目介绍(十七)- AXI
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
带有DPHY的专用FPGA。目前国内一些FPGA厂商是有的,如高云的FPGA是有自带DPHY(小蜜蜂家族),xilinx的UltraScale系列 支持MIPI D-PHY接口,Altea/Intel、Lattice等最新系列FPGA也是具有这一接口的。
碎碎思
2021/11/17
5.3K0
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
【例说】Verilog HDL 编译器指令,你见过几个?
复杂一点的系统在进行设计或者验证时,都会用到一些编译器指令,那么什么是编译器指令?
碎碎思
2021/10/18
1.9K0
【例说】Verilog HDL 编译器指令,你见过几个?
FPGA Xilinx Zynq 系列(五)
今天给大侠带来FPGA Xilinx Zynq 系列第五篇,本篇内容目录简介如下:
FPGA技术江湖
2020/12/30
2.6K0
优秀的 Verilog/FPGA开源项目介绍(十三)- I2C
I2C 总线规范是由飞利浦半导体编写的。这家公司后来成为 NXP Semiconductors,现在它是 I2C 总线规范的维护相关者。
碎碎思
2021/12/31
1K0
优秀的 Verilog/FPGA开源项目介绍(十三)- I2C
优秀的 Verilog/FPGA开源项目介绍(三十九)- NVMe
NVM Express ( NVMe ) 或 Non-Volatile Memory Host Controller Interface Specification( NVMHCIS ) 是一种开放式逻辑设备接口规范,用于访问通过PCI Express总线连接的计算机非易失性存储介质。NVM 的缩写代表非易失性存储器,通常是 NAND 闪存,具有多种物理外形,包括固态驱动器(SSD)、PCIe 附加卡和M.2( mSATA的后继者 )。
碎碎思
2023/09/21
4.8K0
优秀的 Verilog/FPGA开源项目介绍(三十九)- NVMe
优秀的 Verilog/FPGA开源项目介绍(二十二)- SystemVerilog常用可综合IP模块库
想拥有自己的SystemVerilog IP库吗?设计时一个快捷键就能集成到自己的设计,酷炫的设计你也可以拥有!
碎碎思
2022/06/06
2.8K0
优秀的 Verilog/FPGA开源项目介绍(二十二)- SystemVerilog常用可综合IP模块库
优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。
碎碎思
2021/11/17
2.3K0
优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
PCIe的XDMA应用
之前介绍的PCIe实物模型为PIO模式,可编程PIO模式,软件控制CPU在主机总线上发起一个存储器或IO读写总线周期,并以映射在PCIe设备地址空间的一个地址为目标,根据PCIe总线宽度的区别,在每个时钟周期内可以传输4个或者8个字节的数据。传输效率低且占用CPU周期。
根究FPGA
2020/06/30
5K0
PCIe的XDMA应用
开源100 Gbps NIC Corundum环境搭建介绍(二)仿真及工程恢复
pytest方式调用python库cocotb-test的cocotb-test.simulator.run方法,该方法定义了使用何种仿真器的方法;makefile方式是调用python库cocotb中的makefile.sim,该Makefile会根据运行cocotb的命令行中仿真器的类别来调用不同仿真器的makefile,从而执行相关仿真器的编译和仿真操作。
网络交换FPGA
2021/10/21
3.1K2
推荐阅读
相关推荐
优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档