FPGA第 13 篇,使用 Xilinx Vivado 创建项目,点亮 LED 灯,Vivado 的基本使用(点亮ZYNQ-7010开发板的LED灯)
前言
在FPGA设计中,Xilinx Vivado软件是一款功能强大的设计工具,它不仅支持硬件描述语言(HDL)的开发,还提供了丰富的图形化设计界面,方便用户进行硬件设计、调试和测试。这里我们将详细介绍,如何使用Vivado软件点亮ZYNQ-7010开发板上的LED灯,涵盖从工程创建到代码实现的全过程。
一. 环境准备
在开始之前,请确保您已安装以下软件和工具。请看
- Xilinx Vivado Design Suite
- ZYNQ-7010开发板
- USB JTAG调试器(如Xilinx Platform Cable USB)
二. 创建工程
创建 Vivado 工程,请看
1. 打开和创建
打开Vivado,点击“Create New Project”,点击下一步。


2. 名称和位置
在“Project Name”框中输入项目名称,选择一个合适的存储位置,并点击“Next”。

3. 选择和同意
在“Project Type”中选择“RTL Project”,勾选“Do not specify sources at this time”,然后点击“Next”。

这里众多选项,分别代表不同意思,请看
新项目
项目类型
指定要创建的项目类型。
RTL项目
您将能够添加源文件、在IP集成器中创建模块设计、生成IP、运行RTL分析、综合、实现、设计规划和分析。
☐ 此时不指定源文件后综合项目
您将能够添加源文件、查看设备资源、运行设计分析、规划和实现。
☐ 此时不指定源文件I/O规划项目
不指定设计源文件。您将能够查看部件/封装资源。导入项目
从Synplify、XST或ISE项目文件创建Vivado项目。示例项目
从预定义的模板创建一个新的Vivado项目。
这里我们选择第一项,添加项目源文件。
4. 选择和型号
在“Default Part”页面中,选择您的ZYNQ-7010开发板的型号(如Zynq-7000系列),选择Package 引脚类型,然后选择Speed 速度等级,再选择Part 部件类型,最后点击“Next”。

这里也有很多选项,分别代表不同意思,请看
新项目
默认部件
为您的项目选择一个默认的Xilinx部件或板。
部件 | 板卡
重置所有过滤器
类别:全部 封装:clg400 温度:剩余所有
家族:Zynq-7000 速度:-2 静态功耗:剩余所有
搜索:
根据自己开发板的型号,对号入座,选择对应选项。
5. 点击和完成
最后点击“Finish”,完成项目创建。

正在创建,

完成创建后,来到主页。

三. 添加文件
添加源文件,请看
1. 添加文件
在“Project Manager”中,右键单击“Sources”文件夹,选择“Add Sources”,或者点击加号➕图标,还可以鼠标右击,都可以添加源文件。

2. 选择同意
选择“Add or create design sources”,添加或创建设计源文件,点击“Next”。

分别表示
添加源文件
添加源文件
此向导引导您完成为项目添加和创建源文件的过程。
- 添加或创建约束条件
- 添加或创建设计源文件
- 添加或创建仿真源文件
这里我们选择第二项,添加或创建设计源文件。
3. 创建源文件
点击“Create File”,选择File type语言类型 和 File name文件名称,然后点击“OK”后,点击“Finish”,完成创建。

这里创建的是项目里面的文件,下面图片头部,显示的是我们创建的项目名称和位置,注意区分。


然后这里还会弹出,模块弹框,直接输入模块名称,点击 OK ,点击 Yes ,完成创建。


双击LED.v,打开源文件,可以看到,项目和源文件,创建成功。

