基于fpga的数字电压表的设计与实现大学论文.docx

上传人:b****5 文档编号:11816027 上传时间:2023-04-03 格式:DOCX 页数:36 大小:392.53KB
下载 相关 举报
基于fpga的数字电压表的设计与实现大学论文.docx_第1页
第1页 / 共36页
基于fpga的数字电压表的设计与实现大学论文.docx_第2页
第2页 / 共36页
基于fpga的数字电压表的设计与实现大学论文.docx_第3页
第3页 / 共36页
基于fpga的数字电压表的设计与实现大学论文.docx_第4页
第4页 / 共36页
基于fpga的数字电压表的设计与实现大学论文.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

基于fpga的数字电压表的设计与实现大学论文.docx

《基于fpga的数字电压表的设计与实现大学论文.docx》由会员分享,可在线阅读,更多相关《基于fpga的数字电压表的设计与实现大学论文.docx(36页珍藏版)》请在冰豆网上搜索。

基于fpga的数字电压表的设计与实现大学论文.docx

基于fpga的数字电压表的设计与实现大学论文

 

基于FPGA的数字电压表的设计与实现

DESIGNANDIMPLEMENTATIONOF

DIGITALVOLTAGEMETERBASEDONFPGA

 

专业:

电子信息工程

姓名:

指导教师:

申请学位级别:

学士

论文提交日期:

学位授予单位:

摘要

数字电压表简称DVM,是一种通过采用数字化测量技术,把连续的模拟量(直流输入电压)转换成离散的、不连续的数字形式,并将转化结果加以显示的仪表。

本设计研究的电压表主要的设计核心是Xilinx公司的Vritex-4FPGA器件,主要分为下面几部分:

数据处理模块实现TVL571数字量对应BCD码的变换和处理;显示控制模块实现LED段码的产生。

显示部分要求在三个七段数码管上显示电压值,要求保留小数点后两位数字。

软件要求用ISE10.1环境,用VHDL语言编写数字电压表各模块的功能并进行调试与下载到FPGA板上进行验证。

关键词:

VHDL;数字电压表;FPGA;A/D;Xilinx;ISE10.1

ABSTRACT

DigitalvoltmeterisavoltagemeasuringinstrumentsthatisreferredtoasDVManditismostcommoninintelligentinstruments.DVMusedigitalmeasurementtechnologyandmakethecontinuousanalog(DCinputvoltage)intodiscontinuous,discretedigitalformanddisplayonLEDorLCD.

ThedesignofthisvoltmetermaincoreistheXilinx'sVritex-4FPGAdevices.Thevoltmetermainlydividedintothefollowingsections:

dataprocessingmoduleismainlydependontheTLV571andbasedonthisADrealizingthetransformingBCDbetweendigitalmeasurement;dispaymodulerealiazedtheproducingofthepartcode.Thevoltmeterrequirestheabilitytodisplaythemeasuredvoltagevalueinthreeseven-segmentdigitaltube,retainingtwosignificantfiguresafterthedecimalpoint.ThesoftwareofthedesignisXilinxcompany’sEDAdevelopmentenvironmentISE10.1andusingtheVHDLlanguagetowritethefunctionofthevoltmeter’seachmoduleanddebug.DownloadingtheprogramtothetheFPGAboardtoverifytheresult.

Keywords:

VHDL;volmeter;FPGA;A/D;Xilinx;ISE10.1

 

(目录页空着,我统一调整)

1绪论

1.1数字电压表的研究背景

在20世纪50年代数字电压表开始出现在生活和研究的各个方面,它在60年代得到了发展和完善。

数字电压表简称DVM,其在智能仪器的使用中是极其常见的,它将测量技术、指标数据化,把连续的输入转化为离散的数据量并加以显示。

此种电子仪表能够得以发展主要由以下两方面原因,一是因为电子计算机的普及,电子化技术已经从研究领域逐渐过渡到应用领域,在生产生活的各项研究中实现数据化、理论化,即为了实现数据控制的实时性和数据处理的可靠性;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件[1]。

所以,电子计算机的发展为数字化测量仪器的出现与发展提供了前提条件;同时,在如今低能耗、高效率的发展要求之下,完善陈旧的结构成为了测量仪器的发展趋势,这也进一步的推进了数字测量仪器的发展,同时,它也是机械化仪表向智能化仪表发展的必经之路[2]。

