课程设计Word下载.docx

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

课程设计Word下载.docx

《课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《课程设计Word下载.docx(24页珍藏版)》请在冰豆网上搜索。

课程设计Word下载.docx

序号

评价项目

指标(优秀)

满分

评分

1

选题难度

选题难度较高,或者对原题目进行了相当程度的改进。

10

2

工作量、工作态度和出勤率

工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。

3

课程设计质量

按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。

40

4

报告质量

问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。

30

5

回答问题

在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。

6

创新(加分项)

工作中有创新意识,对前人工作有改进或有应用价值。

在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。

+5

总分

评语:

指导教师:

2012年6月10

摘要

介绍EDA技术的特点以及设计流程,强调EDA仿真技术在现代电子系统的重要地位及作用。

以MAX+PLUSII为平台,采用自顶向下分层次、模块化的设计方法,设计了一个可以设置初始时间和清零的电子时钟控制电路,从中可体现出数字系统的硬件设计向软件化方向发展的新思路。

EDA技术在电子信息,通信,自动控制用计算机等领域的重要性日益突出。

作为一个学习通信工程专业的学生,我们必须不断的了解更多的新产品信息,这就更加要求我们对EDA有个全面认识。

本程序设计的是基于VHDL的数字时钟,采用EDA作为开发工具,VHDL语言为硬件描述语言,QUARTUSII作为程序的运行平台,所开发的程序经过调试运行,波形仿真验证,初步实现了设计目标。

关键词:

EDA技术;

设计;

AHDL语言

目 录

第1章概述1

1.1EDA的概念1

1.2EDA的工作平台2

第2章数字钟的系统分析3

2.1设计目的3

2.2功能说明3

2.3实验原理3

2.4系统硬件4

第3章数字钟的底层电路设计5

3.1设计规划5

3.2设计说明5

3.3底层电路程序6

第4章数字钟的顶层文件设计13

4.1设计说明13

4.2顶层文件程序13

第5章数字钟的测试与运行17

5.1数字钟的编译与仿真17

5.2数字钟的适配与测试20

结论22

参考文献23

第1章概述

1.1EDA的概念

EDA(电子线路设计座自动化)是以计算机为工作平台、以硬件描述语言(AHDL)为设计语言、以可编程器件(CPLD/FPGA)为实验载体、以ASIC/SOC芯片为目标器件、进行必要的元件建模和系统仿真的电子产品自动化设计过程。

EDA源于计算机辅助设计,计算机辅助制造、计算机辅助测试和计算机辅助工程。

利用EDA工具,电子设计师从概念、算法、协议开始设计电子系统,从电路设计,性能分析直到PCB版图生成的全过程均可在计算机上自动完成。

EDA代表了当今电子设计技术的最新发展方向,其基本特征是设计人员以计算机为工具,按照自顶向下的设计方法,对整个系统进行方案设计和功能划分,由硬件描述语言完成系统行为级设计,利用先进的开发工具自动完成逻辑编译、化简、分割、综合、优化、布局布线、仿真及特定目标芯片的适配编译和编程下载,这被称为数字逻辑电路的高层次设计方法。

EDA技术的主要特征

作为现代电子系统设计的主导技术,EDA具有几个明显特征:

1.用软件设计的方法来设计硬件

硬件系统的转换是由有关的开发软件自动完成的,设计输入可以是原理图或AHDL语言,通过软件设计方式的测试,实现对特定功能硬件电路的设计,而硬件设计的修改工作也如同修改软件程序一样快捷方便,设计的整个过程几乎不涉及任何硬件,可操作性、产品互换性强。

2.基于芯片的设计方法

EDA设计方法又称为基于芯片的设计方法,集成化程度更高,可实现片上系统集成,进行更加复杂的电路芯片化设计和专用集成电路设计,使产品体积小、功耗低、可靠性高;

可在系统编程或现场编程,使器件编程、重构、修改简单便利,可实现在线升级;

可进行各种仿真,开发周期短,设计成本低,设计灵活性高。

3.自动化程度高

EDA技术根据设计输入文件,将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成,自动生成目标系统,使设计人员不必学习许多深入的专业知识,也可免除许多推导运算即可获得优化的设计成果,设计自动化程度高,减轻了设计人员的工作量,开发效率高。