四. 编写代码
编写Verilog代码,以下是点亮LED灯的Verilog代码示例。请看
// led_control.v
module led_control (input wire clk, // 时钟信号output reg [3:0] led // 4个LED灯的控制信号
);// 时钟分频器,产生一个较慢的LED闪烁频率reg [23:0] counter; // 计数器,用于时钟分频always @(posedge clk) begincounter <= counter + 1; // 计数器自增if (counter == 24'd12499999) begin // 根据需要调整这个值led <= ~led; // 取反LED状态counter <= 0; // 重置计数器endendendmodule
代码说明
- 输入端口
clk:接收系统时钟信号。- 输出端口
led:控制4个LED灯的状态。- 计数器
counter:用于实现时钟分频,生成LED闪烁效果。always块:在每个时钟上升沿更新计数器,并在计数器达到设定值时切换LED状态。
五. 添加约束
添加约束文件,为确保 Vivado 正确地连接开发板上的引脚,我们需要添加一个约束文件(XDC文件)。请看
右键单击“Constraints”文件夹,选择“Add Sources”。
选择“Add or create constraints”,点击“Next”。
创建一个名为
constraints.xdc的约束文件,然后点击“Finish”。在
constraints.xdc中添加以下内容,确保将引脚与LED连接正确:
# LED引脚连接
set_property PACKAGE_PIN A2 [get_ports led[0]] # LED0
set_property PACKAGE_PIN A3 [get_ports led[1]] # LED1
set_property PACKAGE_PIN A4 [get_ports led[2]] # LED2
set_property PACKAGE_PIN A5 [get_ports led[3]] # LED3
set_property IOSTANDARD LVCMOS33 [get_ports {led[0] led[1] led[2] led[3]}]
引脚配置说明
- PACKAGE_PIN:指定FPGA封装的引脚号。
- IOSTANDARD:指定引脚的输入输出标准,这里使用LVCMOS33。
六. 综合实现
综合与实现,请看
在Vivado工具栏上,点击“Run Synthesis”以综合设计。
等待综合完成后,点击“Run Implementation”进行实现。
实现完成后,点击“Generate Bitstream”生成比特流文件(.bit)。
七. 编程开发
编程开发板,请看
将ZYNQ-7010开发板连接到计算机,打开Vivado的“Open Hardware Manager”。
点击“Open Target”,选择“Auto Connect”。
在“Hardware Manager”中,右键单击“Program Device”,选择刚生成的比特流文件,点击“Program”。
等待编程完成,您将看到LED灯开始闪烁。
八. 本篇小结
通过以上步骤,我们成功使用Xilinx Vivado软件创建了一个FPGA工程,编写Verilog代码并点亮了ZYNQ-7010开发板上的LED灯。在实际开发中,我们可以根据需要修改LED的闪烁频率和控制逻辑,为其他硬件设计打下基础。希望能帮助到你!

