数字电压表设计课程设计.docx
《数字电压表设计课程设计.docx》由会员分享,可在线阅读,更多相关《数字电压表设计课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
![数字电压表设计课程设计.docx](https://file1.bdocx.com/fileroot1/2023-2/4/fc571165-d6cc-4dc0-9d48-9423784a7018/fc571165-d6cc-4dc0-9d48-9423784a70181.gif)
数字电压表设计课程设计
东北石油大学
课程设计
课程硬件课程设计
题目数字电压表设计
院系计算机及信息技术学院
专业班级
学生姓名
学生学号
指导教师
2009年7月10日
东北石油大学课程设计任务书
课程硬件课程设计
题目数字电压表设计
专业计算机科学及技术学院
姓名
学号
主要内容、基本要求等
一、主要内容:
利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言和层次设计方法,完成硬件设计和功能仿真。
最后在EL教学实验箱中予以实现。
二、基本要求:
本实验中所要求设计的数字电压表为4位,由三大部分组成,每一部分又包含了若干子电路,将各电路组合起来,就构成了一个整体。
1、A/D转换接口电路的设计,负责对ADC0809的控制。
2、编码转换电路设计,负责把从ADC0809数据总线中读出的电压转换成BCD码。
3、输出七段显示电路的设计,负责将BCD码用7段数码管显示出来。
三、参考文献
[1]潘松.EDA技术实用教程[M].北京:
科学出版社,2003.11-13.
[2]包明.《EDA技术及数字系统设计》.北京航天航空大学出版社.2002.
[3]EDA先锋工作室.AlteraFPGA/CPLD设计[M].北京:
人民邮电出版社2005.32-33.
[4]潘松.SOPC技术实用教程[M].清华大学出版社.2005.1-15.
完成期限:
2周
指导教师:
专业负责人:
2012年6月10日
东北石油大学课程设计成绩评价表
课程名称
硬件课程设计
题目名称
数字电压表设计
学生姓名
序号
评价项目
指标(优秀)
满分
评分
1
选题难度
选题难度较高,或者对原题目进行了相当程度的改进。
10
2
工作量、工作态度和出勤率
工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于及他人合作。
10
3
课程设计质量
按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。
40
4
报告质量
问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
30
5
回答问题
在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。
10
6
创新(加分项)
工作中有创新意识,对前人工作有改进或有应用价值。
在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。
+5
总分
评语:
指导
摘要
本文介绍了利用EDA-V硬件系统和微机上的Quartus7.2-II等软件系统。
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
本文设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时周期为24小时,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。
总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。
并且使用Quartus7.2-II软件进行电路波形仿真,下载到EDA实验箱进行验证。
关键词:
EDA(电子设计自动化);VHDL(硬件描述语言),电压表。
目 录
第1章概述
1.1EDA的概念
EDA在通信行业(电信)里的另一个解释是企业数据架构,EDA给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽[1]。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
1.1.1EDA技术及应用
电子设计的必由之路是数字化,这已成为共识。
在数字化的道路上,我国的电子技术经历了一系列重大的变革。
从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。
电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。
特别在当前,半导体工艺水平已经达到深亚微米,芯片的集成高达到干兆位,时钟频率也在向干兆赫兹以上发展,数据传输位数达到每秒几十亿次,未来集成电路技术的发展趋势将是SOC片上系统。
从而实现可编程片上系统芯片CPU(复杂可编程逻辑器件)和5PGA(现场可编程门阵列)必将成为今后电子系统设计的一个发展方向。
所以电子设计技术发展到今天,又将面临另一次更大意义的突破,5PGA在EDA(电子设计自动化)基础上的广泛应用。
从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在后期的制作、电子设备的研制及生产、电路板的焊接、器件的制作过程等有重要作用。
EDA技术的概念:
EDA是电子设计自动化的由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义。
但从EDA技术的几个主要方面的内容来看,可以理解为:
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。
可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。
完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。
EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。
大致可以分为三个发展阶段。
可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图:
在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板[3]。
特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计及制造。
有专家认为,21世纪将是四A技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。
EDA技术的基本特征:
EDA代表了当今电子设计技术的最新发展方向,利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在汁算机上自动处理完成。
设计者采用的设计方法是一种高层次的”自顶向下”的全新设计方法,这种设汁方法首先从系统设计人手,在顶层进行功能方框图的划分和结构设计。
在方框图一级进行仿真、纠错.并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行驶证。
然后,用综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路(ASIC)。
由于现代电子产品的复杂度和集成度的日益提高,一般分离的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规模、超大规模芯片,具有高速度、高集成度、低功耗的可编程朋IC器件。
1.1.2EDA技术发展趋势
面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的EDA工具,使用统一的集成化设计环境,改变传统设计思路,将精力集中到设计构思、方案比较和寻找优化设计等方面,需要以最快的速度,开发出性能优良、质量一流的电子产品,对EDA技术提出了更高的要求。
未来的EDA技术将在仿真、时序分析、集成电路自动测试、高速印刷电路板设计及开发操作平台的扩展等方面取得新的突破,向着功能强大、简单易学、使用方便的方向发展[4]。
1.2EDA集成化开发环境
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点.包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具[5]。
此外,QuartusII通过和DSPBuilder工具及Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
第2章数字电压表的设计
2.1芯片ADC0809的控制时序
2.2实验原理
实验原理图2-1ADC0809
图2-1ADC0809接口电路原理图
当CS和WR同时为高电平时,ADC0809开始转换,当转换完成后,在INT脚输出高电平,等待读数据;当CS和RD同时为高电平时,通过数据总线D[7..0]从ADC0809是读出数据。
2.3.状态机的设计
状态机就是控制ADC0809转换过程的控制器。
根据ADC0809的工作时序,就可以设计出状态机。
该组状态机由以下几个部分组成,其VHDL语言描述如下。
P1:
process(present_state,next_state,INT)
begin
casepresent_stateis
whenidle=>CS<='1';WR<='1';RD<='1';
next_state<=write;
whenwrite=>CS<='1';WR<='0';RD<='1';
next_state<=swait;
whenswait=>CS<='1';WR<='1';RD<='1';
if(INT='0')then
next_state<=read;
else
next_state<=swait;
endif;
whenread=>CS<='1';WR<='1';RD<='0';
next_state<=disp1;
whendisp1=>CS<='1';WR<='1';RD<='1';
DATOUT<=dout1;
next_state<=disp2;
whendisp2=>CS<='1';WR<='1';RD<='1';
DATOUT<=dout2;
next_state<=disp3;
whendisp3=>CS<='1';WR<='1';RD<='1';
DATOUT<=dout3;
next_state<=disp4;
whendisp4=>CS<='1';WR<='1';RD<='1';
DATOUT<=dout4;
next_state<=write;
endcase;
endprocessP1;
进程1是组合进程,当CS<='1';WR<='0';RD<='0'时,ADC0809被设为空位,由控制器发出信号要求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)是控制制输出的。
endprocessP2;进程2是时序进程,当RESET='0'时,datain<="00000000"(数据信号转化为模拟信号)当时钟上升沿一来时,如果此时present_state=read,说明转换结束,datain<=D(数据信号转化为模拟信号)。
图2-2采样状态机结构框图
2.4数据转化BCD码
下面的代码是把数据转化为BCD码,模拟输入电压及输出电压的对应关系如表2-1
表2-1模拟输入输出电压表
进制
参考电压
16
2
高4位电压
低4位电压
0
0000
0.00
0.00
1
0001
0.32
0.02
2
0010
0.64
0.04
3
0011
0.96
0.06
4
0100
1.28
0.08
5
0101
1.60
0.10
6
0110
1.92
0.12
7
0111
2.24
0.14
8
1000
2.56
0.16
9
1001
2.88
0.18
A
1010
3.20
0.20
B
1011
3.52
0.22
C
1100
3.84
0.24
D
1101
4.16
0.26
E
1110
4.48
0.28
F
1111
4.80
0.30
这样由ADC0809收到的信号是01110110(76H),则对照表时,高4位01
的电压为2.24V,而低4位0110是0.12V,所以最后的电压输出结果为2.24+0.12=2.36V。
data1<="00000"whendatain(7downto4)="0000"else
"10011"whendatain(7downto4)="0001"else
"00101"whendatain(7downto4)="0010"else
"11000"whendatain(7downto4)="0011"else
"10000"whendatain(7downto4)="0100"else
"00011"whendatain(7downto4)="0101"else
"10101"whendatain(7downto4)="0110"else
"01000"whendatain(7downto4)="0111"else
"00000"whendatain(7downto4)="1000"else
"10011"whendatain(7downto4)="1001"else
"00101"whendatain(7downto4)="1010"else
"11000"whendatain(7downto4)="1011"else
"10000"whendatain(7downto4)="1100"else
"00011"whendatain(7downto4)="1101"else
"10101"whendatain(7downto4)="1110"else
"01000"whendatain(7downto4)="1111"else
"00000";
data2<="00000"whendatain(3downto0)="0000"else
"00000"whendatain(3downto0)="0001"else
"11001"whendatain(3downto0)="0010"else
"11001"whendatain(3downto0)="0011"else
"11000"whendatain(3downto0)="0100"else
"11000"whendatain(3downto0)="0101"else
"10111"whendatain(3downto0)="0110"else
"10111"whendatain(3downto0)="0111"else
"10110"whendatain(3downto0)="1000"else
"10110"whendatain(3downto0)="1001"else
"10101"whendatain(3downto0)="1010"else
"10101"whendatain(3downto0)="1011"else
"10100"whendatain(3downto0)="1100"else
"10100"whendatain(3downto0)="1101"else
"10011"whendatain(3downto0)="1110"else
"10011"whendatain(3downto0)="1111"else
"00000";
下面这段代码是BCD码的调整过程。
在读取到转换数据后,先用查表的指令算出高、低4位的两个电压值,并分别用16位的BCD码表示。
接着设计16位的BCD码加法。
相加从最低4位开始,且每4位相加结果超过10时需作进位动作。
do1<=('0'&data1(3downto0))+('0'&data2(3downto0));
c1<="00000"whendo1<"01010"else
do2<=('0'&data1(7downto4))+('0'&data2(7downto4))+c1;
c2<="00000"whendo2<"01010"else
do3<=('0'&data1(11downto8))+('0'&data2(11downto8))+c2;
c3<="00000"whendo3<"01010"else
"00001";
do4<=('0'&data1(15downto12))+('0'&data2(15downto12))+c3;
doo1<=do1whendo1<"01010"else
do1-"01010";
doo2<=do2whendo2<"01010"else
do2-"01010";
doo3<=do3whendo3<"01010"else
do3-"01010";
doo4<=do4whendo4<"01010"else
do4-"01010";
第3章数字电压表的测试及运行及下载
3.1数字电压表的编译
在【Processing】菜单下,点击【StartCompilation】命令,或直接点击常用工具栏上的按钮,开始编译我们的项目。
编译成功后,点击确定按钮。
图3-1数字电压表的原理图
3.2数字电压表的仿真
在【File】菜单下,点击【New】命令。
在随后弹出的对话框中,切换到【OtherFiles】页。
选中【VectorWaveformFile】选项,点击OK按钮。
随后把clk的周期设置为300.0ns,D的周期设置为20.0,再把INT的周期设置为30.0,最后再把RESET的置为高电平1.如图3-2所示。
图3-2进行波形仿真实验后得到波形图
图3-3数字电压表仿真波形图
配置芯片引脚就是将原理图的输入端指定到实验板上可编程芯片及按钮相连的引脚编号,将输出端指定到实验板上可编程芯片及LED发光二极管相连的引脚编号。
如图3-4配制引脚。
图3-4配制引脚图
配置好引脚后,在编译一次,然后开始下载。
如图3-5。
操作图3-5
图3-5下载后
3.3实验连线
10K10上时钟CLK0
(1)接305.2Hz,RESET(83)接K1,CS(5)、RD(6)、WR(7)分别接0809的控制输入端,INT(8)接0809的INT;D[7-0](16-23)接0809的D0-D7(注意0809数据线标识反),DATDOUT(73-60)接a-dp,SLE3-SLE0;0809的A0、A1、A2接d0-d2(置低),VREF+接VCC,VREF-接GND,CLK接MCU的ALE,IN0接模拟输出OUT。
3.4实验结果
可以改变电阻的值来改变电压。
操作图3-2
结论
通过此次短暂的硬件课程设计的学习,不仅增强了我对EDA这门技术的认识,而且还增加了我对计算机这门专业的专业性的认知,了解的一个项目的设计的全过程,而且还对QuartusⅡ软件进行硬件设计有了进一步的掌握。
作为一名计算机学生,我为自己能有这么好的一次实践机会而感到幸运,在这短暂的时间里,虽然认识不是很多,但其实为我们以后的路隐约的做好了铺垫,在以后的日子里我会更加努力的学习,努力的成为一名有用的计算机技术人员。
我们的主要学习任务是数字电压表设计。
在初学时我对密密麻麻的线路有些无从下手的感觉,但渐渐了解后我发现了这其中的规律,每当小心翼翼的链接好线路时,心中充满了无限的喜悦.在学习过程中,我也遇到了各种各样的问题,每当遇到问题时我会找老师和同学帮助.同时