FPGA-SATA-HBA 项目教程
1. 项目的目录结构及介绍
FPGA-SATA-HBA 项目的目录结构如下:
vivado_netfpgasume/
├── fpga_top.xdc
├── RTL/
│ ├── fpga_uart_sata_example/
│ │ ├── fpga_uart_sata_example_top.sv
│ ├── IP/
│ │ ├── clk_wiz_0/
│ ├── sata_hba/
│ │ ├── sata_hba_top.sv
│ │ ├── sata_gth.sv
│ │ ├── sata_link_transport.sv
│ ├── fpga_uart_sata_example/
│ │ ├── uart_rx.sv
│ │ ├── uart_tx.sv
├── LICENSE
├── README.md
目录结构介绍
-
vivado_netfpgasume/: 包含项目的顶层文件和引脚约束文件。
- fpga_top.xdc: 引脚约束文件,将端口约束到 netfpga-sume 开发板的引脚上。
-
RTL/: 包含项目的所有 RTL 代码文件。
- fpga_uart_sata_example/: 包含 UART 示例工程的顶层文件和相关模块。
- fpga_uart_sata_example_top.sv: FPGA 工程顶层文件。
- uart_rx.sv: 接收 Host-PC 发来的 UART 信号,解析成 FIS 数据流发送给 HBA。
- uart_tx.sv: 接收 HBA 收到的 FIS,转换成人类可读的 ASCII-HEX 格式并用 UART 发送给 Host-PC。
- IP/: 包含项目使用的 IP 核。
- clk_wiz_0/: 生成 60MHz 时钟,提供给 SATA HBA core 的 CPLL_refclk。
- sata_hba/: 包含 SATA HBA 的核心代码。
- sata_hba_top.sv: SATA HBA 顶层文件,实现物理层、链路层、传输层。
- sata_gth.sv: 实现物理层,调用了 Xilinx GTH 相关的原语。
- sata_link_transport.sv: 实现链路层和传输层。
- fpga_uart_sata_example/: 包含 UART 示例工程的顶层文件和相关模块。
-
LICENSE: 项目的开源许可证文件。
-
README.md: 项目的介绍和使用说明。
2. 项目的启动文件介绍
项目的启动文件主要是 vivado_netfpgasume/fpga_top.xdc
和 RTL/fpga_uart_sata_example/fpga_uart_sata_example_top.sv
。
fpga_top.xdc
这是一个引脚约束文件,用于将 FPGA 的端口约束到 netfpga-sume 开发板的引脚上。该文件定义了 FPGA 的物理引脚与逻辑信号之间的映射关系,确保硬件设计能够正确连接到开发板上。
fpga_uart_sata_example_top.sv
这是 FPGA 工程的顶层文件,包含了整个项目的顶层模块。该文件负责将各个子模块连接在一起,并定义了顶层模块的接口。通过该文件,可以启动整个 FPGA 工程的编译和仿真。
3. 项目的配置文件介绍
项目的配置文件主要是 vivado_netfpgasume/fpga_top.xdc
和 RTL/IP/clk_wiz_0/clk_wiz_0.xci
。
fpga_top.xdc
如前所述,这是一个引脚约束文件,用于配置 FPGA 的物理引脚与逻辑信号之间的映射关系。通过该文件,可以确保硬件设计能够正确连接到开发板上。
clk_wiz_0.xci
这是一个时钟管理 IP 的配置文件,用于生成 60MHz 时钟,提供给 SATA HBA core 的 CPLL_refclk。该文件定义了时钟的频率、相位等参数,确保时钟信号能够满足项目的需求。
通过以上配置文件,可以确保项目在 FPGA 上正确运行,并实现 SATA 硬盘的读写功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考