EDA课程设计论文康艺.docx

上传人:b****6 文档编号:7354102 上传时间:2023-01-23 格式:DOCX 页数:16 大小:117.13KB
下载 相关 举报
EDA课程设计论文康艺.docx_第1页
第1页 / 共16页
EDA课程设计论文康艺.docx_第2页
第2页 / 共16页
EDA课程设计论文康艺.docx_第3页
第3页 / 共16页
EDA课程设计论文康艺.docx_第4页
第4页 / 共16页
EDA课程设计论文康艺.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EDA课程设计论文康艺.docx

《EDA课程设计论文康艺.docx》由会员分享,可在线阅读,更多相关《EDA课程设计论文康艺.docx(16页珍藏版)》请在冰豆网上搜索。

EDA课程设计论文康艺.docx

EDA课程设计论文康艺

 

大庆石油学院

课程设计

课程硬件课程设计

题目数字钟设计

院系计算机与信息技术学院

专业班级计算机科学与技术07-1班

学生姓名康艺

学生学号070702140105

指导教师李军

 

 

2009年7月10日

大庆石油学院课程设计任务书

课程硬件课程设计

题目数字钟设计

专业计算机科学与技术姓名康艺学号070702140105

主要内容、基本要求等

一、主要内容:

利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言输入方法设计数字钟。

要求可以利用层次设计方法,分为秒模块、分模块,时模块、扫描模块、LED和扬声器编码模块等,规定好模块与模块之间的接口,最后用原理图输入法连接各模块,将各模块合起来联试,仿真;也可以不分模块的直接编写整个程序,最后进行调试仿真和测试。

二、基本要求:

1.掌握多位计数器相连的设计方法。

2.掌握十进制,六进制,二十四进制计数器的设计方法。

3.继续巩固多位共阴级扫描显示数码管的驱动,及编码。

4.掌握扬声器的驱动。

5.LED灯的花样显示。

6.掌握EPLD技术的层次化设计方法。

7.按照规范写出论文,要求字数在4000字以上,并进行答辩。

论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA技术的现状和发展趋势、对EL教学实验箱和QuartusⅡ软件的掌握程度、数字钟的设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。

完成期限第20周

指导教师李军

专业负责人袁满

2009年6月29日

 

摘要

本文介绍了利用EL教学实验箱和微机上的QuartusⅡ等软件系统,使用VHDL语言输入方法和原理图设计数字钟。

VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。

本文简单介绍EDA技术的发展史、说明QuartusⅡ的使用过程,阐述了数字钟的设计与实现的相关过程。

 

关键词:

EDA(电子设计自动化);VHDL(硬件描述语言);数字钟;QuartusⅡ

 

目录

第1章概述1

1.1EDA的概念1

1.1.1EDA技术及应用2

1.1.2EDA技术发展趋势2

1.2EDA的工作平台3

1.2.1EDA硬件工作平台3

1.2.2EDA的软件工作平台3

第2章数字钟原理图设计4

2.1数字钟原理流程图:

4

2.2数字钟原理图:

5

第3章数字钟程序设计6

3.1数字钟详细分析6

3.1.2实验原理6

3.2数字钟的设计过程6

3.2.1设计规划6

3.2.2设计说明7

3.3VHDL设计7

3.3.1数字钟源程序(VHDL语言编译)7

结论13

参考文献14

第1章概述

1.1EDA的概念

  EDA是电子设计自动化(ElectronicDesignAutomation)的缩写。

由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义[1]。

但从EDA技术的几个主要方面的内容来看,可以理解为:

EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。

可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。

完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片[2]。

EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。

大致可以分为三个发展阶段。

20世纪70年代的CAD(计算机辅助设计)阶段:

这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。

20世纪80年代的QAE(计算机辅助工程设计)阶段:

这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能[3]。

20世纪90年代是EDA(电子设计自动化)阶段:

这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成[4]。

EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。

该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。

在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。

特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造[5]。

21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。

 

  硬件描述语言 :

 硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。

 常用硬件描述语言有HDL、Verilog和VHDL语言[6]。

1.1.1EDA技术及应用

电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。

在教学方面:

几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。

主要是让学生了解EDA的基本原理和基本概念、硬件描述系统逻辑的方法、使用EDA工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。

具有代表性的是全国每两年举办一次的大学生电子设计竞赛活动。

在科研方面:

主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将FPGA器件的开发应用到仪器设备中。

在产品设计与制造方面:

从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在后期的制作、电子设备的研制与生产、电路板的焊接、器件的制作过程等有重要作用。

可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持[7]。

