数据库课设报告甲骨文(Oracle)公司的人力资源的设计和实现

时间:2019-05-14 11:04:29下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数据库课设报告甲骨文(Oracle)公司的人力资源的设计和实现》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数据库课设报告甲骨文(Oracle)公司的人力资源的设计和实现》。

第一篇:数据库课设报告甲骨文(Oracle)公司的人力资源的设计和实现

计 算 机 学 院

名 称: 数据库原理及应用

专 业: 计算机科学与技术 班 级: 计科122 学 号: 20120081421* 学生姓名: 刘** 指导教师: 杜献峰

2014年 10 月 07日

目 录 中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

第1章

概述...........................................................................................................................1 第2章

任务与实现...............................................................................................................3

2.1甲骨文(Oracle)公司的人力资源的设计和实现........................................................3 第3章

总结.........................................................................................................................20 参考文献:.............................................................................................................................20

中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

第1章

概述

任务描述

甲骨文(Oracle)公司的人力资源(Oracle_HR)描述为:

公司的业务遍布全球,这些不同地理位置按区域(regions)划分,如东南亚区域等,每一个区域包括多个国家(countries),区域(region)有区域编号(region_id)和区域名(region_name)属性组成;

在一个国家的多个地点(locations)设置子公司,一个国家有国家编号(country_id)、国家名称(country_name)属性组成;

在一个地点(locations)开设多个子公司(departments),每一个地点(locations)包括地点编号(location_id)、所属州或者省的名称(state_province)、城市名(city)、街道地址(street_address)、邮政编码(postal_code)属性组成;

每一个子公司(departments)有多名雇员(employees),一个子公司(departments)有子公司编号(department_id)、子公司名称(department_name)属性组成;

甲骨文公司设置若干工种(jobs),每一雇员一个时期內只能受聘于一个部门的一个工种,每一工种有多名雇员组成,工种有工种编号(job_id)、工种头衔(job_title)、工种最低工资(min_salary)、工种最高工资(max_salary)属性组成。

每一个雇员有雇员编号(employee_id)、雇员的姓(first_name)、雇员的名(last_name)、雇员电子邮件(email)、雇员电话(phone_number)、雇员被雇佣的起始日期(hire_date)、工资(salary)、工资增长率(commission_pct)。一个子公司雇员有领导和被领导的关系,一个子公司有一名经理(manager)领导其它雇员。对于一个雇员在Oracle公司里都有一个工作经历(job_history),雇员的工作史是指一名雇员从某一时间开始(start_date)、到某一时间结束(end_date)、在某一部门、做某一工种工作的情况。

要求如下:

一、创建Oracle HR数据库及数据库对象

1、创建Oracle HR数据库,例如数据库名取Oracle_HR。

2、画出Oracle HR的ER图。

3、将ER图转换为关系。

4、定义关系中属性及约束。

5、创建表空间。

6、创建用户。

7、给用户授权。

8、创建数据表。

9、导入数据(由老师提供)。

二、使用Java或者C#语言完成应用程序开发。

1、C/S或者B/S均可。

2、前台、后台程序书写规范,能在后台完成的功能不在前台实现。

中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

第2章

任务与实现

2.1甲骨文(Oracle)公司的人力资源的设计和实现

1.使用Java或者C#语言完成应用程序开发。

1.1、C/S或者B/S均可。

1.2、前台、后台程序书写规范,能在后台完成的功能不在前台实现。1.3、前台:将class编译成为jar包或者dll程序集,调用Jar包或者dll程序。

1.4、后台:过程、函数、游标、触发器、视图等代码。1.5、按不同条件实现下面功能:

插入数据、修改数据、删除数据、查询数据(复合查询、动态查询)。数据统计及报表(表格、饼图、直方图)。数据备份与还原。

中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

2.2、E-R图

中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

(6)雇员表

(7)工作经历表

中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

功能实现:查询(按区域名查询)

功能实现:修改

修改前(我要修改区域编号7的记录)

中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

增加后:

功能实现:数据备份(将数据库中数据写入到region.xls的Excel文件中)要写入的数据如下:

数据备份如下:

1中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

子公司表:

工种表:

3中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

功能实现:删除前(删除编号为200的记录)

删除后:

5中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

public static class SqlHelper { //运行时从配置文件中把name=conStr的结点,所对应的值读出来 private static string conStr = ConfigurationManager.ConnectionStrings[“conStr”].ConnectionString;

#region 1连接通道属性

private static SqlConnection conn;

public static SqlConnection Conn { get { if(conn == null || conn.State == ConnectionState.Broken){ conn = new SqlConnection(conStr);} return conn;}

} #endregion

#region 2 获取数据表 ///

/// 获取数据表 /// ///

查询语句 ///

参数数组 /// 结果表 public static DataTable GetDataTable(string sqlStr, params SqlParameter[] paras){ //创建命令对象,查询语句可能带有参数,通过command对象传递过来

SqlCommand cmd = new SqlCommand(sqlStr, Conn);if(paras!= null && paras.Length > 0){ cmd.Parameters.AddRange(paras);}

7中原工学院计算机学院数据库课程设计报告

班级计科122

姓名刘**

catch(Exception ex){

throw ex;} finally { CloseDB();}

return res;} } 数据的连接字符串保存在App.config文件中:通过读取配置文件获取连接字符串,主要代码如下:

//运行时从配置文件中把name=conStr的结点,所对应的值读出来 private static string conStr = ConfigurationManager.ConnectionStrings[“conStr”].ConnectionString;

第二篇:数据库课设报告(共)

数据库上机实习

数 据 库 课 程 设 计

题目 《数据库》课程设计

学号 201007084201 姓名 马伟华 班级 电气102 指导老师 刘秀敏

数据库上机实习

目录

一、概述„„„„„„„„„„„„„„„„„„„„„„3 1.1课程设计目的与要求„„„„„„„„„„„„4 1.2课程设计环境„„„„„„„„„„„„„„„4

二、创建数据库„„„„„„„„„„„„„„„„„„„4 2.1创建一个空数据库„„„„„„„„„„„„„5 2.1建立自己的文件夹存放数据库文件„„„„„„6