当下,传统的指针式电压表的市场已经被数字电压表所取代,由于传统的模拟指针式电压表具有功能单一,精度低,读数不便利以及易出错等缺点[7]。

采用现场可编程门阵列即FPGA(FieldProgrammableGateArray)为设计的系统核心,是在当智能电子产品市场背景下所要求的必然趋势。

系统最大限度地将所有器件集成在FPGA芯片上,体积大大减小、集成度高,可靠性高。

且逻辑单元控制灵活度高、范围大、集成度高,可以尽可能的使大规模电路和超大规模电路高精度的集成在芯片上,实现芯片的高效率、低功耗。

因为其硬件系统的功能是基于软件编程实现的,所以其灵活度高可在不改变原有电路的基础上实现系统的升级[14]。

基于FPGA的数字电压表由于测量精度高,速度快,读数时也非常方便,抗干扰能力强,可扩展性强等优点已被广泛应用于电子和电工测量,工业自动化仪表,自动测量系统等领域,显示出强大的生命力。

现在数字电压表已经慢慢的发展成为便携式数字测量仪表中最具有代表性的测量仪器之一[3]。

1.2数字电压表的的研究意义

随着现代化电子技术数据化进程的不断推进,数字电压表的功能越来越强,种类越来越多,其使用范围也在不断的拓进。

智能化的数字仪器的普及也是未来发展的必然方向,它们将不仅能将测量准确度提高,而且能完善电测量技术的自动化程序,以此为基础可以对各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:

温度计、湿度计、酸度计、重量、厚度仪等),几乎覆盖了电子电工测量、工业测量、自动化仪表等各个领域[18]。

采用单片机作为系统的控制核心。

输入信号经A/D转换后送到单片机进行数据处理,根据电压信号的不同计算出相应的数值,并将结果显示出来。

这种基于单片机的设计的优点是单片机技术成熟度高、设计成本也较低、编程灵活度高、运算功能性较强,能较准确地测量输入电压。

由于在单片机系统中必须使用许多独立元件连接成整体的外围电路,这就使得整个系统变得复杂度高,抗干扰能力差,可靠性较低,而且功耗高。

目前,由于FPGA技术具有快速的数据处理能力所以其被广泛应用于信号的处理和控制等相关领域。

最近成功研制了一种高速数据采集系统,这种系统将FPGA与AD转换器相结合,AD转换器的型号为ADC083000RB,具有8位双LVDS分辨率3GS/s,采样频率为3GHz带宽,用于对超高速瞬态信号进行计数。

用VHDL语言编程。

这个系统可以对脉宽为1-10和3GHz的瞬态信号进行测量和计数。

在这项工程中PD信号由模拟发生器充当,所有的计数由FPGA实现无需使用示波器。

由于其计数频率显示在LCD屏上,FPGA可以成为一种高度移动的便携检测仪[20]。

基于FPGA的数字电压表的设计其硬件功能完全由软件编程实现,修改调试方便,在不改变原有电路的基础上便可实现系统升级,克服了用单片机设计系统的缺点[17]。

1.3国内外研究概况及应用前景

科学技术的快速发展为测量仪表、仪器的出现提供了可能性,并且为此提供了新的原理和新的技术支持,新型的元、器体也应运而生,与此同时对测量仪表的要求有了更高更新的要求。

数字电压表(也称之为DVM)是以计算机技术、电子技术、精密测量技术和自动化技术为基础逐渐产生和发展起来的[8]。

数字式仪表是一种可以把连续的被测量自动地变成不连续的、用数字编码方式表示的、并以十进制数字的形式自动显示测量结果的测量仪表。

这是一种新式的测量工具,这种工具通过将计算机技术、电子技术以及自动化技术的研究成果与精密电测量技术密切的结合在一起而成为仪表、仪器领域中独树一帜的一个分支[16]。

1952年,美国的NLS公司第一个发明了四位的数字电压表,从以前到现在的的几十年中一直在进行不断的革新与改进使其功能日趋完善。