创作不易,感觉有用,就一键三连,感谢(●'◡'●)
相关文章:
FPGA第 13 篇,使用 Xilinx Vivado 创建项目,点亮 LED 灯,Vivado 的基本使用(点亮ZYNQ-7010开发板的LED灯)
前言 在FPGA设计中,Xilinx Vivado软件是一款功能强大的设计工具,它不仅支持硬件描述语言(HDL)的开发,还提供了丰富的图形化设计界面,方便用户进行硬件设计、调试和测试。这里我们将详细介绍,如…...
Kafka文档阅读笔记之基本操作
官方资料 官方首页官方文档基本操作topic的配置参数 topic的部分操作 创建新的topic 命令样例,如下: bin/kafka-topics.sh \--bootstrap-server localhost:9092 \--create \--topic my_topic_name \--partitions 20 \--replication-factor 3 \--conf…...
Golang | Leetcode Golang题解之第506题相对名次
题目: 题解: var desc [3]string{"Gold Medal", "Silver Medal", "Bronze Medal"}func findRelativeRanks(score []int) []string {n : len(score)type pair struct{ score, idx int }arr : make([]pair, n)for i, s : …...
机器学习——元学习(Meta-learning)
元学习(Meta-learning):学习如何学习的机器学习 元学习(Meta-learning),即“学习如何学习”,是机器学习领域中一个令人兴奋且极具潜力的研究方向。它的核心目标是让机器学习系统学会高效地学习…...
【TIMM库】是一个专门为PyTorch用户设计的图像模型库 python库
TIMM库 1、引言:遇见TIMM2、初识TIMM:安装与基本结构3、实战案例一:图像分类4、实战案例二:迁移学习5、实战案例三:模型可视化6、结语:TIMM的无限可能 1、引言:遇见TIMM 大家好,我是…...
【AIGC】从CoT到BoT:AGI推理能力提升24%的技术变革如何驱动ChatGPT未来发展
博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯迈向AGI的新跨越💯BoT与CoT的技术对比技术原理差异推理性能提升应用范围和通用性从错误中学习的能力总结 💯BoT的工作流程和机制初始化过程生成推…...
若依部署上线遇到的问题
一、若依部署上线的用户头像模块不能回显: 首先是后端修改部署上线后若依存储图片的本地地址 其次将上线前端配置文件中的图片相关配置给删除 二、若依部署上线后验证码不显示问题 在确保前后端请求打通后还有这个问题就是磁盘缓存问题 三、若依部署上线遇到404页…...
一个vue3的待办列表组件
一个vue3的待办列表组件, 仿企业微信的待办列表 TodoList.vue <template><div><el-input v-model"todoInput" placeholder"写下你的待办事项..." class"el-input" keyup.enter"addTodo"input-style"background-c…...
深入分析梧桐数据库SQL查询之挖掘季度销售冠军
在现代商业环境中,对销售数据的深入分析是企业决策过程中不可或缺的一部分。通过分析销售数据,企业可以识别出表现最佳的员工,从而激励团队,优化销售策略,并提高整体业绩。本文将详细介绍如何使用SQL查询来识别每个季度…...
「ZJUBCA秋季迎新见面会预告」
01 TIME 主席团与各部部长致辞 Presidents and Leads speech 02 TIME Aptos宣讲 Aptos Pitch-Hackathon 03 TIME 破冰小游戏 Icebreaker Games-Mining a Bitcoin 04 TIME 观影 Movie time! ⬇️浙江大学区块链协会秋季迎新见面会预告⬇️ 01 Presidents and Leads s…...
钉钉消息推送工具类
pom.xml <!-- HuTool 工具 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version></dependency><!-- commons-lang3 --><dependency><groupId>…...
Android Studio 导入/删除/新建库的模块(第三方项目) - Module
文章目录 一、导入module项目 Module空项目如何导入Project工程项目二、删除module项目三、新建module项目(不常用) 一、导入module项目 首先,你必须要有一个工程(Project),才可以打开项目(Module) 第一步骤:右键项目依次点击 New -> Module 1、工…...
flowable 去掉自带的登录权限
重写Security配置,使所有请求都可以通过Security验证。(/**/**) 如: 公共的Security配置 package com.central.workflow.config;import org.springframework.context.annotation.Configuration; import org.springframework.se…...
第T8周:猫狗识别
>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)** 🍺 要求: 了解mode…...
第十七周:机器学习
目录 摘要 Abstract 一、MCMC 1、马尔科夫链采样 step1 状态设定 step2 转移矩阵 step3 马尔科夫链的生成 step4 概率分布的估计 2、蒙特卡洛方法 step1 由一个分布产生随机变量 step2 用这些随机变量做实验 3、MCMC算法 4、参考文章 二、flow-based GAN 1、引…...
算法4之链表
概述 链表的题目没有太难的算法,纯看熟练度,是必须会。面试笔试不会是直接挂的,或者给面试官留下不好的印象。 单双链表的反转,单链表实现队列,K个一组反转链表。 单链表反转 链表节点的定义 Data public class Li…...
掌握未来技术:KVM虚拟化安装全攻略,开启高效云端之旅
作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#…...
挖矿病毒的处理
前阶段生产服务器又中挖矿病毒了,紧急处理了一波 现象 执行 top命令,查看哪里cpu占用较高 CPU 彪满下不来 解决 1、杀掉进程 kill -9 pid 2、但是,过一会又不行了,说明有定时任务在定时执行这个病毒 3、先找到病毒文件&…...
JVM(HotSpot):GC之G1垃圾回收器
文章目录 一、简介二、工作原理三、Young Collection 跨代引用四、大对象问题 一、简介 1、适用场景 同时注重吞吐量(Throughput)和低延迟(Low latency),默认的暂停目标是 200 ms超大堆内存,会将堆划分为…...
appium文本输入的多种形式
目录 一、send_keys方法 二、press_keycode方法 三、subprocess方法直接通过adb命令输入 一、send_keys方法 这个是最常用的方法,不过通常使用时要使用聚焦,也就是先点击后等待: element wait.until(EC.presence_of_element_located((By…...
别再只会scp了!Ansible copy和file模块的5个实战场景,从配置文件分发到权限管理
别再只会scp了!Ansible copy和file模块的5个实战场景,从配置文件分发到权限管理 如果你还在用scp或rsync手动同步服务器文件,每次修改权限都要逐台登录操作,那么这篇文章将彻底改变你的运维工作流。Ansible的copy和file模块不仅能…...
告别编译迷茫:手把手教你读懂UEFI固件开发中的DSC文件(以EDK2 vUDK2018为例)
告别编译迷茫:手把手教你读懂UEFI固件开发中的DSC文件(以EDK2 vUDK2018为例) 当你第一次打开EDK2项目中的DSC文件时,是否被那些看似杂乱无章的配置项和宏定义搞得晕头转向?作为UEFI固件开发的核心配置文件,…...
内容可寻址存储器(CAM)原理与创新设计解析
1. 内容可寻址存储器基础解析在传统计算机架构中,我们通常使用随机存取存储器(RAM)通过地址来访问数据。但有一种特殊的存储结构打破了这种范式——内容可寻址存储器(Content-Addressable Memory, CAM)。它的独特之处在…...
Arm CoreLink GFC-200 Flash控制器架构与优化实践
1. Arm CoreLink GFC-200 Flash控制器架构解析在嵌入式系统设计中,非易失性存储管理是核心挑战之一。作为Arm CoreLink系列的重要成员,GFC-200通用Flash控制器通过创新的总线架构和分区管理机制,为SoC设计提供了高效的Flash存储解决方案。这款…...
避坑指南:STM32CubeMX配置红外接收,为什么你的解码总是不准?
STM32CubeMX红外接收解码优化实战:从原理到精准解析 红外遥控技术在家电控制、智能设备交互中扮演着重要角色,但许多开发者在STM32平台上实现红外接收解码时,常遇到信号不稳定、误码率高等问题。本文将深入分析红外接收解码的核心原理&#…...
从样式覆盖到版本升级:全面解析Antd表格固定列对齐问题的解决路径
1. 问题复现:当Antd表格固定列开始"跳舞" 第一次遇到Antd表格固定列错位问题时,我正喝着咖啡调试一个后台管理系统。突然发现表格右侧的固定列像被施了魔法——表头和内容列完全错开,活像跳着蹩脚的探戈。这种问题在Antd 3.x版本中…...
AI技能(SKILL)中文翻译项目:打破语言壁垒,赋能中文AI社区
1. 项目概述:一个为中文AI社区“破壁”的翻译工程如果你和我一样,在过去一年里深度使用过Claude、ChatGPT或者各类AI Agent平台,那你一定对“SKILL”这个概念不陌生。简单来说,SKILL就是AI的“技能包”,它把特定领域的…...
AUTOSAR Wdg模块的两种“狗”:片内看门狗与SPI外挂看门狗配置异同点解析
AUTOSAR Wdg模块深度解析:片内与SPI外挂看门狗的工程实践指南 在汽车电子控制单元(ECU)开发中,看门狗(Watchdog)模块是确保系统可靠性的关键组件。AUTOSAR标准下的Wdg模块支持两种典型硬件架构——片内集成…...
构建可复用技能库:从代码片段到自动化工作流的工程实践
1. 项目概述:从零构建一套可复用的“副爪”技能库在技术社区里,我们常常会看到一些零散的代码片段、脚本工具或者临时的解决方案,它们像散落的“爪子”一样,能解决特定问题,但不成体系,难以复用和传承。我自…...
逆向实战:从异或表到明文存储,我是如何让Eternium的游戏数据‘裸奔’的
逆向工程实战:解密游戏数据存储的核心逻辑 在数字娱乐时代,游戏安全机制与逆向分析技术之间的博弈从未停止。对于技术爱好者而言,理解游戏如何保护其核心数据不仅是一次智力挑战,更是深入了解计算机系统底层运作的绝佳机会。本文将…...