三、创建数据表„„„„„„„„„„„„„„„„„„„6 3.1数据库之间关系„„„„„„„„„„„„„„7 3.2数据库的值列表„„„„„„„„„„„„„„8 3.3通过导入方式创建表„„„„„„„„„„„„9 3.4向表输入数据„„„„„„„„„„„„„„„10

四、数据库的实现„„„„„„„„„„„„„„„„„11

五、作业截图„„„„„„„„„„„„„„„„„„„13

六、收获与心得体会„„„„„„„„„„„„„„„„15

数据库上机实习

一、概述

按照教学安排我们进行了一次数据库上机的实习,这次的数据库实习课程主要是学习microsoft access 2003的一些操作流程,对于access 2003 这个软件,我以前很是陌生,不过经过了这次的实习,对它已经不再陌生了,自己跟着教学计划也制作了几个数据表格总体来说,access 2003 是一个令数据的管理成为一个很简单的软件,大大方便了数据管理人员的工作量。就这次的实习报告,我会详细的介绍一下access 2003 的一些相关知识和基本的操作流程,算是对自己这次实习的一个总结吧。

数据库,顾名思义:数据的仓库。当使用者需要保存的数据量不是很大时,我们可以直接将数据写到一个文件中,比如一个文本文件或二进制文件。但当数据量很大,而且我们需要实时查询和整理时直接操纵文本文件或二进制文件,将使工作变得以异常的复杂。

数据库,可以替使用者管理数据,使用者只需使用相关的命令(如SQL查询语言),就能和数据库进行“通话”,让数据库执行我们想要的操作。比如:新增数据(插入)、更改数据(更新)、删除数据检索数据(查询)等等。我们不再需要自己去设计数据是怎么被存储和提取的,这一切都交给数据库去做。1.1课程设计目的与要求

Access 是微软公司推出的基于Windows的桌面关系据库管系统(RDBMS,即Relational Database Management System),是Office系列应用软件之一。它提供了表、查询。窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。因此我们有必要掌握数据库软件的操作来简化我们生活中的一些数据管理工作,这就是我们实习的目的,是十分必要的。

Microsoft Access应用实验是管理信息系统实验课的重要组成部分,属于学科基础实验范畴,是与相关教学内容配合的实践性教学环节。学生通过实验,验证课堂学习的知识,掌握数据库、数据表建立、查询以及窗体的方法,从而具

数据库上机实习

有小型数据库管理系统的设计能力。并以此提高学生的动手能力和实践水平,培养学生的技术应用能力和综合分析问题、解决问题的能力。1.2课程设计环境

Access是一种关系型数据库管理系统,其主要特点如下:

(1)存储方式单一Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。

(2)面向对象Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。

(3)界面友好、易操作Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。

二、创建数据库

2.1.1 创建一个空数据库

2.1.2 建立自己的文件夹-用于存放自己的数据库文件

数据库上机实习

数据库上机实习

上图就是一些建立数据库所需要的一些步骤,首先在自己的电脑相应的硬盘中建立一个新文件夹,再在Microfost Access中打开空数据库就相当于建立了一个新的文件。

三、创建数据表

在打开的空数据表中可以创立一些自己所需要的数据和内容同时需要规定一些自己所需要的格式和方式,一边与自己以后可以方便的找到。对于每一种数据都有不同的格式和限制,所以对于每一行的数据都有自己的方式去调整。下面就告诉了我们所需要对相应文本内容进行的调整和制作:其中文本是文字的格式,日期应该有日期的格式,这就需要我们按自己的需要。

数据库上机实习

3.1数据库之间关系

每个数据库之间可能有一定的关系,特别是对学校来说,每个学生的学号、成绩、班级等等都有一定的关系。如何能把这些关系同一方便的安排在一个数据库之中你这就需要数据库之间的关系的功能。他可以方便的让你理解各个数据库之间的关系和内容。首先建立数据库之间的关系图通过关系的确立就可以明细的 找到几个数据库之间的关联,其次通过数据的链接关系找出两个数据之间的相应关系。

3.2数据库的值列表

数据库的值列表就是在每一个数据库的类型中,它所包含 的所有的情况的综合。特别是对于统计性别的时候,如果有了数据库的值列表,就会省事很多。应为数据库的值列表就是直接列出的所有情况,你可以直接相应的栏目中找出自己所需要的那种情况行。

数据库上机实习

3.3通过导入方式创建表

导入表的格式也是有好多种,比如说Excel,或者直接就是一Access文件,所以说导入表可以让我们更直观更提前的了解这个数据表的内容,不用再一个一个的翻看,可以给我们剩下好多浏览的时间。同时也可以让我们对这个表有一个 整体的印象。

数据库上机实习

3.4向表输入数据

如下图向表输入数据

3.5查阅字段的数据来源于表

以下将从另一表中提取数据作为本表字段的数据,例如,grade表的课程号数据不是由用户键入,而是从课程表的课程号中去提取,因为你的课程表数据已经被键入,如图

数据库上机实习

从另一表中提取数据作为本表字段的数据的方法是:在【Education】数据库窗口,单击【对象】栏下面的【表】,在对象列表框,选择grade,在工具栏,单击【设计】,弹出【grade:表:】 表的设计视图。在【课程号】字段的【数据类型】下拉列表,单击【查阅向导】,如下图

弹出下图所示【查阅向导】对话框之一,在选项组的按钮中,选择【使查阅列在表或查询中查阅数值】,单击【下一步】,弹出下图所示查阅向导对话框之二,在【请选择为查阅列提供数值的表或查询】栏中,选择course,即选择课程表作为数据来源

数据库上机实习

单击【下一步】,弹出下图所示查阅向导对话框之三,其中,选定字段为课程号,课程名.单击【下一步】,弹出下图所示查阅向导对话框之四,其中,值列表的内容被显示

数据库上机实习

单击【下一步】, 单击【下一步】,得到图下图所示查阅向导对话框之五,里是为查阅列指定标签,在课程号,课程名两个中,选择课程号,单击【完成】按钮,弹出下图查阅向导对话框之七,其中,问到,是否保存,单击【是】按钮,完成创建值列表之后,我们看效果,打开【grade:表】表的数据表视图,即:在Access菜单,单击视图数据表视图,其课程号的数据,不需要用户键入数据,只需在值列表中选择数据即可。