电压表是以电位差计的自动化考虑为基础研发成功的,从以前只能显示四五六位而逐渐发展到现在能在数码管上显示七八位的结果;开始是一、二种简单的工作原理渐渐发展到现在几十种复杂的原理,从最初使用电子管和继电器发展到现在用全晶体管化、集成电路化、微处理器化的器件;由一台数字电压表只能局限的测量一、两种参数到如今能大范围的测十几种参数的多用型;显示器件也从辉光数码显示发展到等离子体、发光二极管、液晶显示等。

电压表的体积和功耗变得越来越小,重量也在不断地减轻,价格也在渐渐地下降,可靠性也越来越高,量程范围越来越大[19]。

总结一下电压表的发展历程,大概可以分为以下三个阶段:

数字化阶段。

从50到60年代的中期,电压表通过运用各种原理来实现模拟量与数字量之间的变换,就是通过将模拟量转化成数字量来实现测量仪表的数字化。

高准确度阶段。

随着精密电测量准确度要求的越来越高,电压表的测量精度也在不断的提高,测量位数的范围也在不断的拓展,因此出现了一种以此为基础的复合型原理的新型仪表。

智能化阶段。

在60年代的末期,电子技术和工艺结构的发展都有了标志性的成就,此时计算机技术与大规模的集成电路(LSI)相结合的产物微处理器也应运而生。

1972年,美国的英特尔公司首第一个发明微处理器不久就研发出微处理器式数字电压表,从而实现了电压表的数据自动化处理与可编程序的功能。

由于带有存储器并使用相关的软件,因此可以对信息进行处理,也可以通过标准接口组成自动测试系统(也称之为ATS)。

这些仪表除了实现了原有的电压表的各种功能外,还能够自动检测鱼校验,保证了自动测量度的准确性,实现了仪表和仪器所说的“智能化”。

如今,智能化仪表发展的非常迅猛,在智能仪表中尤其以微处理式电压表所占的百分比最多[4]。

各种物理量的动态测量的希望由于智能化电压表的出现也越来越明朗。

2系统的软件开发环境

2.1Xilinx公司的ISE工具软件

XILINX公司是全世界领先的能都同可编程逻辑完整解决方案的厂家,同时也研发、制造并销售应用范围十分广泛的软件设计工具、高级集成电路还有定义系统级功能的IP(IntellectualProperty)核,从前到现在,一直为FPGA技术的发展做出了巨大的贡献。

同时XILINX的开发工具也一直在不断地升级,由前期研发的Foundation系列也逐渐地发展到现在的ISE9.1i系列,融合了FPGA所需要的所有功能,其主要特点主要包括下面几部分:

包含了XILINX新型SmartCompile技术,同时可以将实现的时间缩减到原来的2.5倍,并且可以在最短的时间内提供最高的性能,提供了一个功能十分强大的设计收敛环境;全面支持Virtex-5系列器件(业界第一款65nmFPGA);集成式的时序收敛环境对轻松地快速地识别FPGA设计的瓶颈有了很明显的帮助;能节省一个或多个速度等级的成本,并且能在逻辑设计中把总成本降到最低。

FoundationSeriesISE界面清晰、简单且易操作,再加上XILINX的FPGA芯片在市场上占有很大的市场,因此成为市场上最通用的FPGA工具软件也理所当然。

ISE作为高效的EDA设计工具集合,与第三方软件结合可以扬长补短,其软件功能也越来越强大,也因此为用户提供了更加丰富的XILINX平台。

2.1.1软件界面

图2-1软件界面

图2-1sources窗口中可以查看所用的芯片型号类型,顶层文件,还可以通过点击右键来创建新的文件类型如仿真波形或是IP核等,sources的类型有三种分别为Implementation、behavioralsimulation、post-routesimulation;process窗口可以实现综合、编辑管教约束文件、下载bit文件、下载等功能。

2.1.2设计流程

设计中常用的四个操作:

综合、实现、生成bit文件、下载。

ISE的功能主要分为设计输入、综合、仿真、实现和下载几个部分,涵盖了FPGA开发的全过程,从功能上讲,其工作流程不需借助任何的第三方EDA软件。

图2-2设计流程

设计输入:

ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(TheISETextEditor),用于原理图编辑的工具ECS(TheEngineeringCaptureSystem),用于生成IPCore的CoreGenerator,用于状态机设计的StateCAD以及用于约束文件编辑的ConstraintEditor等。

综合:

