《数字电压表设计课程设计.docx》由会员分享,可在线阅读,更多相关《数字电压表设计课程设计.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数字电压表设计课程设计 东北石油大学课程设计 2 东北石油大学课程设计任务书 课程硬件课程设计 题目数字电压表设计 专业 主要内容、基本要求等 一、主要内容: 利用EL教学实验箱、微机和Quartus软件系统,使用VHDL语言输入方法设计数字钟。可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。最后在EL教学实验箱中实现。 二、基本要求: 1、A/D转换接口电路的设计,负责对ADC0809的控制。 2、编码转换电路设计,负责把从ADC0809数据总线中读出的电压转换成BCD码。 3、输出七段显示电路的设计,负责将BCD码用7段显示器显示出来。 三、参考文献 1 潘松.EDA技术实用教
2、程M.北京:科学出版社, 2022.11-13. 2 包明.EDA技术与数字系统设计.北京航天航空大学出版社. 2022. 3 EDA先锋工作室.Altera FPGA/CPLD设计M.北京:人民邮电出版社 2022.32-33. 4 潘松.SOPC技术实用教程M .清华大学出版社.2022.1-15. 完成期限第18-19周 指导教师 专业负责人 摘要 本文介绍了基于EDA技术的8位数字电压表。系统采用CPLD为控制核心,采用VHDL语言实现,论述了基于VHDL语言和CPLD芯片的数字系统设计思想和实现过程。在硬件电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,而VHD
3、L语言则是EDA的关键技术之一,。VHDL的英文全名是 Very-High-Speed Integrated Circuit HardwareDescription Language,它采用自顶向下的设计方法,即从系统总体要求出发,自上至下地将设计任务分解为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。 电子设计自动化技术EDA的发展给电子系统的设计带来了革命性的变化,EDA软件设计工具,硬件描述语言,可编程逻辑器件(PLD)使得EDA技术的应用走向普及。CPLD是新型的可编程逻辑器件,采用CPLD进行产品开发可以灵活地进行模块配置,大大缩短了产品开发周期,也有利于
4、产品向小型化,集成化的方向发展。而 VHDL语言是EDA的关键技术之一,它采用自顶向下的设计方法,完成系统的整体设计。 本文用CPLD芯片和VHDL语言设计了一个八位的数字电压表。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。 关键词:数字电压表;Quartus软件;EDA(电子设计自动化) 目录 第1章概述 (1) 1.1 EDA的概念 (1) 1.2 EDA技术及应用 (2) 1.
5、3 EDA硬件工作平台 (2) 1.4 EDA的软件工作平台 (2) 第2章数字电压表的设计实现 (3) 2.1状态机 (3) 2.2状态机的设计 (3) 2.3 BCD码的转换 (5) 2.4七段电路显示 (7) 第3章数字电压表的测试与运行 (10) 3.1数字电压表的编译与仿真 (10) 3.2数字电压表的仿真与烧写 (12) 结论 (15) 参考文献 (16) 第1章概述 1.1 EDA的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写。由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义1。但从EDA
6、技术的几个主要方面的内容来看,可以理解为: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)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。常用硬件描述语言有HD
9、L、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 CS CS CS CS CS CS CS1001) THEN 如果12位结果中,低4位 JJ:=JJ+000000000110; 大于9 则低4位加6 END I
13、F; IF(JJ(7 DOWNTO 4)1001) THEN 如果中间的4位大于9 JJ:=JJ+000001100000; 则中4位加6 END IF; BCD_L=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 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