从中,单击【照片】字段所在的单元格,再单击Access菜单中的【插入】→【对象】即可。

数据库上机实习

3.5通过链接外部数据创建表

打开【Education】数据库窗口,单击【对象】栏下的【表】,单击【新建】按钮,在【新建表】对话框中,单击【链接表】,如下图

四、数据库的实现

数据库是相当方便的的一种工具,他就是在你不想一步步去查找相应数据所在地的时候,用数据来源就最方便了。特别是在统计学生成绩单的时候,学号与成绩、姓名三个数据之间统一成相应的关系来源,这样,在寻找学生学号的时候就直接会有起相应的成绩和专业 等相关的数据,这样就会更加具体的去了解这个同学。同时在最后面的相片一栏中还可以附送上一些照片,这样就相当于一个小小的个人简历了,老师可以通过这个小小的简历就可以评估这个同学。

数据库上机实习

上面的图示就很明确的展示了数据来源的关键作用,当你找到学生的学号时,他相对应的姓名呀,专业呀都一起显示出来,这就很方便就可以了解这个同学。

五、作业截图

数据库上机实习

六﹑个人总结及感想

数据库上机实习是一次技能的补充练习,是一种自我提高的方式,我们每个同学都能够从中获取一些不同的收获,其实任何形式的学习都是一种提高,有理论知识层面的、有实际操作领域的,都是一种提高,是一种自身价值的体现。相信我们在经过各种各样的实习的历练之后,我们在以后面对社会或者生活中的难题时,应该不会只是迷茫,不知所措,而是能够分析问题,找出解决问题的方法,这就是最大的收获,获得一种处事的思维方法,比其他任何的收获都重要,更有价值。

首先通过这个数据库的课程设计让我又了解了一种关于数据整理的一个软件,因为以前学习的只是一些像Word、Excel等这样的小软件,刚开始以为自己对这种比较有难度的程序有点抵触,因为像这种课程设计听着就让我觉得有点难度。但是经过这几节课的联系和了解,我更加知道学习这种数据库的好处,它不仅提高了我们对数据的整理和提取,还把数据进行了良好的分类,和综合的处理。通过数据库可以随心所欲的找到自己想要的资料和资料相关的一系列方面的东西。同时,数据库还是一个方便的办公软件,也提倡大家把他良好的运用到生活中。

第三篇:VHDL实现数字钟课设报告[推荐]

东北大学信息学院

课程设计报告

课程设计题目:用VHDL语言实现数字钟的设计

班 级:电子1001班 学 号:20102594 姓 名:刘云飞

指导老师:李世平、李宁

设计时间:2012年12月

东北大学信息学院

摘要

随着EDA技术的发展,EDA在通信、电子等领域占有十分重要的地位。本设计介绍了基于VHDL语言的数字钟的设计。数字钟的功能是对年、月、日、时、分、秒、星期,以及闹钟时、分的预置;在正常计数时的时、分与闹钟设定的时、分相同时,实现报时,同时以stop和pass键对闹钟进行停止及延迟响铃的控制;在整点的时候led灯闪烁一下。其中,用set脉冲的不同实现对预置,正常计时,闹钟的控制。Set为1~12分别控制显示年月日、预置年月日、时分秒、星期、显示时分秒、预置闹钟时分、显示闹钟预置的时分。预置时用up的高、低电平实现对各预置量的加、减控制。将1KHZ的时钟进行分频为1HZ,实现每次脉冲为1秒。经仿真和验证显示,此数字钟切实可行,可以实现显示时间和闹钟的功能。

关键词:VHDL语言,数字钟,预置

东北大学信息学院

目录

摘 要............................................................2

1、设计目的.........................................................4

2、设计内容和要求...................................................4

3、设计原理.........................................................4

3.1 数字钟功能介绍..........................................................................................................4 3.2 数字钟设计原理..........................................................................................................5

4、VHDL程序设计.....................................................6

4.1 整体设计思路................................................................................................................6 4.2 各模块设计方法............................................................................................................7 4.2.1 顶层模块...............................................................................................................7 4.2.2 其他模块...............................................................................................................8 4.2.3 程序包模块.........................................................................................................13

5、仿真与分析......................................................13

5.1 仿真结果....................................................................................................................13 5.2 仿真分析....................................................................................................................16

6、课程设计总结....................................................16

7、参考文献........................................................17

东北大学信息学院

1、设计目的

掌握利用可编程逻辑器件和EDA设计工具进行电子系统设计的方法。

2、设计内容和要求

用VHDL语言实现数字钟的设计,要求设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第 8个脉冲到来后预置结束,正常工作,显示的是时分秒。Up为高电平时,upclk有脉冲到达时,预置位加1。否则减1。

3、设计原理 3.1 数字钟功能介绍

数字钟具有计时、预置、报时的功能。以不同的set脉冲控制各个功能。

(1)在计时功能中,数字钟实现对年月日时分秒即星期的计时,并可以通过LED数码管分别显示年月日、或时分秒、或星期、或闹钟的时分。

(2)在预置功能中,可以通过UP键对各需要预置的量进行控制。UP=1时,进行“加”控制,UP=0时,进行“减”控制。

(3)在报时功能中,分为整点报时和设置时间报时。其中整点报时以ce作为使能输入端,在整点时灯进行一秒闪烁;设置时间报时以enable作为使能输入端,enable=1时设置时间报时功能启动,在闹钟预置时间与时钟当前时间相同时报时,若此时按下stop,闹钟立即停止并不再响铃,若按下pass,则闹钟立即停止,但三分钟后再响,如此循环5次后不再响铃,若什么都不按,闹钟响铃持续1分钟。

东北大学信息学院

3.2 数字钟设计原理

本设计功能有8个子模块:分频模块、时分秒模块、日模块、年月模块、闹钟预置模块、星期模块、响铃模块。通过元件例化由顶层文件timekeeper综合。