ISE的综合工具不仅包含了XILINX自身提供的综合工具XST,与此同时还内嵌了MentorGraphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接。

仿真:

ISE工具本身自带了一个具有图形化波形编辑功能的仿真工具HDLBencher,同时又提供了使用ModelTech公司的Modelsim进行仿真的接口。

实现:

这个功能包括了翻译、映射、布局布线等几部分,还具备了时序分析、管脚指定以及增量设计等高级功能。

下载:

下载功能包括了BitGen,可以将布局布线后的设计文件变换为位流文件,还包括了ImPACT,其功能是将设备进行配置与通信,控制将程序烧写到FPGA芯片中去。

使用ISE进行FPGA设计的各个过程可能涉及到的设计工具如表2-1所示。

表2-1ISE设计工具表

设计输入

综合

仿真

实现

下载

HDL文本编辑器

ECS原理图编辑器

STATE状态机编辑器

XST

FPGAExpress

(SynplifyLenardspectrum)

HDLBencher

(ModelSim)

Translate

MAP

PlaceandRoute

Xpower

BitGen

IMPACT

2.1.3波形仿真流程

图2-3新建一个波形文件

图2-4实现行为仿真

如图2-3所示,在sources窗口中按右键创建一个波形文件,选择所需要仿真的VHDL文件,创建完成后即为图2-4中的第一张图,在souces窗口切换到行为仿真,选择刚才创建的波形文件进行行为仿真,在process窗口中点击simulationbehavioralmodel右键选择属性将仿真时间与建立波形的时间的设成一样的。

2.2硬件描述语言VHDL

2.2.1VHDL语言简介

VHSIC(Very—High—Speed—Integrated—Circuit)HardwareDescriptionLanguage,是由美国的国防部提出的一种新型的HDL,产生于1981年,其目标是一个使电路文本使他人理解的一种标准,其主要功能是为了让他人所理解采用文本描述的设计,同时作为模型语言,可以采用软件来进行模拟操作。

1986年,IEEE(TheInstituteofElectricalandElectronicsEngineers)全力进行予以VHDL标准化的工作,经过了多次的修改和扩充,在1987年底VHDL语言被IEEE和美国国防部宣布成为为标准硬件描述语言。

1988年,Milstd454规定所有为美国国防部设计的ASIC产品一定要采用VHDL来进行描述。

1993年,IEEE又对VHDL进行了再次的修订。

从更高的抽象层次和系统描述能力上扩展VHDL的内容,加入了支持模拟描述及数/模混合描述的语言功能,使其成为了一种标准的混合型的硬件描述语言,公布了新版本的VHDL即IEEE标准的1076—1993版本。

1996年,IEEEl076.3成为VHDL综合标准。

如今,作为硬件描述语言之一的VHDL语言成为EDA工具开发商和集成电路制造商所一致认可和推广的标准硬件描述语言。

2.2.2VHDL语言的特点优势

VHDL语言可以成为标准并且得到广泛的应用,肯定有它自身一定的主要优势,或者说是与众不同的特点。

①具有强大的功能和灵活性特点:

VHDL语言语言结构功能十分强大,复杂的逻辑控制可以用最简单明确的语言来描述。

②独立于任何器件的设计:

设计人员使用VHDL语言进行硬件电路的设计时,可以脱离此项设计的逻辑器件来进行设计。

这样,设计人员就能花费大量的时间与精力来进行设计的构思。

③可进行程序的移植:

VHDL语言的移植能力是允许设计人员对需要综合设计描述来进行模拟,在综合前对一个数千门的设计描述进行模拟能省下很多的时间。

因为VHDL语言是一种标准化的硬件描述语言,因而同一个设计的VHDL语言描述能被不同的EDA工具所支持,从而使得VHDL语言程序的移植成为可能。

④性能评估能力:

不依靠器件的设计和可以进行程序移植的特点允许设计人员可以使用不同的器件结构和综合工具来对自己的设计进行综合评估。

⑤易于ASIC移植:

VHDL语言高效率的重要表现之一就是假如设计人员的设计是被综合到一个CPLD器件或FPGA器件,那么就可以使设计的产品以最快的的速度上市。

当产品的数量达到很大的规模时,采用VHDL语言可以很容易地帮助设计人员实现转成ASIC的设计。

