news 2026/11/4 1:45:19

FPGA学习(一)——LED点灯与开发流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FPGA学习(一)——LED点灯与开发流程

一、FPGA引入

1、FPGA简介

2、FPGA优势和局限性

二、LED点灯

1、创建工程

2、原理图

3、仿真


一、FPGA引入

1、FPGA简介

Field Programmable Gate Array(FPGA)就是“可反复编程的逻辑器件”(可编程的数字电路)。

FPGA、ARM和DSP区别简述:

ARM:侧重于控制和传输,通常也包含的人机交互功能;

DSP:为高速数据的实时采集和传输、复杂的运算处理应用而进行定制化的处理器;

FPGA:覆盖各种ARM和DSP无法满足的应用,更趋向于小批量、定制化、实时性、要求又很高的应用。

2、FPGA优势和局限性

FPGA通常在数字信号处理、视频处理、图像处理、5G通信领域、医疗领域、工业控制、云服务、加速计算、人工智能、数据中心、自动驾驶、芯片验证等领域发挥着不可替代的作用。

【潜在优势】(1)灵活性:可重编程,可定制,易于维护,方便移植、升级或扩展降低NRE成本,加速产品上市时间支持丰富的外设接口,可根据需求配置;(2)并行性:更快的速度、更高的带宽,满足实时处理的要求;(3)集成性:更多的接口和协议支持,可将各种端接匹配元件整合到器件内部,有效降低BOM成本,单片解决方案,可以替代很多数字芯片减少板级走线,有效降低布局布线难度。

【局限性】(1)绝对性能受限:在某些性能上FPGA可能比不上专用芯片;(2)灵活性是否适用:如果设计不需要,FPGA的灵活性反而浪费,会潜在的增加产品的成本;(3)功耗相对较高:相比特定功能应用集中的ASIC,使用FPGA实现相同功能可能产生更高的功耗(相比GPU,则单位性能耗要低很多);(4)设计复杂性高:FPGA的设计复杂性和难度可能会给产品的开发带来一场噩梦。

二、LED点灯

1、创建工程

双击打开“Vivado ”,点击“Create Project”创建工程,如下图所示。

点击“Next”下一步,如下图所示。

配置好工程名称以及所需要保存的路径,点击“Next”,如下图所示。

确认创建RTL工程,之后点击下一步,如下图所示。

创建源文件并命名为“led”,之后点击“OK”,如下图所示。

点击“Next”,如下图所示。

创建约束文件,规定片子上哪一个引脚是led,引脚的电平,就是对引脚做一个约束,约束的依据就是原理图,最后点击“OK”,如下图所示。

点击“Next”,如下图所示。

查看开发板上的芯片型号,本开发板选用的型号为“XC7K325T”,双击该行,如下图所示。

点击“Finish”,如下图所示。

在弹出的界面中点击“OK”,如下图所示。

在弹出的界面中点击“Yes”,如下图所示。

2、原理图

关于LED等的管脚接线图如下图所示。

查看一下时钟源对应的管脚以便于在程序中进行配置。

配置并绑定管脚如下。

点击生成bite流,在弹出的点击“Generate Bitstream”。

在弹出的界面点击“OK”。

报这个错误的原因是将LVCMOS33错误的写成了LVCOMS33

set_property PACKAGE_PIN K21 [get_ports led1] set_property IOSTANDARD LVCMOS33 [get_ports led1] create_clock -period 20.000 [get_ports sys_clk50m] set_property PACKAGE_PIN F22 [get_ports sys_clk50m] set_property IOSTANDARD LVCMOS33 [get_ports sys_clk50m]

之后点击Generate BitStream,之后如下图所示,Open Hardware Manager。

外部连接好硬件,在软件内部点击自动连接“Auto Connect”。

将程序加载到板子中。

选择对应的bit流文件之后点击“Program”。

3、仿真

在led.xdc文件中对应的想要观察信号的变量前插入下图所示的一段语句。

点击右侧的Language Templates,如下图所示。

检索BUFG,拷贝对应的语句规则,如下图所示。

按照这样的格式修改led.xdc中的代码,如下所示。

module led( input sys_clk50m , (*mark_debug = "true" *)output led1 ); wire clk; BUFG U1 ( .O(clk), // 1-bit output: Clock output .I(sys_clk50m) // 1-bit input: Clock input ); assign led1 = 1'b1; endmodule

点击“Run Synthesis”,如下图所示。

点击“Schematic”,如下图所示。

如果下方没有Debug这个导航栏,在Window选项卡中点出来。

按照下图所示的步骤点击“Create Debug Core...”。

在弹出来的界面中点击“OK”。

按照下图所示的步骤点击“Assign to Debug Port...”。

按照下图所示操作点击OK。

按照下图所示的配置点击“Create Debug Port”,实际上已经不需要再加这个probe了,因为已经有了一个probe0了,再添加也只能是悬空。

在弹出的界面中点击“OK”。

将led1_OBUF分配给Debug端口,如下图所示。

分配到指定的探针口,如下图所示点击“OK”。

识别到了这个probe1没有连接,于是将其删除重新进行Run Synthesis。

解决报错后,连接硬件,下图所示。

将程序下载如下图所示。

点击运行,如下图所示。

在界面中可以看到对应的变量的当前值。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 1:40:27

Hermes Agent安全配置审计工具:自动化检查与报告完整指南

Hermes Agent安全配置审计工具:自动化检查与报告完整指南 在当今数字化时代,安全配置审计已成为保障系统安全的关键环节。Hermes Agent作为一款强大的自动化安全配置审计工具,能够帮助用户快速检查系统配置漏洞并生成详细报告,有…

作者头像 李华
网站建设 2026/11/4 1:36:41

Hermes Agent容器化部署实战指南:从零到生产级配置

Hermes Agent容器化部署实战指南:从零到生产级配置 在当今的AI代理开发领域,环境一致性和部署效率是决定项目成功的关键因素。Hermes Agent作为一款功能强大的AI代理工具,支持工具调用、交互式CLI、消息集成和定时任务,通过Docke…

作者头像 李华
网站建设 2026/11/4 1:36:39

探索Hermes Agent的计算机视觉模型集成:CNN、Transformer与生成模型

探索Hermes Agent的计算机视觉模型集成:CNN、Transformer与生成模型 Hermes Agent作为一款强大的AI代理框架,在计算机视觉领域展现出卓越的集成能力,能够无缝整合CNN、Transformer及生成模型等多种视觉技术。本文将深入探讨Hermes Agent如何…

作者头像 李华
网站建设 2026/11/4 1:33:31

如何让AI记住你的习惯?Hermes Agent个性化记忆系统深度解析

如何让AI记住你的习惯?Hermes Agent个性化记忆系统深度解析 想象一下这样的场景:你正在与一个AI助手讨论一个复杂的编程项目,它准确地记得你使用的技术栈、编码风格偏好、甚至上周你提到的那个API密钥轮换策略。第二天当你再次打开对话时&am…

作者头像 李华