整体设计框图及外观图如(图 3-1)及(图3-2)

图3-1 数字钟设计整体框图

东北大学信息学院

图3-2 数字钟外观图

4、VHDL程序设计

4.1 整体设计思路

采用自上而下的方法进行整体设计。整个设计共分为8个模块,通过顶

层文件timekeeper元件例化将8个模块各个端口对应相连。在设计各个模块时所用到的其它运算方法等放于work库中,通过程序包及程序包体的方式对所使用函数进行定义。

主要使用的语句有:元件例化语句,过程语句,信号赋值语句,if语句,case语句(在状态机中)。

图(4-1)表示了个模块的连接及连接是所用到的触发器等。

东北大学信息学院

图4-1

整体结构图

4.2 各模块设计方法

4.2.1 顶层模块

顶层模块timekeeper是.对对所有模块的综合。

它包含的功能是:通过元件例化连接各模块;实现对闹钟控制位sp2的控制;实现闹钟的整点报时闪烁。

输入端:up

全局加减选择,控制预置时的加减

setpin 设定选择

东北大学信息学院

upclk 加减触发

f1000 时钟输入

输出端:a0~d1 八位数码管控制引脚的输出

z

整点报时输出 4.2.2 其他模块

1、时分秒模块

时分秒模块h_m_s是对时、分、秒正常计时(set=0 or 1 or 12)和预置时分秒(set=5 or 6 or 7)的实现。

分和秒由两个六十进制实现,时由24进制实现。当时间达到23时59分59秒时,时分秒全部归零,进位位ov由零变为1,通过管脚连接到date模块的时钟计数信号clk0,开启date模块。

2、日的模块

日的模块date实现日子进行正常计时(set=0 or 1 or 12)和预置(set=4)。

由于每月的天数与月份、年份有关,故需判断年月。(1)(2)(3)当1、3、5、7、8、10、12月时,每月31天,使用31进制。当4、6、9、11月时,每月30天,使用30进制。当2月时,分闰年和平年。闰年29天,平年28天。

闰年和平年的判断方法是:由于通过年月模块传输的年份为两位BCD码。若高位信号为“xxx0”且低位信号为“xx00”或高位信号为“xxx1”且低位信号为“xx10”,则可判定为闰年,否则为平年。

以上各月,当日期至月底时返回1,进位位ov变为1通过管脚连接年月模块的时钟计数信号clk0,开启年月模块。

3、年月模块

年月模块year_mon实现年月正常计时(set=0 or 1 or 12)和年、月的预置(set=2 or 3)。

月为12进制,当达到12时变回为1,同时使年份进1。由两位BCD码表示年份,故可以表示100年之年的所有年,为100进制。

东北大学信息学院

图4-2 year_mon和date模块的电路连接图

4、星期模块

星期模块week的功能是实现对星期的计时(set=0 or 1 or 12)和预置(set=8)。为七进制。

图4-3 week模块的RTL

5、闹钟模块

东北大学信息学院

闹钟模块alarm是对闹钟时和分的预置(set=10 or 11)。时为24进制,分为60进制。

图4-3 alarm模块的RTL

另外,在顶层模块timekeeper,当闹钟预置时间与计时时间相同时(仅时、分),闹钟响铃,当不对其进行任何操作时,响铃维持1分钟。响铃方式见4.2.7响铃模块。

6、响铃模块

响铃模块alarm是对闹钟响铃的控制。其中主要包含:

Enable:当enable=1时,闹钟可以工作。

Sp2 :当顶层模块闹钟时间与计时相等时,sp2=1,响铃开启。Stop :闹钟停止并不再响铃。

Pass :闹钟停止但三分钟后再响,循环5次。Sp :响铃输出。Sp=1时响铃,sp=0时不响。本模块主要使用的方法是状态机。相应状态转换图如下:

东北大学信息学院

图 4-4 响铃模块状态转换图

在状态t_pass时,使用计数的方法实现对3分钟,5次循环的计数。

图 4-5 计数的流程图

东北大学信息学院

图4-6 speak模块的RTL

7、分频模块

分频模块fenpin使输入为1KHZ时钟信号时,接入电路经分频后仍能按1HZ即1s计数。

图4-7 fenpin模块的RTL

8、显示模块

显示模块led即七段数码管的显示电路。

东北大学信息学院

图4-8 led模块的RTL 4.2.3 程序包模块

程序模块是对各模块所用到的函数的定义,通过程序包package定义时、日、月、年等的增减函数(procedure),并用程序包体package body具体说明函数的内容。通过use.work.pac.all语句调用程序包,使程序书写更加方便简洁。

5、仿真与分析

5.1 仿真结果

1、h_m_s模块

东北大学信息学院

表示当up=1时,时钟时(set=5)、分(set=6)、秒(set=7)从0开始加。

图 5-1

2、date模块

以下为对应月份截图。另外,当日期由最末变为1时,ov进1以控制year_mon模块。

(1)大月:每月31天。

图5-2-1(2)小月:每月30天。

图5-2-2(3)平年2月:每月28天。

东北大学信息学院

图5-2-3(3)闰年2月:每月29天。

图5-2-4

3、year_mon模块

图5-3

4、week模块

前半部分up=1,为加,1~7,后半部分up=0,为减,6~1

图5-4

5、alarm模块

下图反映对闹钟时(set=10)、分(set=11)的预置,up=1为加。

图 5-5

6、speak模块

(1)按下pass

由下图可见,当时间相同sp为高电平;按下pass后sp变为低电平,三分钟

东北大学信息学院

后sp又为高电平。

图5-6-1(2)按下stop

由下图可见,当时间相同时sp为高电平,按下stop后sp变为低电平。

图 5-6-2

5.2 仿真分析

各模块仿真均可实现,且波形显示可以实现预想的功能。

6、课程设计总结

通过这次的课程设计,我又一次系统的复习了VHDL语言,通过实践对VHDL语言和EDA技术有了更具现实性应用性的了解,并熟练了相关软件的使用方法。

此次课程设计的内容是数字钟,我学会了如何利用元件例化将各个模块结合起来,而不是一味的想起一个功能设计一个功能,而是有一个总体的自上而下的设计,建立基本的设计框图(如图 3-1),再进行具体的设计。