⑥VHDL语言具有标准、规范,易于共享和复用的特点:

VHDL语言的语法标准、规范且可读性非常强。

因为VHDL语言是一种IEEE的工业标准硬件描述语言,具有严格的语法规范和统一的标准的特点,所以它可以使设计人员之间进行交流和共享[14]。

2.2.3设计中用到的语言结构

1.调用库

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

2.实体

ENTITY实体名IS

[PORT(端口表);]

ENDENTITY实体名;

以本设计中的程序为例如

entityvolmeteris

port(clk:

inSTD_lOGIC;

int:

inSTD_lOGIC;

dati:

inSTD_lOGIC_VECTOR(7downto0);

wr,rd,cs:

outSTD_lOGIC;

reset:

inSTD_lOGIC;

scan:

outSTD_lOGIC_VECTOR(2downto0);

dato:

outSTD_lOGIC_VECTOR(7downto0));

endvolmeter;

3.结构体

ARCHITECTURE结构体名OF实体名IS

[说明语句]

BEGIN

[功能描述语句]

ENDARCHITECTURE结构体名;

4.端口声明

PORT(

端口名:

端口模式数据类型;

{端口名:

端口模式数据类型});

以本设计中的程序为例如

port(clk:

inSTD_lOGIC;

int:

inSTD_lOGIC;

dati:

inSTD_lOGIC_VECTOR(7downto0);

wr,rd,cs:

outSTD_lOGIC;

reset:

inSTD_lOGIC;

scan:

outSTD_lOGIC_VECTOR(2downto0);

dato:

outSTD_lOGIC_VECTOR(7downto0));

5.自定义数据类型如

typestateis(s0,s1,s2,s3);

signalsta,led_sta:

state;

6.简单的赋值语句

赋值目标=表达式如scan<="111"

7.元件例化语句

例化名:

元件名PORTMAP(

端口名=>连接端口名,...);

如u0:

lpm_rom0portmap(address=>address_l,clock=>qclk,q=>data_l(15downto8))

8.元件声明

COMPONENT元件名IS

PORT(端口名表);

ENDCOMPONENT元件名;

如componentlpm_rom0

port

(address:

instd_logic_vector(5downto0);

clock:

instd_logic;

q:

outstd_logic_vector(7downto0)

);

endcomponent;

9.process进程语句结构

[进程标号:

]PROCESS[(敏感信号参数表)][IS]

[进程说明部分]

BEGIN

顺序描述语句

ENDPROCESS[进程标号];

如process(clk,clkcount)

begin

ifclk'eventandclk='1'then

clkcount<=clkcount+1;

endif;

qclk<=clkcount(3);

endprocess;

进程说明部分可以包含数据类型、常数、变量、属性、子程序[15]。

在一个结构体中可以包含任意个进程语句结构,所有的进程语句都是并行语句,而由任一进程PROCESS引导的语句(包含在其中的语句)结构属于顺序语句。

进程的特点

PROCESS为一无限循环语句;

PROCESS中的顺序语句具有明显的顺序/并行运行双重性;

进程必须由敏感信号的变化来启动;

进程语句本身是并行语句;

信号是多个进程间的通信线;

一个进程中只允许描述对应于一个时钟信号的同步时序逻辑;

10.case语句

CASE<表达式>IS

WHEN<选择值或标识符>=><顺序语句>;...;<顺序语句>;

WHEN<选择值或标识符>=><顺序语句>;...;<顺序语句>;

...

WHENOTHERS=><顺序语句>;

ENDCASE;

原则:

1、完全性:

表达式所有可能的值都必须说明,可以用others

2、唯一性:

相同表达式的值只能说明一次

如caseled_stais

whens0=>scan<="001";hexd<='0'&voltage(3downto0);led_sta<=s1;

whens1=>scan<="010";hexd<='0'&voltage(7downto4);led_sta<=s2;

whens2=>scan<="100";hexd<='0'&voltage(11downto8);led_sta<=s0;

whenothers=>scan<="000";hexd<="00000";led_sta<=s0;

endcase;

11.if语句

有四种形式

1)IF条件句THEN

顺序语句

ENDIF;

2)IF条件句THEN

顺序语句

ELSE

顺序语句

ENDIF;

3)IF条件句THEN

顺序语

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1