1、数字电压表设计课程设计东 北 石 油 大 学课 程 设 计课 程 硬件课程设计 题 目 数字电压表设计 院 系 计算机与信息技术学院 专业班级 计 学生姓名 学生学号 指导教师 2 东北石油大学课程设计任务书课程 硬件课程设计题目 数字电压表设计专业 主要内容、基本要求等一、主要内容:利用EL教学实验箱、微机和Quartus软件系统,使用VHDL语言输入方法设计数字钟。可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。最后在EL教学实验箱中实现。二、基本要求:1、 A/D转换接口电路的设计,负责对ADC0809的控制。2、 编码转换电路设计,负责把从ADC0809数据总线中读出的电压
2、转换成BCD码。3、 输出七段显示电路的设计,负责将BCD码用7段显示器显示出来。三、参考文献1 潘松.EDA技术实用教程M.北京:科学出版社, 2003.11-13.2 包明.EDA技术与数字系统设计.北京航天航空大学出版社. 2002.3 EDA先锋工作室.Altera FPGA/CPLD设计M.北京:人民邮电出版社2005.32-33.4 潘松.SOPC技术实用教程M .清华大学出版社.2005.1-15.完成期限 第18-19周 指导教师 专业负责人 摘要 本文介绍了基于EDA技术的8位数字电压表。系统采用CPLD为控制核心,采用VHDL语言实现,论述了基于VHDL语言和CPLD芯片的
3、数字系统设计思想和实现过程。在硬件电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,而VHDL语言则是EDA的关键技术之一,。VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。 电子设计自动化技术EDA的发展给电子系统的设计带来了革命性的变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件(PLD)使得EDA技术的应用走向普及。C
4、PLD是新型的可编程逻辑器件,采用CPLD进行产品开发可以灵活地进行模块配置,大大缩短了产品开发周期,也有利于产品向小型化,集成化的方向发展。而 VHDL语言是EDA的关键技术之一,它采用自顶向下的设计方法,完成系统的整体设计。本文用CPLD芯片和VHDL语言设计了一个八位的数字电压表。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。 关键词:数字电压表;Quartus软件;EDA(电子
5、设计自动化)目 录第1章 概 述 11.1 EDA的概念 11.2 EDA技术及应用 21.3 EDA硬件工作平台 21.4 EDA的软件工作平台 2第2章 数字电压表的设计实现 32.1状态机 32.2状态机的设计 32.3 BCD码的转换 52.4七段电路显示 7第3章 数字电压表的测试与运行 103.1数字电压表的编译与仿真 103.2数字电压表的仿真与烧写 12结论 15参考文献 16第1章 概 述1.1 EDA的概念EDA是电子设计自动化(Electronic Design Automation)的缩写。由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个
6、确切的定义1。但从EDA技术的几个主要方面的内容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真2。EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB不
7、同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。320世纪80年代的QAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能4。20世纪90年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成。EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可
8、能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造5。21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。硬件描述语言:硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。常用硬
9、件描述语言有HDL、Verilog和VHDL语言。1.2 EDA技术及应用电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、硬件描述系统逻辑的方法、使用EDA工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。6具有代表性的是全国每两年举办一次的大学生电子设计竞赛活动。在科研方面:主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将FPGA器件的开发应用到仪器设备中7。在产品设计与制造方面
10、:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在后期的制作、电子设备的研制与生产、电路板的焊接、器件的制作过程等有重要作用8。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。1.3 EDA硬件工作平台1.计算机2.EDA实验开发系统:EL教学实验箱。1.4 EDA的软件工作平台PLD(Programmable Logic Device)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(Complex PLD)和FPGA(Field Programmable Gate
11、 Array)9。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现10。生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice 公司。第2章 数字电压表的设计实现2.1状态机用状态机对ADC0809进行采样控制首先必须了解其工作时序, 然后据此作出状态图, 最后写出相应的VHDL 代码。ADC0809 是CMOS 的8 位A /D转换器, 片内有8路模拟开关, 可控制8个模拟量中的一个进入转换器中。ADC0809 的分辨率为8位, 转换时间约100s, 输出由三
12、态缓冲器控制, 单5 V 电源供电。如图2-1所示:图2-1 ADC0809接口电路原理图2.2状态机的设计状态机就是控制ADC0809转换过程的控制器。根据ADC0809的工作时序,就可以设计出状态机。该组状态机由以下几个部分组成,其VHDL语言描述如下。P1: process(present_state,next_state,INT) begin case present_state is when idle = CS=1; WR=1; RD=1; next_state CS=1; WR=0; RD=1; next_state CS=1; WR=1; RD=1; if ( INT=0) t
13、hen next_state=read; else next_state CS=1; WR=1; RD=0; next_state CS=1; WR=1; RD=1; DATOUT=dout1; next_state CS=1; WR=1; RD=1; DATOUT=dout2; next_state CS=1; WR=1; RD=1; DATOUT=dout3; next_state CS=1; WR=1; RD=1; DATOUT=dout4; next_state=write; end case;end process P1;当CS=1; WR=0; RD=0时,ADC0809被设为空位
14、,由控制器发出信号要求ADC0809开始进行模/数信号的转换。当CS=1; WR=1; RD=0时,往ADC0809里写数据ADC0809进行转换动作,转换完毕后INT将低电位。当CS=0; WR=0; RD=0时,如果此时INT=1,说明转换结束,由控制器发出信号以读取ADC0809的转换资料,如果此时INT=0,说明转换没结束,继续转换。当CS=1; WR=0; RD=1时,由控制器读取数据总线上的数字转换资料。当接下来的几个状态(disp1,disp2,disp3,disp4)是控制输出的。begin if(RESET=0) then present_state=idle; datain
15、=00000000; elsif(CLKevent and CLK=1) then present_state=next_state; if(present_state=read) then datain=D; end if; end if;end process P2;进程2是时序进程,当RESET=0时, datain=00000000(数据信号转化为模拟信号)当时钟上升沿一来时,如果此时present_state=read,说明转换结束,datain=D(数据信号转化为模拟信号)。2.3 BCD码的转换其中表2-1为把数据转化为BCD码,模拟输入电压与输出电压的对应关系。表2-1 数据转
16、化为BCD码 进制参考电压162高4位电压低4位电压000000.000.00100010.320.02200100.640.04300110.960.06401001.280.08501011.600.10601101.920.12701112.240.14810002.560.16910012.880.18A10103.200.20B10113.520.22C11003.840.24D11014.160.26E11104.480.28F11114.800.30 这样由ADC0809收到的信号是01110110(76H),则对照表时,高4位0111的电压为2.24V,而低4位0110是0.1
17、2V,所以最后的电压输出结果为2.24+0.12=2.36V。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BCD ISPORT (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 ST
18、D_LOGIC_VECTOR(3 DOWNTO 0);END BCD;ARCHITECTURE A OF BCD ISBEGINP1:PROCESS(V(7 DOWNTO 4) BEGIN -A/D输出高4位转换 分辨率0.32V IF V(7 DOWNTO 4)=1111 THEN HB=010010000000; -4.80V ELSIF V(7 DOWNTO 4)= 1110 THEN HB=010001001000;-4.48V ELSIF V(7 DOWNTO 4)= 1101 THEN HB=010000010110;-4.16V ELSIF V(7 DOWNTO 4)= 1100
19、 THEN HB=001110000100;-3.84V ELSIF V(7 DOWNTO 4)= 1011 THEN HB=001101010010;-3.52V ELSIF V(7 DOWNTO 4)= 1010 THEN HB=001100100000;-3.20V ELSIF V(7 DOWNTO 4)= 1001 THEN HB=001010001000;-2.88V ELSIF V(7 DOWNTO 4)= 1000 THEN HB=001001010110;-2.56V ELSIF V(7 DOWNTO 4)= 0111 THEN HB=001000100100;-2.24V E
20、LSIF V(7 DOWNTO 4)= 0110 THEN HB=000110010010;-1.92V ELSIF V(7 DOWNTO 4)= 0101 THEN HB=000101100000;-1.60V ELSIF V(7 DOWNTO 4)= 0100 THEN HB=000100101000;-1.28V ELSIF V(7 DOWNTO 4)= 0011 THEN HB=000010010110;-0.96V ELSIF V(7 DOWNTO 4)= 0010 THEN HB=000001100100;-0.64V ELSIF V(7 DOWNTO 4)= 0001 THEN
21、HB=000000110010;-0.32V ELSIF V(7 DOWNTO 4)= 0000 THEN HB=000000000000;-0.00V ELSE HB=000000000000; -0.00V END IF; END PROCESS P1;P2:PROCESS(V(3 DOWNTO 0) BEGIN -A/D输出低4位转换 分辨率0.02V IF V(3 DOWNTO 0)= 1111 THEN LB=000000110000; -0.30V ELSIF V(3 DOWNTO 0)= 1110 THEN LB=000000101000;-0.28V ELSIF V(3DOWN
22、TO0)=1101 THEN LB=000000100110;-0.26V ELSIF V(3DOWNTO0)=1100 THEN LB=000000100100;-0.24V ELSIF V(3DOWNTO0)=1011 THEN LB=000000100010;-0.22V ELSIF V(3DOWNTO0)=1010 THEN LB=000000100000;-0.20V ELSIF V(3DOWNTO0)=1001 THEN LB=000000011000;-0.18V ELSIF V(3DOWNTO0)=1000 THEN LB=000000010110;-0.16V ELSIF V
23、(3DOWNTO0)=0111 THEN LB=000000010100;-0.14V ELSIF V(3DOWNTO0)=0110 THEN LB=000000010010;-0.12V ELSIF V(3DOWNTO0)=0101 THEN LB=000000010000;-0.10V ELSIF V(3DOWNTO0)=0100 THEN LB=000000001000;-0.08V ELSIF V(3DOWNTO0)=0011 THEN LB=000000000110;-0.06V ELSIF V(3DOWNTO0)=0010 THEN LB=000000000100;-0.04V E
24、LSIF V(3DOWNTO0)=0001 THEN LB=000000000010;-0.02V ELSIF V(3DOWNTO0)=0000 THEN LB=000000000000;-0.00V ELSE LB=000000000000; -0V END IF;END PROCESS P2; BVALUE1001) THEN 如果12位结果中,低4位 JJ:=JJ+000000000110; 大于9 则低4位加6 END IF; IF(JJ(7 DOWNTO 4)1001) THEN 如果中间的4位大于9 JJ:=JJ+000001100000; 则中4位加6 END IF;BCD_L=
25、JJ(3 DOWNTO 0); BCD_M=JJ(7 DOWNTO 4);BCD_H=JJ(11 DOWNTO 8);END PROCESS P3;END A;2.4七段电路显示LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity mux3_1 isport(sel:in std_logic_vector(1 downto 0);A,B,C:in std_logic_vector(3 downto 0);Mselout:out st
26、d_logic_vector(3 downto 0);end mux3_1;architecture a of mux3_1 isbegin process(sel)begin if sel=10 then Mselout=A; elsif sel=01 then Mselout=B; elsif sel=00 then Mselout=C; else null; end if;end process;end a;位选信号产生器(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 isbegin process(clk,clr)beginif(clr=0)then qout=00;elsif(clkevent and clk=1)then qout=qout+1; if(qout=2)then qoutoutputoutputoutputoutputoutputoutputoutputoutput
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1