在程序调试的过程中,出现了很多的问题。我发现往往是一行出现了错误导致了接下来一系列错误的出现。

还有在仿真中出现错误的红线,并出现了‘U’字符,全都是未设置初值所致。而在设置初值时仍然出现了问题。最开始我想定义一个clr信号,当clr为高电平时各功能清零,但是在实际仿真时,由于常常要看在月末或类似23时59分59秒这样的时刻是否有进位信号进为高电平,从零开始显然让仿真变的十

东北大学信息学院

分麻烦,如果可以直接赋初值到接近进位的时刻就会让仿真变得简便。即使用信号赋初值的方法对信号进行赋初值,既解决错误又利于仿真。

在最后对顶层仿真时出现了很多的问题,最后发现都是未对应的问题。当然,我的设计还有很多不足的地方。比如有一处的竞争冒险产生的毛刺没有解决。最开始是将speak模块控制信号sp2的相关程序写在了alarm模块,仿真时发现在一处出现了毛刺,在对闹钟进行预置时分时的第一个时间都未足一个时钟周期(如图 5-5)。后来我想是否因为alarm模块有两个process进程,就将sp2的相关程序挪到了顶层模块,但是最后还是没有实现。咨询了一下同学们,他们都说这没有问题,不需要解决,所以就没有解决这个问题。

此次课程设计我学到了很多,但是我觉得应该放在刚刚考完EDA之后,那时候对只是记得比较清楚,不像在这次设计时很多知识都想不起来了。其他的对我帮助都很大。

7、参考文献 李景华,杜玉远等著.可编程逻辑器件与EDA技术.沈阳:东北大学出版社,2000 2 齐怀印等.高级逻辑器件与设计.北京:电子工业出版社,1996 3 可编程逻辑器件与数字系统设计[M].北京航天航空大学出版社,1999 4 刘真,毕才术.数字逻辑与计算机设计[M ]北京:高等教育出版社,2002 5 王小军.VHDL简明教程[M].北京:清华大学出版社,1997

第四篇:数字锁相环的FPGA设计与实现-课设

1.设计要求

利用MAX PLUSII软件工具,设计一个全数字锁相环路,通过它从19.2k的信号中提取同步信号。本地源时钟为11.0592MHz。

要求实现的功能:

a当远端信号(方波)的占空比分别为1:

1、1:

3、1:5和1:7时,从其中提取同步信号。b先将远端信号(方波)转变成伪随机序列,然后从中提取同步信号。完成仿真过程,给出测试结果,要求得到同步带宽、捕捉带宽和最大同步时间。

2.设计原理

2.1数字锁相环基本原理

一个典型的锁相环(PLL)系统,是由鉴相器(PD),压控荡器(VCO)和低通滤波器(LPF)三个基本电路组成,如图1所示。

图1 PLL模块图

传统的锁相环是模拟电路,它利用环路中误差信号去连续地调整位同步信号的相位。全数字锁相环路完全用数字电路构成,采用高稳定度的振荡器(信号钟),从鉴相器所获得的与同步误差成比例的误差信号不是直接用于调整振荡器,而是通过一个控制器在信号钟输出的脉冲序列中附加或扣除一个或几个脉冲,这样同样可以调整加到鉴相器上的位同步脉冲序列的相位,达到同步的目的。

全数字锁相环(ADPLL)由数字鉴相器(DP)、数字滤波器(DF)与数字压控振荡器(DCO)三个数字电路部件组成,如图2所示。

图2 ADPLL模块图

2.2数字锁相环原理框图

本设计中的数字锁相环由信号钟、控制器、分频器、相位比较器组成。其原理框图如图3所示。

图3 数字锁相环原理框图

信号钟包括一个高稳定度的晶体振荡器和整形电路。若接收码元的速率为F=1/T,那么振荡器频率设定在nF,经整形电路之后,输出周期性脉冲序列,其周期T0=1/(nF)=T/n。本设计中时钟为11.0592MHz。

控制器包括图中的扣除门(常开)、附加门(常闭)和“或门”,它根据相位比较器输出的控制脉冲(“超前脉冲”或“滞后脉冲”)对信号钟输出的序列实施扣除(或添加)脉冲。分频器是一个计数器,每当控制器输出n个脉冲时,它就输出一个脉冲。控制器与分频器的共同作用的结果就调整了加至相位比较器的位同步信号的相位。这种相位前、后移的调整量取决于信号钟的周期,每次的时间阶跃量为T0,相应的相位最小调整量为Δ=2πT0/T=2π/n。

相位比较器将接收脉冲序列与位同步信号进行相位比较,以判别位同步信号究竟是超前还是滞后,若超前就输出超前脉冲,若滞后就输出滞后脉冲。

3.数字锁相环的硬件实现

根据图3(数字锁相环原理框图),利用MAX PLUSII中的硬件仿真功能,实现数字锁相环。下面将给出信号钟、分频器和相位比较器的硬件实现图。

信号钟包含一个晶振和整形电路,晶振产生的方波信号经过整形电路后变成脉冲信号。为了和控制器相配合,需要两路脉冲信号。整形电路由D触发器和逻辑与、或、非门组成。D触发器起到延时的作用,然后通过逻辑或门和与门产生脉冲波。电路如图4所示。

图4 整形电路(rc)

分频器是一个计数器,由3片74LS161来实现。电路如图5所示。

图5 分频器(fd)

相位比较器主要由微分脉冲电路和逻辑与、非门组成。微分脉冲形成电路由D触发器和逻辑异或、与门组成。D触发器起延时的作用。微分脉冲形成电路如图6所示。

图6 微分脉冲形成电路(dp)

数字锁相环的硬件实现电路如图7所示。图中蓝色字样所在框图由上至下分别为微分脉冲形成电路(dp)、整形电路(rc)和分频器(fd),具体结构如图

6、图4和图5所示。

图7 数字锁相环电路

由于在MAX PLUSII中没有占空比为1:

3、1:5和1:7的方形波,所以要利用可用的元器件来生成满足要求的信号。可以通过把方波分别通过模

