优秀的 Verilog/FPGA开源项目介绍(三十八)- SATA

eeb8745ab1d9c6dae6e90af9710a7163.jpeg

SATA

SATA 于 2000 年发布,与早期的 PATA 接口相比具有多种优势,例如减小了电缆尺寸和成本(40 或 80 根减小到 7 根导线)、本机热插拔、通过更高的信号传输速率实现更快的数据传输,并通过(可选)I/O排队协议实现更高效的传输。该规范的修订版 1.0 于 2003 年 1 月发布。

a12e56cc2f02949f75d5466daad6b2b2.png

串行 ATA 行业兼容性规范源自串行 ATA 国际组织(SATA-IO)。SATA-IO 小组协作创建、审查、批准和发布互操作性规范、测试用例和即插即用。与许多其他行业兼容性标准一样,SATA 内容所有权转移给其他行业机构:主要是 INCITS T13 和 INCITS T10 小组委员会( SCSI ),后者是负责串行连接 SCSI (SAS) 的 T10 子小组。

ef9577a512137d4e99c427bb79ab3269.png

世界上第一款 SATA 硬盘驱动器是 Seagate Barracuda SATA V,于 2003 年 1 月发布。

FPGA实现SATA协议

FPGA实现SATA协议主要是通过SERDES实现物理层,后续其他层需要自己写。

903a1ff66fc68205e254f91ccce84619.png

整个SATA协议需要实现的大致内容如下:

6e13b8c20426cd5d0e7b27817935ecef.png图片来源见水印

下面介绍几个SATA协议的实现的开源项目。

FPGA-SATA-HBA

https://github.com/WangXuan95/FPGA-SATA-HBA

10a139deaba70ab80be1161ae9a94216.png

介绍

ec0cd338fed30febfda42a29540e51ef.png

本项目全中文介绍,关于协议也介绍的异常详细,就不赘述了。

sata3_host_controller/sata_2_host_controller

https://github.com/wove2006/sata3_host_controller/tree/master

https://github.com/CoreyChen922/sata_2_host_controller

介绍

a36579fe4782107b0fa243a2fd8d73d7.png

这是一个 SATA 3 主控制器项目。使用此功能,可以通过简单的内存接口从 fpga 逻辑中读取 sata3 sdd/hdd。该控制器性能如下:写入:275MBps 读取:519MBps(连续读写)(在 SAMSUNG 250GB SATA3 SSD 上测试)。 FPGA 型号:Kintex7 xc7k325t(KC705 板)。

nysa-sata

https://github.com/CospanDesign/nysa-sata

介绍

用 Verilog 编写的 Sata 协议栈。

865f9efabbc0161babf61f1d5a6f5d0f.png

详细的介绍,作者有个WIKI可以查看:

https://github.com/CospanDesign/nysa-sata/wiki

请注意,虽然作者开源了源代码,但是开源协议是GPL。

sata_controller

https://github.com/wove2006/sata_controller

33d673121b294a1c137f98f7ce37751f.png

全中文介绍,就不过多赘述了。

sata_ipcore

https://github.com/roman-pogorelov/sata_ipcore

6e242dcfc109e8477d7314423c675f69.png

Intel FPGA实现的SATA IP。

图书

https://github.com/suisuisi/FPGATechnologyGroup/tree/main/SATA_FPGA

0471f9688072333dc0512640144e645f.png

最后,还是放一些关于SATA的基础知识。

总结

SATA部分因为基本和FPGA底层息息相关,所以很少有单独的项目实现,国内几个大佬写了几个非常详细的教程,按照教程基本就可以完成协议实现了。

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

9f07cfb17c1cab8ff594c40bf8ef64ed.jpeg

优秀Verilog/FPGA 开源项目之一是 PCIe。PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,用于连接外部设备和计算机系统。下面是我参考的介绍 PCIe 的 Verilog/FPGA 开源项目: 1. Rocket-Chip: Rocket-Chip 是由伯克利加州大学开发的一个开源项目,它提供了一个用于构建 RISC-V SoC(System on Chip)的开发平台。Rocket-Chip 的设计中包含了 PCIe 支持,可以作为 FPGA 上 PCIe IP 核的一个很好的参考实现。Rocket-Chip 提供了详细的文档和示例代码,使用户可以根据需要进行修改和定制。 2. SERVE: SERVE 项目是由一个非营利机构 Open Compute Project(OCP)发起的一个开源项目,旨在提供一种可扩展的 PCIe 设备框架。该框架可以实现支持 PCIe 接口的硬件设备在 FPGA 上的快速开发和部署。SERVE 项目提供了基于 Verilog 的 IP 核和软件驱动程序,使用户可以更加灵活地开发和定制其 PCIe 设备。 3. LitePCIe: LitePCIe 是一个用于 FPGA 的轻量级 PCIe 核,是开源项目 LiteX 中的一个组成部分。LitePCIe 具有灵活的架构,可方便用户进行定制。它提供了一套完成的功能,包括物理层、逻辑层和传输层。此外,LitePCIe 也有着很好的文档和示例代码,方便用户进行学习和使用。 这些 Verilog/FPGA 开源项目提供了丰富的资源和参考实现,适合于学习和使用 PCIe 在 FPGA 上的开发和实现。用户可以根据自己的需求选择合适的项目,借助这些资源,可以更加高效地进行 PCIe 设备的开发和部署。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值