东北石油大学
课 程 设 计
2
东北石油大学课程设计成绩评价表
东北石油大学课程设计任务书
课程 硬件课程设计
题目 数字电压表设计
专业 计
主要内容、基本要求等
一、主要内容:
利用EL 教学实验箱、微机和Quartus Ⅱ软件系统,使用VHDL 语言输入方法设计数字钟。可以利用层次设计方法和VHDL 语言,完成硬件设计设计和仿真。最后在EL 教学实验箱中实现。
二、基本要求:
1、 A/D转换接口电路的设计,负责对ADC0809的控制。
2、 编码转换电路设计,负责把从ADC0809数据总线中读出的电压转换成BCD 码。
3、 输出七段显示电路的设计,负责将BCD 码用7段显示器显示出来。
三、扩展要求
1. 当测量结束后,蜂鸣器鸣响10声。
按照规范写出论文,要求字数在4000字以上,并进行答辩。论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA 技术的现状和发展趋势、对EL 教学实验箱和Quartus Ⅱ软件的掌握程度、数字钟的设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。
完成期限 2周
指导教师
专业负责人
年 月 日
目录
第1章 概述 ....................................................... 1
1.1 引言 . .................................................................................................................................. 1
1.2 EDA 简介 . ........................................................................................................................... 2
1.3 VHDL简介 . ......................................................................................................................... 3
1.4 Quartus II简介 . ............................................................................................................. 4
第2章 数字电压表的系统分析 ....................................... 5
2.1设计目的............................................................................................................................. 5
2.2功能说明 . ........................................................................................................................... 5
2.3实验原理 . ........................................................................................................................... 5
2.4系统硬件 . ........................................................................................................................... 5
第3章 数字电压表设计 ............................................. 6
3.1 总体框图 . .......................................................................................................................... 6
3.2 状态机 . .............................................................................................................................. 6
3.2.1 采样状态机结构框图 . .......................................................................................... 6
3.2.2 VHDL代码 . ........................................................................................................... 7
3.3转换BCD 码 . ....................................................................................................................... 9
3.3.1模拟输入电压与输出电压的对应关系 ................................................................ 9
3.3.2 VHDL代码 . ........................................................................................................... 10
3.4 七段显示电路 . ................................................................................................................ 12
3.4.1 VHDL代码 . ........................................................................................................... 12
3.5 顶程设计 . ........................................................................................................................ 14
3.5.1 VHDL代码 . ........................................................................................................... 15
第4章 数字电压表的测试与运行 .................................... 17
4.1数字电压表的编译与仿真 . ............................................................................................. 17
4.1.1数字电压表的编译 . ............................................................................................. 17
4.1.2数字电压表的逻辑电路图 . ................................................................................. 17 . ........................................................................................................................................ 18
4.1.3数字电压表的功能仿真图 . ................................................................................. 18
4.2数字电压表的适配与测试 . ............................................................................................. 19
4.2.1 引脚适配 . ............................................................................................................ 19
4.2.2 试验箱结果 . ........................................................................................................ 20
结论 ............................................................. 21
参考文献 ......................................................... 22
第1章 概述
1.1 引言
数字电压表(Digital Voltmeter )简称DVM ,是诸多数字化仪表的核心与基础。以数字电压表为核心扩展成的各种数字化仪表,几乎覆盖了电子电工测量、工业测量、自动化系统等各个领域。它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表,它是诸多数字化仪表的核心与基
础。电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示, 这有别于传统的以指针加刻度盘进行读数的方法, 避免了读数的视差和视觉疲劳。目前数字电压表的内部核心部件是A/D转换器, 转换器的精度很大程度上影响着数字电压表的准确度。 随着计算机与微电子技术的发展,电子设计自动化EDA 领域已成为电子技术发展的主体,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流发展的引擎,就是日趋进步和完善的FPGA (Field Programmable Gate Array,现场可编程门阵列)设计技术。而电子设计自动化,是将计算机软件、硬件、微电子技术交叉运用的现代电子设计学科,其中EDA 设计语言中的 VHDL 语言是一种快速的电路设计工具,功能涵盖了电路描述、电路合成、电路仿真等三大电路设计工作。 该数字电压表的电路设计,正是用VHDL 语言完成的。此次设计主要应用美国Altera 公司自行设计的一种CAE (Computer Aided Engineering,计算机辅助工程)软件工具,即Quartus II 软件。 数字电压表出现在50年代初,60年代末发展起来的电压测量仪表,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。所以,数字化测量仪表的产生和发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦琐和陈旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。
1.2 EDA 简介
EDA 是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD )、计算机辅助制造(CAM )、计算机辅助测试(CAT )和计算机辅助工程(CAE )的概念发展而来的。EDA 技术就是以计算机为工具,设计者在EDA 软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作[1]。EDA 技术的出现,极大地提高了电路设计的效率和可行性,减轻了设计者的劳动强度。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD 、FPGA )的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA 技术的迅速发展[2]。
EDA 在通信行业(电信)里的另一个解释是企业数据架构,EDA 给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。
EDA 在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA 课程。主要是让学生了解EDA 的基本概念和基本原理、掌握用HDL 语言编写规范、掌握逻辑综合的理论和算法、使用EDA 工具进行电子电路课程的实验验证并从事简单系统的设计。一般学习电路仿真工具(如multiSIM 、PSPICE )和PLD 开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础[3]。
现在对EDA 的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA 的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA 技术。
从目前的EDA 技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。
1.3 VHDL简介
VHDL 全名Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL 被IEEE 和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版) 之后,各EDA 公司相继推出自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL 接口。1993年,IEEE 对VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL 的内容,公布了新版本的VHDL ,即IEEE 标准的1076-1993版本,简称93版。VHDL 和Verilog 作为IEEE 的工业标准硬件描述语言,得到众多EDA 公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL 翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC [5]。
与其他硬件描述语言相比,VHDL 具有以下特点:
(1) 功能强大、设计灵活
(2) 支持广泛、易于修改
(3) 强大的系统硬件描述能力
(4) 独立于器件的设计、与工艺无关
(5) 很强的移植能力
(6) 易于共享和复用
优势:
(1)与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已
有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的把VHDL 描述设计转变成门级网表。
(5)VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
1.4 Quartus II简介
Quartus II 是Altera 公司的综合性PLD 开发软件,支持原理图、VHDL 、VerilogHDL 以及AHDL (Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。
Quartus II 可以在XP 、Linux 以及Unix 上使用,除了可以使用Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II设计流程如图1—1所示:
图 1—1 Quartus II设计流程
第2章 数字电压表的系统分析
2.1设计目的
1. 本次实验通过vhdl 硬件语言编写 ADC0809 模数转换器的控制程序。
2. 掌握控制原理, 并进一步掌握采用有限状态机产生控制信号的原理。
3. 掌握十六进制转十进制的运算方法。
5. 掌握vhdl 的编程思路。
2.2功能说明
1. 具有数字管显示当前电压值的功能。
2. 具有复位功能。
2.3实验原理
在同一EPLD 芯片EPF10K10上集成了如下电路模块:
1.数字电压表的实现。
2.模拟电压量通过电位器进行改变。
3.把ADC0809A/D转换器进行采集。
4. 通过转换器内部的功能实现把电压模拟量转化为数字量的过程。
5. 按照单片机所给的地址,ADC0809芯片把已经转化好的数据传入到单片机中。
6. 在单片机里通过原件程序设计实现对数字电压表量程的控制。
2.4系统硬件
1.可变直流电平输出电路。
2.A/D0809。
3.七段显示器。
4.EPF10K10LC84-4适配器。
第3章 数字电压表设计
3.1 总体框图
总体框图如图3—1所示
图3—1总体框图
3.2 状态机
3.2.1 采样状态机结构框图
在一个完整的采样周期中,状态机中最先被启动的是以CLK 为敏感信号的时序进程,接着组合过程COM 被启动,因为它们以信号current_state 为敏感信号。最后被启动的是锁存进程,它是在状态机进入状态st4后才被启动的,即此时LOCK 产生了一个上升沿信号,从而启动进程LATCH1,将0809在本采样周期输出的8位数据锁存到寄存器中,以便外部电路能从Q 端读到稳定正确的数据。 状态机结构框图如图3—2所示:
图3—2状态机结构框
3.2.2 VHDL代码
LIBRARY IEEE; --A/D0809 use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity ad is
port(ST,eoc:in std_logic; --控制端口 d:in std_logic_vector(7 downto 0); oe,sta,ale,adda:out std_logic; q:out std_logic_vector(7 downto 0)); end ad;
architecture a of ad is
type states is(st0,st1,st2,st3,st4,st5,st6); --7个状态 signal c_state,n_state:states :=st0; signal regl:std_logic_vector(7 downto 0); signal lock:std_logic; begin adda
com:process(c_state,eoc) begin
case c_state is
when st0=>ale
when st1=>ale
when st2=>ale
when st3=>ale
else n_stateale
when st5=>ale
when st6=>ale
when others=>n_state
reg:process(st) begin
if(st'event and st='1') then c_state
lo:process(lock) --锁存 begin
if(lock'event and lock='1') then regl
q
3.3转换BCD 码
3.3.1模拟输入电压与输出电压的对应关系
当参考电压(Vref )为2.56V 时,模拟输入电压与输出电压的对应关系如表3—3所示:
这样由ADC0809收到的信号是01110110(76H ),则对照表52-1时,高4位0111的电压为2.24V ,而低4位0110是0.12V ,所以最后的电压输出结果为2.24+0.12=2.36V。对于数据转换成BCD 码,我们必须设计一个12位的BCD 码加法器,如上述的2.24V 的二进制表示为:[1**********]0、0.12V 是[1**********]0,所以其相加结果为[1**********]0,为2.36V 。提示:在读取到转换数据后,先用查表的指令算出高、低4位的两个电压值,并分别用12位的BCD 码表示。接着设计12位的BCD 码加法。相加从最低4位开始,且每4位相加结果超过10时需作进位动作。
3.3.2 VHDL代码
――BCD 8位转12 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BCD IS
PORT (V:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
HB,LB:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0); BVALUE:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0); BCD_L,BCD_M,BCD_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END BCD;
ARCHITECTURE A OF BCD IS BEGIN
P1:PROCESS(V(7 DOWNTO 4))
BEGIN --A/D输出高4位转换 分辨率0.32V
IF V(7 DOWNTO 4)="1111" THEN HB
P2:PROCESS(V(3 DOWNTO 0)) BEGIN --A/D输出低4位转换 分辨率0.02V
IF V(3 DOWNTO 0)= "1111" THEN LB
BV ALUE
V ARIABLE JJ:STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN JJ:=BVALUE;
IF (JJ(3 DOWNTO 0)>"1001") THEN ――如果12位结果中,低4位 JJ:=JJ+"[1**********]0"; ――大于9 则低4位加6 END IF;
IF(JJ(7 DOWNTO 4)>"1001") THEN ――如果中间的4位大于9 JJ:=JJ+"[1**********]0"; ――则中4位加6 END IF;
BCD_L
END A;
3.4 七段显示电路
3.4.1 VHDL代码
――3选1 数据选择器 LIBRARY ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity mux3_1 is
port(sel:in std_logic_vector(1 downto 0); A,B,C:in std_logic_vector(3 downto 0); Mselout:out std_logic_vector(3 downto 0)); end mux3_1;
architecture a of mux3_1 is begin process(sel) begin
if sel="10" then Mselout
――位选信号产生器(3进制计数器) library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity c3 is
port(clk,clr:in std_logic;
qout:buffer std_logic_vector(1 downto 0) ); end c3;
architecture behave of c3 is begin process(clk,clr) begin
if(clr='0')then qout
if(qout=2)then qout
LIBRARY ieee;
USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY del7 IS PORT
( input : IN STD_LOGIC_vector(3 downto 0);
output : OUT STD_LOGIC_vector(6 downto 0) ); END del7;
ARCHITECTURE a OF del7 IS BEGIN
PROCESS (input) BEGIN
CASE input IS
WHEN "0000" =>outputoutputoutputoutputoutput
WHEN "0101" =>outputoutputoutputoutputoutputNULL; END CASE; end process; END a;
――小数点产生器 LIBRARY ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity DP is
port(SELDP:in std_logic_vector(1 downto 0); DPout:out std_logic); end DP;
architecture a of DP is begin process(selDP) begin
if selDP="10" then DPout
elsif selDP="00" then DPout
3.5 顶程设计
3.5.1 VHDL代码
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity V_WATCH is
port( clkK,EOCC:in std_logic;
DD:IN std_logic_vector(7 downto 0); clk3,CLR3:IN STD_LOGIC; OEE,START,ALEE,ADDAA:OUT STD_LOGIC; DPOUT:OUT STD_LOGIC;
Qoutput:out std_logic_vector(6 downto 0); Qselout:out std_logic_vector(1 downto 0)); end V_WATCH;
architecture a of V_WA TCH is ――元件例化 COMPONENT DP
port(SELDP:in std_logic_vector(1 downto 0); DPout:out std_logic); END COMPONENT; COMPONENT del7
PORT(input : IN STD_LOGIC_vector(3 downto 0); output : OUT STD_LOGIC_vector(6 downto 0)); END COMPONENT; COMPONENT mux3_1
port(sel:in std_logic_vector(1 downto 0); A,B,C:in std_logic_vector(3 downto 0); Mselout:out std_logic_vector(3 downto 0)); END COMPONENT; COMPONENT ad port(st,eoc:in std_logic;
d:in std_logic_vector(7 downto 0); oe,sta,ale,adda:out std_logic; q:out std_logic_vector(7 downto 0)); END COMPONENT; COMPONENT C3 PORT
(clk,clr: IN STD_LOGIC;
qout: OUT std_logic_vector(1 downto 0));
END COMPONENT;
COMPONENT BCD
PORT (V:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
HB,LB:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0);
BVALUE:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0);
BCD_L,BCD_M,BCD_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END COMPONENT;
signal selOUT: std_logic_vector(1 downto 0);
SIGNAL SBCD_L,SBCD_M,SBCD_H: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL DI: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL QQ: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL BBCD: STD_LOGIC_VECTOR(11 DOWNTO 0);
BEGIN
U1:AD PORT MAP(CLKK,EOCC,DD,OEE,START,ALEE,ADDAA,QQ);
U2:BCD PORT MAP(QQ,BCD_L=>SBCD_L,BCD_M=>SBCD_M,BCD_H=>SBCD_H);
U3:C3 PORT MAP(CLK3,CLR3,SELOUT);
U4:MUX3_1 PORT MAP(SELOUT,SBCD_L,SBCD_M,SBCD_H,DI);
U5:DEL7 PORT MAP(DI,Qoutput);
U6:DP PORT MAP(SELOUT,DPOUT);
QSELOUT
end a;
第4章 数字电压表的测试与运行
4.1数字电压表的编译与仿真
4.1.1数字电压表的编译
数字电压表的编译如图4—1所示:
图4—1数字电压表的编译
4.1.2数字电压表的逻辑电路图
数字电压表的逻辑电路如图4—2所示:
图4—2数字电压表的逻辑电路
4.1.3数字电压表的功能仿真图
所示:
图4—3数字电压表的功能仿真
4.2数字电压表的适配与测试
4.2.1 引脚适配
引脚适配如图4—4所示:
图 4—4 引脚适配
4.2.2 试验箱结果
试验箱结果如图4—5所示:
图4-5 试验箱结果
结论
仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电
压测量范围为0~5V,最小分辨率为0.02V ,满足任务书指标要求。但是,该系
统也存在一定程度的不足,例如:
1、 输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的
输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动
量程转换电路,将幅值较小的信号经适当的放大后再测量,可显著提高精
度;
2、 输出量可用平均值算法来改善,使测量准确度更高。
3、 若能将测量的电压值实时保存,使用时将更方便。
在这个学期的课程设计中,通过努力的学习研究和老师的指导,完成了课程
设计的任务和论文的撰写,感触很深。 我认为课程设计是对大学课程的学习和
自我学习能力的一个极好的锻炼和检验。它要求我们根据要求的课题独立的广泛
查找资料,利用现有的资料或文献并充分结合以前所学的知识,进行仔细的学习
和研究,依靠自己的能力完成课题的设计任务。 本毕业设计是基于EDA 的数字
电压表的设计。该设计通过对FPGA 芯片进行VHDL 语言编程,实现了数字电
压表的功能。通过设计表明,VHDL 具有很强的电路描述和建模能力,能从多个
层次对数字系统能够进行建模和描述,从而大大简化了硬件设计任务,提高了设
计效率和可靠性。这种设计方法必将在未来的数字系统设计中发挥越来越重要的
作用。此外,该设计与EDA 技术,电子技术基础,单片机技术等课程相关,在
设计过程中,强化了对这些专业课程的认识。
虽然我顺利完成了此次设计,但是制作的系统比较简单,远远达不到现代工业设
计的要求。此次设计仅仅是我对数字电压表的一个初步的认识和研究,还有很多
不够完善的地方,如精确度还不够高,测量范围非常有限,灵敏度也有所欠缺。
在以后的工作学习过程中,我要汲取这次设计中的经验与教训,秉承“至善穷理”
的诫训,更加努力的学习专业知识,更好的回报社会
参考文献
[1]柳金龙. 浅谈数字电压表的特点[J]. 中国计量, 2004(08):38-45
[2]余孟尝. 数字电子技术基础简明教程(第三版)[M]. 高等教育出版社, 2006.
[3]陈新华. EDA 技术与应用[M]. 机械工业出版社,2008.
[4]宋凤娟, 孙军, 李国忠. 基于89C51 单片机的数字电压表设计[J]. 制造业
自动化 2007(02):18-26
[5]F Nagy. A new digital vector voltmeter[J]. Measurement, 1991:44-48
[6]张鑫. 单片机原理及应用[M]. 电子工业出版社, 2008.
[7]康光华. 电子技术基础数字部分(第五版)[M].北京:高等教育出版社, 2006.
[8]潘松, 黄继业. EDA技术实用教程(第三版)[M].北京:科学出版社,2006.
[9]Christian Plante. Achieve higher accuracy using mixed-signal FPGA calibration[J].
2009
[10]刘玉良, 刘国平, 王世来. CPLD 在数字电压表设计中的应用[J]. 自动化
与仪器仪表,
2005(6):10-13
[11] 徐志军, 王金明, 尹廷辉. EDA 技术与 VHDL 设计[M]. 电子工业出版
社, 2009.
[12]唐俊英, 韩会山, 陈丽. EDA技术应用实例教程[M].电子工业出版社,2008.
[13]包本刚, 朱湘萍. 基于 FPGA 的数字电压表的设计[J]. 电子工程师 2007,
33(8):34-41
[14]赵晓博, 刘展威, 李素娟. 数字电压表的 VHDL 设计与实现[J]. 仪表技
术 2005(2):55-63
[15]王伟, 刘晓平. 高精度数字电压表方案设计[J]. 仪表技术
2007(04):125-129
[16]Quintero J, Sanz M, Barrado A, Lazaro A. FPGA based Digital Control with
High-Resolution
Synchronous DPWM and High-Speed Embedded A/D Converter[J]. 2009
[17]江小平, 刘杰. 基于 CPLD/FPGA 的 A/D 转换控制器的设计[J]. 苏州大
学学报(工科
版)2005(04):55-67
东北石油大学
课 程 设 计
2
东北石油大学课程设计成绩评价表
东北石油大学课程设计任务书
课程 硬件课程设计
题目 数字电压表设计
专业 计
主要内容、基本要求等
一、主要内容:
利用EL 教学实验箱、微机和Quartus Ⅱ软件系统,使用VHDL 语言输入方法设计数字钟。可以利用层次设计方法和VHDL 语言,完成硬件设计设计和仿真。最后在EL 教学实验箱中实现。
二、基本要求:
1、 A/D转换接口电路的设计,负责对ADC0809的控制。
2、 编码转换电路设计,负责把从ADC0809数据总线中读出的电压转换成BCD 码。
3、 输出七段显示电路的设计,负责将BCD 码用7段显示器显示出来。
三、扩展要求
1. 当测量结束后,蜂鸣器鸣响10声。
按照规范写出论文,要求字数在4000字以上,并进行答辩。论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA 技术的现状和发展趋势、对EL 教学实验箱和Quartus Ⅱ软件的掌握程度、数字钟的设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。
完成期限 2周
指导教师
专业负责人
年 月 日
目录
第1章 概述 ....................................................... 1
1.1 引言 . .................................................................................................................................. 1
1.2 EDA 简介 . ........................................................................................................................... 2
1.3 VHDL简介 . ......................................................................................................................... 3
1.4 Quartus II简介 . ............................................................................................................. 4
第2章 数字电压表的系统分析 ....................................... 5
2.1设计目的............................................................................................................................. 5
2.2功能说明 . ........................................................................................................................... 5
2.3实验原理 . ........................................................................................................................... 5
2.4系统硬件 . ........................................................................................................................... 5
第3章 数字电压表设计 ............................................. 6
3.1 总体框图 . .......................................................................................................................... 6
3.2 状态机 . .............................................................................................................................. 6
3.2.1 采样状态机结构框图 . .......................................................................................... 6
3.2.2 VHDL代码 . ........................................................................................................... 7
3.3转换BCD 码 . ....................................................................................................................... 9
3.3.1模拟输入电压与输出电压的对应关系 ................................................................ 9
3.3.2 VHDL代码 . ........................................................................................................... 10
3.4 七段显示电路 . ................................................................................................................ 12
3.4.1 VHDL代码 . ........................................................................................................... 12
3.5 顶程设计 . ........................................................................................................................ 14
3.5.1 VHDL代码 . ........................................................................................................... 15
第4章 数字电压表的测试与运行 .................................... 17
4.1数字电压表的编译与仿真 . ............................................................................................. 17
4.1.1数字电压表的编译 . ............................................................................................. 17
4.1.2数字电压表的逻辑电路图 . ................................................................................. 17 . ........................................................................................................................................ 18
4.1.3数字电压表的功能仿真图 . ................................................................................. 18
4.2数字电压表的适配与测试 . ............................................................................................. 19
4.2.1 引脚适配 . ............................................................................................................ 19
4.2.2 试验箱结果 . ........................................................................................................ 20
结论 ............................................................. 21
参考文献 ......................................................... 22
第1章 概述
1.1 引言
数字电压表(Digital Voltmeter )简称DVM ,是诸多数字化仪表的核心与基础。以数字电压表为核心扩展成的各种数字化仪表,几乎覆盖了电子电工测量、工业测量、自动化系统等各个领域。它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表,它是诸多数字化仪表的核心与基
础。电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示, 这有别于传统的以指针加刻度盘进行读数的方法, 避免了读数的视差和视觉疲劳。目前数字电压表的内部核心部件是A/D转换器, 转换器的精度很大程度上影响着数字电压表的准确度。 随着计算机与微电子技术的发展,电子设计自动化EDA 领域已成为电子技术发展的主体,数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流发展的引擎,就是日趋进步和完善的FPGA (Field Programmable Gate Array,现场可编程门阵列)设计技术。而电子设计自动化,是将计算机软件、硬件、微电子技术交叉运用的现代电子设计学科,其中EDA 设计语言中的 VHDL 语言是一种快速的电路设计工具,功能涵盖了电路描述、电路合成、电路仿真等三大电路设计工作。 该数字电压表的电路设计,正是用VHDL 语言完成的。此次设计主要应用美国Altera 公司自行设计的一种CAE (Computer Aided Engineering,计算机辅助工程)软件工具,即Quartus II 软件。 数字电压表出现在50年代初,60年代末发展起来的电压测量仪表,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。所以,数字化测量仪表的产生和发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦琐和陈旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。
1.2 EDA 简介
EDA 是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD )、计算机辅助制造(CAM )、计算机辅助测试(CAT )和计算机辅助工程(CAE )的概念发展而来的。EDA 技术就是以计算机为工具,设计者在EDA 软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作[1]。EDA 技术的出现,极大地提高了电路设计的效率和可行性,减轻了设计者的劳动强度。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD 、FPGA )的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA 技术的迅速发展[2]。
EDA 在通信行业(电信)里的另一个解释是企业数据架构,EDA 给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。
EDA 在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA 课程。主要是让学生了解EDA 的基本概念和基本原理、掌握用HDL 语言编写规范、掌握逻辑综合的理论和算法、使用EDA 工具进行电子电路课程的实验验证并从事简单系统的设计。一般学习电路仿真工具(如multiSIM 、PSPICE )和PLD 开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础[3]。
现在对EDA 的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA 的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA 技术。
从目前的EDA 技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。
1.3 VHDL简介
VHDL 全名Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL 被IEEE 和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版) 之后,各EDA 公司相继推出自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL 接口。1993年,IEEE 对VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL 的内容,公布了新版本的VHDL ,即IEEE 标准的1076-1993版本,简称93版。VHDL 和Verilog 作为IEEE 的工业标准硬件描述语言,得到众多EDA 公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL 翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC [5]。
与其他硬件描述语言相比,VHDL 具有以下特点:
(1) 功能强大、设计灵活
(2) 支持广泛、易于修改
(3) 强大的系统硬件描述能力
(4) 独立于器件的设计、与工艺无关
(5) 很强的移植能力
(6) 易于共享和复用
优势:
(1)与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3) VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已
有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的把VHDL 描述设计转变成门级网表。
(5)VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
1.4 Quartus II简介
Quartus II 是Altera 公司的综合性PLD 开发软件,支持原理图、VHDL 、VerilogHDL 以及AHDL (Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。
Quartus II 可以在XP 、Linux 以及Unix 上使用,除了可以使用Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
Quartus II设计流程如图1—1所示:
图 1—1 Quartus II设计流程
第2章 数字电压表的系统分析
2.1设计目的
1. 本次实验通过vhdl 硬件语言编写 ADC0809 模数转换器的控制程序。
2. 掌握控制原理, 并进一步掌握采用有限状态机产生控制信号的原理。
3. 掌握十六进制转十进制的运算方法。
5. 掌握vhdl 的编程思路。
2.2功能说明
1. 具有数字管显示当前电压值的功能。
2. 具有复位功能。
2.3实验原理
在同一EPLD 芯片EPF10K10上集成了如下电路模块:
1.数字电压表的实现。
2.模拟电压量通过电位器进行改变。
3.把ADC0809A/D转换器进行采集。
4. 通过转换器内部的功能实现把电压模拟量转化为数字量的过程。
5. 按照单片机所给的地址,ADC0809芯片把已经转化好的数据传入到单片机中。
6. 在单片机里通过原件程序设计实现对数字电压表量程的控制。
2.4系统硬件
1.可变直流电平输出电路。
2.A/D0809。
3.七段显示器。
4.EPF10K10LC84-4适配器。
第3章 数字电压表设计
3.1 总体框图
总体框图如图3—1所示
图3—1总体框图
3.2 状态机
3.2.1 采样状态机结构框图
在一个完整的采样周期中,状态机中最先被启动的是以CLK 为敏感信号的时序进程,接着组合过程COM 被启动,因为它们以信号current_state 为敏感信号。最后被启动的是锁存进程,它是在状态机进入状态st4后才被启动的,即此时LOCK 产生了一个上升沿信号,从而启动进程LATCH1,将0809在本采样周期输出的8位数据锁存到寄存器中,以便外部电路能从Q 端读到稳定正确的数据。 状态机结构框图如图3—2所示:
图3—2状态机结构框
3.2.2 VHDL代码
LIBRARY IEEE; --A/D0809 use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity ad is
port(ST,eoc:in std_logic; --控制端口 d:in std_logic_vector(7 downto 0); oe,sta,ale,adda:out std_logic; q:out std_logic_vector(7 downto 0)); end ad;
architecture a of ad is
type states is(st0,st1,st2,st3,st4,st5,st6); --7个状态 signal c_state,n_state:states :=st0; signal regl:std_logic_vector(7 downto 0); signal lock:std_logic; begin adda
com:process(c_state,eoc) begin
case c_state is
when st0=>ale
when st1=>ale
when st2=>ale
when st3=>ale
else n_stateale
when st5=>ale
when st6=>ale
when others=>n_state
reg:process(st) begin
if(st'event and st='1') then c_state
lo:process(lock) --锁存 begin
if(lock'event and lock='1') then regl
q
3.3转换BCD 码
3.3.1模拟输入电压与输出电压的对应关系
当参考电压(Vref )为2.56V 时,模拟输入电压与输出电压的对应关系如表3—3所示:
这样由ADC0809收到的信号是01110110(76H ),则对照表52-1时,高4位0111的电压为2.24V ,而低4位0110是0.12V ,所以最后的电压输出结果为2.24+0.12=2.36V。对于数据转换成BCD 码,我们必须设计一个12位的BCD 码加法器,如上述的2.24V 的二进制表示为:[1**********]0、0.12V 是[1**********]0,所以其相加结果为[1**********]0,为2.36V 。提示:在读取到转换数据后,先用查表的指令算出高、低4位的两个电压值,并分别用12位的BCD 码表示。接着设计12位的BCD 码加法。相加从最低4位开始,且每4位相加结果超过10时需作进位动作。
3.3.2 VHDL代码
――BCD 8位转12 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BCD IS
PORT (V:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
HB,LB:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0); BVALUE:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0); BCD_L,BCD_M,BCD_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END BCD;
ARCHITECTURE A OF BCD IS BEGIN
P1:PROCESS(V(7 DOWNTO 4))
BEGIN --A/D输出高4位转换 分辨率0.32V
IF V(7 DOWNTO 4)="1111" THEN HB
P2:PROCESS(V(3 DOWNTO 0)) BEGIN --A/D输出低4位转换 分辨率0.02V
IF V(3 DOWNTO 0)= "1111" THEN LB
BV ALUE
V ARIABLE JJ:STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN JJ:=BVALUE;
IF (JJ(3 DOWNTO 0)>"1001") THEN ――如果12位结果中,低4位 JJ:=JJ+"[1**********]0"; ――大于9 则低4位加6 END IF;
IF(JJ(7 DOWNTO 4)>"1001") THEN ――如果中间的4位大于9 JJ:=JJ+"[1**********]0"; ――则中4位加6 END IF;
BCD_L
END A;
3.4 七段显示电路
3.4.1 VHDL代码
――3选1 数据选择器 LIBRARY ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity mux3_1 is
port(sel:in std_logic_vector(1 downto 0); A,B,C:in std_logic_vector(3 downto 0); Mselout:out std_logic_vector(3 downto 0)); end mux3_1;
architecture a of mux3_1 is begin process(sel) begin
if sel="10" then Mselout
――位选信号产生器(3进制计数器) library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity c3 is
port(clk,clr:in std_logic;
qout:buffer std_logic_vector(1 downto 0) ); end c3;
architecture behave of c3 is begin process(clk,clr) begin
if(clr='0')then qout
if(qout=2)then qout
LIBRARY ieee;
USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY del7 IS PORT
( input : IN STD_LOGIC_vector(3 downto 0);
output : OUT STD_LOGIC_vector(6 downto 0) ); END del7;
ARCHITECTURE a OF del7 IS BEGIN
PROCESS (input) BEGIN
CASE input IS
WHEN "0000" =>outputoutputoutputoutputoutput
WHEN "0101" =>outputoutputoutputoutputoutputNULL; END CASE; end process; END a;
――小数点产生器 LIBRARY ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity DP is
port(SELDP:in std_logic_vector(1 downto 0); DPout:out std_logic); end DP;
architecture a of DP is begin process(selDP) begin
if selDP="10" then DPout
elsif selDP="00" then DPout
3.5 顶程设计
3.5.1 VHDL代码
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity V_WATCH is
port( clkK,EOCC:in std_logic;
DD:IN std_logic_vector(7 downto 0); clk3,CLR3:IN STD_LOGIC; OEE,START,ALEE,ADDAA:OUT STD_LOGIC; DPOUT:OUT STD_LOGIC;
Qoutput:out std_logic_vector(6 downto 0); Qselout:out std_logic_vector(1 downto 0)); end V_WATCH;
architecture a of V_WA TCH is ――元件例化 COMPONENT DP
port(SELDP:in std_logic_vector(1 downto 0); DPout:out std_logic); END COMPONENT; COMPONENT del7
PORT(input : IN STD_LOGIC_vector(3 downto 0); output : OUT STD_LOGIC_vector(6 downto 0)); END COMPONENT; COMPONENT mux3_1
port(sel:in std_logic_vector(1 downto 0); A,B,C:in std_logic_vector(3 downto 0); Mselout:out std_logic_vector(3 downto 0)); END COMPONENT; COMPONENT ad port(st,eoc:in std_logic;
d:in std_logic_vector(7 downto 0); oe,sta,ale,adda:out std_logic; q:out std_logic_vector(7 downto 0)); END COMPONENT; COMPONENT C3 PORT
(clk,clr: IN STD_LOGIC;
qout: OUT std_logic_vector(1 downto 0));
END COMPONENT;
COMPONENT BCD
PORT (V:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
HB,LB:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0);
BVALUE:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0);
BCD_L,BCD_M,BCD_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END COMPONENT;
signal selOUT: std_logic_vector(1 downto 0);
SIGNAL SBCD_L,SBCD_M,SBCD_H: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL DI: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL QQ: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL BBCD: STD_LOGIC_VECTOR(11 DOWNTO 0);
BEGIN
U1:AD PORT MAP(CLKK,EOCC,DD,OEE,START,ALEE,ADDAA,QQ);
U2:BCD PORT MAP(QQ,BCD_L=>SBCD_L,BCD_M=>SBCD_M,BCD_H=>SBCD_H);
U3:C3 PORT MAP(CLK3,CLR3,SELOUT);
U4:MUX3_1 PORT MAP(SELOUT,SBCD_L,SBCD_M,SBCD_H,DI);
U5:DEL7 PORT MAP(DI,Qoutput);
U6:DP PORT MAP(SELOUT,DPOUT);
QSELOUT
end a;
第4章 数字电压表的测试与运行
4.1数字电压表的编译与仿真
4.1.1数字电压表的编译
数字电压表的编译如图4—1所示:
图4—1数字电压表的编译
4.1.2数字电压表的逻辑电路图
数字电压表的逻辑电路如图4—2所示:
图4—2数字电压表的逻辑电路
4.1.3数字电压表的功能仿真图
所示:
图4—3数字电压表的功能仿真
4.2数字电压表的适配与测试
4.2.1 引脚适配
引脚适配如图4—4所示:
图 4—4 引脚适配
4.2.2 试验箱结果
试验箱结果如图4—5所示:
图4-5 试验箱结果
结论
仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电
压测量范围为0~5V,最小分辨率为0.02V ,满足任务书指标要求。但是,该系
统也存在一定程度的不足,例如:
1、 输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的
输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动
量程转换电路,将幅值较小的信号经适当的放大后再测量,可显著提高精
度;
2、 输出量可用平均值算法来改善,使测量准确度更高。
3、 若能将测量的电压值实时保存,使用时将更方便。
在这个学期的课程设计中,通过努力的学习研究和老师的指导,完成了课程
设计的任务和论文的撰写,感触很深。 我认为课程设计是对大学课程的学习和
自我学习能力的一个极好的锻炼和检验。它要求我们根据要求的课题独立的广泛
查找资料,利用现有的资料或文献并充分结合以前所学的知识,进行仔细的学习
和研究,依靠自己的能力完成课题的设计任务。 本毕业设计是基于EDA 的数字
电压表的设计。该设计通过对FPGA 芯片进行VHDL 语言编程,实现了数字电
压表的功能。通过设计表明,VHDL 具有很强的电路描述和建模能力,能从多个
层次对数字系统能够进行建模和描述,从而大大简化了硬件设计任务,提高了设
计效率和可靠性。这种设计方法必将在未来的数字系统设计中发挥越来越重要的
作用。此外,该设计与EDA 技术,电子技术基础,单片机技术等课程相关,在
设计过程中,强化了对这些专业课程的认识。
虽然我顺利完成了此次设计,但是制作的系统比较简单,远远达不到现代工业设
计的要求。此次设计仅仅是我对数字电压表的一个初步的认识和研究,还有很多
不够完善的地方,如精确度还不够高,测量范围非常有限,灵敏度也有所欠缺。
在以后的工作学习过程中,我要汲取这次设计中的经验与教训,秉承“至善穷理”
的诫训,更加努力的学习专业知识,更好的回报社会
参考文献
[1]柳金龙. 浅谈数字电压表的特点[J]. 中国计量, 2004(08):38-45
[2]余孟尝. 数字电子技术基础简明教程(第三版)[M]. 高等教育出版社, 2006.
[3]陈新华. EDA 技术与应用[M]. 机械工业出版社,2008.
[4]宋凤娟, 孙军, 李国忠. 基于89C51 单片机的数字电压表设计[J]. 制造业
自动化 2007(02):18-26
[5]F Nagy. A new digital vector voltmeter[J]. Measurement, 1991:44-48
[6]张鑫. 单片机原理及应用[M]. 电子工业出版社, 2008.
[7]康光华. 电子技术基础数字部分(第五版)[M].北京:高等教育出版社, 2006.
[8]潘松, 黄继业. EDA技术实用教程(第三版)[M].北京:科学出版社,2006.
[9]Christian Plante. Achieve higher accuracy using mixed-signal FPGA calibration[J].
2009
[10]刘玉良, 刘国平, 王世来. CPLD 在数字电压表设计中的应用[J]. 自动化
与仪器仪表,
2005(6):10-13
[11] 徐志军, 王金明, 尹廷辉. EDA 技术与 VHDL 设计[M]. 电子工业出版
社, 2009.
[12]唐俊英, 韩会山, 陈丽. EDA技术应用实例教程[M].电子工业出版社,2008.
[13]包本刚, 朱湘萍. 基于 FPGA 的数字电压表的设计[J]. 电子工程师 2007,
33(8):34-41
[14]赵晓博, 刘展威, 李素娟. 数字电压表的 VHDL 设计与实现[J]. 仪表技
术 2005(2):55-63
[15]王伟, 刘晓平. 高精度数字电压表方案设计[J]. 仪表技术
2007(04):125-129
[16]Quintero J, Sanz M, Barrado A, Lazaro A. FPGA based Digital Control with
High-Resolution
Synchronous DPWM and High-Speed Embedded A/D Converter[J]. 2009
[17]江小平, 刘杰. 基于 CPLD/FPGA 的 A/D 转换控制器的设计[J]. 苏州大
学学报(工科
版)2005(04):55-67