4、模6和模8计数器来达到这一目的。在本设计中,利用74LS161来实现这些计数器。模

4、模

6、模8计数器分别如图

8、图

9、图10所示。

图8 模4计数器(1_3)

图9 模6计数器(1_5)

图10 模8计数器(1_7)

方波通过这些计数器后就能形成占空比满足要求的信号,然后再将信号送入图7所示的数字锁相环电路中,便可以提取出同步信号。

在本设计中,将方波转变成伪随机序列用到74LS194和逻辑异或门、与非门。7位伪随机序列发生器电路如图11所示。将产生的伪随机序列送入图7所示的数字锁相环电路中,便可以提取出同步信号。

图11 7位伪随机序列发生器

4.仿真过程

4.1接收信号的占空比为1:1

条件设置为:End Time = 10ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图12所示,蓝色线条处放大后如图13所示。经过一段时间后锁相成功,达到同步状态,如图14所示。

图12 位同步信号超前于接收脉冲序列

图13 超前脉冲作用于扣除门

图14同步状态

位同步信号滞后于接收脉冲序列的情况如图15所示,蓝色线条处放大后如图16所示。经过一段时间后锁相成功,达到同步状态,如图17所示。

图15 位同步信号滞后于接收脉冲序列

图16 滞后脉冲作用于附加门

图17 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.824ms 同步带宽:40hz 4.2接收信号的占空比为1:3

条件设置为:End Time = 10ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图18所示,蓝色线条处放大后如图19所示。经过一段时间后锁相成功,达到同步状态,如图20所示。同步建立时间:6.906ms

图18 位同步信号超前于接收脉冲序列

图19 超前脉冲作用于扣除门

图20 同步状态

位同步信号滞后于接收脉冲序列的情况如图21所示,蓝色线条处放大后如图22所示。经过一段时间后锁相成功,达到同步状态,如图23所示。

图21 位同步信号滞后于接收脉冲序列

图22 滞后脉冲作用于附加门

图23 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.905ms 同步带宽:24hz 4.3接收信号的占空比为1:5

条件设置为:End Time = 10ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图24所示,蓝色线条处放大后如图25所示。经过一段时间后锁相成功,达到同步状态,如图26所示。

图24 位同步信号超前于接收脉冲序列

图25 超前脉冲作用于扣除门

图26 同步状态

位同步信号滞后于接收脉冲序列的情况如图27所示,蓝色线条处放大后如图28所示。经过一段时间后锁相成功,达到同步状态,如图29所示。

图27 位同步信号滞后于接收脉冲序列

图28 滞后脉冲作用于附加门

图29 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.706ms 同步带宽:16hz 4.4接收信号的占空比为1:7

条件设置为:End Time = 20ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图30所示,蓝色线条处放大后如图31所示。经过一段时间后锁相成功,达到同步状态,如图32所示。

图30 位同步信号超前于接收脉冲序列

图31 超前脉冲作用于扣除门

图32 同步状态

位同步信号滞后于接收脉冲序列的情况如图33所示,蓝色线条处放大后如图34所示。经过一段时间后锁相成功,达到同步状态,如图35所示。

图33 位同步信号滞后于接收脉冲序列

图34 滞后脉冲作用于附加门

图35 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:14.865ms 同步带宽:18hz 4.5远端信号(方波)转变成伪随机序列

条件设置为:End Time = 20ms,Grid Size = 45.2ns 位同步信号超前于接收脉冲序列的情况如图36所示,蓝色线条处放大后如图37所示。经过一段时间后锁相成功,达到同步状态,如图38所示。

图36 位同步信号超前于接收脉冲序列

图37 超前脉冲作用于扣除门

图38 同步状态

位同步信号滞后于接收脉冲序列的情况如图39所示,蓝色线条处放大后如图40所示。经过一段时间后锁相成功,达到同步状态,如图41所示。

图39 位同步信号滞后于接收脉冲序列

图40 滞后脉冲作用于附加门

图41 同步状态

通过多次试验,可得测试结果如下: 同步建立时间:52.476ms 同步带宽:8hz 5.心得体会

在做这个课程设计之前,我没有接触过MAX PLUSII这个软件,对数字锁相器亦没有太多的认识,所以刚开始感觉很难。在查阅了很多相关资料之后,对软件的操作和数字锁相器的理解已经比较深入,越到后边就感觉越得心应手。自己竟然在短短几天之内,掌握了这些东西,并且完整地将课程设计完成。在这过程中也学到了很多东西。一方面,在完成该课程设计的过程中,对数字锁相环技术有了深刻的理解,也学会了如何去利用仿真工具去验证一个设计的正确性和可行性。这对之后的毕业设计都有莫大的帮助。另一方面,自己又一次领悟到与人合作交流的重要性,期间遇到的许多问题都是在不断地讨论和请教中解决的,如果没有集体的智慧,可能到现在也无法完成该设计。总而言之,学期末的课程设计教会了我很多东西,也为本学期画上了一个完满的句号。感谢老师的指导。

第五篇:可控脉冲发生器的设计EDA课设报告资料

可控脉冲发生器的设计

一、设计目的

1.了解可控脉冲发生器的实现机理。2.学会用示波器观察FPGA产生的信号。3.学习用VHDL编写复杂功能的代码。

二、设计原理

1.EDA是电子设计自动化(Electronic Design Automation)的缩写。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使设计者的工作仅局限于利用软件的方式来完成对系统硬件功能的实现,可以说EDA技术的产生与发展是电子设计技术的一个巨大进步。EDA技术融合了众多电子设计技术和计算机辅助技术,使得它在现代电子学方面的应用越来越广泛,也成为电子、电气类大学生必须熟练掌握的一种设计工具。

2.VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,是硬件描述语言的业界标准之一。VHDL语言功能强大、设计灵活。VHDL语言可以用简洁明确的源代码来描述复杂的逻辑控制,它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。

VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持多种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

由于VHDL已经成为IEEE标准所规定的硬件描述性语言,目前大多数EDA工具几乎都支持VHDL。因为VHDL易读和结构化且易于修改设计所以在硬件电路设计过程中,VHDL语言得到广泛应用。

