数字电压表的VHDL设计与实现

数字电压表的vhdl设计与实现
介绍数字电压表的组成及工作原理,论述了基于vhdl语言和fpga芯片的数字系统的设计思想和实现过程。
关键词:数字电压表;vhdl语言;fpga
vhdl realization of digital voltmeter
zhao xiaobo, liu zhanwei, li sujuan
(department of computer, shijiazhuang railway institute, shijiazhuang050043, china)
key words: digital voltmeter; vhdl; fpga
在硬件电子电路设计领域中,电子设计自动化(eda)工具已成为主要的设计手段,而vhdl语言则是eda的关键技术之一,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。本文用fpga芯片和vhdl语言设计了一个数字电压表,举例说明了利用vhdl语言实现数字系统的过程。?
整个数字电压表的硬件结构如图1所示。
工作时,系统按一定的速率采集输入的模拟电压,经adc0804转换为8位数字量,此8位数字量经fpga处理得到模拟电压的数字码,再输入数码管获得被测电压的数字显示。
此电压表的测量范围:0~5v,三位数码管显示。?
数字电压表的三大模块都是用vhdl语言编程实现的。
2.1控制模块
用状态机作法,产生adc0804的片选信号、读/写控制信号,通过状态信号intr判断转换是否结束;转换结束后将转换数据锁存并输出。其状态转换图如图2所示。
?
adc0804是8位模数转换器,它的输出状态共有28=256种,如果输入信号vin为0~5v电压范围,则每两个状态值为5/(256-1),约为0.0196v,故测量分辨率为0.02v。常用测量方法是:当读取到db7~db0转换值是xxh时,电压测量值为u≈xxh×0.02v;考虑到直接使用乘法计算对应的电压值将耗用大量的fpga内部组件,本设计用查表命令来得到正确的电压值。
在读取到adc0804的转换数据后,先用查表指令算出高、低4位的两个电压值,并分别用12位bcd码表示;接着设计12位的bcd码加法,如果每4位相加结果超过9需进行加6调整。这样得到模拟电压的bcd码。
本模块的功能仿真结果如图3所示;当转换数据为00010101,通过查表高4位0001是0.32v,而低4位0101是0.1v,最后的电压输出结果是0.32v+0.1v=0.42v,它的bcd码表示为000001000010,仿真结果正确。
2.3扫描、显示模块
如图4所示,clk是扫描时钟,其频率为1khz,由给定的40mhz时钟分频得到;datain是数据处理模块输出的电压值的bcd码;sel是数码管的片选信号;point是数码管小数点驱动;通过扫描分别输出3位电压值的bcd码dataout,并通过disp将bcd码译成相应的7段数码驱动值,送数码管显示。
本文设计的vhdl语言程序已在maxplusⅱ工具软件上进行了编译、仿真和调试,并通过编程器下载到了ep1k100qc208-3芯片。经过实验验证,本设计是正确的,其电压显示值误差没有超过量化台阶上限(0.02v)。本文给出的设计思想也适用于其他基于pld芯片的系统设计。

摩托车防盗报警器原理图
采用ARM与FPGA芯片实现独立视频源LED显示系统的设计
越南军事技术学院的研究人员开发出了一款Vibot 1a版的机器人
LED显示屏怎么制作
断路故障的诊断方法盘点
数字电压表的VHDL设计与实现
vivoY7s评测 一部真正意义上的全能千元机
令人恐惧的机器人大盘点
注册资金10亿!华为成立新公司
r2000打印机常见问题分析及解决方案
高通骁龙835处理器PC发布_AMD与高通合作怼Intel
一款采用了可折叠设计的无人机亮相CES 有配备6K摄像头的Pro机型
Nexperia成功增强其CFP功率二极管的范围
乐视上市又将成空话?依靠区块链技术能否打赢翻身仗
Soitec公布2021财年第一季度,同期下降 5%
浅谈苏州敏芯微电子产品发展变迁史
ADI移动医疗电子方案--全体征信号监测技术方案
AMD锐龙5 5600X夺下单核跑分全球第一,力压Intel酷睿i9
OMEN暗影精灵8 Pro笔记本首发巨划算
广汽新能源着眼未来,为完善产业链将自研电池