当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]与传统的微控制器相比,FPGA(现场可编程门阵列)是独一无二的,因为它们不执行顺序指令。相反,它们由一组可配置的逻辑块组成,这些逻辑块可以被重新编程以执行自定义的数字逻辑功能。这使得FPGA可以并行执行多个操作,使其在信号处理、数据处理和实时控制等特定任务中非常高效。

介绍

与传统的微控制器相比,FPGA(现场可编程门阵列)是独一无二的,因为它们不执行顺序指令。相反,它们由一组可配置的逻辑块组成,这些逻辑块可以被重新编程以执行自定义的数字逻辑功能。这使得FPGA可以并行执行多个操作,使其在信号处理、数据处理和实时控制等特定任务中非常高效。

为了定义FPGA的功能,我们使用硬件描述语言(HDL),它指定了逻辑元素应该如何配置和互连。在这个项目中,我将使用SystemVerilog,这是Verilog的高级版本,它引入了额外的特性,如增强的类型安全、断言和面向对象编程功能,使其更适合FPGA设计。

对于硬件,我使用的是Arty S7-25,这是一个基于Xilinx Spartan-7 FPGA的开发板。它在尺寸、性能和可负担性之间提供了一个很好的平衡,使其成为初学者的绝佳选择。该板具有双Arduino头,便于原型设计,以及PMOD头,允许扩展额外的外设。当我使用这个特定的板时,如果您遵循这个项目,任何来自Spartan-7家族或更高版本的Xilinx FPGA都应该兼容。

XADC (Xilinx模数转换器)

XADC是Xilinx FPGA中的集成模数转换器(ADC),使其能够处理模拟信号和数字逻辑。该功能对于电压监测、传感器数据采集和实时模拟信号处理等应用特别有用。通过将ADC直接集成到FPGA中,减少了对外部ADC组件的需求,简化了硬件设计并提高了系统集成度。

XADC的主要特性:

•双12位adc能够以高达1 MSPS(每秒百万采样)的速度采样,允许高速数据采集。

•支持多达16个外部模拟输入通道(根据FPGA封装不同而不同),支持多个传感器或信号连接。

•用于FPGA温度监测和电源电压跟踪的片上传感器,有助于系统可靠性和热管理。

•灵活的接口选项:支持AXI Lite,动态重新配置端口(DRP)或直接寄存器控制,允许与不同的FPGA设计集成。

•支持单极(0V至1V)和双极(-0.5V至0.5V)输入模式,适应各种模拟信号范围。

•可配置报警阈值,使自动警报电压或温度异常。

XADC通过弥合模拟和数字域之间的差距,增强了FPGA的多功能性,使其成为需要在基于FPGA的系统中进行实时模拟信号处理的应用的理想选择。

Vivado:赛灵思的FPGA设计软件

Vivado是Xilinx的综合FPGA设计套件,用于设计、模拟、合成和编程基于FPGA的系统。它为HDL开发提供了一个完整的工具链,包括逻辑分析仪、IP集成器和调试工具,使其成为FPGA开发必不可少的工具。无论您是实现简单的逻辑电路还是复杂的数字系统,Vivado都可以通过其高级合成(HLS),基于块的设计方法和硬件调试工具简化设计流程。

下载安装程序

访问AMD/Xilinx官方网站并导航到下载部分。

下载最新版本的统一安装程序,选择与您的操作系统(Windows或Linux)兼容的版本。

注意:您需要登录或创建一个免费的AMD/Xilinx帐户才能访问下载。

安装过程

运行安装程序并按照屏幕上的说明操作。

在安装过程中,您可以选择完全安装或自定义安装,这取决于您是否需要额外的工具,如Vitis(用于嵌入式开发)或仅用于FPGA设计的Vivado。

准备好大量下载(几gb),因此建议使用稳定且快速的互联网连接。

创建第一个项目

一旦安装了Vivado,下一步就是在AMD Vivado设计套件中创建一个新项目。本项目将作为工作空间,您将在其中编写,模拟和合成您的FPGA设计。

步骤1:创建项目

打开Vivado并从欢迎屏幕中选择Create New Project。

选择一个项目名称(例如,DisplayXADC)并选择一个方便的位置来保存项目文件。

单击Next继续。

步骤2:选择项目类型

当提示项目类型时,选择RTL项目(注册-传输级别),因为这允许您使用SystemVerilog编写设计。

启用“此时不指定源”复选框,除非您已经准备好了源文件。

单击Next继续。

步骤3:创建源文件和约束文件

进入项目后,创建一个新的源文件:选择create file→选择SystemVerilog作为文件类型。将其命名为任何您喜欢的名称(例如,xadc_display.sv)。

创建空约束文件:选择“创建文件”→确保文件类型为XDC (Xilinx Design Constraints)。将其命名为您喜欢的任何名称(例如,constraints.xdc)。稍后将使用该文件定义引脚映射、时钟约束和定时设置。

步骤4:选择FPGA板

将出现一个对话框,提示您在零件和电路板之间进行选择。

选择Boards选项卡并键入您的FPGA板型号(例如,Arty S7-25)。如果没有显示您的单板,请单击“刷新”或确保安装了单板文件。

单击Next,然后单击Finish以完成设置。

配置XADC

要在FPGA设计中使用XADC (Xilinx模数转换器),需要在Vivado中添加和配置XADC IP核。按照以下步骤正确设置:

步骤1:添加XADC IP核

在Vivado的左侧,找到并单击IP Catalog。

在搜索栏中,输入“XADC”。

选择“XADC向导”,然后双击打开其配置设置。

步骤2:自定义XADC IP

将出现一个对话框,允许您配置XADC核心。