VHDL语言易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。这个特点很好的符合了市场需求。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述的设计转变成门级网表。总之,由于VHDL语言有的这些优良的特点,它被广泛的应用在电子线路和电子系统的设计中。

3.Quartus II是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,Quartus II通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

4.脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是要产生一个周期和占空比可变的脉冲波形。可控脉冲发生器的实现原理比较简单,可以简单的理解为一个计数器对输入的时钟信号进行分频的过程。通过改变计数器的上限值来达到改变周期的目的,通过改变电平翻转的阈值来达到改变占空比的目的。下面举个简单的例子来说明其工作原理。

假如有一个计数器T对时钟分频,其计数的范围是从0~N,另取一个M(0≤M≤N),若输出为Q,那么Q只要满足条件

时,通过改变N值,即可改变输出的脉冲波的周期;改变M值,即可改变脉冲波的占空比。这样输出的脉冲波的周期和占空比分别为:

1Q00TMMTN周期(N1)TCLOCKM占空比100%N

1三、设计内容

编写实现可控脉冲发生器程序,通过脉冲周期和占空比改变实现不同脉冲的输出。用QuartusII软件对设计进行编译、综合、仿真,给出相应的时序仿真波形和硬件电路图。

四、设计流程 1.程序

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CC IS

PORT(CLK: IN STD_LOGIC;

--时钟输入

RST : IN STD_LOGIC;

--复位输入

NU,ND : IN STD_LOGIC;

--输入:控制频率的改变

MU,MD : IN STD_LOGIC;

--输入:控制占空比的改变

FOUT : OUT STD_LOGIC

--波形输出);

END CC;ARCHITECTURE BEHAVE OF CC IS SIGNAL N_BUFFER,M_BUFFER:STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL N_COUNT :STD_LOGIC_VECTOR(10 DOWNTO 0);SIGNAL CLKIN : STD_LOGIC;SIGNAL CLK_COUNT : STD_LOGIC_VECTOR(12 DOWNTO 0);--产生一个低速时钟,用于按键判断

BEGIN

PROCESS(CLK)

--计数器累加

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

IF(N_COUNT=N_BUFFER)THEN

N_COUNT<=“00000000000”;

ELSE

N_COUNT<=N_COUNT+1;

END IF;

END IF;

END PROCESS;

PROCESS(CLK)

--波形判断

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

