基于开源SATA核的PCIE-SATA设计
之前写的PCIE-SATA设计论文,摘抄到博客上,供大家参考。摘抄、转载请注明出处。
1. 参考设计
1.1 开源核设计
使用FPGA实现SATA接口主机控制器,国内外在此方面已有研究成果可以借鉴和参考。美国北卡罗莱纳州大学可编程计算机系统实验室,Ashwin A. Mendon、Bin Huang和Ron Sass基于Open Cores的开源IP核,已经在Xilinx公司Virtex 6系列FPGA上,搭建了基于内置CPU,支持SATA2接口的环境。
其中,图中内置的CPU为Xilinx嵌入式软核MicroBlaze,MGA为Multi Gigabit Transciever,MPMC为Multi-port Memory Controller,NPI为Native Port Interface,SSD为Solid State Drive。
1.2 DGWAY设计架构
DGway公司作为一个专业的IP核提供商,实现了基于FPGA的支持4个SATA并行读写的FPGA核,且为SATA核读写性能指标的测试提供了参考设计[1]。它采用Kintex-7评估板作为测试平台,作为SATA通信层的主机,每个SATA-IP使用一对GTX与目标设备进行通信,且相互独立运行,4个盘组成Raid模式。应用程序层在该参考设计控制4 SATA设备操作存储系统,传输速度是单个SATA盘的4倍。
设计主要由三部分组成,分别是MicroBlaze、AXI_DDR3、4个AXI_SATA控制器。AXI是MicroBlaze和4个SATA之间传输数据的交互总线,传输的数据是由MicroBlaze组包和解包的SATA FIS包,不同的FIS包类型,存储在DDR3的不同区域,AXI_SATA包含了FIS解码器,每个AXI_SATA和DDR3之间都有自己独立的互联总线。
2. 综合设计
2.1 开源核改进
参考NPI状态机可知,读写均为由寄存器控制,寄存器包括读写的起始地址和读写的数据长度。首先分析AXI总线结构,分析读写发起的方法和顺序,然后将SATA核数据接口和AXI4总线连接。
2.2 系统搭建
当设计完成各主要模块后,需要使用Xilinx嵌入式版本 Design Suite 的关键组件将Xilinx Platform Studio(XPS)各个模块搭建成系统。
本设计包括两条AXI总线,一条为标准AXI4总线,另外一条为AXI-Lite总线,两条总线通过axi2axi_connector(AXI到AXI连接器)关联,以便两条总线的主从设备能够相互访问。
clock_generator、PCIe_Diff_Clk、utili_vector_logic、reset模块为时钟和复位模块单元,为各工作模块提供所需的时钟和复位信号。
3. 备注说明
开源SATA核链接: https://github.com/CospanDesign/nysa-sata
开源SATA核文章: https://download.csdn.net/download/web_star/10514755
我写的论文链接: https://download.csdn.net/download/web_star/11376337
基于开源SATA核的PCIE-SATA设计相关推荐
- [元带你学NVMe协议] ] 插槽接口(M.2 / mSATA / SATA )、总线(PCIE / SATA )、传输协议(NVME / AHCI) 图解
声明 主页:元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言. 个人辛苦整理,付费内容,禁止转载.. 全文 5700 字, 阅读时间约 19 分钟 文章目录 前言 1. 概述 2. 插槽 ...
- SATA 6Gbps/mSATA/M.2/NGFF/PCI-E/SATA Express/U.2/SFF-8639/E1.S硬盘接口综述
SATA 6Gbps SATA是硬盘接口的标准规范,实际上SATA 6Gbps接口这个说法并不规范,准确的称呼是SATA III,接口速度是6Gbps而已,只是现在大家习惯这个说法了.SATA 6Gb ...
- 11,基于JESD204 IP核的设计实现方法
本篇博主参考了xilinx官方JESD204 IP核的数据手册PG066,具体介绍基于该IP核的JESD204B数据传输实现方法~ 第一次设计 在vivado开发软件中例化JESD204 IP核时,x ...
- KU060板卡设计资料原理图第636篇:基于FMC的KU060高性能 PCIe 载板
基于FMC的KU060高性能 PCIe 载板 一.板卡概述 板卡主控芯片采用Xilinx 公司的 Kintex UltraScale系列FPGA XCKU060-2FFVA1156.板载 2 组 64 ...
- 基于C6748+FPGA的高精度北斗接收机设计与实现
随着计算机技术.通信技术.测控技术的提高,卫星导航技术不断进步,尤其在军事.民用领域应用越来越广泛,逐渐成为衡量国家军事实力和科学技术水平的一个重要标杆.我国在20世纪90年代中期开始建设中国北斗卫星 ...
- 基于OMPAL138+FPGA的三相电能质量分析仪设计
随着我国经济的快速发展,电力资源已经成为人民生活.社会生产的重要能源.由于各种各样的用电设备日益增多,使得实际电网中存在很多不平衡和非线性的冲击性负载,导致电网出现供电电压偏差.频率偏差.谐波.间谐波 ...
- NXP LS1046A及飞腾新四核 FT2004 PCIE EP端LINUX设备驱动开发
文章目录 前言 一.PCIE 硬件简介 二.PCIE EP地址映射原理介绍 1. PCI总线的各种域(存储器域.PCI总线域) 2. 开发EP设备驱动要做的事 三.NXP LS1046A PCIE E ...
- 基于Python+Open CV的手势识别算法设计
素材资料下载: 基于Python+OpenCV的手势识别算法设计源代码材料-机器学习文档类资源-CSDN下载采用Python的集成开发环境Pycharm进行本次课程设计,在Pycharm中进行需要库( ...
- FPGA SATA IP控制器的SATA接口调试记录
本文档是基于FPGA K7 SATA IP控制器的SATA接口调试记录,接口遵循标准的ACHI协议. 操作系统内核版本:5.4.18 由于K7PCIE只有3个bar,AHCI协议规定SATA控制器是在 ...
最新文章
- 多个线程同时运行,顺序打印问题
- SAP进销存难点分析及对策
- 全排列(递归与非递归实现)
- Java实现线性表(顺序表,链表)
- maven项目不编译xml文件
- vlan划分_什么样的网络需要划分VLAN?
- 面试前准备这些,成功率会大大提升!(Java篇)
- 关于微软的VB和C#:为何Basic需要存在,为何VB如此像C#,为何两者不合并等
- Lua中调用C/C++函数 (转)
- python类:magic魔术方法
- springboot web项目_SpringBoot 源码解析 (一):SpringBoot核心原理入门
- 单例模式中为什么用枚举更好
- php连接mysql字符串函数_mysql 字符串函数
- 作业收集小程序推荐|视频作业收集、图片作业收集、文档作业收集
- 项目部署到服务器显示 网页无法访问500 错误的解决办法
- c#语言中怎么样把文本转换成数字,如何将字符串转换为数字 - C# 编程指南 | Microsoft Docs...
- Grammar-based construction 语法驱动的构造
- asciidoc_如何使用AsciiDoc创建博客
- Loki告警的正确姿势
- Windows必装的3款免费效率工具,排名不分先后