基于VHDL的数字电压表设计论文.docx
《基于VHDL的数字电压表设计论文.docx》由会员分享,可在线阅读,更多相关《基于VHDL的数字电压表设计论文.docx(60页珍藏版)》请在冰豆网上搜索。
基于VHDL的数字电压表设计论文
摘要
VHDL(即超高速集成电路硬件描述语言)是随着可编程逻辑器件(PLD)的发展而发展起来的一种硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,是电子设计自动化(EDA)的关键技术之一。
它采用一种自上而下(top-down)的设计方法,即从系统总体要求出发,自上至下地逐步将设计容细化,如划分为若干子模块,最后完成系统硬件的整体设计。
它支持设计库和可重复使用的元件生成,支持阶层设计,提供模块设计的创建。
VHDL设计技术对可编程专用集成电路(ASIC)的发展起着极为重要的作用。
本电压表的电路设计正是用VHDL语言完成的,完成电压数据的采集、转换、处理、显示。
此次设计主要应用的软件是美国ALTERA公司自行设计的一种QuartusⅡ。
本次所设计的电压表的测量围是0~5V,精度为0.02V。
关键词:
电子设计自动化;VHDL;A/D采集;数字电压表
Abstract
VHDL(i.e.,ultrahighspeedintegratedcircuithardwaredescriptionlanguage)iswiththedevelopmentofprogrammablelogicdevices(PLD)anddevelopedakindofhardwaredescriptionlanguage,ismainlyusedtodescribethestructureofthedigitalsystem,behavior,functionandinterfaceofelectronicdesignautomation(EDA)isoneofthekeytechnologies.
Itusesatop-downdesignmethod,namelyfromtheoverallsystemrequirements,fromtoptodowngraduallytorefinedesigncontent,suchasdividedintosubmodules,finallycompletedtheoveralldesignofthesystemhardware.Itsupportsdesignlibraryandreusablecomponentstogenerate,supporttheclassdesign,moduledesigncreation.VHDLdesigntechnologyofprogrammableapplication-specificintegratedcircuit(ASIC)playsaveryimportantroleinthedevelopment.
ThecircuitofthedesignthatuseVHDLlanguagetocomplete,thevoltmetercancompletecollectionofvoltagedata,conversion,treatmentanddisplay.ThethistimedesignisprimarilytheappliedsoftwareisQuartusⅡ.whichismadebytheUnitedStatesALTERAcompany.Thissystem’srangeis-5vto+5vandprecisionis0.02v.
Keywords:
ElectronicDesignAutomation;VHDL;A/DAcquisitiondigitalvoltage
1绪论1
1.1课题背景和意义1
1.2FPGA设计特点1
1.3FPGA设计流程2
1.4硬件描述语言VHDL3
1.4.1VHDL的发展3
1.4.2VHDL的特点4
1.5VHDL语言的设计流程5
1.6QuartusII开发平台简介5
1.6.1Quartus‖软件介绍5
1.6.2Quartus‖设计输入6
1.6.3文本设计输入方式6
1.6.4QuartusII设计仿真8
2设计任务与要求12
3设计方案13
4各器件的选择15
4.1A/D转换器ADC0809控制电路15
4.1.1ADC0809的功能介绍15
4.1.2ADC0809引脚介绍16
4.1.3ADC0809芯片的控制方法及转换过程16
4.2BCD码18
4.2.1BCD码的介绍18
4.2.2BCD码的运算19
4.3译码,显示电路19
5功能模块20
5.1ADC0809(ad)20
5.2Dataprocess23
5.3Leddisplay27
5.4顶层模块设计29
结论31
致32
参考文献33
附录A英文原文34
附录B汉语翻译45
1绪论
1.1课题背景和意义
随着信息技术获得了突飞猛进的发展,信息技术渗透了我们生活的几乎全部领域,改变着人类的生存状态和思维模式。
而我们的课题所涉及的电子设计自动化(EDA)技术就是在这种时代背景下产生的,并影响巨大[1-3]。
FPGA是新型的可编程逻辑器件,与传统ASIC相比,具有设计开发周期短、设计制造成本低、开发工具先进等优点,特别适合于产品的样品开发和小批量生产。
传统的数字电压表多以单片机为控制核心,芯片集成度不高,系统连线复杂,难以小型化,尤其在产品需求发生变化时,不得不重新布版、调试,增加了投资风险和成本[4]。
而采用FPGA进行产品开发,可以灵活地进行模块配置,大大缩短了开发周期,也有利于数字电压表向小型化、集成化的方向发展。
随着电子技术的发展,当前数字电子系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。
推动该潮流发展的引擎就是日趋进步和完善的ASIC设计技术。
目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能的要求,自上而下的完成相应的描述、综合、优化、仿真与验证,直接生成器件。
上述设计过程除了系统行为和功能描述以外,其余所有的设计几乎都可以用计算机来自动完成,也就说做到了电子设计自动化(EDA)这样做可以大大的缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求[5,6]。
伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,己经广泛应用于模拟与数子电路系统等许多领域。
目前电子技术的发展主要体现在EDA领域,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。
电子设计自动化是近几年迅速发展起来的将计算机软件、硬件、微电子技术交叉运用的现代电子设计学科[7,11]。
其中EDA设计语言中的VHDL语言是一种快速的电路设计工具,功能涵盖了电路描述、电路合成、电路仿真等三大电路设计工作。
本电压表的电路设计正是用VHDL语言完成的。
此次设计主要应用的软件是美国ALTERA公司自行设计的QuartusII[8]。
1.2FPGA设计特点
FPGA设计的特点如下:
(1)硬件设计软件化
这是FPGA开发的最大优势。
传统硬件电路设计先要进行功能设计,然后进行电路板级设计并做称电路板后进行调试,如果电路中有什么错误,整个电路板都将作废,这是很不经济的。
FPGA的开发在功能层面上可以完全脱离硬件而在EDA软件上做软仿真。
当功能确定无误后可以进行硬件电路板的设计。
最后将设计好的,由EDA软件生成的烧写文件下载到配置设备中去,进行在线调试,如果这时的结果与要求不一致,可以立即更改设计软件,并再次烧写到配置芯片中而不必改动外接硬件电路。
(2)高度集成化,高工作频率
一般的FPGA部都集成有上百万的逻辑门,可以在其部规划出多个与传统小规模集成器件功能相当的模块。
这样将多个传统器件集成在同一芯片部的方法不但可以改进电路板的规模,还可以减少PCB布线的工作。
由于各个模块都是集成在FPGA芯片部,这就很大程度地解决了信号的干扰问题,使得FPGA的工作频率可以大幅度的提高。
另外,一般的FPGA部都有PLL倍频的时钟,这进一步解决了电磁干扰和电磁兼容问题[9,10]。
(3)支持多种接口
FPGA芯片可支持多种标准的接口电平,可通过EDA开发工具来选定采用什么样的接口标准,包括常用的TTL和差分输入等。
这便于后端各种不同接口电路的匹配。
1.3FPGA设计流程
可编程逻辑器件的设计是利用EDA开发软件和编程土具对器件开发的过程。
它包括设计准备、设计输入、功能仿真、设计处理、时序仿真和器件编程及测试等六个步骤。
(1)设计准备
在系统设计之前,首先要进行方案论证、系统设计和器件选择等准备工作。
一般采用自上而下的设计方法,也可采用传统的自下而上的设计方法。
(2)设计输入
设计输入将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程称为设计输入。
设计输入通常有以下集中形式:
1)原理图输入方式
2)硬件描述语言输入方式
3)波形输入方式
(3)功能仿真
功能仿真也叫做前仿真。
用户所设计的电路必须在编译之前进行逻辑功能验证,此时的仿真没有延时信息,对于初步的功能检测非常方便。
仿真中如发现错误,则返回设计输入中修改逻辑设计。
(4)设计处理
设计处理是器件设计中的核心环节。
在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合优化和适配,最后产生编程用的编程文件。
主要有:
1)语法检查和设计规则检查
2)逻辑优化和综合
3)适配和分割
4)布局和布线
(5)时序仿真
时序仿真又称后仿真或延时仿真。
由于不同器件的部延时不一样,不同的布局布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竟争冒险等是非常有必要的。
(6)器件编程测试
时序仿真完成后,软件就可产生供器件编程使用的数据文件。
1.4硬件描述语言VHDL
1.4.1VHDL的发展
VHDL的英文全名是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage。
VHDL是20世纪80年代中期,由美国国防部资助的VHSIC项目开发的产品。
VHDL于1987年由国际标准化组织IEEE(IEEESTD1076_1987)所确认。
1993年,IEEE1076标准被升级、更新,新的VHDL标准为IEEESTD1076_1993。
1996年,IEEE1076.3成为VHDL综合标准。
VHDL的语法丰富、数据类型繁多,是描述能力很强的的一种硬件描述语言,能在高层次上以系统的行为进行描述和仿真。
VHDL非常适用于可编程逻辑器件的应用设计,并正在得以普及。
目前,几乎所有的EDA厂商出品的EDA软件都兼容这种标准。
硬件描述语言(hardwaredescriptionlanguage,HDL)是电子系统硬件行为描述,结构描述,数据流描述的语言.目前,利用硬件描述语言可以进行数字电子系统的设计.随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计也正在探索中。
国外硬件描述语言种类很多,有的从Pascal发展而来,也有一些从C语言发展而来.有些HDL成为IEEE标准,但大部分是企业标准.VHDL来源于美国军方,其他的硬件描述语言则多来源于民间公司.可谓百家争鸣,百花齐放.这些不同的语言传播到国,同样也引起了不同的影响.在我国比较有影响的有两种硬件描述语言:
VHDL语言和VerilogHDL语言.这两种语言已成为IEEE标准语言[12,15]。
1.4.2VHDL的特点
VHDL描述能力非常强。
它比其他的HDL有更高层次的描述。
甚至在有时描述过程中中有算法的描述,而无硬件的痕迹。
因此,VHDL在CPLD/FPGA的应用方面较为广泛;VHDL可以用比较少的篇幅将一个复杂的问题描述得很清楚。
同时,VHDL指令代码多,数据类型丰富,既有可以用于仿真系统的指令,又有可用于综合的语句。
因此VHDL使用起来非常灵活。
可以说,在几种硬件描述语言中,VHDL是描述能力最强的一种语言。
与其他硬件描述语言相比,VHDL具有以下特点:
1)功能强大:
灵活性高:
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来进行复杂控制逻辑的设计。
同时VHDL还支持层次化的设计,支持系统元件库和用户设计的元件库。
目前,VHDL已成为一种设计、仿真、综合的标准硬件描述语言。
2)器件无关性:
VHDL允许使用者在进行设计时,不需要首先选择一个具体的器件。
对于同一个设计描述,可以采用多种不同的器件结构来实现其功能。
因此,在设计描述阶段,设计者可以集中精力于从事设计构思和优化。
当设计、仿真通过后,在指定具体的器件综合、适配即可。
3)可移植性:
VHDL是一种标准语言,故采用VHDL进行的设计可以被不同的EDA工具所支持。
可以从一个仿真工具移植到另一个仿真工具,可以从一个综合工具移植到另一综合工具,也可以从一个工作平台移植到另一个工作平台。
在一个EDA工具中采用的技术技巧在其他工具中同样可以采用。
4)自顶向下的设计方法:
自顶向下的设计方法是将要设计的电路进行最顶层的描述,然后利用EDA软件进行顶层仿真,如果顶层设计的仿真以满足要求,则可以继续将顶层划分的模块进行低一级的划分并仿真,这样一级一级的设计最终将完成整个电路的设计。
5)数据类型丰富:
作为硬件描述语言的一种,VHDL数据类型丰富。
除了VHDL自身预定的10中数据类型外在VHDL程序设计中还可以由用户自定义数据类型。
特别是std_logic数据类型的使用,使得VHDL能最真实地模拟电路中的复杂信号。
6)建模方便:
由于VHDL中可综合的语句和用于仿真的语句齐备,行为描述能力强,因此VHDL特别适合信号建模。
目前支持VHDL的综合器能对复杂的算数描述进行综合(如Quartus‖2.0以上的版本都能对std_logic_vector类型的数据进行加、减、乘、除),因此对于复杂电路的建模,VHDL无论仿真还是综合都是非常合适的描述语言。
7)运行库和程序包丰富:
目前支持VHDL的程序包很丰富,大多以库的形式存放在特定的目录下,用户可随时调用。
在CPLD/FPGA综合时,还可以使用EDA软件商提供的各种库和程序包。
而且用户利用VHDL编写的各种成果都可以以库的形式存放,在后续的设计中可以继续使用[13,14]。
1.5VHDL语言的设计流程
采用VHDL语言设计硬件电路系统的设计流程一般可以分为以下几个步骤。
①硬件电路系统设计要求的定义。
②编写描述硬件电路系统功能的VHDL语言程序。
③VHDL语言程序的模拟。
④VHDL语言的综合、优化和布局布线。
⑤布局布线后的设计模拟。
⑥器件的编程。
设计人员在从事硬件电路系统的合计过程中,编写VHDL语言程序之前必须对硬件电路系统的设计目的和设计要求有一个非常明确的认识才行[17]。
1.6QuartusII开发平台简介
1.6.1Quartus‖软件介绍
QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。
QuartusII在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plusII的更新换代产品,其界面友好,使用便捷。
在QuartusII上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。
1.6.2Quartus‖设计输入
QuartusII的设计过程主要由设计输入、设计编译、设计仿真和器件编程4部分组成。
QuartusII软件的基本设计流程如图1.1所示。
图1.1Quartus‖软件的基本设计流程
Quartus‖软件的设计输入方式分多钟,主要包括文本输入方式、原理图设计输入方式、波形设计输入方式、EDIF输入文件方式、图形设计输入方式和轰功能模块输入方式等。
设计人员可以根据自己的实际情况灵活选择使用[16]。
1.6.3文本设计输入方式
Quartus‖软件支持VHDL、VeriogHDL和AHDL等硬件描述语言。
下面将介绍Quartus‖8.1开发软件的文本设计输入的使用方法。
1)建立设计项目
无论哪一种输入方式,首先必须建立一个项目。
所建立的项目名称要保证和设计名称一致,以便于Quartus‖软件的编译。
打开QuartusII,在File菜单中选择NewProjectWizard项,将出现工程项目建立向导对话框,点击Next,然后会出现如图1.2所示的新建项目向导对话框,此次对话框用于登记项目所在文件夹、设计项目名称和项目顶层文件实体名。
设计项目名称和顶层文件实体名可以相同,在多层次系统设计中,一般与设计项目同名的设计实体作为顶层文件。
本例以shili为例。
图1.2建立新项目向导对话框
然后单机Finish按钮,完成设计项目的建立。
2)输入文本文件
输入文本文件的操作步骤如下:
选择菜单命令下的“File—New”,弹出如图1.3所示的新建文件对话框。
选中VHDLFile,单击OK按钮,弹出一个无名称的文本编辑窗口,可以在此文本编辑窗口中输入VHDL文件。
图1.3新建文佳对话框
输入完成后,选择菜单命令:
“File—SaveProject”,保存整个设计项目;或者选择菜单命令:
“File—Save”,保存当前设计文件。
注意保存文件名要和实体名一致。
1.6.4QuartusII设计仿真
1)创建波形文件
选择菜单命令“File—New—VectorWaveformFile”,如图1.4所示,然后单击OK按钮,就会出现一个无标题的波形编辑窗口,如图1.5所示。
图1.4建立仿真波形文件对话框
图1.5新建仿真波形编辑窗口
2)创建输入输出向量
创建输入输出向量操作步骤如下:
依次选择菜单命令“Edit—Insert—InsertNodeorBus”,或者在向量编辑窗口空白位置处(黑粗矩形框空白位置)单击鼠标右键,在右键下拉菜单中选择“Insert—InsertNodeorBus”,如图1.6所示。
图1.6仿真波形编辑窗口
InsertNodeorBus对话框中提供了被添加Node或Bus的名称、类型、数值类型、数制类型和总线宽度等属性。
如图1.7所示
图1.7添加Node或Bus对话框
在图1.7中单击”NodeFound”按钮,就会弹出NodeFound对话框,如图1.8所示。
在“Filter”栏中选择“Pins:
all”,单击“List”按钮,可以发现“NodeFound”中列出了shili.vhd文件中所有的输入输出向量。
可以通过“≥”、“>>”、“≤”及“<<”4个按钮将Node添加到“SelectedNodes”栏中或者从“SelectedeNodes”栏中删除,“≥”和“≤”按钮只能对单个操作有效,“>>”和“<<”按钮对所有Nodes有效。
添加完成后,点击“OK”按钮,在设置输入完成后,就可以仿真波形了。
图1.8仿真波形编辑窗口
2设计任务与要求
要求利用FPGA控制模块数转换器对外部输入的模拟信号进行采样,获取当前电压值,并在数码管上显示。
传统的数字电压表设计通常以大规模ASIC(专用集成电路)为核心器件,辅以少量中规模集成电路及显示器件构成。
ASIC完成从模拟量的输入到数字量的输出,是数字电压表的心脏,这种电压表的设计简单、精确度高,但是这种设计方法由于采用了ASIC器件使得的它欠缺灵活性,其系统功能固定,难以更新扩展。
后来发展起来的微处理器(单片机)控制通用A/D转换器件的数字电压表的设计的灵活性有所提高,系统功能的扩展性变得简单,但是由于微处理机的引脚数量有限,其控制转换速度和灵活性还是不能满足日益发展的电子工业的需求。
而应以EDA技术及FPGA,其集成度高、速度快、性能十分可靠、用户可自由编程且编程语言通俗易懂、系统工程扩展非常方便。
采用FPGA芯片控制通用A/D转换器可是速度、灵活性大大优于微处理器和通用A/D转换器构成的数字电压表。
1能够实现一个通道的采样控制;
2产生ADC0809工作所需的各种控制信号;
3计算转换后的数字电压信号,并以BCD码方式表示。
3设计方案
方案一:
利用ADC0809作为电压采样端口,FPGA作为系统的核心器件,用LED进行数码显示,把读取的8位二进制数据转换成便利于输出3位十进制BCD码送给数码管。
采用FPGA芯片作为系统的核心器件,负责ADC0809的A/D转换的启动、地址锁存、输入通道的选择、数据的读取。
同时,把读取的8位二进制数据转换成便于输出3位十进制的BCD码送给数码管,以显示当前测量电压值。
这些工作由ADC0809转换控制模块、数据转换模块、译码模块完成。
图3.1数字电压表系统模块
方案二:
基于VHDL语言的系统设计是采用自顶向下的设计方法,将系统划分为多个功能模块,然后再逐个实现各个模块的功能,最终把他们组合在一起,形成一个大的系统。
本系统共分为6个模块,分别为时钟分频(div_f)、数据采集控制(cs_control)、数据串转并(chuan2bing)、显示数值计算(data_calculate)、数码管扫描(led_select)、显示译码(led_translate)。
在设计中,主要采用分模块的方式,先实现各个模块,然后组成整个系统。
主要分为如下几个模块:
时钟分频(div_f)、数据采集控制(cs_control)、数据串转并(chuan2bing)、显示数值计算(data_calculate)、数码管扫描(led_select)、显示译码(led_translate)。
其中时钟分频主要用计数器实现,采样数据暂存于一寄存器。
利用TLC549就可以采集外部模拟电压的大小并转换成数字信号,通过串行输入到控制器,经过控制器对数据处理如计算成实际电压、保留三位小数,再经过控制器设计的数码管控制模块控制四个数码管显示处理过后的数据,就实现了将外部电压值显示在数码管的功能,这样就实现了数字电压表的显示。
这里我们采用方案一。
4各器件的选择
4.1A/D转换器ADC0809控制电路
4.1.1ADC0809的功能介绍
利用ADC0809作为电压采样端口,FPGA作为系统的核心器件,用LED进行数码显示,把读取的8位二进制数据转换成便于输出3位十进制BCD码送给数码管。
由FPGA设计的ASIC芯片:
一方面产生ADC0809的控制信号,控制ADC0809实现0~5v的模拟电压到8位数字量DB0~DB7的变换;
另一方面将读入的数字量转化成电压工程值,并转换为3位BCD码的七段数字显示字符码送到LED数码管进行显示。
FPGA构成的ASIC芯片中包括三部分电路:
(1)用有限状态机设计的A/D转换控制电路;
(2)将8位数字量DB0~DB7转换为3位BCD码的电压值的转换电路;
(3)3