《基于EDA的数字电压表的设计毕业设计(论文).doc》由会员分享,可在线阅读,更多相关《基于EDA的数字电压表的设计毕业设计(论文).doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计(论文) 数字电压表毕业设计(论文)专 业:应用电子技术系 部:计算机科学与技术系设计(论文)题目:基于EDA的数字电压表的设计 2012年 6 月 6日 31毕业设计(论文) 数字电压表摘 要在计算机支持的信息技术时代,电子技术日益数字化,数字电路以及其基本单元简单化,应用单元标准化、模块化、通用化的特点,长驱直入地深入到电力、通讯、计算机、家电、机械等行业的应用。数字电压表的设计应包括三个主要部分:作为电压采样端口的模数转换单元、数据处理单元以及电压值显示单元。要求利用ADC0804模数转换器,FPGA作为数据处理的核心器件,用LED数码管进行电压值的显示。其基本原理是采用数字化测
2、量技术,对直流电压进行模数转换,转换成不连续、离散的数字形式并加以显示。关键词 模数转换器 FPGA 数据处理毕业设计(论文) 数字电压表目 录摘 要.绪 论1第一章 系统开发工具简介31. 1 EDA技术简介31. 2 VHDL简介41. 3 CPLD/FPGA的简介61. 4 QUARTUSII71. 5 设计流程9第二章 系统设计与实现102.1 设计任务和要求102. 2 设计原理10 2.2.1 模数转换器工作原理112.2.2 数据处理及显示单元122.3模数转换接口电路的设计132. 4 数据处理模块的设计142.4.1计算法进行数据处理模块的设计142.4.2查表法进行数据处理
3、模块的设计152. 5显示模块的设计17第三章 系统调试与性能分析18 3.1 仿真波形18 3.2 下载及调试19 3.3 性能分析19总结20致谢21参考文献22附录 源程序23绪 论 EDA技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。EDA技术是计算机技术与电子设计技术相结合的一门崭新的技术,给电子产品设计与开发带来了革命性的变化。随着EDA技术的发展,硬件电子电路的设计几乎可以依靠计算机完成,大大缩短了硬件电子设计的周期,从而使制造商能迅速开发出品种多、批量小的产品,满足市场的需求。已成为广泛应用于各电子信息领域的前沿技术之一,用它能克服实验室元器件品种、规模、
4、数量不足、仪器陈旧老化、实验电路板形式单调,不利于学生创新设计等缺点,对培养我们的应用能力、综合分析与设计能力和提高综合素质都具有重要的意义。 QUARTUS是ALERT公司最新推出的EDA软件工具,其设计工作完全支持VHDL、VERILOG的设计流程,其内部嵌有VHDL、VERILOG逻辑综合器。第三方的综合工具,如LEONARDO、SPECTRUM、SYNPLIFY PRO、FPGA COMPILER有着更好的综合效果,因此通常建议使用这些工具来完成VHDL/VERILOG源程序的综合。它可直接调用这第三方工具同样还具备仿真的功能,也支持第三方的仿真工具。如MODELISM。VHDL是一种
5、高级描述语言,适用于行为级和RTL级的描述,最适用于描述电路的行为。它是电子设计的主流硬件描述语言,诞生于1982年,VHDL主要用于描述数字的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。它的程序结构特点是将一项设计实体分成外部和内部两个基本点部分,其中外部为可见部分,即系统的端口,而内部为不可见部分,即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种设计实体分成内、外部分的概念是VHDL系统设计的基本点。 FPGA即现场可编程门阵列,
6、它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。FPGA采用了逻辑单元阵列LCA这样一个概念,内部包括可配置逻辑模块CLB、输出输入模块IOB和内部连线三个部分。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的
7、FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。 DVM的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表,数字化是当前计量仪器发展的主要方向之一,而高准度的DC-DVC的出现,又使DVM进入了精密标准测量领域。这个课题的目的和意义在于使自己掌握对数字电压表的理解,自己动手设计数字电压表与仿真,它可以广泛的应用于电压测量外,通过各种变换器还可以测量其他电量和非电量,测量是一种认识过程,就是用实验的方法将被测量和被选用的相同参量进行比较,从而确定它的大小。DVM广泛应用于测量领域每期测量的准确度和可信度取决于它的主要性
8、能和技术指标。所示我们要学习和掌握如何设计DVM就显得十分重要。回顾一下DVM的发展过程,大致可以分为以下三个阶段:1.数字化阶段20世纪50年代到60年代中期,DVM的特点是运用各种原理实现模/数(A/D)转换,即将模拟量转化成数字量,从而实现测量仪表的数字化。1952年,第一台问世的数字电压表是采用电子管的伺服比较式;1956年出现谐波式V/T(电压/时间变换型);1961年出现全晶体管化的逐次逼近比较式;1963年出现电压/频率(V/F)变换型(单积分式);1966年出现双积分式(双斜式)等。这一时期的显示位数是3.5-5.5位。2.高精度阶段 由于精密电测量的需要,DVM开始向高准确、
9、高位数方向发展,出现了所谓复合型原理的仪表。如1971年日本研制的TR-6567(三次采样积分式);1973年英国研制的SM-215(两次采样电感分压比较型);1972年日本研制的TR-6501型DVM已达到了8位数。与此同时对积分方案进行了改进和提高,出现了如Dana公司的6900型(7位)、Solartron公司生产的7075型(8位),其准确度可达到百万分之几。3.智能化阶段 由于电子技术、大规模集成电路(LSI)及计算机技术的发展,是人们不久就研制出微处理器( P)数字电压表,实现了DVM数据处理自动化和可编程序,因为带有存储器并使用软件支持,所以可以进行信息处理,可通过标准接口组成自
10、动测试系统(ATS)例如,Fluke公司的8506型、Solartron公司的7065型和7081型、Datron公司的1071和1281型,以及Fluke公司的最新产品8508A型等。它们除了完成原有DVM的各种功能外,还能够自校、自检,保证了自动测量的高准确度,实现了仪器、仪表的智能化。当前,智能式仪表发展十分迅速,而微处理式DVM在智能仪表中占的比重最大。智能化的DVM为实现各种物理量的动态测量提供了可能。第一章 技术与开发工具1.1EDA 技术简介1.1.1EDA技术概念 现代电子技术设计的核心就是电子设计自动化(Electronic design automation,EDA)技术。
11、利用EDA技术,电子设计师可以方便的实现IC设计、电子电路设计和PCB设计等工作。 狭义的EDA技术,就是一大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计开发工具的EDA技术。狭义的EDA技术或称为IES/ASIC自动设计技术,通过使用有关的开发软件,自动完成电子系统设计的逻辑编译、逻辑化简、逻辑分割、逻辑综合和优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。 广义的EDA技术,除了狭义的EDA技术外,还包括计算机辅助分析CAA技
12、术,印制电路板计算机辅助设计PCB-CAD技术(如Protel、OrCAD等)。在广义的EDA技术中,CAA技术和PCB-CAD技术不具备逻辑综合和逻辑适配的功能,因此它并不能称为真正意义上的EDA技术。EDA技术的三个层次: (1) EWB、PSpice、Protel的学习作为EDA的最初级内容。 (2) 利用VHDL完成对CPLD/FPGA的开发等作为中级内容。 (3) ASIC的设计作为最高级内容。1.1.2 EDA技术的主要特征 EDA技术主要有以下特征:(1) 高层综合与优化的理论与方法取得了很大的进展,其结果大大缩短了复杂的ASIC的设计周期,同时提高了设计质量。(2) 采用硬件描
13、述语言来描述10万门以上的设计,形成了国际通用的VHDL等硬件描述语言。它们均支持不同层次的描述,使得复杂IC的描述规范化,便于传递、交流、保存与修改,并可建立独立的工艺设计文档,便于设计重用。(3) 开放式的设计环境(各厂家均适合)。(4) “自顶向下”的算法。(5) 丰富的元器件模块库。(6) 具有较好的人机对话界面与标准的CAM接口。(7) 建立并行设计工程框架结构的集成化设计环境,以适应当今ASIC的特点:规模大而复杂,数字与模拟电路并存,硬件与软件并存,产品上市更新快。1.1.3 EDA技术的主要内容(1) 硬件描述语言 HDL是各种描述方法中最能体现EDA优越性的描述方法。所谓眼见
14、描述语言实际上就是一个描述工具,其描述的对象就是待设计电路系统的逻辑功能、实现该功能的算法、选用的电路结构以及其它各种约束条件等。通常要求HDL既能描述系统的行为,又能描述系统的结构。 HDL的使用与普通的高级语言相似,编制的HDL程序也需要首先经过编译器进行语法、语义的检查,并转换为某种中间数据格式。但与其它高级语言相区别的是,用硬件描述语言编制程序的最终目的是要生成实际的硬件,因此HDL中有与硬件实际情况相对应的并行处理语句。此外,用HDL编制程序时,还需注意硬件资源的消耗问题(如门、触发器、连线等的数目),有的HDL程序虽然语法、语义上完全正确,但并不能生成与之相对应的实际硬件,其原因就
15、是要实现这些所描述的逻辑功能,消耗的硬件资源将十分巨大。目前HDL主要有两种:Verilog HDL和VHDL。比较而言,VHDL是一种高级语言适用于电路高级建模,综合的效率和效果较好。VerilogHDL是一种低级的描述语言,适用于描述门级电路,容易控制电路资源,但其对系统的描述能力不如VHDL。(2) 可编程逻辑器件 可编程逻辑器件(Programmable Logic Device,PLD)是一种由用户编程来实现某种逻辑功能的新型逻辑器件。它不仅速度快、集成度高,能够完成用户定义的逻辑功能,还可以加密和重新定义编程,其允许编程次数可多达上万次。使用可编程逻辑器件可大大简化硬件系统、降低成
16、本、提高系统的可靠性、灵活性。因此,自20世纪70年代问世以后,PLD就受到广大工程人员的青睐,被广泛应用于工业控制、通信设备、智能仪表、计算机硬件和医疗电子仪器等多个领域。FPGA和CPLD最明显的特点是高集成度、高速度和高可靠性。高速度表现在其时钟延时可小至纳秒级,结合并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景;其高可靠性和高集成度表现在几乎可将整个系统集成于同一芯片中,实现所谓片上系统(System on a Chip,SoC),指的就是以嵌入式系统为核心,集软、硬件于一体,并追求产品系统最大包容的集成芯片。它是目前嵌入式应用领域的热门话题,SoC大大缩小了系统体
17、积,便于管理和屏蔽。(3) EDA软件(4) EDA软件工具主要有: Altera公司的MAX+plus II和Quartus II、Lattice公司的Expert LEVER和Synario、Xilinx公司的Foundation和Alliance、Actel公司的Actel Designer等。(5) 本次设计使用的是QuartusII软件。1.2 VHDL 简介1.2.1 简介 VHDL主要用于描述数字系统的结构,行为,功能和接口。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉
18、及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其
19、他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。 (2) VHDL语言具有强大的硬件描述能力 VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描
20、述带来较大的自由度。 (3) VHDL语言具有很强的移植能力 VHDL语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL语言的设计描述与器件无关 采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL语言程序易于共享和复用 VHDL语言采用
21、基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。1.2.2 VHDL程序组成部分 全部的VHDL程序由实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)、库(Library)5个部分组成。各组成部分的作用是:(1) 实体 用于描述所设计的系统的外部接口信号。(2) 构造体 用于描述系统内部的结构和行为。(
22、3) 配置 用于从库中选取不同单元(器件)来组成系统设计的不同版本。(4) 包集合 存放各设计模块都能共享的数据类型、常数和子程序等。(5) 库存放已经编译了的实体、构造体、包集合和配置。库可由系统工程师生成或由ASIC 芯片商提供,以便在设计中共享。1.2.3 VHDL系统优势(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模
23、拟。 (3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4) 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.3 CPLD/FPGA FPGA基本由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和
24、内嵌专用硬核(hard core)等。(1) 可编程输入/输出单元(input / output单元) 完成不同电气特性下对输入/输出信号的驱动与匹配需求。FPGA可灵活应用I/O单元的可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。常见的电气标准有LVTTL、LVCMOS、SSTL、HSTL、LVDS、LVPECL、PCI等,值得一提的是,随着ASIC工艺的飞速发展,目前可编程I/O支持的最高频率越来越高,一些高端FPGA通过DDR寄存器技术,甚至可以支持高达2Gbit/s的数据速率。(2)基本可编程逻
25、辑单元。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元几乎都是由查找表(LUT, look up table)和寄存器(register)组成的。FPGA内部查找表一般为4输入(注:altera stratix II的自适应逻辑模块ALM结构比较特殊),查找表一般完成纯组合逻辑功能。FPGA内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器(FF, flip flop),也可配置成锁存器(latch)。FPGA一般依赖寄存器完成同步时序逻辑设计。一般,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但是不同厂商的寄存器和查找表的内部结构有一定差异,而且寄
26、存器和查找表的组合模式也不同。例如,altera可编程逻辑单元通常被称为LE(logic element,逻辑单元),由一个register加一个LUT构成。altera 大多数FPGA将10个LE有机地组合起来,构成更大功能单元- 逻辑阵列模块(LAB, logic array block),LAB中除了LE还包含LE间的进位链、LAB控制信号、局部互联线资源、LUT级联链、寄存器级联链等连线与控制资源。xilinx可编程逻辑单元叫slice,它是由上下两个部分构成,每个部分都由一个register加一个LUT组成,被称为LC(logic cell),两个LC之间有一些共用逻辑,可以完成LC
27、之间的配合与级联。Lattic的底层逻辑单元叫PFU(programmable function Unit),由8个LUT和89个register构成。(3)嵌入式RAM可灵活配置为单口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等常用存储结构。CAM即content addressable memory,内容地址储存器。CAM这种存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的。不同器件商或不同器件族的内嵌块RAM的结构不同。xilinx常见的块RAM大小是4kbit和18Kbit,Latti
28、ce常用的块RAM大小是9Kbit,altera的块RAM最为灵活,一些高端器件内部同时含有3种块RAM结构,分辨是M512 RAM(512bit),M4K RAM(4Kbit),M-RAM(512Kbit)。需要补充的是,除了块RAM,xilinx和Lattice的FPGA还可以灵活的将LUT配置成RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM(distributed RAM)。(4)丰富的布线资源布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA内部根据工艺、长度、宽度和分布位置的不同而被划分为不同的等级,有一些是专用布线资源
29、,用以完成器件内部的全局时钟和全局复位/置位的布线;一些叫长线资源,用于完成器件Bank间的一些高速信号和一些第二全局时钟信号(有时也被称为Low Skew信号)的布线;还有一些短线资源,用以完成基本逻辑单元之间的逻辑互联与布线;另外,在基本逻辑单元内部还有着各式各样的布线资源和专用时钟、复位等控制信号线。(5)底层嵌入功能单元PLL(phase locked loop)、DLL(delay locked loop)、DSP、CPU等可以通过在综合、实现步骤的约束文件中编写约束属性来完成时钟模块的约束。越来越多的高端FPGA产品将包含DSP或CUP等软处理核,从而FPGA将由传统的硬件设计手段
30、逐步过渡为系统级设计平台。altera的系统级开发工具是SOPC builder 和DSP builder,通过这些平台用户可以方便地设计标准的DSP处理器(如ARM, NIOS等),专用硬件结构和软硬件协同处理模块等。xilinx的系统级设计工具是EDK和platform studio,Lattice的嵌入式DSP开发工具是MATLAB的simulink。(6)内嵌专用硬核通用性相对较弱,不是所有FPGA器件都包含硬核。 FPGA两个阵营:1.通用性较弱。目标市场范围很广,价格适中的FPGA; 2.针对性较强,目标市场明确,价格较高的FPGA。前者主要指低成本FPGA,后者主要指某些高端通信
31、市场的可编程逻辑器件。例如,altera的stratix GX器件族内部集成了3.1875Gbit/s SERDES(串并收发单元);xilinx的对应器件族是virtex II pro和virtex II proX;Lattice器件的专用hard core 的比重更大,有两类器件族支持SERDES功能,分布是lattice高端SC系列和FPGA和现场可编程系统芯片。目前Lattic和Xilinx都已经推出内嵌10 Gbit/s SERDES模块的系统级可编程逻辑器件。1.4 QUARTUS1.4.1 软件简介 QUARTUS(Multiple Array and Programming L
32、ogic User System)开发工具是Altera公司推出的一种EDA工具,具有灵活高效、使用便捷和易学易用等特点。Altera公司在推出各种CPLD的同时,也在不断地升级相应的开发工具软件,已从早起的第一代A+PLUS、第二代QUARTUS发展到第三代QUARTUS和第四代Quartus。使用QUARTUS软件,设计者无需精通器件内部的复杂结构,只需用业已熟悉的设计输入工具,如硬件描述语言、原理图等进行输入即可,QUARTUS就会自动将设计转换成目标文件下载到器件中去。QUARTUS开发系统具有以下特点。(1) 多平台。QUARTUS软件可以在基于PC机的操作系统如Windows95、
33、Windows98、Windows2000、Windows NT下运行,也可以在Sun SPAC station等工作站上运行。(2) 开放的界面。QUARTUS提供了与其他设计输入、综合和校验工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等标准。目前QUARTUS所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。(3) 模块组合式工具软件。QUARTUS具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验和下载编程4个模块,设计
34、者可以按设计流程选择工作模块。(4) 与结构无关。QUARTUS开发系统的核心Compiler(编译器)能够自动完成逻辑综合和优化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可编程器件系列,提供一个与结构无关的PLD开发环境。(5) 支持硬件描述语言。QUARTUS支持各种HDL设计输入语言,包括VHDL、Verilog-HDL和Altera的硬件描述语言AHDL。(6) 丰富的设计库。QUARTUS提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元,74系列的器件和多种特定功能的宏功能模块以及参数化的兆功能模块。调用库单元进行设计,可以大大减
35、轻设计人员的工作量,缩短设计周期。1.4.2 软件组成 QUARTUS软件采用模块化结构,包括设计输入、项目处理、项目校验和器件编程4个部分,所有这些部分都集成在一个可视化的操作环境下。(1) 设计输入QUARTUS的设计输入方法有多种,主要包括文本设计输入、原理图输入、波形设计输入等多种方式。另外,还可以利用第三方EDA工具生成的网表文件输入,该软件可接受的网表有EDIF格式、VHDL格式及Verilog格式。QUARTUS是一种层次设计工具,可根据实际情况灵活地使用最适合每一层次的设计方法。(2) 项目处理设计处理的任务就是对项目进行编译(Compile),编译实际就是将设计者编写的设计改
36、为可以用于生产的“语言”。编译器通过读入设计文件并产生用于编程、仿真和定时分析的输出文件来完成编译工作。QUARTUS提供的编译软件,只需简单的操作,如参数选择、指定功能等,就可进行网表转换、逻辑分割和布线布局。(3) 项目校验QUARTUS提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,要再用专用软件进行仿真。如果发现了错误,则应对设计输入进行部分修改直至无误。(4) 器件编程QUARTUS通过编程器(Device Programmer)将编译器生成的编程文件编程或配置到Altera CPLD器件中,然后加入实际激励信号进行测试,检查是否达到了设计要求?Altera公司器件
37、的编程方法有许多种,可通过编程器、JTAG在系统编程及Altera在线配置等方式进行。在设计过程中,如果出现错误,则需要重新回到设计输入阶段,改正错误或调整电路后重复上述过程。1.5 设计流程 使用QUARTUS进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图1-1所示:设计要求设计输入编译处理验证器件编程器件测试系统产品设计修改图1-1 设计流程图第二章 系统设计与实现2.1 设计任务和要求利用FPGA与模数转换器ADC0804设计一个数字电压表,能够测量0到5V之间的直流电压,用三个数码管显示被测电压,要求精确到小数
38、点后两位数字。了解数字电压表的工作原理,掌握可编程逻辑器件与模数转换器之间的接口电路设计及调试方法。下载并测试电路功能,分析芯片资源的占用情况。2.2设计原理数字电压表(Digital Voltmeter)简称DVM,是一种用数字显示的测量仪表。由于数字电压表具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点备受青睐。其基本原理是采用数字化测量技术,对直流电压进行模数转换,转换成不连续、离散的数字形式并加以显示。由此可知数字电压表的设计应包括三个主要部分:作为电压采样端口的模数转换单元、数据处理单元以及电压值显示单元。设计要求利用ADC0804模数转换器,FPGA作为数据处
39、理的核心器件,用LED数码管进行电压值的显示。系统结构框图如图2-1所示。图2-1系统结构框图2.2.1 模数转换器工作原理 ADC0804是用CMOS集成工艺制成的逐次比较性模数转换器芯片,分辨率为8位,转换时间100us,输入电压范围为05V,该芯片内部有输出数据锁存器。ADC0804芯片外引脚如图2-2所示。 图2-2ADC0804引脚图 其中VIN(+)、VIN(-)为ADC0804的模拟信号输入端,用以接受单极性、双极性或差模输入信号;D0D7为A/D转换器数字信号输出端,CLK IN外电路提供的时钟脉冲输入端,频率限制在100kHz1460kHz;CLKR为内部时钟发生器外接电阻端
40、,与CLK IN端配合可由芯片自身产生时钟脉冲,频率为1/1.1RC。 ADC0804的工作时序如图2-3所示,当片选信号CS/与写输入信号WR/同时为低电平时,A/D转换器启动,在WR/上升沿后100us完成模数转换,转换结果存入芯片内部的输出信号锁存器,如图2-3(a)所示。转换结束输出信号INTR/自动变为低电平,表示本次转换已结束。如CS/、读输入信号RD/同时为低电平,则数据锁存器三态门打开,数字信号送出至输出端D7D0,RD/高电平到来后数据锁存器三态门回到高阻状态,如图2-3(b)所示。 图2-3 ADC0804的时序图 (a)启动转换时序图; (b)读取转换数据时序图2.2.2
41、 数据处理及显示单元 FPGA芯片负责ADC0804A/D转换过程的启动以及转换数据的读取。同时,把读取的8位二进制数据转换成便于输出的3位LED断码送给LED数码管显示。因此FPGA部分的程序设计应包括ADC0804转换接口控制模块、译码模块,FPGA电路设计原理如图2-3所示。图2-3 电路设计原理框图 本设计采用5V参考电压,测量范围为05V,由于模数转换器件ADC0804的数字输出为8位,则电压的最小分辨率为0.02V,也就是说若转换后的数据为00H,则对应的电压值为0V,转换后的数据为01H,则对应的电压值为0.02V,以此类推,若将转换数据以一定的规则从小到大存放,则可得转换数据与
42、实际电压值,以及数据存放地址间的对应关系见表2-1。若将电压数值的每一位用4位BCD码表示(不考虑小数点),则可得表2-1所示的高四位BCD码和低四位BCD码。(1) 查表法的设计思路如下:由表2-1的对应关系,编一个查表程序,表内预先存放电压值对应的BCD码,在进行十进制数相加即可得最终电压值的BCD码。BCD(Binary Code Decimal)码就是利用4位二进制编码表示十进制数的一种编码。为了实现十进制数运算,必须了解BCD码的原理。由于BCD码表示范围为09,所以当运算结果大于9时必须进行十进制的调整,所谓十进制调整,根据已知数字逻辑原理就是将运算结果加 0110(6)进行修正,
43、如图1-5所示,程序设计时,需要注意判断两个数的和是否大于“9”。 0110 10006 1110 大于10018 0110 加0110修正14 0001 0100 (14)d的BCD码图2-5 BCD码运算示例例如:从AD0804上取得的数据为“11011110”,高四位1101对应的电压值为4.16V,其对应的BCD编码为“0100 0001 0110”,低四位1110对应的电压值为0.28V,其对应的BCD编码为“0000 0010 1000”。“0100 0001 0110”+“0000 0010 1000”=“0100 0011 1110”,其和的低四位“1110”,大于9,加6将其
44、调整为BCD码,其值为 0100,并且向前有一进位,使“0011”变为“0100”,则调整后的数据为“0100 0100 0100”,表示十进制数“4.44”,与4.16+0.28的结果相符。如果采用查表法实现数据处理,FPGA设计中需采用存储器电路、BCD码转换电路等。(2) 计算法的设计思路如下:由表2-1可知,如果将转换后的高、低四位字节数据看作是一个8位二进制数的话,电压值与转换后的数据之间有一个2倍的关系(不考虑小数点),假设转换后的数据为“11011110”,“11011110”对应的十进制数为222,2222=444,与“11011110”对应的4.44V电压值相等,而十进制数的
45、显示可以通过对10取模和取余数的方法一次获得个位、十位、百位,分别显示即可,显示时需要在最高位后加一个小数点显示。如果采用计算法实现数据处理,FPGA设计中需采用乘法、除法电路才能实现数据处理。2.3 模数转换接口电路的设计 根据模数转换芯片ADC0804的工作时序,需要完成ADC0809的初始化、A/D转换的启动、状态读取及数据读取、数据锁存等功能。采用状态机的设计思路,分4个状态完成模数转换的操作:(1) 置CS/=WR/=0,RD/=1,启动ADC0804进行模数转换操作。(2) 置CS/=WR/=RD/=1,此时ADC0804进行转换动作,转换时间100us,INTR/下降沿表示转换完成,进入下一状态。程序设计中用int、qint表示INTR/。(3) 置CS/=RD/=0,WR/=1,向ADC0804请求读取转换数据。(4) 读取数据线DB0DB7上的数据,置CS/=WR/=RD/=1。 若使用sta作为状态变量,则状态机的部分VHDL程序如下。case sta is when s0=cs=0;wr=0;rd=1;stacs=1;wr=1;rd=1; -s1状态,ADC08004进行A/D转换 if qinteventand qint=0then