1.1.2EDA技术发展趋势

  EDA技术在进入21世纪后,由于更大规模的FPGA器件的不断推出,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展。

电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:

使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。

随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。

可以说电子EDA技术是电子设计领域的一场革命。

传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。

作为高等院校有关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有掌握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。

随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。

所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。

特别是EDA技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电子技术的发展具有深远的意义。

  

1.2EDA的工作平台

1.2.1EDA硬件工作平台

1.计算机

2.EDA实验开发系统:

EL教学实验箱。

1.2.2EDA的软件工作平台

PLD(ProgrammableLogicDevice)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。

目前主要有两大类型:

CPLD(ComplexPLD)和FPGA(FieldProgrammableGateArray)。

它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。

生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。

我们采用了QuartusⅡ软件作为开发工具。

第2章数字钟原理图设计

2.1数字钟原理流程图:

图2-1数字钟流程图

2.2数字钟原理图:

第3章数字钟程序设计

3.1数字钟详细分析

3.1.1数字钟原理:

   数字钟由分频器、计数器、译码显示、报时等电路组成。

数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分为模60计数器,小时是模24计数器,分别产生3位BCD码。

BCD码经译码,驱动后接数码管显示电路。

秒模60计数器的进位作为分模60计数器的时钟,分模60计数器的进位作为模24计数器的时钟。

分频器将输入的频率分为设计所需的两个时钟。

为了实现手动调整时间,在外部增加了S2(调整分钟),S1(调整小时)按键,当这两个按键为高电平时,电路正常计时,当为低电平时,分别调整分钟和小时。

同时在外部还增加了一个复位按键Rst和扬声器SPK(整点报时)。

3.1.2实验原理

在同一EPLD芯片EPF10K10上集成了如下电路模块:

1.时钟计数:

秒——60进制BCD码计数;

分——60进制BCDD码计数;

时——24进制BCDD码计数;

同时整个计数器有清零,调分,调时功能。

在接近整数时间能提供报时信号。

2.具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。

编码和扫描可参照“实验四”。

3.扬生器在整点时有报时驱动信号产生。

4.LED灯按个人口味在整点时有花样显示信号产生。

3.2数字钟的设计过程

3.2.1设计规划

基于硬件描述语言(VHDL),利用EL教学实验箱及QuartusⅡ软件设计数字钟,实现实验要求的时钟计数功能,清零、调节分钟和小时功能,扬声器整点报时功能,8位八段共阴扫描数码管显示和LED花样显示。

3.2.2设计说明

本章节主要介绍用VHDL语言来描述数字钟,使用的是整体程序法,所有功能集成在同一程序中。

3.3VHDL设计

3.3.1数字钟源程序(VHDL语言编译)

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

------------------------------------------------------------------------------------------------------------

entitydaclkis

port(Clk:

instd_logic;--时钟输入

Rst:

instd_logic;--复位输入

S1,S2:

instd_logic;--时间调节输入

SPK:

outstd_logic;--扬声器输出

Display:

outstd_logic_vector(7downto0);--八段码管显示输出

SEG_SEL:

bufferstd_logic_vector(2downto0);--八段码管扫描驱动

lam:

outstd_logic_vector(2downto0));

enddaclk;

---------------------------------------------------------------------------------------------------------

architecturebehaveofdaclkis

signalDisp_Temp:

integerrange0to15;

signalDisp_Decode:

std_logic_vector(7downto0);

signalSEC1,SEC10:

integerrange0to9;

signalMIN1,MIN10:

integerrange0to9;

signalHOUR1,HOUR10:

integerrange0to9;

signalClk_Count1:

std_logic_vector(13downto0);

signalClk1Hz:

std_logic;

signalMusic_Count:

std_logic_vector(2downto0);

signalcount:

std_logic_vector(1downto0);

signallamp:

std_logic_vector(2downto0);

begin

process(Clk)--产生1Hz时钟的分频计数器

begin

