FPGA自学笔记(正点原子ZYNQ7020):1.Vivado软件安装与点灯

一、Vivado软件安装

下载链接:通过网盘分享的文件:Vivado

链接: https://pan.baidu.com/s/1-uZ594FYP3U0n5c1zWawLw?pwd=4jex 提取码: 4jex

--来自百度网盘超级会员v6的分享

下载完之后,右键点xsetup.exe以管理员方式运行

全同意:

选择第三个

安装完后,点"Copy license",选择.lic文件

二、点灯

先查看最小系统板的原理图,可以看到LED1的那一头接的网络名称是B35_IO0

然后在文档中搜索B35_IO0,可以看到这个网格名对应的是G14,那么对应的引脚约束文件中就要写G14

那么新建一个项目,除了下面型号选择:xc7z010clg400-1

其余部分一路点确定,不熟悉可以看看官方文档,整体的文件路径如下:

led_twinkle.v代码如下:

bash 复制代码
module led_twinkle(
    input   sys_clk,      // 系统时钟
    input   sys_rst_n,    // 复位信号,低电平有效
    
    output  led           // 单 LED 输出,连接到 G14 引脚
);

reg [25:0] cnt;

// LED 闪烁逻辑:当 cnt < 2500_0000 时,led = 1(点亮);否则 led = 0(熄灭)
assign led = (cnt < 26'd2500_0000) ? 1'b1 : 1'b0;

// 计数器逻辑:基于 50MHz 时钟,计数到 5000_0000(1秒),然后复位
always @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        cnt <= 26'd0;
    else if (cnt < 26'd5000_0000)
        cnt <= cnt + 1'b1;
    else
        cnt <= 26'd0;
end

endmodule

led_twinkle.xdc代码如下:

bash 复制代码
#时钟周期约束
create_clock -name clk -period 20 [get_ports sys_clk ]
#IO 管脚约束
set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk]
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports sys_rst_n]
set_property -dict {PACKAGE_PIN G14 IOSTANDARD LVCMOS33} [get_ports led]

然后vivado左侧框有很多绿色运行的按钮,点击的先后顺序和运行意义如下:

  1. Run Synthesis

    • 作用 :将你的Verilog 代码led_twinkle.v)转换为硬件网表 (netlist),并应用约束文件(led_twinkle.xdc)中的时钟和引脚约束。
    • 操作 :在 Vivado 的 Flow Navigator 中,点击 Run Synthesis
    • 检查
      • 确保 led_twinkle.vled_twinkle.xdc 已正确添加到项目中,且 led_twinkle.xdc 被设置为目标约束文件。
      • 综合完成后,检查 MessagesReports 窗口,确认没有错误(errors)。如果有警告(warnings),如之前的 [Constraints 18-5210],需参考历史对话中的解决方法(例如,检查约束文件是否正确加载)。
      • 综合成功后,会生成一个合成检查点文件(例如 led_twinkle.dcp)。
  2. Run Implementation

    • 作用 :将综合生成的硬件网表 映射到目标器件(xc7z010clg400-1)的物理资源上,进行布局(placement)和布线(routing),并优化设计以满足时序要求。
    • 操作 :在 Flow Navigator 中,点击 Run Implementation
    • 前置条件 :必须先成功完成 Run Synthesis
    • 检查
      • 实现完成后,检查 MessagesLog 窗口,确认没有错误。如果有错误(例如时序违例或引脚分配问题),需检查 led_twinkle.xdc 文件中的引脚分配是否与开发板匹配。
      • 打开 Timing Summary 报告,确认时序约束是否满足(即没有负的时序裕量,negative slack)。
      • 实现成功后,会生成布局布线后的设计检查点。
  3. Generate Bitstream

    • 作用 :将实现后的设计转换为比特流文件.bit),该文件可下载到 ZYNQ7020 开发板的 FPGA 上以控制硬件(例如 LED 闪烁)。
    • 操作 :在 Flow Navigator 中,点击 Generate Bitstream
    • 前置条件 :必须先成功完成 Run Implementation
    • 检查
      • 比特流生成完成后,检查 Messages 窗口,确认没有错误。
      • 成功后,Vivado 会在项目目录的 runs 文件夹中生成比特流文件(例如 led_twinkle.bit)。
      • 如果生成失败,查看详细错误日志,可能的原因包括引脚分配错误、时序未满足或约束文件问题。
  4. 下载到硬件(可选,运行程序到开发板)

    • 作用:将生成的比特流文件下载到 ZYNQ7020 开发板,运行 LED 闪烁程序。
    • 操作
      1. 连接 ZYNQ7020 开发板到电脑,确保开发板电源已打开。
      2. Flow Navigator 中,点击 Open Hardware Manager
      3. 点击 Open Target -> Auto Connect,连接到你的开发板。
      4. 选择 Program Device ,选择你的设备(xc7z010clg400-1),然后加载生成的 .bit 文件。
      5. 点击 Program 将比特流下载到开发板。

然后观察现象可以看到红色的灯在每隔1s闪烁:

相关推荐
路弥行至15 小时前
C语言入门教程 | 第七讲:函数和程序结构完全指南
c语言·经验分享·笔记·其他·算法·课程设计·入门教程
凌然先生15 小时前
12.如何利用ArcGIS进行基本的空间数据格式转换
经验分享·笔记·arcgis·电脑
国科安芯15 小时前
国产MCU芯片在船舶压力传感器中的应用探索与实践
网络·单片机·嵌入式硬件·fpga开发·车载系统
学工科的皮皮志^_^16 小时前
PCIE学习
经验分享·嵌入式硬件·学习·fpga开发·pcie
Autism11416 小时前
javase-day22-stream
java·开发语言·windows·笔记
koo36416 小时前
李宏毅机器学习笔记34
人工智能·笔记·机器学习
lumi.16 小时前
前端本地存储技术笔记:localStorage 与 sessionStorage 详解
前端·javascript·笔记
せいしゅん青春之我17 小时前
【JavaEE初阶】网络原理——TCP处理先发后至问题
java·网络·笔记·网络协议·tcp/ip·java-ee
colus_SEU17 小时前
【计算机网络笔记】第二章 应用层 (Application Layer)
笔记·计算机网络·1024程序员节
摇滚侠18 小时前
Spring Boot3零基础教程,SpringSecurity 测试,笔记81
spring boot·笔记·后端