论文部分内容阅读
随着集成电路性能的提高和网络技术的发展,数据规模空前膨胀,海量存储逐渐成为研究的重要课题。以计算机的硬盘为例,处理器的工作频率不断加快,并行接口(PATA)的信号之间干扰日益加剧,无法再满足时代的需要。串行传输应运而生,Serial ATA接口管脚少,传输速率快,设置多重数据纠错模式,支持热插拔特性,刚一出世便成为硬盘存储业的新宠。但该产品的关键技术大都集中在国外的垄断公司手中,国内主要对其分析修改,二次开发。鉴于SATA控制器市场空白,本文以此为切入点,设计面向FPGA的SATA主机控制器,旨在快捷便利地存储数据。SATA标准为国外发布的协议,本文详细剖析了SATA1.0版本,深刻理解串行传输的层次架构,自上而下为命令层、传输层、链路层和物理层。设计采用FPGA自顶向下的模块化理念,以协议内容为框架,最大限度地发挥FPGA并行优势,命令层由FPGA的嵌入式处理器MicroBlaze来实现,主要完成硬盘的参数配置和读写命令。下面三层为设计重点,中间传输层和链路层主要完成帧的封装,帧的发送、暂停、结束控制,帧的解析和校验。按功能分为控制模块和数据通路,前者用VHDL描述为多个状态机协同控制实现,后者调用存储IP核FIFO保存数据,利用CRC和扰码校验双重数据纠错。最底层物理层包括高速串行收发器、OOB信号控制模块和速率协调模块。高速串行收发器对应协议中的模拟前端,可根据需求灵活配置8B/10B编解码,串并转换,COMMA字符检测,时钟修正,预加重和线性均衡等选项。OOB控制模块和速率协调模块能够自动识别硬盘的传输速率,实现了1.5Gbps/3.0Gbps自动切换的串行传输通路。整个设计使用Xilinx公司的ISE软件完成,各个模块附有仿真图和结果分析。系统验证采用Virtex-5开发板,把SATA控制器封装成IP核挂在PLB总线上,由处理器MicroBlaze设置硬盘命令,通过PLB,总线调配SATA控制器IP核对硬盘进行读写测试,结果符合协议要求。整个SATA控制器在FPGA上实现,集成度强、可移植性高,具有很好的工程和市场价值,在计算机存储领域具有重要意义。