选择接口类型:配置接口模式为DRP (Dynamic Reconfiguration Port)。这允许通过寄存器实时访问ADC转换。

选择转换模式:在模式选择下,选择“单通道”,设置为“连续模式”。这确保了ADC连续采样单个模拟输入,而不是通过多个通道循环。

禁用告警(本项目不需要):导航到“告警”页签。禁用所有警报,因为此应用程序不需要它们。这些告警通常用于监控电源电平和FPGA温度。

选择模拟输入引脚:在单通道选项卡下,找到外部模拟输入部分。为A0引脚(或FPGA上相应的ADC引脚)选择VAUXP0/VAUXN0。确切的引脚映射可能因FPGA板而异,因此请检查约束文件(.xdc)以验证正确的引脚。

步骤3:生成XADC IP核

保留所有其他设置为默认值,除非您的应用程序需要进一步定制。

单击OK关闭自定义窗口。

在下一个对话框中,选择“生成输出产品”,然后单击“生成”。

此时,将生成XADC IP核并准备将其集成到您的设计中。该模块将允许您的FPGA与模拟信号接口,例如从电位器或其他传感器读取电压电平。

代码

ConstrainFile

约束文件(.xdc)在FPGA设计中至关重要,因为它定义了项目的I/O引脚映射、时钟约束和时序要求。该文件告诉FPGA使用哪个物理引脚进行输入和输出,确保您的设计与外部硬件(如按钮,led,传感器或通信接口)正确交互。

每个FPGA板都有一个唯一的约束文件,因为不同的板有不同的引脚分配和硬件配置。

七段模块

该子模块设计用于一次控制单个七段LED显示屏。它需要一个输入时钟信号来同步显示更新和一个输入数字(十六进制0-F)。

高层模块

主模块被指定为源文件层次结构中的“顶层”模块。这个顶层模块作为设计的入口,类似于C语言编程中的主要功能。通过用清晰的层次结构构建设计,顶层模块确保所有组件有效地协同工作,使调试和扩展系统更容易。

顶层模块的角色

•它充当集成和连接设计中所有其他子模块的最高级模块。

•它定义了与FPGA外部引脚接口的I/O端口。

•它实例化其他模块的实例,在它们之间传递信号以确保正确的通信。

初始化模块实例

在顶部模块中,您将创建项目中定义的其他模块的实例。这些实例的行为类似于软件编程中的函数调用,但它们不是按顺序执行,而是并行操作。

我们首先定义它的输入和输出端口,这决定了FPGA如何与外部硬件组件交互。

时钟输入(用于同步)

模拟输入(用于从XADC读取数据)

输出控制七段显示

实例化XADC模块

接下来,我们实例化XADC模块,该模块连续采样模拟输入信号并将其转换为16位数字值。然后对这些数据进行处理,以提取相关信息进行显示。

实例化七段显示模块

由于我们正在使用两个七段显示,因此我们创建了sevenSegment模块的两个实例。这些实例接收处理过的数据并驱动相应的显示段。

数据处理和路由

来自XADC的原始数据是16位宽,但是一个7段的显示器通常一次只显示一个数字。

为了显示有意义的值,我们对16位数据进行切片,只提取高阶位,它们代表ADC转换结果的最高有效数字。

切片后的数据被发送到七段模块,在那里被转换成二进制编码格式(BCD)显示。

构建和编程

一旦编码阶段完成,我们就进入构建和编程过程,在此过程中,设计被合成、实现并转移到FPGA硬件。

步骤1:生成比特流

•在Vivado中,找到左侧面板中的“构建和调试”部分。

•点击“生成比特流”来启动这个过程。

•如果出现提示,单击“Yes”继续。

该过程包括三个主要步骤:综合:将SystemVerilog代码转换为门级表示。实现:将逻辑映射到FPGA的物理资源上。比特流生成:创建将加载到FPGA上的最终二进制文件。

此过程可能需要一些时间,具体取决于设计的复杂性和系统的性能。

步骤2:连接FPGA板

•一旦比特流成功生成,转到“打开硬件管理器”。

•现在,使用微型USB电缆将FPGA板连接到计算机。确保单板已上电。

•在硬件管理器中,点击“自动连接”。这将扫描连接的FPGA设备。将出现检测到的硬件设备列表。

步骤3:FPGA编程

•在列表中找到您的FPGA设备。

•右键单击设备,选择“程序设备”。

•将出现一个对话框,确认要使用的比特流文件(.bit)。

•点击“Program”将设计加载到FPGA上。

该程序在FPGA中是临时的,一旦电源被切断,它就会回到工厂或以前烧毁的程序。如果您想将程序刻录到FPGA中,则选择“程序eFUSE寄存器”,这将刻录程序,并且在电源周期后不会丢失。

布线

在这个项目中,我使用IO0到IO13引脚连接两个七段LED显示屏。这些引脚被分配来控制单个LED段。

连接七段显示器

•根据您的设计将7段LED段连接到IO0-IO13。

•应相应地连接公共地(用于公共阴极显示器)或公共电源(VCC)(用于公共阳极显示器)。

•确保显示模块的地与FPGA的地相连,完成电路。

自定义Pin分配

•可以根据项目需要更改这些pin分配。

•如果修改了pin分配,则必须相应地更新约束文件(.xdc)以反映新的连接。

•验证七段显示器与FPGA的I/O电压水平的电压兼容性(例如,3.3V逻辑用于Arty S7-25)。

连接XADC电位器

•您可以使用任何通用的10K电位器作为模拟输入设备。

•连接方式:一端接VCC (3.3V)。另一端到GND。中间(雨刷)引脚到XADC输入引脚(VAUXP0/VAUXN0,如约束文件中定义)。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