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

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

世界上第一款 SATA 硬盘驱动器是 Seagate Barracuda SATA V,于 2003 年 1 月发布。
FPGA实现SATA协议
FPGA实现SATA协议主要是通过SERDES实现物理层,后续其他层需要自己写。

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

下面介绍几个SATA协议的实现的开源项目。
FPGA-SATA-HBA
❝https://github.com/WangXuan95/FPGA-SATA-HBA
❞

介绍

本项目全中文介绍,关于协议也介绍的异常详细,就不赘述了。
sata3_host_controller/sata_2_host_controller
❝https://github.com/wove2006/sata3_host_controller/tree/master
❞
❝https://github.com/CoreyChen922/sata_2_host_controller
❞
介绍

这是一个 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 协议栈。

详细的介绍,作者有个WIKI可以查看:
❝https://github.com/CospanDesign/nysa-sata/wiki
❞
请注意,虽然作者开源了源代码,但是开源协议是GPL。
sata_controller
❝https://github.com/wove2006/sata_controller
❞

全中文介绍,就不过多赘述了。
sata_ipcore
❝https://github.com/roman-pogorelov/sata_ipcore
❞

Intel FPGA实现的SATA IP。
图书
❝https://github.com/suisuisi/FPGATechnologyGroup/tree/main/SATA_FPGA
❞

最后,还是放一些关于SATA的基础知识。
总结
SATA部分因为基本和FPGA底层息息相关,所以很少有单独的项目实现,国内几个大佬写了几个非常详细的教程,按照教程基本就可以完成协议实现了。
最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。