第一篇:數(shù)據(jù)庫(kù)課設(shè)報(bào)告甲骨文(Oracle)公司的人力資源的設(shè)計(jì)和實(shí)現(xiàn)
計(jì) 算 機(jī) 學(xué) 院
名 稱: 數(shù)據(jù)庫(kù)原理及應(yīng)用
專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 計(jì)科122 學(xué) 號(hào): 20120081421* 學(xué)生姓名: 劉** 指導(dǎo)教師: 杜獻(xiàn)峰
2014年 10 月 07日
目 錄 中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
第1章
概述...........................................................................................................................1 第2章
任務(wù)與實(shí)現(xiàn)...............................................................................................................3
2.1甲骨文(Oracle)公司的人力資源的設(shè)計(jì)和實(shí)現(xiàn)........................................................3 第3章
總結(jié).........................................................................................................................20 參考文獻(xiàn):.............................................................................................................................20
中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
第1章
概述
任務(wù)描述
甲骨文(Oracle)公司的人力資源(Oracle_HR)描述為:
公司的業(yè)務(wù)遍布全球,這些不同地理位置按區(qū)域(regions)劃分,如東南亞區(qū)域等,每一個(gè)區(qū)域包括多個(gè)國(guó)家(countries),區(qū)域(region)有區(qū)域編號(hào)(region_id)和區(qū)域名(region_name)屬性組成;
在一個(gè)國(guó)家的多個(gè)地點(diǎn)(locations)設(shè)置子公司,一個(gè)國(guó)家有國(guó)家編號(hào)(country_id)、國(guó)家名稱(country_name)屬性組成;
在一個(gè)地點(diǎn)(locations)開(kāi)設(shè)多個(gè)子公司(departments),每一個(gè)地點(diǎn)(locations)包括地點(diǎn)編號(hào)(location_id)、所屬州或者省的名稱(state_province)、城市名(city)、街道地址(street_address)、郵政編碼(postal_code)屬性組成;
每一個(gè)子公司(departments)有多名雇員(employees),一個(gè)子公司(departments)有子公司編號(hào)(department_id)、子公司名稱(department_name)屬性組成;
甲骨文公司設(shè)置若干工種(jobs),每一雇員一個(gè)時(shí)期內(nèi)只能受聘于一個(gè)部門的一個(gè)工種,每一工種有多名雇員組成,工種有工種編號(hào)(job_id)、工種頭銜(job_title)、工種最低工資(min_salary)、工種最高工資(max_salary)屬性組成。
每一個(gè)雇員有雇員編號(hào)(employee_id)、雇員的姓(first_name)、雇員的名(last_name)、雇員電子郵件(email)、雇員電話(phone_number)、雇員被雇傭的起始日期(hire_date)、工資(salary)、工資增長(zhǎng)率(commission_pct)。一個(gè)子公司雇員有領(lǐng)導(dǎo)和被領(lǐng)導(dǎo)的關(guān)系,一個(gè)子公司有一名經(jīng)理(manager)領(lǐng)導(dǎo)其它雇員。對(duì)于一個(gè)雇員在Oracle公司里都有一個(gè)工作經(jīng)歷(job_history),雇員的工作史是指一名雇員從某一時(shí)間開(kāi)始(start_date)、到某一時(shí)間結(jié)束(end_date)、在某一部門、做某一工種工作的情況。
要求如下:
一、創(chuàng)建Oracle HR數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象
1、創(chuàng)建Oracle HR數(shù)據(jù)庫(kù),例如數(shù)據(jù)庫(kù)名取Oracle_HR。
2、畫(huà)出Oracle HR的ER圖。
3、將ER圖轉(zhuǎn)換為關(guān)系。
4、定義關(guān)系中屬性及約束。
5、創(chuàng)建表空間。
6、創(chuàng)建用戶。
7、給用戶授權(quán)。
8、創(chuàng)建數(shù)據(jù)表。
9、導(dǎo)入數(shù)據(jù)(由老師提供)。
二、使用Java或者C#語(yǔ)言完成應(yīng)用程序開(kāi)發(fā)。
1、C/S或者B/S均可。
2、前臺(tái)、后臺(tái)程序書(shū)寫(xiě)規(guī)范,能在后臺(tái)完成的功能不在前臺(tái)實(shí)現(xiàn)。
中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
第2章
任務(wù)與實(shí)現(xiàn)
2.1甲骨文(Oracle)公司的人力資源的設(shè)計(jì)和實(shí)現(xiàn)
1.使用Java或者C#語(yǔ)言完成應(yīng)用程序開(kāi)發(fā)。
1.1、C/S或者B/S均可。
1.2、前臺(tái)、后臺(tái)程序書(shū)寫(xiě)規(guī)范,能在后臺(tái)完成的功能不在前臺(tái)實(shí)現(xiàn)。1.3、前臺(tái):將class編譯成為jar包或者dll程序集,調(diào)用Jar包或者dll程序。
1.4、后臺(tái):過(guò)程、函數(shù)、游標(biāo)、觸發(fā)器、視圖等代碼。1.5、按不同條件實(shí)現(xiàn)下面功能:
插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)、查詢數(shù)據(jù)(復(fù)合查詢、動(dòng)態(tài)查詢)。數(shù)據(jù)統(tǒng)計(jì)及報(bào)表(表格、餅圖、直方圖)。數(shù)據(jù)備份與還原。
中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
2.2、E-R圖
中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
(6)雇員表
(7)工作經(jīng)歷表
中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
功能實(shí)現(xiàn):查詢(按區(qū)域名查詢)
功能實(shí)現(xiàn):修改
修改前(我要修改區(qū)域編號(hào)7的記錄)
中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
增加后:
功能實(shí)現(xiàn):數(shù)據(jù)備份(將數(shù)據(jù)庫(kù)中數(shù)據(jù)寫(xiě)入到region.xls的Excel文件中)要寫(xiě)入的數(shù)據(jù)如下:
數(shù)據(jù)備份如下:
1中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
子公司表:
工種表:
3中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
功能實(shí)現(xiàn):刪除前(刪除編號(hào)為200的記錄)
刪除后:
5中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
public static class SqlHelper { //運(yùn)行時(shí)從配置文件中把name=conStr的結(jié)點(diǎn),所對(duì)應(yīng)的值讀出來(lái) 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 獲取數(shù)據(jù)表 ///
查詢語(yǔ)句 ///
參數(shù)數(shù)組 ///
SqlCommand cmd = new SqlCommand(sqlStr, Conn);if(paras!= null && paras.Length > 0){ cmd.Parameters.AddRange(paras);}
7中原工學(xué)院計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
班級(jí)計(jì)科122
姓名劉**
catch(Exception ex){
throw ex;} finally { CloseDB();}
return res;} } 數(shù)據(jù)的連接字符串保存在App.config文件中:通過(guò)讀取配置文件獲取連接字符串,主要代碼如下:
//運(yùn)行時(shí)從配置文件中把name=conStr的結(jié)點(diǎn),所對(duì)應(yīng)的值讀出來(lái) private static string conStr = ConfigurationManager.ConnectionStrings[“conStr”].ConnectionString;
第二篇:數(shù)據(jù)庫(kù)課設(shè)報(bào)告(共)
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
數(shù) 據(jù) 庫(kù) 課 程 設(shè) 計(jì)
題目 《數(shù)據(jù)庫(kù)》課程設(shè)計(jì)
學(xué)號(hào) 201007084201 姓名 馬偉華 班級(jí) 電氣102 指導(dǎo)老師 劉秀敏
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
目錄
一、概述??????????????????????3 1.1課程設(shè)計(jì)目的與要求????????????4 1.2課程設(shè)計(jì)環(huán)境???????????????4
二、創(chuàng)建數(shù)據(jù)庫(kù)???????????????????4 2.1創(chuàng)建一個(gè)空數(shù)據(jù)庫(kù)?????????????5 2.1建立自己的文件夾存放數(shù)據(jù)庫(kù)文件??????6
三、創(chuàng)建數(shù)據(jù)表???????????????????6 3.1數(shù)據(jù)庫(kù)之間關(guān)系??????????????7 3.2數(shù)據(jù)庫(kù)的值列表??????????????8 3.3通過(guò)導(dǎo)入方式創(chuàng)建表????????????9 3.4向表輸入數(shù)據(jù)???????????????10
四、數(shù)據(jù)庫(kù)的實(shí)現(xiàn)?????????????????11
五、作業(yè)截圖???????????????????13
六、收獲與心得體會(huì)????????????????15
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
一、概述
按照教學(xué)安排我們進(jìn)行了一次數(shù)據(jù)庫(kù)上機(jī)的實(shí)習(xí),這次的數(shù)據(jù)庫(kù)實(shí)習(xí)課程主要是學(xué)習(xí)microsoft access 2003的一些操作流程,對(duì)于access 2003 這個(gè)軟件,我以前很是陌生,不過(guò)經(jīng)過(guò)了這次的實(shí)習(xí),對(duì)它已經(jīng)不再陌生了,自己跟著教學(xué)計(jì)劃也制作了幾個(gè)數(shù)據(jù)表格總體來(lái)說(shuō),access 2003 是一個(gè)令數(shù)據(jù)的管理成為一個(gè)很簡(jiǎn)單的軟件,大大方便了數(shù)據(jù)管理人員的工作量。就這次的實(shí)習(xí)報(bào)告,我會(huì)詳細(xì)的介紹一下access 2003 的一些相關(guān)知識(shí)和基本的操作流程,算是對(duì)自己這次實(shí)習(xí)的一個(gè)總結(jié)吧。
數(shù)據(jù)庫(kù),顧名思義:數(shù)據(jù)的倉(cāng)庫(kù)。當(dāng)使用者需要保存的數(shù)據(jù)量不是很大時(shí),我們可以直接將數(shù)據(jù)寫(xiě)到一個(gè)文件中,比如一個(gè)文本文件或二進(jìn)制文件。但當(dāng)數(shù)據(jù)量很大,而且我們需要實(shí)時(shí)查詢和整理時(shí)直接操縱文本文件或二進(jìn)制文件,將使工作變得以異常的復(fù)雜。
數(shù)據(jù)庫(kù),可以替使用者管理數(shù)據(jù),使用者只需使用相關(guān)的命令(如SQL查詢語(yǔ)言),就能和數(shù)據(jù)庫(kù)進(jìn)行“通話”,讓數(shù)據(jù)庫(kù)執(zhí)行我們想要的操作。比如:新增數(shù)據(jù)(插入)、更改數(shù)據(jù)(更新)、刪除數(shù)據(jù)檢索數(shù)據(jù)(查詢)等等。我們不再需要自己去設(shè)計(jì)數(shù)據(jù)是怎么被存儲(chǔ)和提取的,這一切都交給數(shù)據(jù)庫(kù)去做。1.1課程設(shè)計(jì)目的與要求
Access 是微軟公司推出的基于Windows的桌面關(guān)系據(jù)庫(kù)管系統(tǒng)(RDBMS,即Relational Database Management System),是Office系列應(yīng)用軟件之一。它提供了表、查詢。窗體、報(bào)表、頁(yè)、宏、模塊7種用來(lái)建立數(shù)據(jù)庫(kù)系統(tǒng)的對(duì)象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、界面設(shè)計(jì)、報(bào)表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫(kù)管理系統(tǒng)提供了方便,也使得普通用戶不必編寫(xiě)代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。因此我們有必要掌握數(shù)據(jù)庫(kù)軟件的操作來(lái)簡(jiǎn)化我們生活中的一些數(shù)據(jù)管理工作,這就是我們實(shí)習(xí)的目的,是十分必要的。
Microsoft Access應(yīng)用實(shí)驗(yàn)是管理信息系統(tǒng)實(shí)驗(yàn)課的重要組成部分,屬于學(xué)科基礎(chǔ)實(shí)驗(yàn)范疇,是與相關(guān)教學(xué)內(nèi)容配合的實(shí)踐性教學(xué)環(huán)節(jié)。學(xué)生通過(guò)實(shí)驗(yàn),驗(yàn)證課堂學(xué)習(xí)的知識(shí),掌握數(shù)據(jù)庫(kù)、數(shù)據(jù)表建立、查詢以及窗體的方法,從而具
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
有小型數(shù)據(jù)庫(kù)管理系統(tǒng)的設(shè)計(jì)能力。并以此提高學(xué)生的動(dòng)手能力和實(shí)踐水平,培養(yǎng)學(xué)生的技術(shù)應(yīng)用能力和綜合分析問(wèn)題、解決問(wèn)題的能力。1.2課程設(shè)計(jì)環(huán)境
Access是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),其主要特點(diǎn)如下:
(1)存儲(chǔ)方式單一Access管理的對(duì)象有表、查詢、窗體、報(bào)表、頁(yè)、宏和模塊,以上對(duì)象都存放在后綴為(.mdb)的數(shù)據(jù)庫(kù)文件種,便于用戶的操作和管理。
(2)面向?qū)ο驛ccess是一個(gè)面向?qū)ο蟮拈_(kāi)發(fā)工具,利用面向?qū)ο蟮姆绞綄?shù)據(jù)庫(kù)系統(tǒng)中的各種功能對(duì)象化,將數(shù)據(jù)庫(kù)管理的各種功能封裝在各類對(duì)象中。它將一個(gè)應(yīng)用系統(tǒng)當(dāng)作是由一系列對(duì)象組成的,對(duì)每個(gè)對(duì)象它都定義一組方法和屬性,以定義該對(duì)象的行為和外國(guó),用戶還可以按需要給對(duì)象擴(kuò)展方法和屬性。通過(guò)對(duì)象的方法、屬性完成數(shù)據(jù)庫(kù)的操作和管理,極大地簡(jiǎn)化了用戶的開(kāi)發(fā)工作。同時(shí),這種基于面向?qū)ο蟮拈_(kāi)發(fā)方式,使得開(kāi)發(fā)應(yīng)用程序更為簡(jiǎn)便。
(3)界面友好、易操作Access是一個(gè)可視化工具,是風(fēng)格與Windows完全一樣,用戶想要生成對(duì)象并應(yīng)用,只要使用鼠標(biāo)進(jìn)行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報(bào)表設(shè)計(jì)器以及數(shù)據(jù)庫(kù)向?qū)А⒈硐驅(qū)А⒉樵兿驅(qū)?、窗體向?qū)А?bào)表向?qū)У裙ぞ?,使得操作?jiǎn)便,容易使用和掌握。
二、創(chuàng)建數(shù)據(jù)庫(kù)
2.1.1 創(chuàng)建一個(gè)空數(shù)據(jù)庫(kù)
2.1.2 建立自己的文件夾-用于存放自己的數(shù)據(jù)庫(kù)文件
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
上圖就是一些建立數(shù)據(jù)庫(kù)所需要的一些步驟,首先在自己的電腦相應(yīng)的硬盤(pán)中建立一個(gè)新文件夾,再在Microfost Access中打開(kāi)空數(shù)據(jù)庫(kù)就相當(dāng)于建立了一個(gè)新的文件。
三、創(chuàng)建數(shù)據(jù)表
在打開(kāi)的空數(shù)據(jù)表中可以創(chuàng)立一些自己所需要的數(shù)據(jù)和內(nèi)容同時(shí)需要規(guī)定一些自己所需要的格式和方式,一邊與自己以后可以方便的找到。對(duì)于每一種數(shù)據(jù)都有不同的格式和限制,所以對(duì)于每一行的數(shù)據(jù)都有自己的方式去調(diào)整。下面就告訴了我們所需要對(duì)相應(yīng)文本內(nèi)容進(jìn)行的調(diào)整和制作:其中文本是文字的格式,日期應(yīng)該有日期的格式,這就需要我們按自己的需要。
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
3.1數(shù)據(jù)庫(kù)之間關(guān)系
每個(gè)數(shù)據(jù)庫(kù)之間可能有一定的關(guān)系,特別是對(duì)學(xué)校來(lái)說(shuō),每個(gè)學(xué)生的學(xué)號(hào)、成績(jī)、班級(jí)等等都有一定的關(guān)系。如何能把這些關(guān)系同一方便的安排在一個(gè)數(shù)據(jù)庫(kù)之中你這就需要數(shù)據(jù)庫(kù)之間的關(guān)系的功能。他可以方便的讓你理解各個(gè)數(shù)據(jù)庫(kù)之間的關(guān)系和內(nèi)容。首先建立數(shù)據(jù)庫(kù)之間的關(guān)系圖通過(guò)關(guān)系的確立就可以明細(xì)的 找到幾個(gè)數(shù)據(jù)庫(kù)之間的關(guān)聯(lián),其次通過(guò)數(shù)據(jù)的鏈接關(guān)系找出兩個(gè)數(shù)據(jù)之間的相應(yīng)關(guān)系。
3.2數(shù)據(jù)庫(kù)的值列表
數(shù)據(jù)庫(kù)的值列表就是在每一個(gè)數(shù)據(jù)庫(kù)的類型中,它所包含 的所有的情況的綜合。特別是對(duì)于統(tǒng)計(jì)性別的時(shí)候,如果有了數(shù)據(jù)庫(kù)的值列表,就會(huì)省事很多。應(yīng)為數(shù)據(jù)庫(kù)的值列表就是直接列出的所有情況,你可以直接相應(yīng)的欄目中找出自己所需要的那種情況行。
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
3.3通過(guò)導(dǎo)入方式創(chuàng)建表
導(dǎo)入表的格式也是有好多種,比如說(shuō)Excel,或者直接就是一Access文件,所以說(shuō)導(dǎo)入表可以讓我們更直觀更提前的了解這個(gè)數(shù)據(jù)表的內(nèi)容,不用再一個(gè)一個(gè)的翻看,可以給我們剩下好多瀏覽的時(shí)間。同時(shí)也可以讓我們對(duì)這個(gè)表有一個(gè) 整體的印象。
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
3.4向表輸入數(shù)據(jù)
如下圖向表輸入數(shù)據(jù)
3.5查閱字段的數(shù)據(jù)來(lái)源于表
以下將從另一表中提取數(shù)據(jù)作為本表字段的數(shù)據(jù),例如,grade表的課程號(hào)數(shù)據(jù)不是由用戶鍵入,而是從課程表的課程號(hào)中去提取,因?yàn)槟愕恼n程表數(shù)據(jù)已經(jīng)被鍵入,如圖
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
從另一表中提取數(shù)據(jù)作為本表字段的數(shù)據(jù)的方法是:在【Education】數(shù)據(jù)庫(kù)窗口,單擊【對(duì)象】欄下面的【表】,在對(duì)象列表框,選擇grade,在工具欄,單擊【設(shè)計(jì)】,彈出【grade:表:】 表的設(shè)計(jì)視圖。在【課程號(hào)】字段的【數(shù)據(jù)類型】下拉列表,單擊【查閱向?qū)А?,如下圖
彈出下圖所示【查閱向?qū)А繉?duì)話框之一,在選項(xiàng)組的按鈕中,選擇【使查閱列在表或查詢中查閱數(shù)值】,單擊【下一步】,彈出下圖所示查閱向?qū)?duì)話框之二,在【請(qǐng)選擇為查閱列提供數(shù)值的表或查詢】欄中,選擇course,即選擇課程表作為數(shù)據(jù)來(lái)源
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
單擊【下一步】,彈出下圖所示查閱向?qū)?duì)話框之三,其中,選定字段為課程號(hào),課程名.單擊【下一步】,彈出下圖所示查閱向?qū)?duì)話框之四,其中,值列表的內(nèi)容被顯示
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
單擊【下一步】, 單擊【下一步】,得到圖下圖所示查閱向?qū)?duì)話框之五,里是為查閱列指定標(biāo)簽,在課程號(hào),課程名兩個(gè)中,選擇課程號(hào),單擊【完成】按鈕,彈出下圖查閱向?qū)?duì)話框之七,其中,問(wèn)到,是否保存,單擊【是】按鈕,完成創(chuàng)建值列表之后,我們看效果,打開(kāi)【grade:表】表的數(shù)據(jù)表視圖,即:在Access菜單,單擊視圖數(shù)據(jù)表視圖,其課程號(hào)的數(shù)據(jù),不需要用戶鍵入數(shù)據(jù),只需在值列表中選擇數(shù)據(jù)即可。
從中,單擊【照片】字段所在的單元格,再單擊Access菜單中的【插入】→【對(duì)象】即可。
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
3.5通過(guò)鏈接外部數(shù)據(jù)創(chuàng)建表
打開(kāi)【Education】數(shù)據(jù)庫(kù)窗口,單擊【對(duì)象】欄下的【表】,單擊【新建】按鈕,在【新建表】對(duì)話框中,單擊【鏈接表】,如下圖
四、數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
數(shù)據(jù)庫(kù)是相當(dāng)方便的的一種工具,他就是在你不想一步步去查找相應(yīng)數(shù)據(jù)所在地的時(shí)候,用數(shù)據(jù)來(lái)源就最方便了。特別是在統(tǒng)計(jì)學(xué)生成績(jī)單的時(shí)候,學(xué)號(hào)與成績(jī)、姓名三個(gè)數(shù)據(jù)之間統(tǒng)一成相應(yīng)的關(guān)系來(lái)源,這樣,在尋找學(xué)生學(xué)號(hào)的時(shí)候就直接會(huì)有起相應(yīng)的成績(jī)和專業(yè) 等相關(guān)的數(shù)據(jù),這樣就會(huì)更加具體的去了解這個(gè)同學(xué)。同時(shí)在最后面的相片一欄中還可以附送上一些照片,這樣就相當(dāng)于一個(gè)小小的個(gè)人簡(jiǎn)歷了,老師可以通過(guò)這個(gè)小小的簡(jiǎn)歷就可以評(píng)估這個(gè)同學(xué)。
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
上面的圖示就很明確的展示了數(shù)據(jù)來(lái)源的關(guān)鍵作用,當(dāng)你找到學(xué)生的學(xué)號(hào)時(shí),他相對(duì)應(yīng)的姓名呀,專業(yè)呀都一起顯示出來(lái),這就很方便就可以了解這個(gè)同學(xué)。
五、作業(yè)截圖
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)
六﹑個(gè)人總結(jié)及感想
數(shù)據(jù)庫(kù)上機(jī)實(shí)習(xí)是一次技能的補(bǔ)充練習(xí),是一種自我提高的方式,我們每個(gè)同學(xué)都能夠從中獲取一些不同的收獲,其實(shí)任何形式的學(xué)習(xí)都是一種提高,有理論知識(shí)層面的、有實(shí)際操作領(lǐng)域的,都是一種提高,是一種自身價(jià)值的體現(xiàn)。相信我們?cè)诮?jīng)過(guò)各種各樣的實(shí)習(xí)的歷練之后,我們?cè)谝院竺鎸?duì)社會(huì)或者生活中的難題時(shí),應(yīng)該不會(huì)只是迷茫,不知所措,而是能夠分析問(wèn)題,找出解決問(wèn)題的方法,這就是最大的收獲,獲得一種處事的思維方法,比其他任何的收獲都重要,更有價(jià)值。
首先通過(guò)這個(gè)數(shù)據(jù)庫(kù)的課程設(shè)計(jì)讓我又了解了一種關(guān)于數(shù)據(jù)整理的一個(gè)軟件,因?yàn)橐郧皩W(xué)習(xí)的只是一些像Word、Excel等這樣的小軟件,剛開(kāi)始以為自己對(duì)這種比較有難度的程序有點(diǎn)抵觸,因?yàn)橄襁@種課程設(shè)計(jì)聽(tīng)著就讓我覺(jué)得有點(diǎn)難度。但是經(jīng)過(guò)這幾節(jié)課的聯(lián)系和了解,我更加知道學(xué)習(xí)這種數(shù)據(jù)庫(kù)的好處,它不僅提高了我們對(duì)數(shù)據(jù)的整理和提取,還把數(shù)據(jù)進(jìn)行了良好的分類,和綜合的處理。通過(guò)數(shù)據(jù)庫(kù)可以隨心所欲的找到自己想要的資料和資料相關(guān)的一系列方面的東西。同時(shí),數(shù)據(jù)庫(kù)還是一個(gè)方便的辦公軟件,也提倡大家把他良好的運(yùn)用到生活中。
第三篇:VHDL實(shí)現(xiàn)數(shù)字鐘課設(shè)報(bào)告[推薦]
東北大學(xué)信息學(xué)院
課程設(shè)計(jì)報(bào)告
課程設(shè)計(jì)題目:用VHDL語(yǔ)言實(shí)現(xiàn)數(shù)字鐘的設(shè)計(jì)
班 級(jí):電子1001班 學(xué) 號(hào):20102594 姓 名:劉云飛
指導(dǎo)老師:李世平、李寧
設(shè)計(jì)時(shí)間:2012年12月
東北大學(xué)信息學(xué)院
摘要
隨著EDA技術(shù)的發(fā)展,EDA在通信、電子等領(lǐng)域占有十分重要的地位。本設(shè)計(jì)介紹了基于VHDL語(yǔ)言的數(shù)字鐘的設(shè)計(jì)。數(shù)字鐘的功能是對(duì)年、月、日、時(shí)、分、秒、星期,以及鬧鐘時(shí)、分的預(yù)置;在正常計(jì)數(shù)時(shí)的時(shí)、分與鬧鐘設(shè)定的時(shí)、分相同時(shí),實(shí)現(xiàn)報(bào)時(shí),同時(shí)以stop和pass鍵對(duì)鬧鐘進(jìn)行停止及延遲響鈴的控制;在整點(diǎn)的時(shí)候led燈閃爍一下。其中,用set脈沖的不同實(shí)現(xiàn)對(duì)預(yù)置,正常計(jì)時(shí),鬧鐘的控制。Set為1~12分別控制顯示年月日、預(yù)置年月日、時(shí)分秒、星期、顯示時(shí)分秒、預(yù)置鬧鐘時(shí)分、顯示鬧鐘預(yù)置的時(shí)分。預(yù)置時(shí)用up的高、低電平實(shí)現(xiàn)對(duì)各預(yù)置量的加、減控制。將1KHZ的時(shí)鐘進(jìn)行分頻為1HZ,實(shí)現(xiàn)每次脈沖為1秒。經(jīng)仿真和驗(yàn)證顯示,此數(shù)字鐘切實(shí)可行,可以實(shí)現(xiàn)顯示時(shí)間和鬧鐘的功能。
關(guān)鍵詞:VHDL語(yǔ)言,數(shù)字鐘,預(yù)置
東北大學(xué)信息學(xué)院
目錄
摘 要............................................................2
1、設(shè)計(jì)目的.........................................................4
2、設(shè)計(jì)內(nèi)容和要求...................................................4
3、設(shè)計(jì)原理.........................................................4
3.1 數(shù)字鐘功能介紹..........................................................................................................4 3.2 數(shù)字鐘設(shè)計(jì)原理..........................................................................................................5
4、VHDL程序設(shè)計(jì).....................................................6
4.1 整體設(shè)計(jì)思路................................................................................................................6 4.2 各模塊設(shè)計(jì)方法............................................................................................................7 4.2.1 頂層模塊...............................................................................................................7 4.2.2 其他模塊...............................................................................................................8 4.2.3 程序包模塊.........................................................................................................13
5、仿真與分析......................................................13
5.1 仿真結(jié)果....................................................................................................................13 5.2 仿真分析....................................................................................................................16
6、課程設(shè)計(jì)總結(jié)....................................................16
7、參考文獻(xiàn)........................................................17
東北大學(xué)信息學(xué)院
1、設(shè)計(jì)目的
掌握利用可編程邏輯器件和EDA設(shè)計(jì)工具進(jìn)行電子系統(tǒng)設(shè)計(jì)的方法。
2、設(shè)計(jì)內(nèi)容和要求
用VHDL語(yǔ)言實(shí)現(xiàn)數(shù)字鐘的設(shè)計(jì),要求設(shè)計(jì)實(shí)現(xiàn)一個(gè)具有帶預(yù)置數(shù)的數(shù)字鐘,具有顯示年月日時(shí)分秒的功能。用6個(gè)數(shù)碼管顯示時(shí)分秒,set按鈕產(chǎn)生第一個(gè)脈沖時(shí),顯示切換年月日,第2個(gè)脈沖到來(lái)時(shí)可預(yù)置年份,第3個(gè)脈沖到來(lái)時(shí)可預(yù)置月份,依次第4、5、6、7個(gè)脈沖到來(lái)時(shí)分別可預(yù)置日期、時(shí)、分、秒,第 8個(gè)脈沖到來(lái)后預(yù)置結(jié)束,正常工作,顯示的是時(shí)分秒。Up為高電平時(shí),upclk有脈沖到達(dá)時(shí),預(yù)置位加1。否則減1。
3、設(shè)計(jì)原理 3.1 數(shù)字鐘功能介紹
數(shù)字鐘具有計(jì)時(shí)、預(yù)置、報(bào)時(shí)的功能。以不同的set脈沖控制各個(gè)功能。
(1)在計(jì)時(shí)功能中,數(shù)字鐘實(shí)現(xiàn)對(duì)年月日時(shí)分秒即星期的計(jì)時(shí),并可以通過(guò)LED數(shù)碼管分別顯示年月日、或時(shí)分秒、或星期、或鬧鐘的時(shí)分。
(2)在預(yù)置功能中,可以通過(guò)UP鍵對(duì)各需要預(yù)置的量進(jìn)行控制。UP=1時(shí),進(jìn)行“加”控制,UP=0時(shí),進(jìn)行“減”控制。
(3)在報(bào)時(shí)功能中,分為整點(diǎn)報(bào)時(shí)和設(shè)置時(shí)間報(bào)時(shí)。其中整點(diǎn)報(bào)時(shí)以ce作為使能輸入端,在整點(diǎn)時(shí)燈進(jìn)行一秒閃爍;設(shè)置時(shí)間報(bào)時(shí)以enable作為使能輸入端,enable=1時(shí)設(shè)置時(shí)間報(bào)時(shí)功能啟動(dòng),在鬧鐘預(yù)置時(shí)間與時(shí)鐘當(dāng)前時(shí)間相同時(shí)報(bào)時(shí),若此時(shí)按下stop,鬧鐘立即停止并不再響鈴,若按下pass,則鬧鐘立即停止,但三分鐘后再響,如此循環(huán)5次后不再響鈴,若什么都不按,鬧鐘響鈴持續(xù)1分鐘。
東北大學(xué)信息學(xué)院
3.2 數(shù)字鐘設(shè)計(jì)原理
本設(shè)計(jì)功能有8個(gè)子模塊:分頻模塊、時(shí)分秒模塊、日模塊、年月模塊、鬧鐘預(yù)置模塊、星期模塊、響鈴模塊。通過(guò)元件例化由頂層文件timekeeper綜合。
整體設(shè)計(jì)框圖及外觀圖如(圖 3-1)及(圖3-2)
圖3-1 數(shù)字鐘設(shè)計(jì)整體框圖
東北大學(xué)信息學(xué)院
圖3-2 數(shù)字鐘外觀圖
4、VHDL程序設(shè)計(jì)
4.1 整體設(shè)計(jì)思路
采用自上而下的方法進(jìn)行整體設(shè)計(jì)。整個(gè)設(shè)計(jì)共分為8個(gè)模塊,通過(guò)頂
層文件timekeeper元件例化將8個(gè)模塊各個(gè)端口對(duì)應(yīng)相連。在設(shè)計(jì)各個(gè)模塊時(shí)所用到的其它運(yùn)算方法等放于work庫(kù)中,通過(guò)程序包及程序包體的方式對(duì)所使用函數(shù)進(jìn)行定義。
主要使用的語(yǔ)句有:元件例化語(yǔ)句,過(guò)程語(yǔ)句,信號(hào)賦值語(yǔ)句,if語(yǔ)句,case語(yǔ)句(在狀態(tài)機(jī)中)。
圖(4-1)表示了個(gè)模塊的連接及連接是所用到的觸發(fā)器等。
東北大學(xué)信息學(xué)院
圖4-1
整體結(jié)構(gòu)圖
4.2 各模塊設(shè)計(jì)方法
4.2.1 頂層模塊
頂層模塊timekeeper是.對(duì)對(duì)所有模塊的綜合。
它包含的功能是:通過(guò)元件例化連接各模塊;實(shí)現(xiàn)對(duì)鬧鐘控制位sp2的控制;實(shí)現(xiàn)鬧鐘的整點(diǎn)報(bào)時(shí)閃爍。
輸入端:up
全局加減選擇,控制預(yù)置時(shí)的加減
setpin 設(shè)定選擇
東北大學(xué)信息學(xué)院
upclk 加減觸發(fā)
f1000 時(shí)鐘輸入
輸出端:a0~d1 八位數(shù)碼管控制引腳的輸出
z
整點(diǎn)報(bào)時(shí)輸出 4.2.2 其他模塊
1、時(shí)分秒模塊
時(shí)分秒模塊h_m_s是對(duì)時(shí)、分、秒正常計(jì)時(shí)(set=0 or 1 or 12)和預(yù)置時(shí)分秒(set=5 or 6 or 7)的實(shí)現(xiàn)。
分和秒由兩個(gè)六十進(jìn)制實(shí)現(xiàn),時(shí)由24進(jìn)制實(shí)現(xiàn)。當(dāng)時(shí)間達(dá)到23時(shí)59分59秒時(shí),時(shí)分秒全部歸零,進(jìn)位位ov由零變?yōu)?,通過(guò)管腳連接到date模塊的時(shí)鐘計(jì)數(shù)信號(hào)clk0,開(kāi)啟date模塊。
2、日的模塊
日的模塊date實(shí)現(xiàn)日子進(jìn)行正常計(jì)時(shí)(set=0 or 1 or 12)和預(yù)置(set=4)。
由于每月的天數(shù)與月份、年份有關(guān),故需判斷年月。(1)(2)(3)當(dāng)1、3、5、7、8、10、12月時(shí),每月31天,使用31進(jìn)制。當(dāng)4、6、9、11月時(shí),每月30天,使用30進(jìn)制。當(dāng)2月時(shí),分閏年和平年。閏年29天,平年28天。
閏年和平年的判斷方法是:由于通過(guò)年月模塊傳輸?shù)哪攴轂閮晌籅CD碼。若高位信號(hào)為“xxx0”且低位信號(hào)為“xx00”或高位信號(hào)為“xxx1”且低位信號(hào)為“xx10”,則可判定為閏年,否則為平年。
以上各月,當(dāng)日期至月底時(shí)返回1,進(jìn)位位ov變?yōu)?通過(guò)管腳連接年月模塊的時(shí)鐘計(jì)數(shù)信號(hào)clk0,開(kāi)啟年月模塊。
3、年月模塊
年月模塊year_mon實(shí)現(xiàn)年月正常計(jì)時(shí)(set=0 or 1 or 12)和年、月的預(yù)置(set=2 or 3)。
月為12進(jìn)制,當(dāng)達(dá)到12時(shí)變回為1,同時(shí)使年份進(jìn)1。由兩位BCD碼表示年份,故可以表示100年之年的所有年,為100進(jìn)制。
東北大學(xué)信息學(xué)院
圖4-2 year_mon和date模塊的電路連接圖
4、星期模塊
星期模塊week的功能是實(shí)現(xiàn)對(duì)星期的計(jì)時(shí)(set=0 or 1 or 12)和預(yù)置(set=8)。為七進(jìn)制。
圖4-3 week模塊的RTL
5、鬧鐘模塊
東北大學(xué)信息學(xué)院
鬧鐘模塊alarm是對(duì)鬧鐘時(shí)和分的預(yù)置(set=10 or 11)。時(shí)為24進(jìn)制,分為60進(jìn)制。
圖4-3 alarm模塊的RTL
另外,在頂層模塊timekeeper,當(dāng)鬧鐘預(yù)置時(shí)間與計(jì)時(shí)時(shí)間相同時(shí)(僅時(shí)、分),鬧鐘響鈴,當(dāng)不對(duì)其進(jìn)行任何操作時(shí),響鈴維持1分鐘。響鈴方式見(jiàn)4.2.7響鈴模塊。
6、響鈴模塊
響鈴模塊alarm是對(duì)鬧鐘響鈴的控制。其中主要包含:
Enable:當(dāng)enable=1時(shí),鬧鐘可以工作。
Sp2 :當(dāng)頂層模塊鬧鐘時(shí)間與計(jì)時(shí)相等時(shí),sp2=1,響鈴開(kāi)啟。Stop :鬧鐘停止并不再響鈴。
Pass :鬧鐘停止但三分鐘后再響,循環(huán)5次。Sp :響鈴輸出。Sp=1時(shí)響鈴,sp=0時(shí)不響。本模塊主要使用的方法是狀態(tài)機(jī)。相應(yīng)狀態(tài)轉(zhuǎn)換圖如下:
東北大學(xué)信息學(xué)院
圖 4-4 響鈴模塊狀態(tài)轉(zhuǎn)換圖
在狀態(tài)t_pass時(shí),使用計(jì)數(shù)的方法實(shí)現(xiàn)對(duì)3分鐘,5次循環(huán)的計(jì)數(shù)。
圖 4-5 計(jì)數(shù)的流程圖
東北大學(xué)信息學(xué)院
圖4-6 speak模塊的RTL
7、分頻模塊
分頻模塊fenpin使輸入為1KHZ時(shí)鐘信號(hào)時(shí),接入電路經(jīng)分頻后仍能按1HZ即1s計(jì)數(shù)。
圖4-7 fenpin模塊的RTL
8、顯示模塊
顯示模塊led即七段數(shù)碼管的顯示電路。
東北大學(xué)信息學(xué)院
圖4-8 led模塊的RTL 4.2.3 程序包模塊
程序模塊是對(duì)各模塊所用到的函數(shù)的定義,通過(guò)程序包package定義時(shí)、日、月、年等的增減函數(shù)(procedure),并用程序包體package body具體說(shuō)明函數(shù)的內(nèi)容。通過(guò)use.work.pac.all語(yǔ)句調(diào)用程序包,使程序書(shū)寫(xiě)更加方便簡(jiǎn)潔。
5、仿真與分析
5.1 仿真結(jié)果
1、h_m_s模塊
東北大學(xué)信息學(xué)院
表示當(dāng)up=1時(shí),時(shí)鐘時(shí)(set=5)、分(set=6)、秒(set=7)從0開(kāi)始加。
圖 5-1
2、date模塊
以下為對(duì)應(yīng)月份截圖。另外,當(dāng)日期由最末變?yōu)?時(shí),ov進(jìn)1以控制year_mon模塊。
(1)大月:每月31天。
圖5-2-1(2)小月:每月30天。
圖5-2-2(3)平年2月:每月28天。
東北大學(xué)信息學(xué)院
圖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模塊
下圖反映對(duì)鬧鐘時(shí)(set=10)、分(set=11)的預(yù)置,up=1為加。
圖 5-5
6、speak模塊
(1)按下pass
由下圖可見(jiàn),當(dāng)時(shí)間相同sp為高電平;按下pass后sp變?yōu)榈碗娖?,三分?/p>
東北大學(xué)信息學(xué)院
后sp又為高電平。
圖5-6-1(2)按下stop
由下圖可見(jiàn),當(dāng)時(shí)間相同時(shí)sp為高電平,按下stop后sp變?yōu)榈碗娖健?/p>
圖 5-6-2
5.2 仿真分析
各模塊仿真均可實(shí)現(xiàn),且波形顯示可以實(shí)現(xiàn)預(yù)想的功能。
6、課程設(shè)計(jì)總結(jié)
通過(guò)這次的課程設(shè)計(jì),我又一次系統(tǒng)的復(fù)習(xí)了VHDL語(yǔ)言,通過(guò)實(shí)踐對(duì)VHDL語(yǔ)言和EDA技術(shù)有了更具現(xiàn)實(shí)性應(yīng)用性的了解,并熟練了相關(guān)軟件的使用方法。
此次課程設(shè)計(jì)的內(nèi)容是數(shù)字鐘,我學(xué)會(huì)了如何利用元件例化將各個(gè)模塊結(jié)合起來(lái),而不是一味的想起一個(gè)功能設(shè)計(jì)一個(gè)功能,而是有一個(gè)總體的自上而下的設(shè)計(jì),建立基本的設(shè)計(jì)框圖(如圖 3-1),再進(jìn)行具體的設(shè)計(jì)。
在程序調(diào)試的過(guò)程中,出現(xiàn)了很多的問(wèn)題。我發(fā)現(xiàn)往往是一行出現(xiàn)了錯(cuò)誤導(dǎo)致了接下來(lái)一系列錯(cuò)誤的出現(xiàn)。
還有在仿真中出現(xiàn)錯(cuò)誤的紅線,并出現(xiàn)了‘U’字符,全都是未設(shè)置初值所致。而在設(shè)置初值時(shí)仍然出現(xiàn)了問(wèn)題。最開(kāi)始我想定義一個(gè)clr信號(hào),當(dāng)clr為高電平時(shí)各功能清零,但是在實(shí)際仿真時(shí),由于常常要看在月末或類似23時(shí)59分59秒這樣的時(shí)刻是否有進(jìn)位信號(hào)進(jìn)為高電平,從零開(kāi)始顯然讓仿真變的十
東北大學(xué)信息學(xué)院
分麻煩,如果可以直接賦初值到接近進(jìn)位的時(shí)刻就會(huì)讓仿真變得簡(jiǎn)便。即使用信號(hào)賦初值的方法對(duì)信號(hào)進(jìn)行賦初值,既解決錯(cuò)誤又利于仿真。
在最后對(duì)頂層仿真時(shí)出現(xiàn)了很多的問(wèn)題,最后發(fā)現(xiàn)都是未對(duì)應(yīng)的問(wèn)題。當(dāng)然,我的設(shè)計(jì)還有很多不足的地方。比如有一處的競(jìng)爭(zhēng)冒險(xiǎn)產(chǎn)生的毛刺沒(méi)有解決。最開(kāi)始是將speak模塊控制信號(hào)sp2的相關(guān)程序?qū)懺诹薬larm模塊,仿真時(shí)發(fā)現(xiàn)在一處出現(xiàn)了毛刺,在對(duì)鬧鐘進(jìn)行預(yù)置時(shí)分時(shí)的第一個(gè)時(shí)間都未足一個(gè)時(shí)鐘周期(如圖 5-5)。后來(lái)我想是否因?yàn)閍larm模塊有兩個(gè)process進(jìn)程,就將sp2的相關(guān)程序挪到了頂層模塊,但是最后還是沒(méi)有實(shí)現(xiàn)。咨詢了一下同學(xué)們,他們都說(shuō)這沒(méi)有問(wèn)題,不需要解決,所以就沒(méi)有解決這個(gè)問(wèn)題。
此次課程設(shè)計(jì)我學(xué)到了很多,但是我覺(jué)得應(yīng)該放在剛剛考完EDA之后,那時(shí)候?qū)χ皇怯浀帽容^清楚,不像在這次設(shè)計(jì)時(shí)很多知識(shí)都想不起來(lái)了。其他的對(duì)我?guī)椭己艽蟆?/p>
7、參考文獻(xiàn) 李景華,杜玉遠(yuǎn)等著.可編程邏輯器件與EDA技術(shù).沈陽(yáng):東北大學(xué)出版社,2000 2 齊懷印等.高級(jí)邏輯器件與設(shè)計(jì).北京:電子工業(yè)出版社,1996 3 可編程邏輯器件與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京航天航空大學(xué)出版社,1999 4 劉真,畢才術(shù).數(shù)字邏輯與計(jì)算機(jī)設(shè)計(jì)[M ]北京:高等教育出版社,2002 5 王小軍.VHDL簡(jiǎn)明教程[M].北京:清華大學(xué)出版社,1997
第四篇:數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè)
1.設(shè)計(jì)要求
利用MAX PLUSII軟件工具,設(shè)計(jì)一個(gè)全數(shù)字鎖相環(huán)路,通過(guò)它從19.2k的信號(hào)中提取同步信號(hào)。本地源時(shí)鐘為11.0592MHz。
要求實(shí)現(xiàn)的功能:
a當(dāng)遠(yuǎn)端信號(hào)(方波)的占空比分別為1:
1、1:
3、1:5和1:7時(shí),從其中提取同步信號(hào)。b先將遠(yuǎn)端信號(hào)(方波)轉(zhuǎn)變成偽隨機(jī)序列,然后從中提取同步信號(hào)。完成仿真過(guò)程,給出測(cè)試結(jié)果,要求得到同步帶寬、捕捉帶寬和最大同步時(shí)間。
2.設(shè)計(jì)原理
2.1數(shù)字鎖相環(huán)基本原理
一個(gè)典型的鎖相環(huán)(PLL)系統(tǒng),是由鑒相器(PD),壓控蕩器(VCO)和低通濾波器(LPF)三個(gè)基本電路組成,如圖1所示。
圖1 PLL模塊圖
傳統(tǒng)的鎖相環(huán)是模擬電路,它利用環(huán)路中誤差信號(hào)去連續(xù)地調(diào)整位同步信號(hào)的相位。全數(shù)字鎖相環(huán)路完全用數(shù)字電路構(gòu)成,采用高穩(wěn)定度的振蕩器(信號(hào)鐘),從鑒相器所獲得的與同步誤差成比例的誤差信號(hào)不是直接用于調(diào)整振蕩器,而是通過(guò)一個(gè)控制器在信號(hào)鐘輸出的脈沖序列中附加或扣除一個(gè)或幾個(gè)脈沖,這樣同樣可以調(diào)整加到鑒相器上的位同步脈沖序列的相位,達(dá)到同步的目的。
全數(shù)字鎖相環(huán)(ADPLL)由數(shù)字鑒相器(DP)、數(shù)字濾波器(DF)與數(shù)字壓控振蕩器(DCO)三個(gè)數(shù)字電路部件組成,如圖2所示。
圖2 ADPLL模塊圖
2.2數(shù)字鎖相環(huán)原理框圖
本設(shè)計(jì)中的數(shù)字鎖相環(huán)由信號(hào)鐘、控制器、分頻器、相位比較器組成。其原理框圖如圖3所示。
圖3 數(shù)字鎖相環(huán)原理框圖
信號(hào)鐘包括一個(gè)高穩(wěn)定度的晶體振蕩器和整形電路。若接收碼元的速率為F=1/T,那么振蕩器頻率設(shè)定在nF,經(jīng)整形電路之后,輸出周期性脈沖序列,其周期T0=1/(nF)=T/n。本設(shè)計(jì)中時(shí)鐘為11.0592MHz。
控制器包括圖中的扣除門(常開(kāi))、附加門(常閉)和“或門”,它根據(jù)相位比較器輸出的控制脈沖(“超前脈沖”或“滯后脈沖”)對(duì)信號(hào)鐘輸出的序列實(shí)施扣除(或添加)脈沖。分頻器是一個(gè)計(jì)數(shù)器,每當(dāng)控制器輸出n個(gè)脈沖時(shí),它就輸出一個(gè)脈沖??刂破髋c分頻器的共同作用的結(jié)果就調(diào)整了加至相位比較器的位同步信號(hào)的相位。這種相位前、后移的調(diào)整量取決于信號(hào)鐘的周期,每次的時(shí)間階躍量為T0,相應(yīng)的相位最小調(diào)整量為Δ=2πT0/T=2π/n。
相位比較器將接收脈沖序列與位同步信號(hào)進(jìn)行相位比較,以判別位同步信號(hào)究竟是超前還是滯后,若超前就輸出超前脈沖,若滯后就輸出滯后脈沖。
3.數(shù)字鎖相環(huán)的硬件實(shí)現(xiàn)
根據(jù)圖3(數(shù)字鎖相環(huán)原理框圖),利用MAX PLUSII中的硬件仿真功能,實(shí)現(xiàn)數(shù)字鎖相環(huán)。下面將給出信號(hào)鐘、分頻器和相位比較器的硬件實(shí)現(xiàn)圖。
信號(hào)鐘包含一個(gè)晶振和整形電路,晶振產(chǎn)生的方波信號(hào)經(jīng)過(guò)整形電路后變成脈沖信號(hào)。為了和控制器相配合,需要兩路脈沖信號(hào)。整形電路由D觸發(fā)器和邏輯與、或、非門組成。D觸發(fā)器起到延時(shí)的作用,然后通過(guò)邏輯或門和與門產(chǎn)生脈沖波。電路如圖4所示。
圖4 整形電路(rc)
分頻器是一個(gè)計(jì)數(shù)器,由3片74LS161來(lái)實(shí)現(xiàn)。電路如圖5所示。
圖5 分頻器(fd)
相位比較器主要由微分脈沖電路和邏輯與、非門組成。微分脈沖形成電路由D觸發(fā)器和邏輯異或、與門組成。D觸發(fā)器起延時(shí)的作用。微分脈沖形成電路如圖6所示。
圖6 微分脈沖形成電路(dp)
數(shù)字鎖相環(huán)的硬件實(shí)現(xiàn)電路如圖7所示。圖中藍(lán)色字樣所在框圖由上至下分別為微分脈沖形成電路(dp)、整形電路(rc)和分頻器(fd),具體結(jié)構(gòu)如圖
6、圖4和圖5所示。
圖7 數(shù)字鎖相環(huán)電路
由于在MAX PLUSII中沒(méi)有占空比為1:
3、1:5和1:7的方形波,所以要利用可用的元器件來(lái)生成滿足要求的信號(hào)。可以通過(guò)把方波分別通過(guò)模
4、模6和模8計(jì)數(shù)器來(lái)達(dá)到這一目的。在本設(shè)計(jì)中,利用74LS161來(lái)實(shí)現(xiàn)這些計(jì)數(shù)器。模
4、模
6、模8計(jì)數(shù)器分別如圖
8、圖
9、圖10所示。
圖8 模4計(jì)數(shù)器(1_3)
圖9 模6計(jì)數(shù)器(1_5)
圖10 模8計(jì)數(shù)器(1_7)
方波通過(guò)這些計(jì)數(shù)器后就能形成占空比滿足要求的信號(hào),然后再將信號(hào)送入圖7所示的數(shù)字鎖相環(huán)電路中,便可以提取出同步信號(hào)。
在本設(shè)計(jì)中,將方波轉(zhuǎn)變成偽隨機(jī)序列用到74LS194和邏輯異或門、與非門。7位偽隨機(jī)序列發(fā)生器電路如圖11所示。將產(chǎn)生的偽隨機(jī)序列送入圖7所示的數(shù)字鎖相環(huán)電路中,便可以提取出同步信號(hào)。
圖11 7位偽隨機(jī)序列發(fā)生器
4.仿真過(guò)程
4.1接收信號(hào)的占空比為1:1
條件設(shè)置為:End Time = 10ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖12所示,藍(lán)色線條處放大后如圖13所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖14所示。
圖12 位同步信號(hào)超前于接收脈沖序列
圖13 超前脈沖作用于扣除門
圖14同步狀態(tài)
位同步信號(hào)滯后于接收脈沖序列的情況如圖15所示,藍(lán)色線條處放大后如圖16所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖17所示。
圖15 位同步信號(hào)滯后于接收脈沖序列
圖16 滯后脈沖作用于附加門
圖17 同步狀態(tài)
通過(guò)多次試驗(yàn),可得測(cè)試結(jié)果如下: 同步建立時(shí)間:14.824ms 同步帶寬:40hz 4.2接收信號(hào)的占空比為1:3
條件設(shè)置為:End Time = 10ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖18所示,藍(lán)色線條處放大后如圖19所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖20所示。同步建立時(shí)間:6.906ms
圖18 位同步信號(hào)超前于接收脈沖序列
圖19 超前脈沖作用于扣除門
圖20 同步狀態(tài)
位同步信號(hào)滯后于接收脈沖序列的情況如圖21所示,藍(lán)色線條處放大后如圖22所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖23所示。
圖21 位同步信號(hào)滯后于接收脈沖序列
圖22 滯后脈沖作用于附加門
圖23 同步狀態(tài)
通過(guò)多次試驗(yàn),可得測(cè)試結(jié)果如下: 同步建立時(shí)間:14.905ms 同步帶寬:24hz 4.3接收信號(hào)的占空比為1:5
條件設(shè)置為:End Time = 10ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖24所示,藍(lán)色線條處放大后如圖25所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖26所示。
圖24 位同步信號(hào)超前于接收脈沖序列
圖25 超前脈沖作用于扣除門
圖26 同步狀態(tài)
位同步信號(hào)滯后于接收脈沖序列的情況如圖27所示,藍(lán)色線條處放大后如圖28所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖29所示。
圖27 位同步信號(hào)滯后于接收脈沖序列
圖28 滯后脈沖作用于附加門
圖29 同步狀態(tài)
通過(guò)多次試驗(yàn),可得測(cè)試結(jié)果如下: 同步建立時(shí)間:14.706ms 同步帶寬:16hz 4.4接收信號(hào)的占空比為1:7
條件設(shè)置為:End Time = 20ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖30所示,藍(lán)色線條處放大后如圖31所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖32所示。
圖30 位同步信號(hào)超前于接收脈沖序列
圖31 超前脈沖作用于扣除門
圖32 同步狀態(tài)
位同步信號(hào)滯后于接收脈沖序列的情況如圖33所示,藍(lán)色線條處放大后如圖34所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖35所示。
圖33 位同步信號(hào)滯后于接收脈沖序列
圖34 滯后脈沖作用于附加門
圖35 同步狀態(tài)
通過(guò)多次試驗(yàn),可得測(cè)試結(jié)果如下: 同步建立時(shí)間:14.865ms 同步帶寬:18hz 4.5遠(yuǎn)端信號(hào)(方波)轉(zhuǎn)變成偽隨機(jī)序列
條件設(shè)置為:End Time = 20ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖36所示,藍(lán)色線條處放大后如圖37所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖38所示。
圖36 位同步信號(hào)超前于接收脈沖序列
圖37 超前脈沖作用于扣除門
圖38 同步狀態(tài)
位同步信號(hào)滯后于接收脈沖序列的情況如圖39所示,藍(lán)色線條處放大后如圖40所示。經(jīng)過(guò)一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖41所示。
圖39 位同步信號(hào)滯后于接收脈沖序列
圖40 滯后脈沖作用于附加門
圖41 同步狀態(tài)
通過(guò)多次試驗(yàn),可得測(cè)試結(jié)果如下: 同步建立時(shí)間:52.476ms 同步帶寬:8hz 5.心得體會(huì)
在做這個(gè)課程設(shè)計(jì)之前,我沒(méi)有接觸過(guò)MAX PLUSII這個(gè)軟件,對(duì)數(shù)字鎖相器亦沒(méi)有太多的認(rèn)識(shí),所以剛開(kāi)始感覺(jué)很難。在查閱了很多相關(guān)資料之后,對(duì)軟件的操作和數(shù)字鎖相器的理解已經(jīng)比較深入,越到后邊就感覺(jué)越得心應(yīng)手。自己竟然在短短幾天之內(nèi),掌握了這些東西,并且完整地將課程設(shè)計(jì)完成。在這過(guò)程中也學(xué)到了很多東西。一方面,在完成該課程設(shè)計(jì)的過(guò)程中,對(duì)數(shù)字鎖相環(huán)技術(shù)有了深刻的理解,也學(xué)會(huì)了如何去利用仿真工具去驗(yàn)證一個(gè)設(shè)計(jì)的正確性和可行性。這對(duì)之后的畢業(yè)設(shè)計(jì)都有莫大的幫助。另一方面,自己又一次領(lǐng)悟到與人合作交流的重要性,期間遇到的許多問(wèn)題都是在不斷地討論和請(qǐng)教中解決的,如果沒(méi)有集體的智慧,可能到現(xiàn)在也無(wú)法完成該設(shè)計(jì)??偠灾瑢W(xué)期末的課程設(shè)計(jì)教會(huì)了我很多東西,也為本學(xué)期畫(huà)上了一個(gè)完滿的句號(hào)。感謝老師的指導(dǎo)。
第五篇:可控脈沖發(fā)生器的設(shè)計(jì)EDA課設(shè)報(bào)告資料
可控脈沖發(fā)生器的設(shè)計(jì)
一、設(shè)計(jì)目的
1.了解可控脈沖發(fā)生器的實(shí)現(xiàn)機(jī)理。2.學(xué)會(huì)用示波器觀察FPGA產(chǎn)生的信號(hào)。3.學(xué)習(xí)用VHDL編寫(xiě)復(fù)雜功能的代碼。
二、設(shè)計(jì)原理
1.EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫(xiě)。EDA技術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測(cè)試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使設(shè)計(jì)者的工作僅局限于利用軟件的方式來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn),可以說(shuō)EDA技術(shù)的產(chǎn)生與發(fā)展是電子設(shè)計(jì)技術(shù)的一個(gè)巨大進(jìn)步。EDA技術(shù)融合了眾多電子設(shè)計(jì)技術(shù)和計(jì)算機(jī)輔助技術(shù),使得它在現(xiàn)代電子學(xué)方面的應(yīng)用越來(lái)越廣泛,也成為電子、電氣類大學(xué)生必須熟練掌握的一種設(shè)計(jì)工具。
2.VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,是硬件描述語(yǔ)言的業(yè)界標(biāo)準(zhǔn)之一。VHDL語(yǔ)言功能強(qiáng)大、設(shè)計(jì)靈活。VHDL語(yǔ)言可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制,它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。
VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言雖不能比擬的。VHDL還支持多種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。
由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)定的硬件描述性語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL。因?yàn)閂HDL易讀和結(jié)構(gòu)化且易于修改設(shè)計(jì)所以在硬件電路設(shè)計(jì)過(guò)程中,VHDL語(yǔ)言得到廣泛應(yīng)用。
VHDL語(yǔ)言易于共享和復(fù)用。VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。
VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。這個(gè)特點(diǎn)很好的符合了市場(chǎng)需求。對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述的設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。總之,由于VHDL語(yǔ)言有的這些優(yōu)良的特點(diǎn),它被廣泛的應(yīng)用在電子線路和電子系統(tǒng)的設(shè)計(jì)中。
3.Quartus II是Altera公司的綜合性PLD/FPGA開(kāi)發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。
Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫(kù),使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。
此外,Quartus II通過(guò)和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開(kāi)發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開(kāi)發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開(kāi)發(fā)平臺(tái)。
4.脈沖發(fā)生器就是要產(chǎn)生一個(gè)脈沖波形,而可控脈沖發(fā)生器則是要產(chǎn)生一個(gè)周期和占空比可變的脈沖波形??煽孛}沖發(fā)生器的實(shí)現(xiàn)原理比較簡(jiǎn)單,可以簡(jiǎn)單的理解為一個(gè)計(jì)數(shù)器對(duì)輸入的時(shí)鐘信號(hào)進(jìn)行分頻的過(guò)程。通過(guò)改變計(jì)數(shù)器的上限值來(lái)達(dá)到改變周期的目的,通過(guò)改變電平翻轉(zhuǎn)的閾值來(lái)達(dá)到改變占空比的目的。下面舉個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明其工作原理。
假如有一個(gè)計(jì)數(shù)器T對(duì)時(shí)鐘分頻,其計(jì)數(shù)的范圍是從0~N,另取一個(gè)M(0≤M≤N),若輸出為Q,那么Q只要滿足條件
時(shí),通過(guò)改變N值,即可改變輸出的脈沖波的周期;改變M值,即可改變脈沖波的占空比。這樣輸出的脈沖波的周期和占空比分別為:
?1Q???00?T?MM?T?N周期?(N?1)TCLOCKM占空比??100%N?
1三、設(shè)計(jì)內(nèi)容
編寫(xiě)實(shí)現(xiàn)可控脈沖發(fā)生器程序,通過(guò)脈沖周期和占空比改變實(shí)現(xiàn)不同脈沖的輸出。用QuartusII軟件對(duì)設(shè)計(jì)進(jìn)行編譯、綜合、仿真,給出相應(yīng)的時(shí)序仿真波形和硬件電路圖。
四、設(shè)計(jì)流程 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;
--時(shí)鐘輸入
RST : IN STD_LOGIC;
--復(fù)位輸入
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);--產(chǎn)生一個(gè)低速時(shí)鐘,用于按鍵判斷
BEGIN
PROCESS(CLK)
--計(jì)數(shù)器累加
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.時(shí)序仿真圖: 4.硬件電路圖: 5.現(xiàn)象: 五、心得體會(huì) 通過(guò)這次EDA課程設(shè)計(jì),我對(duì)課堂上所學(xué)到的理論知識(shí)的理解加深了許多,自己動(dòng)腦、動(dòng)手設(shè)計(jì)的能力也得到了較大提高。 在這次課程設(shè)計(jì)的過(guò)程中,我對(duì)VHDL語(yǔ)言有了更深的認(rèn)識(shí)。通過(guò)查閱相關(guān)資料和動(dòng)手設(shè)計(jì)我發(fā)現(xiàn)我以前對(duì)VHDL語(yǔ)言的認(rèn)識(shí)太過(guò)膚淺,認(rèn)為VHDL語(yǔ)言只能用于設(shè)計(jì)小型的電路系統(tǒng)。但有了更深刻的認(rèn)識(shí)之后我發(fā)現(xiàn)學(xué)好VHDL語(yǔ)言可以設(shè)計(jì)出大規(guī)模的、功能復(fù)雜的電路系統(tǒng)。以前之所以會(huì)有錯(cuò)誤的認(rèn)識(shí)是因?yàn)樽约簩?duì)VHDL語(yǔ)言的了解和掌握還不夠?,F(xiàn)在仔細(xì)想想,這次課程設(shè)計(jì)使得我對(duì)VHDL語(yǔ)言的理解與應(yīng)用能力得到了較大的提升,也讓我認(rèn)識(shí)到只要升入學(xué)習(xí),提升的空間永遠(yuǎn)的存在的。 另一方面我也發(fā)現(xiàn)了動(dòng)手實(shí)踐的重要性。動(dòng)手實(shí)踐是理論知識(shí)得以靈活運(yùn)用的必要前提,也是今后今后走上工作崗位之后能夠很好的完成設(shè)計(jì)工作的技術(shù)保證。只有遇到實(shí)際問(wèn)題并根據(jù)自己對(duì)課堂上獲得的專業(yè)知識(shí)的理解來(lái)解決它才能真正的提高自己的能力。這也提醒我在平時(shí)的學(xué)習(xí)生活中不能一味埋頭于課本知識(shí),當(dāng)今社會(huì)競(jìng)爭(zhēng)越來(lái)越激烈,社會(huì)對(duì)人才的要求越來(lái)越全面,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須靠動(dòng)手能力做支撐。因此在學(xué)習(xí)之余我們應(yīng)該積極參加各種與專業(yè)知識(shí)有關(guān)的實(shí)踐活動(dòng)和知識(shí)競(jìng)賽,鞏固所學(xué)的理論知識(shí),多注重培養(yǎng)實(shí)際動(dòng)手能力和專業(yè)技術(shù)能力,這樣才能在以后的工作崗位上有所作為。 數(shù)字秒表設(shè)計(jì) 一、設(shè)計(jì)目的 本設(shè)計(jì)的任務(wù)就是設(shè)計(jì)一個(gè)數(shù)字鐘,要求顯示格式為小時(shí)-分鐘-秒鐘。系統(tǒng)時(shí)鐘選擇時(shí)鐘模塊的50MHz,要得到1Hz時(shí)鐘信號(hào),必須對(duì)系統(tǒng)時(shí)鐘進(jìn)行50000000次分頻。用S1按鍵作為系統(tǒng)時(shí)鐘復(fù)位,復(fù)位后全部顯示00-00-00。 二、設(shè)計(jì)原理 數(shù)碼管的八個(gè)段a,b,c,d,e,f,g,h(h是小數(shù)點(diǎn))都分別連接到SEG0~SEG7,8個(gè)數(shù)碼管分別由八個(gè)選通信號(hào)DIG0~DIG7來(lái)選擇,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如果希望8個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)DIG0~DIG7分別被單獨(dú)選通,并在此同時(shí),在段信號(hào)輸入口SEG0~SEG7加上該對(duì)應(yīng)數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃描就能實(shí)現(xiàn)動(dòng)態(tài)掃描顯示的目的。雖然每次只有1個(gè)數(shù)碼管顯示,但只要掃描顯示速率足夠快,利用人眼的視覺(jué)余輝效應(yīng),我們?nèi)詴?huì)感覺(jué)所有的數(shù)碼管都在同時(shí)顯示。 三、設(shè)計(jì)主要內(nèi)容 本設(shè)計(jì)要求掌握使用QuartusII設(shè)計(jì)數(shù)字系統(tǒng)的設(shè)計(jì)思路和設(shè)計(jì)方法。學(xué)習(xí)VHDL基本邏輯電路的綜合設(shè)計(jì)應(yīng)用。掌握VHDL語(yǔ)言的語(yǔ)法規(guī)范,掌握時(shí)序電路描述方法。掌握多個(gè)數(shù)碼管動(dòng)態(tài)掃描顯示的原理及設(shè)計(jì)方法。 設(shè)計(jì)一個(gè)由共陰八位數(shù)碼管作為顯示、按鍵作為控制系統(tǒng)的數(shù)字鐘電路,要求利用實(shí)驗(yàn)室設(shè)備完成系統(tǒng)設(shè)計(jì)并運(yùn)行調(diào)試。 四、設(shè)計(jì)流程 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; --時(shí)鐘輸入 reset : in std_logic; --復(fù)位輸入 start,over : in std_logic; --秒表控制輸入 ledag : out std_logic_vector(6 downto 0);--七段碼管顯示輸出 SEL : buffer std_logic_vector(2 downto 0)--七段碼管掃描驅(qū)動(dòng)); 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;--產(chǎn)生100Hz時(shí)鐘的分頻計(jì)數(shù)器 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;--產(chǎn)生1kHz時(shí)鐘的分頻計(jì)數(shù)器 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 --系統(tǒng)復(fù)位 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 --正常運(yùn)行 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) --顯示轉(zhuǎn)換 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.時(shí)序仿真圖: 4.硬件電路圖: 5.現(xiàn)象: 五、設(shè)計(jì)總結(jié) 通過(guò)本次的課程設(shè)計(jì),我初步了解了VHDL語(yǔ)言的編程思想,以及利用EDA軟件進(jìn)行電子電路設(shè)計(jì)的方法,通過(guò)對(duì)一個(gè)課題的分析,將實(shí)驗(yàn)的內(nèi)容進(jìn)行分塊解讀,具體到每一個(gè)模塊的具體作用,然后將各個(gè)功能的模塊通過(guò)連線進(jìn)行總體的電路實(shí)現(xiàn),也可以通過(guò)VHDL語(yǔ)言對(duì)各個(gè)模塊進(jìn)行組合,然后需要在程序編譯成功的基礎(chǔ)上,安裝硬件,將程序下載到具體的芯片上進(jìn)行硬件的實(shí)現(xiàn)。通過(guò)整個(gè)實(shí)驗(yàn)的完成,我從老師和同學(xué)那里學(xué)到了更多關(guān)于VHDL編程,仿真以及硬件實(shí)現(xiàn)的知識(shí),自己以前模糊不清的地方也通過(guò)此次的課程設(shè)計(jì)了解清楚了,并且通過(guò)這次課程設(shè)計(jì),我也鍛煉了獨(dú)立思考,獨(dú)立操作的能力,雖然對(duì)于VHDL語(yǔ)言的應(yīng)用我還很生疏,但是此次的課程設(shè)計(jì)卻讓我學(xué)到了很多,也對(duì)這門語(yǔ)言有了更深的理解,對(duì)EDA軟件的使用有了更多的體會(huì)。