if(Clk'eventandClk='1')then

if(Clk_Count1<10000)then

Clk_Count1<=Clk_Count1+1;

else

Clk_Count1<="00000000000001";

endif;

endif;

endprocess;

Clk1Hz<=Clk_Count1(13);

process(Clk1Hz,Rst)

begin

if(Rst='0')then--系统复位

SEC1<=0;

SEC10<=0;

MIN1<=0;

MIN10<=0;

HOUR1<=0;

HOUR10<=0;

elsif(Clk1Hz'eventandClk1Hz='1')then

if(S1='0')then--调节小时

if(HOUR1=9)then

HOUR1<=0;

HOUR10<=HOUR10+1;

elsif(HOUR10=2andHOUR1=3)then

HOUR1<=0;

HOUR10<=0;

else

HOUR1<=HOUR1+1;

endif;

elsif(S2='0')then--调节分钟

if(MIN1=9)then

MIN1<=0;

if(MIN10=5)then

MIN10<=0;

else

MIN10<=MIN10+1;

endif;

else

MIN1<=MIN1+1;

endif;

elsif(SEC1=9)then

SEC1<=0;

if(SEC10=5)then

SEC10<=0;

if(MIN1=9)then

MIN1<=0;

if(MIN10=5)then

MIN10<=0;

if(HOUR1=9)then

HOUR1<=0;

HOUR10<=HOUR10+1;

elsif(HOUR10=2andHOUR1=3)then

HOUR1<=0;

HOUR10<=0;

else

HOUR1<=HOUR1+1;

endif;

else

MIN10<=MIN10+1;

endif;

else

MIN1<=MIN1+1;

endif;

else

SEC10<=SEC10+1;

endif;

else

SEC1<=SEC1+1;

endif;

endif;

endprocess;

process(Clk)--整点报时

begin

if(Clk'eventandClk='1')then

Music_Count<=Music_Count+1;

if(MIN10=5andMIN1=9andSEC10=5)then

if((SEC1MOD2)=0)then

SPK<=Music_Count

(2);

else

SPK<='0';

endif;

elsif(MIN10=0andMIN1=0andSEC10=0andSEC1=0)then

SPK<=Music_Count

(1);

else

SPK<='0';

endif;

endif;

endprocess;

process(clk1Hz)--LED灯

begin

lam<=lamp;

if(rising_edge(clk1Hz))then

count<=count+1;

if(count<="10")then

if(count="00")then

lamp<="001";

elsif(count="01")then

lamp<="010";

elsif(count="10")then

lamp<="100";

endif;

else

count<="00";

endif;

endif;

endprocess;

process(SEG_SEL)--显示排序

begin

case(SEG_SEL+1)is

when"111"=>Disp_Temp<=HOUR10;

when"110"=>Disp_Temp<=HOUR1;

when"101"=>Disp_Temp<=10;

when"100"=>Disp_Temp<=MIN10;

when"011"=>Disp_Temp<=MIN1;

when"010"=>Disp_Temp<=10;

when"001"=>Disp_Temp<=SEC10;

when"000"=>Disp_Temp<=SEC1;

endcase;

endprocess;

process(Clk)--扫描累加

begin

if(Clk'eventandClk='1')then

SEG_SEL<=SEG_SEL+1;

Display<=Disp_Decode;

endif;

endprocess;

process(Disp_Temp)--显示转换

begin

caseDisp_Tempis

when0=>Disp_Decode<="00111111";

when1=>Disp_Decode<="00000110";

when2=>Disp_Decode<="01011011";

when3=>Disp_Decode<="01001111";

when4=>Disp_Decode<="01100110";

when5=>Disp_Decode<="01101101";

when6=>Disp_Decode<="01111101";

when7=>Disp_Decode<="00000111";

when8=>Disp_Decode<="01111111";

when9=>Disp_Decode<="01101111";

when10=>Disp_Decode<="01000000";

whenothers=>Disp_Decode<="00000000";

endcase;

endprocess;

endbehave;

 

3.3.2实验连线:

输入接口:

1.清零,调小时,调分钟信号Rst,S1,S2的引脚分别连接按键开关。

2.计数时钟信号CLK引脚同32HZ(或更高)时钟源相连。

输出接口:

1.扫描显示的驱动信号管脚SEG_SEL1,SEG_SEL2,SEG_SEL3接实验箱上的SEL0~SEL2,Display(7downto0)分别接八位数码管显示模块的A~G。

2.扬声器驱动信号的管脚SPK同扬声器驱动接口SPEAKERIN相连。

3.到时花样LED灯显示的信号管脚LAMP0…LAMP2同3个LED灯相连。

4.到时LED灯闪烁提示的ENHOUR接LED灯。

结论

 

通过此次课程设计,让我对EDA这门技术有了更深的体会,并更好的学会了使用QuartusⅡ软件进行硬件设计。

此次课程设计时基于VHDL语言进行的数字钟设计,在课程设计时,我逐渐掌握了VHDL语言的语句及语法等的使用。

但在学习过程中,也遇到了很多困难,由于刚刚学习EDA不久,所以很多细节内容都不是很了解,尤其时VHDL语言的运用。

我先上网找了一些资料和程序,一点点的看,慢慢摸索着学习写语句。

最后在老师和同学的帮助下,终于完成了数字钟的设计。

以后我会利用更多时间来学习EDA技术。

EDA技术有着非

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1