fpga论坛|fpga设计论坛

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 13|回复: 0

‌FPGA—ZYNQ Helloworld项目:从配置到运行的完整教程

[复制链接]
dameihuaxia 发表于 4 小时前 | 显示全部楼层 |阅读模式
1. 环境准备
硬件:
Zynq开发板(如Zybo Z7-20)
USB数据线(用于JTAG调试和串口通信)
12V电源适配器
软件:
Vivado Design Suite(2021.1+)
Vitis Unified IDE(与Vivado配套版本)
串口终端工具(如Tera Term/PuTTY)
2. Vivado工程配置
步骤1:创建新项目
打开Vivado → "Create Project" → 命名项目(如zynq_hello)
选择开发板型号(如"Zybo Z7-20")
步骤2:构建Block Design
点击"Create Block Design" → 命名设计(如system)

添加Zynq处理器IP:

点击"+" → 搜索ZYNQ7 → 双击添加
双击IP进入配置:
PS-PL配置:关闭未使用的接口(如GPIO)
外设配置:启用UART1(波特率115200)
DDR配置:选择开发板对应的DDR型号(如MT41K256M16)
点击"Apply"保存
添加时钟向导IP(可选):

搜索Clock Wizard → 配置输出时钟(如100MHz)
连接FCLK_CLK0到Zynq处理器的M_AXI_GP0_ACLK
自动连接:点击"Run Connection Automation" → 勾选所有信号

最终设计示例:

# Block Design示意图
+-----------------+       +---------------+
| ZYNQ7 Processor |<----->| Clock Wizard  |
|   (PS部分)      |       |   (PL部分)    |
+-----------------+       +---------------+
       | UART1
       v
  [外部串口]
步骤3:生成输出产物
右键设计 → "Generate Output Products"
右键设计 → "Create HDL Wrapper"(选择"Let Vivado manage")
生成比特流:
"Generate Bitstream"(约5-10分钟)
完成后勾选"Open Implemented Design"
3. Vitis软件开发
步骤1:导出硬件平台
Vivado菜单:
File → Export → Export Hardware
勾选"Include bitstream"
输出路径:<project_dir>/vitis_platform
步骤2:创建应用工程
打开Vitis IDE → 工作区选择<project_dir>
创建平台工程:
File → New → Platform Project
名称:hello_platform
选择导出的XSA文件
创建应用工程:
File → New → Application Project
名称:hello_world
选择hello_platform
模板:"Hello World"
步骤3:修改代码
打开src/helloworld.c,默认代码已包含串口打印:

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"

int main() {
    init_platform();
    print("Hello World\n\r");  // 串口输出
    cleanup_platform();
    return 0;
}
4. 硬件连接与运行
步骤1:开发板接线
JTAG模式:
USB-JTAG接口 → PC(用于程序下载)
串口模式:
USB-UART接口 → PC
串口参数:115200bps, 8N1, 无流控
步骤2:下载程序
Vitis中:
右键hello_world工程 → "Build Project"
连接开发板电源
点击"Run" → 选择"Launch Hardware"
步骤3:查看输出
打开串口终端(如Tera Term)→ 选择对应COM口
复位开发板 → 终端显示:
Hello World
5. 故障排查
无串口输出:
检查Vivado中UART1是否启用
确认终端波特率设置为115200
重新烧写比特流:Vitis中Xilinx → Program FPGA
JTAG连接失败:
更新板载JTAG芯片驱动(Digilent Adept工具)
更换USB接口(优先使用USB2.0)
关键公式:串口波特率计算公式
设系统时钟频率为$f_{clk}$,目标波特率为$B$,则分频系数:
$$ \text{BAUD_DIV} = \frac{f_{clk}}{16 \times B} $$
在Zynq配置中需确保实际值匹配(如$f_{clk}=100\text{MHz}$时,$ \text{BAUD_DIV} = 54 $对应115200bps)。

完成以上步骤后,您已实现Zynq PS端的基础通信。后续可扩展PL逻辑设计(如添加自定义IP核)或集成FreeRTOS等操作系统。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2026-2-4 14:46 , Processed in 0.060713 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表