4.自动进行产品直面设计

EDA技术根据设计输入文件(HDL或电路原理图),自动地进行逻辑编译、化简、综合、仿真、优化、布局、布线、适配以及下载编程以生成目标系统,即将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成。

1.2EDA的工作平台

1.2.1EDA硬件工作平台

1.计算机。

2.EDA实验开发系统:

EDA-V。

1.2.2EDA的软件工作平台

EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。

目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:

Protel、AltiumDesigner、PSPICE、multiSIM10(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。

这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。

按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件

第2章数字钟的系统分析

2.1设计目的

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

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

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

4.掌握扬声器的驱动。

5.LED灯的花样显示。

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

2.2功能说明

2.具有清零,调节小时、分钟功能。

3.具有整点报时功能,整点报时的同时LED灯花样显示。

2.3实验原理

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

1.时钟计数:

秒——60进制BCD码计数;

分——60进制BCDD码计数;

时——24进制BCDD码计数;

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

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

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

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

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

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

2.4系统硬件

1.主芯片EPF10K10LC84-4。

2.8个LED灯。

3.扬声器。

4.8位八段扫描共阴级数码显示管。

5.三个按键开关(清零,调小时,调分钟)。

第3章数字钟的底层电路设计

3.1设计规划

该数字钟可以实现3个功能:

计时功能、整点报时功能和重置时间功能,因此有3个子模块:

计时、报时(alarm1)、重置时间(setmin1、sethour1)。

其中计时模块有3部分构成:

秒计时器(second1)、分计时器(minute1)、时计时器(hour1)。

1.秒计数模块:

秒计数,在频率为1HZ的时钟下以60次为循环计数,并产生进位信号影响分计数。

2.分计数模块:

分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数。

3.时计数模块:

时计数,在分进位信号为高电平时,计数一次,以24次为一个循环计数。

4.时间显示模块:

通过选中不同的数码管,同时进行一定频率的扫描显示时,分,秒。

5.时间设置模块:

设置调试使能端,可以调时,分。

基本功能是在使能端为高电平时,可以使时和分循环计数;

6.整点报时模块:

在秒计数到50秒时,同时分计数到59分开始,丰鸣器产生每个2秒的鸣叫(500HZ),到整点是产生750HZ的鸣叫。

7.闹钟模块:

在设定闹钟闹铃时间后,当闹钟使能端有效时,可在闹铃时间闹铃,并有彩灯显示。

3.2设计说明

首先分析数字时钟,得出进位法则大体相同,故所得时分秒进位方式语法基本相同,因此可以将时分秒定义成六位输出端口,即分别将时分秒定义为3个component,分别给予设计。

3.3底层电路程序

3.3.1秒计时器(VHDL语言编译)

其代码如下:

(VHDL语言):

LIBRARYieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYsecondIS

PORT(

clk,reset,setmin:

INSTD_LOGIC;

enmin:

OUTSTD_LOGIC;

daout:

outstd_logic_vector(6downto0));

ENDentitysecond;

ARCHITECTUREfunOFsecondIS

SIGNALcount:

STD_LOGIC_VECTOR(6downto0);

SIGNALenmin_1,enmin_2:

STD_LOGIC;

BEGIN

daout<

=count;

enmin_2<

=(setminandclk);

enmin<

=(enmin_1orenmin_2);

process(clk,reset,setmin)

begin

if(reset='

0'

)thencount<

="

0000000"

;

elsif(clk'

eventandclk='

1'

)then

if(count(3downto0)="

1001"

if(count<

16#60#)then

if(count="

1011001"

enmin_1<

='

count<

else

=count+7;

endif;

elsif(count<

=count+1;

after100ns;

endprocess;

endfun;

秒计时器实际上是一个60进制的计数器,它从时钟脉冲接受脉冲信号,每当一个脉冲信号来时,秒就自动加1,所以,输入的时钟信号应该是的频率应该是1hz,当秒计满60时,发出一个脉冲信号给分组件,再将本身清零。

这样,每计满60s,分钟就加1,正好按着正常的时间规律计时。

3.3.2分计时器(VHDL语言编译)

其代码(VHDL语言)如下:

ENTITYminuteIS

clk,clk1,reset,sethour:

enhour:

ENDentityminute;

ARCHITECTUREfunOFminuteIS

SIGNALenhour_1,enhour_2:

enhour_2<

=(sethourandclk1);

enhour<

=(enhour_1orenhour_2);

process(clk,reset,sethour)

enhour_1<

ELSE

after100ns;

ENDfun;

分计时器也是一个60进制的计数器,它从秒计时器的脉冲输出端接受脉冲信号。

每当一个脉冲信号来时,分就自动加1,当分计满60时,发出一个脉冲信号给时组件,再将本身清零。

这样,每计满60MIN,小时就加1,正好按着正常的时间规律计时。

该模块还能对分进行数字调整,并可以将其全部清零。

3.3.3时计时器(VHDL语言)

代码如下:

ENTITYhourIS

clk,reset:

outstd_logic_vector(5downto0));

ENDentityhour;

ARCHITECTUREfunOFhourIS

STD_LOGIC_VECTOR(5downto0);

process(clk,reset)

000000"

if(count(3downto0)="

=16#23#)then

16#23#)then

ENDfun;

时计时器是一个24进制的计数器,它从分组件的脉冲信号输出端接受脉冲信号,每当一个脉冲信号来时,时就自动加1,并且输出个信号给时组件,直到计满24,再将本身清零。

该组件还能对时进行数字调整,并可以将其全部清零。

3.3.4时间显示Deled(VHDL语言)

ENTITYdeledIS

PORT(num:

INstd_logic_vector(3downto0);

led:

OUTstd_logic_vector(6downto0));

enddeled;

ARCHITECTUREfunOFdeledIS

led<

1111110"

whennum="

0000"

"

0110000"

0001"

1101101"

0010"

1111001"

0011"

0110011"

0100"

1011011"

0101"

1011111"

0110"

1110000"

0111"

1111111"

1000"

1111011"

1110111"

1010"

0011111"

1011"

1001110"

1100"

0111101"

1101"

1001111"

1110"

1000111"

1111"

Deled模块是一个简单的电路,它的功能将时、分、秒三个组件中所计的数编码后,能对应在七段数码管山显示成数字形式。

3.3.5报时模块alert(VHDL语言)

ENTITYalertIS

clk:

dain:

INSTD_LOGIC_VECTOR(6DOWNTO0);

speak:

lamp:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDalert;

ARCHITECTUREfunOFalertIS

signalcoun:

std_logic_vector(1downto0);

signalcount1:

speaker:

process(clk)

speak<

=count1

(1);

if(clk'

if(dain="

if(count1>

10"

count1<

00"

=count1+1;

endprocessspeaker;

lamper:

if(rising_edge(clk))then

if(coun<

if(coun="

lamp<

001"

elsif(coun="

01"

010"

100"

coun<

=coun+1;

endprocesslamper;

报时模块也是个简单的程序,它的功能是:

当每满一个小时时,有该组件输出一个脉冲信号给试验箱上的喇叭,喇叭会相应其信号,能持续发出一段蜂鸣声,从而达到报时的目的。

3.3.6译码模块seltime(VHDL语言)

useieee.std_logic_arith.all;

ENTITYseltimeIS

clk1,reset:

sec,min:

INSTD_LOGIC_VECTOR(6downto0);

hour:

instd_logic_vector(5downto0);

OUTSTD_LOGIC_vector(3downto0);

dp:

OUTstd_LOGIC;

sel:

outstd_logic_vector(2downto0));

ENDseltime;

ARCHITECTUREfunOFseltimeIS

STD_LOGIC_vector(2downto0);

sel<

process(clk1,reset)

000"

elsif(clk1'

eventandclk1='

if(count>

101"

casecountis

when"

=>

=sec(3downto0);

dp<

daout(3)<

daout(2downto0)<

=sec(6downto4);

=min(3downto0);

011"

=min(6downto4);

=hour(3downto0);

whenothers=>

daout(3downto2)<

daout(1downto0)<

=hour(5downto4);

endcase;

endfun;

译码模块时时钟显示的最重要的部件,它的功能时将时、分、秒共六位译码输出显示在六位的led显示器上。

它的时

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

当前位置:首页 > 高等教育 > 历史学

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

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