IF(N_COUNT

FOUT<='1';ELSIF(N_COUNT>M_BUFFER AND N_COUNT

THEN 6

FOUT<='0';

END IF;

END IF;

END PROCESS;

PROCESS(CLK)

BEGIN IF(CLK'EVENT AND CLKIN='1')THEN

CLK_COUNT<=CLK_COUNT+1;

END IF;

CLKIN<=CLK_COUNT(12);

END PROCESS;

PROCESS(CLKIN)

--频率及占空比的改变1

BEGIN

IF(CLK'EVENT AND CLKIN='0')THEN

IF(RST='0')THEN

M_BUFFER<=“01000000000”;

N_BUFFER<=“10000000000”;

ELSIF(NU='0')THEN 7

N_BUFFER<=N_BUFFER+1;

ELSIF(ND='0')THEN

N_BUFFER<=N_BUFFER-1;

ELSIF(MU='0')THEN

M_BUFFER<=M_BUFFER+1;

ELSIF(MD='0')THEN

M_BUFFER<=M_BUFFER-1;

END IF;

END IF;

END PROCESS;END BEHAVE;

2.管脚分配:

3.时序仿真图:

4.硬件电路图:

5.现象:

五、心得体会

通过这次EDA课程设计,我对课堂上所学到的理论知识的理解加深了许多,自己动脑、动手设计的能力也得到了较大提高。

在这次课程设计的过程中,我对VHDL语言有了更深的认识。通过查阅相关资料和动手设计我发现我以前对VHDL语言的认识太过肤浅,认为VHDL语言只能用于设计小型的电路系统。但有了更深刻的认识之后我发现学好VHDL语言可以设计出大规模的、功能复杂的电路系统。以前之所以会有错误的认识是因为自己对VHDL语言的了解和掌握还不够。现在仔细想想,这次课程设计使得我对VHDL语言的理解与应用能力得到了较大的提升,也让我认识到只要升入学习,提升的空间永远的存在的。

另一方面我也发现了动手实践的重要性。动手实践是理论知识得以灵活运用的必要前提,也是今后今后走上工作岗位之后能够很好的完成设计工作的技术保证。只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决它才能真正的提高自己的能力。这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠动手能力做支撑。因此在学习之余我们应该积极参加各种与专业知识有关的实践活动和知识竞赛,巩固所学的理论知识,多注重培养实际动手能力和专业技术能力,这样才能在以后的工作岗位上有所作为。

数字秒表设计

一、设计目的

本设计的任务就是设计一个数字钟,要求显示格式为小时-分钟-秒钟。系统时钟选择时钟模块的50MHz,要得到1Hz时钟信号,必须对系统时钟进行50000000次分频。用S1按键作为系统时钟复位,复位后全部显示00-00-00。

二、设计原理

数码管的八个段a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0~SEG7,8个数码管分别由八个选通信号DIG0~DIG7来选择,被选通的数码管显示数据,其余关闭。如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口SEG0~SEG7加上该对应数码管上显示的数据,于是随着选通信号的扫描就能实现动态扫描显示的目的。虽然每次只有1个数码管显示,但只要扫描显示速率足够快,利用人眼的视觉余辉效应,我们仍会感觉所有的数码管都在同时显示。

三、设计主要内容

本设计要求掌握使用QuartusII设计数字系统的设计思路和设计方法。学习VHDL基本逻辑电路的综合设计应用。掌握VHDL语言的语法规范,掌握时序电路描述方法。掌握多个数码管动态扫描显示的原理及设计方法。

设计一个由共阴八位数码管作为显示、按键作为控制系统的数字钟电路,要求利用实验室设备完成系统设计并运行调试。

四、设计流程 1.程序:

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity stopwatch is

port(Clk

: in

std_logic;

--时钟输入

reset

: in

std_logic;

--复位输入

start,over

: in

std_logic;

--秒表控制输入

ledag

: out std_logic_vector(6 downto 0);--七段码管显示输出

SEL

: buffer std_logic_vector(2 downto 0)--七段码管扫描驱动);

end stopwatch;architecture behave of stopwatch is

signal Disp_Temp

: integer range 0 to 15;

signal Disp_Decode

: std_logic_vector(6 downto 0);

signal mSEC1,mSEC10 : integer range 0 to 9;

signal SEC1,SEC10

: integer range 0 to 9;

signal MIN1,MIN10

: integer range 0 to 9;

signal HOUR1,HOUR10 : integer range 0 to 9;

signal Clk1kHz

: std_logic;

signal Clk100Hz

: std_logic;

signal Start_Flag

: std_logic;

signal Music_Count

: std_logic_vector(2 downto 0);

begin

PROCESS(clk)--generate 100hz clock signal

variable cnt : INTEGER RANGE 0 TO 499999;--产生100Hz时钟的分频计数器

BEGIN

IF clk='1' AND clk'event THEN

IF cnt=499999 THEN cnt:=0;

ELSE

IF cnt<250000 THEN clk100hz<='1';

ELSE clk100hz<='0';

END IF;

cnt:=cnt+1;

END IF;

END IF;

END PROCESS;

PROCESS(clk)--generate 1khz clock signal

variable cnt1 : INTEGER RANGE 0 TO 49999;--产生1kHz时钟的分频计数器

BEGIN

IF clk='1' AND clk'event THEN

IF cnt1=49999 THEN cnt1:=0;

ELSE

IF cnt1<25000 THEN clk1khz<='1';

ELSE clk1khz<='0';

END IF;

cnt1:=cnt1+1;

END IF;

END IF;

END PROCESS;

process(Clk100Hz)

begin

if(reset='0')then

--系统复位

mSEC1<=0;

mSEC10<=0;

SEC1<=0;

SEC10<=0;

MIN1<=0;

MIN10<=0;

HOUR1<=0;

HOUR10<=0;

Start_Flag<='0';

elsif(start='0' and Start_Flag='0')then

Start_Flag<='1';

elsif(over='0' and Start_Flag='1')then

Start_Flag<='0';

elsif(Clk100Hz'event and Clk100Hz='1')then

--正常运行

if(Start_Flag='1')then

if(mSEC1=9)then

mSEC1<=0;

if(mSEC10=9)then

mSEC10<=0;

if(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;

if(HOUR10=9)then

HOUR10<=0;

else

HOUR10<=HOUR10+1;

end if;

else

HOUR1<=HOUR1+1;

end if;

else

MIN10<=MIN10+1;

end if;

else

MIN1<=MIN1+1;

end if;

else

SEC10<=SEC10+1;

end if;

else

SEC1<=SEC1+1;

end if;

else

mSEC10<=mSEC10+1;

end if;

else

mSEC1<=mSEC1+1;

end if;

end if;

end if;

end process;

process(SEL)

begin

if(HOUR1=0)then

case(SEL+1)is

when “111”=>Disp_Temp<=mSEC1;

when “110”=>Disp_Temp<=mSEC10;

when “101”=>Disp_Temp<=10;

when “100”=>Disp_Temp<=SEC1;

when “011”=>Disp_Temp<=SEC10;

when “010”=>Disp_Temp<=10;

when “001”=>Disp_Temp<=MIN1;

when “000”=>Disp_Temp<=MIN10;

end case;

else

case(SEL+1)is

when “111”=>Disp_Temp<=SEC1;

when “110”=>Disp_Temp<=SEC10;

when “101”=>Disp_Temp<=10;

when “100”=>Disp_Temp<=MIN1;

when “011”=>Disp_Temp<=MIN10;

when “010”=>Disp_Temp<=10;

when “001”=>Disp_Temp<=HOUR1;

when “000”=>Disp_Temp<=HOUR10;

end case;

end if;

end process;process(Clk1khz)

begin

if(Clk1khz'event and Clk1khz='1')then

--扫描累加

SEL<=SEL+1;

ledag<=Disp_Decode;

end if;

end process;

process(Disp_Temp)

--显示转换

begin

case Disp_Temp is

when 0=>Disp_Decode<= “0111111”;

--0

when 1=>Disp_Decode<= “0000110”;

--1

when 2=>Disp_Decode<= “1011011”;

--2

when 3=>Disp_Decode<= “1001111”;

--3

when 4=>Disp_Decode<= “1100110”;

--4

when 5=>Disp_Decode<= “1101101”;

--5

when 6=>Disp_Decode<= “1111101”;

--6

when 7=>Disp_Decode<= “0000111”;

--7

when 8=>Disp_Decode<= “1111111”;

--8

when 9=>Disp_Decode<= “1101111”;

--9

when 10=>Disp_Decode<= “1000000”;

---

when others=>Disp_Decode<=“0000000”;

--全灭

end case;

end process;

end behave;

2.管脚分配:

2.时序仿真图:

4.硬件电路图:

5.现象:

五、设计总结

通过本次的课程设计,我初步了解了VHDL语言的编程思想,以及利用EDA软件进行电子电路设计的方法,通过对一个课题的分析,将实验的内容进行分块解读,具体到每一个模块的具体作用,然后将各个功能的模块通过连线进行总体的电路实现,也可以通过VHDL语言对各个模块进行组合,然后需要在程序编译成功的基础上,安装硬件,将程序下载到具体的芯片上进行硬件的实现。通过整个实验的完成,我从老师和同学那里学到了更多关于VHDL编程,仿真以及硬件实现的知识,自己以前模糊不清的地方也通过此次的课程设计了解清楚了,并且通过这次课程设计,我也锻炼了独立思考,独立操作的能力,虽然对于VHDL语言的应用我还很生疏,但是此次的课程设计却让我学到了很多,也对这门语言有了更深的理解,对EDA软件的使用有了更多的体会。

下载数据库课设报告甲骨文(Oracle)公司的人力资源的设计和实现word格式文档
下载数据库课设报告甲骨文(Oracle)公司的人力资源的设计和实现.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