EDA技術(shù)與應(yīng)用課程實訓_第1頁
EDA技術(shù)與應(yīng)用課程實訓_第2頁
EDA技術(shù)與應(yīng)用課程實訓_第3頁
EDA技術(shù)與應(yīng)用課程實訓_第4頁
EDA技術(shù)與應(yīng)用課程實訓_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、蘇 州 市 職 業(yè) 大 學實習(實訓)報告課程名稱 EDA技術(shù)與應(yīng)用課程實訓 項目名稱 電壓監(jiān)控系統(tǒng)的設(shè)計 2013年6月24日至2013年6月28日共1周學院(部) 電子信息工程學院班 級 11應(yīng)用電子2 姓 名 田闖 學 號 學院(部)負責人 張紅兵 系 主 任 陳偉元 指導教師 孫加存 蘇 州 市 職 業(yè) 大 學實習(實訓)設(shè)計任務(wù)書 課程名稱: EDA技術(shù)與應(yīng)用課程實訓 起訖時間: 2013年6月24日至2013年6月28日學院(部): 電子信息工程學院 班級: 11應(yīng)用電子2班 指導教師: 孫加存 學院(部)負責人: 張紅兵 目錄目錄3第一章 緒論41.1 EDA技術(shù)的概述41.1.

2、1EDA技術(shù)的發(fā)展歷程41.1.2 EDA技術(shù)的應(yīng)用41.2 EDA技術(shù)的設(shè)計方法41.2.1 數(shù)字系統(tǒng)設(shè)計模型51.2.2 數(shù)字系統(tǒng)設(shè)計基本步驟6第二章 電壓監(jiān)測系統(tǒng)介紹72.1 電壓監(jiān)測系統(tǒng)的應(yīng)用場合72.2 電壓監(jiān)測儀的作用72.3 電壓監(jiān)測系統(tǒng)的結(jié)構(gòu)72.4 TLC549芯片82.4.1 引腳圖及各引腳功能82.4.2 TLC549工作原理9第三章電壓監(jiān)測系統(tǒng)的設(shè)計103.1 設(shè)計要求103.2 設(shè)計思路113.3 設(shè)計流程123.4 設(shè)計步驟及程序123.5 硬件實現(xiàn)及調(diào)試步驟12第四章 課程實訓總結(jié)15參考文獻16附錄17 第一章 緒論1.1 EDA技術(shù)的概述1.1.1EDA技術(shù)的

3、發(fā)展歷程 回顧近 30 年電子設(shè)計技術(shù)的發(fā)展歷程,可將 EDA 技術(shù)分為三個階段。七十年代為 CAD 階段,人們開始用計算機輔助進行 IC 版圖編輯、PCB 布局 布線,取代了手工操作,產(chǎn)生了計算機輔助設(shè)計的概念。 八十年代為 CAE 階段,與 CAD 相比,除了純粹的圖形繪制功能外,又增加 了電路功能設(shè)計和結(jié)構(gòu)設(shè)計, 并且通過電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起, 實現(xiàn)了 工程設(shè)計,這就是計算機輔助工程的概念。CAE 的主要功能是:原理圖輸入,邏 輯仿真,電路分析,自動布局布線,PCB 后分析。 九十年代為 ESDA 階段, 盡管 CAD/CAE 技術(shù)取得了巨大的成功, 但并沒有把 人從繁重的設(shè)計

4、工作中徹底解放出來。 在整個設(shè)計過程中, 自動化和智能化程度還 不高,各種 EDA 軟件界面千差萬別,學習使用困難,并且互不兼容,直接影響到 設(shè)計環(huán)節(jié)間的銜接。基于以上不足,人們開始追求:貫徹整個設(shè)計過程的自動化, 這就是 ESDA 即電子系統(tǒng)設(shè)計自動化。1.1.2 EDA技術(shù)的應(yīng)用EDA技術(shù)在教學、科研、產(chǎn)品設(shè)計與制造等方面都發(fā)揮著巨大的作用。在教學方面,幾乎所有理工科院校的電子信息類專業(yè)都開設(shè)了EDA課程,主要目的是讓學生了解EDA的基本概念和基本原理,掌握用VHDL語言編寫規(guī)范的程序,掌握邏輯綜合的理論和算法,使用EDA工具進行電子電路課程的實驗并進行簡單系統(tǒng)的設(shè)計,為今后工作打下基礎(chǔ)。

5、在科研方面,主要利用電路仿真工具進行電路設(shè)計與仿真,利用虛擬儀器進行產(chǎn)品測試,將CPLD/FPGA期間實際應(yīng)用到儀器設(shè)備中,從事PCB設(shè)計和ASIC設(shè)計等。在產(chǎn)品設(shè)計與制造方面,EDA技術(shù)應(yīng)用于仿真、生產(chǎn)、測試各個環(huán)節(jié),如PCB的制作、電子設(shè)備的研制與生產(chǎn)、電路板的焊接、運用FPGA/CPLD進行數(shù)字系統(tǒng)的設(shè)計與制作、ASIC的流片過程,等等。EDA技術(shù)已經(jīng)應(yīng)用于各行各業(yè),在機械、電子通信、航空航天、化工、礦場、生物、醫(yī)學、軍事等各個領(lǐng)域都有EDA技術(shù)的應(yīng)用。另外,EDA軟件的功能也日益強大。1.2 EDA技術(shù)的設(shè)計方法EDA中數(shù)字系統(tǒng)的設(shè)計方法可以采用不同的方法,概括起來只有兩種設(shè)計:一種為

6、由底向上的設(shè)計方法,也成為傳統(tǒng)的設(shè)計方法;另外一種為自頂向下的設(shè)計方法,也成為現(xiàn)代的設(shè)計方法。 自頂向下的設(shè)計方法使系統(tǒng)被分解為各個模塊的集合之后,可以對設(shè)計的每個獨立模塊指派不同的工作小組,這些小組可以工作在不同的地點,甚至可以分屬不同的單位,最后將不同的模塊集成為最終的系統(tǒng)模型,并對其進行綜合測試和評價。 由底向上的硬件設(shè)計方法有如下幾個特征:(1) 設(shè)計的方法是自底至上,先設(shè)計最小的單元電路。(2) 采用通電邏輯元器件,通常采用74系列或CMOS4000系列的產(chǎn)品進行設(shè)計。(3) 在系統(tǒng)硬件設(shè)計的后期進行調(diào)試和仿真。(4) 設(shè)計結(jié)果是多張電路圖。 EDA設(shè)計流程為:設(shè)計輸入、時序與功能仿

7、真、綜合、適配與下載。原理圖/VHDL編輯綜 合FPGA/CPLD時序與功能FPGA/CPLD編程FPGA/CPLD器件和電路下圖圖1是運用EDA技術(shù)進行數(shù)字系統(tǒng)設(shè)計的流程圖。 圖1 EDA技術(shù)數(shù)字系統(tǒng)設(shè)計的流程圖 采用先自頂向下技術(shù)進行設(shè)計可分為三個主要階段:系統(tǒng)設(shè)計、系統(tǒng)的綜合優(yōu)化和系統(tǒng)實現(xiàn),各個系統(tǒng)之間沒有明顯的界限。1.2.1 數(shù)字系統(tǒng)設(shè)計模型數(shù)字系統(tǒng)分為受控器與控制器兩大部分,方框圖如圖2所示數(shù)據(jù)子系統(tǒng)主要完成數(shù)據(jù)的采集、存儲、運算處理和傳輸任務(wù),主要由存儲器、運算器,數(shù)據(jù)選擇器等組成,與外界進行數(shù)字交換,他所有的存取、運算等操作都是在控制子系統(tǒng)發(fā)出的控制信號的作用下進行的。控制子系

8、統(tǒng)是執(zhí)行算法的核心,它具備記憶能力, 圖2 數(shù)字系統(tǒng)方框是一個時序系統(tǒng),由組合邏輯電路和觸發(fā)器等組成。1.2.2 數(shù)字系統(tǒng)設(shè)計基本步驟數(shù)字系統(tǒng)設(shè)計的基本步驟有:系統(tǒng)任務(wù)分析,確定邏輯算法,系統(tǒng)劃分,系統(tǒng)邏輯描述,邏輯電路設(shè)計,仿真、驗證,物理實現(xiàn)。(1)系統(tǒng)任務(wù)分析:數(shù)字系統(tǒng)設(shè)計中的第一步是明確系統(tǒng)的任務(wù)。設(shè)計任務(wù)書可用各種方式提出對整個數(shù)字系統(tǒng)的邏輯要求,常用的方式有自然語言、邏輯語言描述、邏輯流程圖、時序圖等。(2)確定邏輯算法:實現(xiàn)系統(tǒng)邏輯運算的方法稱為邏輯算法,簡稱算法。一個數(shù)字系統(tǒng)的邏輯運算往往有多種算法,設(shè)計者的任務(wù)要比較各種算法的優(yōu)劣,取長補短,從中確定最合理的一種。數(shù)字系統(tǒng)的算

9、法是邏輯設(shè)計的基礎(chǔ),算法不同,則系統(tǒng)的結(jié)構(gòu)也不同,算法的合理與否直接影響系統(tǒng)結(jié)構(gòu)的合理性。(3)系統(tǒng)劃分:當算法明確后,應(yīng)根據(jù)算法構(gòu)造系統(tǒng)的硬件框架(也稱為系統(tǒng)框圖),將系統(tǒng)劃分為若干個部分,各部分分別承擔算法中不同的邏輯操作功能。(4)系統(tǒng)邏輯描述:當系統(tǒng)中各個子系統(tǒng)和模塊的邏輯功能和結(jié)構(gòu)確定后,則需采用比較規(guī)范的形式來描述系統(tǒng)的邏輯功能。對系統(tǒng)的邏輯描述可先采用較粗略的邏輯流程圖,再將邏輯流程圖逐步細化為詳細邏輯流程圖,最后將詳細邏輯流程圖表示成與硬件有對應(yīng)關(guān)系的形式,為下一步的電路級設(shè)計提供依據(jù)。(5)邏輯電路設(shè)計:電路級設(shè)計是指選擇合理的器件及連接關(guān)系以實現(xiàn)系統(tǒng)邏輯要求。電路級設(shè)計的結(jié)

10、果通常采用兩種方式來表達:電路圖方式和硬件描述語言方式。EDA軟件支持這兩種方式的輸入。(6)仿真、驗證:當電路設(shè)計完成后必須驗證設(shè)計是否正確。在早期,只能通過搭試硬件電路才能得到設(shè)計的結(jié)果。目前,數(shù)字電路設(shè)計的EDA軟件都有具有驗證(也稱為仿真、電路模擬)的功能,先通過電路驗證(仿真),當驗證結(jié)果正確后再進行實際電路的測試。由于EDA軟件的驗證結(jié)果十分接近實際結(jié)果,因此,可極大地提高電路設(shè)計的效率。(7)物理實現(xiàn):最終用實際的器件實現(xiàn)數(shù)字系統(tǒng)的設(shè)計,用儀表測量設(shè)計的電路是否符合設(shè)計要求。現(xiàn)在的數(shù)字系統(tǒng)往往采用大規(guī)模和超大規(guī)模集成電路,由于器件集成度高、導線密集,故一般在電路設(shè)計完成后即設(shè)計印

11、刷電路板,在印刷電路板上組裝電路進行測試。需要注意的是、印刷電路板本身的物理特性也會影響電路的邏輯關(guān)系。第二章 電壓監(jiān)測系統(tǒng)介紹2.1 電壓監(jiān)測系統(tǒng)的應(yīng)用場合電壓監(jiān)測儀是對電力系統(tǒng)正常運行狀態(tài)緩慢變化所引起的電壓偏差進行連續(xù)的監(jiān)測和統(tǒng)計的統(tǒng)計型電壓監(jiān)測儀。具備監(jiān)測、分析、記憶、查詢、參數(shù)設(shè)置等功能,支持GSM短信、GPRS網(wǎng)絡(luò)、無線電臺、RS485組網(wǎng)方案。2.2 電壓監(jiān)測儀的作用1、實時電壓顯示狀態(tài): 顯示各路電壓瞬時值及狀態(tài);2、菜單狀態(tài):查詢電壓統(tǒng)計,包括: 電壓實際值,上限值,下限值,當超過上限值時,紅燈報警,低于下限值時,黃燈提示,處于正常范疇,綠燈亮。2.3 電壓監(jiān)測系統(tǒng)的結(jié)構(gòu)基于

12、EDA 技術(shù)設(shè)計完成的數(shù)字電壓測量系統(tǒng),采用了VHDL 語言進行硬件描述,以超大規(guī)模芯片如CPLD/FPGA 為設(shè)計載體,進行適配編譯、邏輯映射、編程下載。本系統(tǒng)要求具有電壓測量、顯示、報警、調(diào)壓四部分功能.測量范圍0-2V,最小測量電壓不大于0.05V,能夠顯示3位電壓值, A/D轉(zhuǎn)換器:將測到的模擬信號轉(zhuǎn)換為數(shù)字信號.CPLD/FPGA:負責激活A(yù)/D轉(zhuǎn)換器,接收A/D轉(zhuǎn)換器傳遞過來的數(shù)字轉(zhuǎn)換值,并將轉(zhuǎn)換值調(diào)整為相對應(yīng)的數(shù)字信號和顯示代碼.顯示電路:以十進制顯示所測電壓值. CPLD/FPGA功能模塊的劃分對A/D轉(zhuǎn)換來的數(shù)據(jù)的高低位給出算法,將結(jié)果以便于顯示的BCD碼形式表示BCD碼結(jié)果

13、轉(zhuǎn)化成數(shù)碼管顯示代碼。電壓監(jiān)測模塊圖見下圖圖3:2.4 TLC549芯片TLC549是 TI公司生產(chǎn)的一種低價位、高性能的8位 A/D轉(zhuǎn)換器,它以8位開關(guān)電容逐次逼近的方法實現(xiàn) A/D轉(zhuǎn)換,其轉(zhuǎn)換速度小于 17us,最大轉(zhuǎn)換速率為 40000HZ,4MHZ典型內(nèi)部系統(tǒng)時鐘,電源為 3V至 6V。它能方便地采用三線串行接口方式與各種微處理器連接,構(gòu)成各種廉價的測控應(yīng)用系統(tǒng)。2.4.1 引腳圖及各引腳功能REF+:正基準電壓輸入 2.5VREF+Vcc+0.1。REF:負基準電壓輸入端,-0.1VREF-2.5V。且要求:(REF+)(REF-)1V。 VCC:系統(tǒng)電源3VVcc6V。 圖4 TL

14、C549引腳圖GND:接地端。/CS:芯片選擇輸入端,要求輸入高電平 VIN2V,輸入低電平 VIN0.8V。DATA OUT:轉(zhuǎn)換結(jié)果數(shù)據(jù)串行輸出端,與 TTL 電平兼容,輸出時高位在前,低位在后。ANALOGIN:模擬信號輸入端,0ANALOGINVcc,當 ANALOGINREF+電壓時,轉(zhuǎn)換結(jié)果為全“1”(0FFH),ANALOGINREF-電壓時,轉(zhuǎn)換結(jié)果為全“0”(00H)。I/O CLOCK:外接輸入/輸出時鐘輸入端,同于同步芯片的輸入輸出操作,無需與芯片內(nèi)部系統(tǒng)時鐘同步。2.4.2 TLC549工作原理圖5 工作時序圖 當/CS變?yōu)榈碗娖胶螅?TLC549芯片被選中, 同時前次

15、轉(zhuǎn)換結(jié)果的最高有效位MSB (A7)自 DATA OUT 端輸出,接著要求自 I/O CLOCK端輸入8個外部時鐘信號,前7個 I/O CLOCK信號的作用,是配合 TLC549 輸出前次轉(zhuǎn)換結(jié)果的 A6-A0 位,并為本次轉(zhuǎn)換做準備:在第4個 I/O CLOCK 信號由高至低的跳變之后,片內(nèi)采樣/保持電路對輸入模擬量采樣開始,第8個 I/O CLOCK 信號的下降沿使片內(nèi)采樣/保持電路進入保持狀態(tài)并啟動 A/D開始轉(zhuǎn)換。轉(zhuǎn)換時間為 36 個系統(tǒng)時鐘周期,最大為 17us。直到 A/D轉(zhuǎn)換完成前的這段時間內(nèi),TLC549 的控制邏輯要求:或者/CS保持高電平,或者 I/O CLOCK 時鐘端保

16、持36個系統(tǒng)時鐘周期的低電平。由此可見,在自 TLC549的 I/O CLOCK 端輸入8個外部時鐘信號期間需要完成以下工作:讀入前次A/D轉(zhuǎn)換結(jié)果;對本次轉(zhuǎn)換的輸入模擬信號采樣并保持;啟動本次 A/D轉(zhuǎn)換開始。第三章電壓監(jiān)測系統(tǒng)的設(shè)計3.1 設(shè)計要求6個按鍵,一片TLC549,要求可以設(shè)置電壓的上限值與電壓的下限值,并用AD轉(zhuǎn)換檢測分位器上的電壓值,該電壓值對于電壓的上壓值進行比較,當超過上限值時,紅燈亮,低于下限值時黃燈亮,在范圍之內(nèi)綠燈亮。運用數(shù)碼管進行顯示。(開發(fā)板子上的參考電壓是2.5伏的,請注意,也即顯示的最大電壓值最大只能2.5V)。紅綠燈顯示:紅燈:實測電壓值超過上限值黃燈:實

17、測電壓值低于下限值綠燈:實測電壓值在范圍之內(nèi)數(shù)碼管顯示:顯示:E顯示上限電壓值2.0V,E20 F顯示下限電壓值1.2V,F(xiàn)12確認,取消,復位,“00”:顯示AD轉(zhuǎn)換出來的電壓值 1.38,顯示為138按鍵功能:1:K1,設(shè)計上下限電壓轉(zhuǎn)換2:K2電壓加13:K3電壓減14:K4確認5:K5取消6:K6復位5:K5復位3.2 設(shè)計思路采用由底向上的設(shè)計方法,根據(jù)系統(tǒng)對硬件的要求詳細編制技術(shù)規(guī)格書,畫出系統(tǒng)控制流程圖,仔細分析系統(tǒng)要求達到的各個功能,將系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;進行各功能模塊的設(shè)計,運用VHDL語言設(shè)計出各個功能模塊;在軟件環(huán)境下導出各個功能

18、框圖,在將各個模塊按系統(tǒng)要求達到的功能連接起來,做出系統(tǒng)的原理圖;編譯、調(diào)試完成后,在下載到硬件結(jié)構(gòu)中,進行硬件調(diào)試。1、設(shè)計準備在系統(tǒng)設(shè)計之前,首先要進行方案論證、系統(tǒng)設(shè)計和器件選擇等準備工作。一般采用自上而下的設(shè)計方法,也可采用傳統(tǒng)的自下而上的設(shè)計方法。2、設(shè)計輸入:設(shè)計輸入將所設(shè)計的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并送入計算機的過程稱為設(shè)計輸入。設(shè)計輸入通常有以下集中形式:1) 原理圖輸入方式2) 硬件描述語言輸入方式3) 波形輸入方式3、功能仿真:功能仿真也叫做前仿真。用戶所設(shè)計的電路必須在編譯之前進行邏輯功能驗證,此時的仿真沒有延時信息,對于初步的功能檢測非常方便。仿真中

19、如發(fā)現(xiàn)錯誤,則返回設(shè)計輸入中修改邏輯設(shè)計。4、設(shè)計處理設(shè)計處理是器件設(shè)計中的核心環(huán)節(jié)。在設(shè)計處理過程中,編譯軟件將對設(shè)計輸入文件進行邏輯化簡、綜合優(yōu)化和適配,最后產(chǎn)生編程用的編程文件。主要有:1) 語法檢查和設(shè)計規(guī)則檢查 2) 邏輯優(yōu)化和綜合3) 適配和分割4) 布局和布線5、時序仿真:時序仿真又稱后仿真或延時仿真。由于不同器件的內(nèi)部延時不一樣,不同的布局布線方案也給延時造成不同的影響,因此在設(shè)計處理以后,對系統(tǒng)和各模塊進行時序仿真,分析其時序關(guān)系,估計設(shè)計的性能,以及檢查和消除竟爭冒險等是非常有必要的。6、器件編程測試時序仿真完成后,軟件就可產(chǎn)生供器件編程使用的數(shù)據(jù)文件。3.3 設(shè)計流程 1

20、、系統(tǒng)任務(wù)分析:數(shù)字系統(tǒng)設(shè)計中的第一步是明確系統(tǒng)的任務(wù)。2、確定邏輯算法:實現(xiàn)系統(tǒng)邏輯運算的方法稱為邏輯算法,簡稱算法。數(shù)字系統(tǒng)的算法是邏輯設(shè)計的基礎(chǔ),算法不同,則系統(tǒng)的結(jié)構(gòu)也不同,算法的合理與否直接影響系統(tǒng)結(jié)構(gòu)的合理性。3、系統(tǒng)劃分:當算法明確后,應(yīng)根據(jù)算法構(gòu)造系統(tǒng)的硬件框架(也稱為系統(tǒng)框圖),將系統(tǒng)劃分為若干個部分,各部分分別承擔算法中不同的邏輯操作功能。4、系統(tǒng)邏輯描述:對系統(tǒng)的邏輯描述可先采用較粗略的邏輯流程圖,再將邏輯流程圖逐步細化為詳細邏輯流程圖,最后將詳細邏輯流程圖表示成與硬件有對應(yīng)關(guān)系的形式,為下一步的電路級設(shè)計提供依據(jù)。 圖4 設(shè)計流程圖5、邏輯電路設(shè)計:電路級設(shè)計是指選擇合

21、理的器件及連接關(guān)系以實現(xiàn)系統(tǒng)邏輯要求。電路級設(shè)計的結(jié)果通常采用兩種方式來表達:電路圖方式和硬件描述語言方式。EDA軟件支持這兩種方式的輸入。6、仿真、驗證:當電路設(shè)計完成后必須驗證設(shè)計是否正確。目前,數(shù)字電路設(shè)計的EDA軟件都有具有驗證(也稱為仿真、電路模擬)的功能,先通過電路驗證(仿真),當驗證結(jié)果正確后再進行實際電路的測試。3.4 設(shè)計步驟及程序見附錄3.5 硬件實現(xiàn)及調(diào)試步驟下載編譯成功后,定義芯片管腳,再編譯之后,把程序燒錄到硬件中,記錄數(shù)據(jù)。 圖 6 上限電壓值 圖7 下限電壓值圖8在上下值之間綠燈亮大于上限值紅燈亮 表3-1圖10 測試數(shù)據(jù)5.小于下限值黃燈亮數(shù)碼管顯示數(shù)據(jù)0.95

22、1.191.501.782.33電壓表測量值0.941.141.491.782.37第四章 課程實訓總結(jié)這次實訓速度真快,也許因為這學期快結(jié)束了吧,加上馬上快考試了,感覺自己有點匆忙。總體上來講,通過這次比較完整的數(shù)字電壓表設(shè)計,我擺脫了單純的理論知識學習狀態(tài),完全將理論和實際設(shè)計相結(jié)合,鍛煉了我將所學的專業(yè)基礎(chǔ)知識進行綜合運用的能力。在剛開始的時候,也遇到了不少困難,比如源程序錯誤問題等,這些都需要耐心細心地的一步一步的檢查并一步步的最終完成。經(jīng)過了前面的工作鋪墊,后面的進行的順利多了,這些步驟熟練的掌握以后,很快就完成了程序編譯、仿真、下載到最后的調(diào)試可謂是一氣呵成的快啊。通過這次實訓,我

23、不僅在知識上有了進一步的鞏固和提高,在求學和研究的心態(tài)上也有不小的進步。我想無論是在學習還是在生活上只有自己有心去學習和參與才可能有收獲,同時我也深深感受到理論與實踐相結(jié)合的重要性。以前一直覺得理論知識離我們很遠,經(jīng)過實訓,才發(fā)現(xiàn)理論知識與生活的聯(lián)系。這大大激發(fā)我學習書本的興趣。再者我們學習的是工科,不單純只是理論方面的工作,還應(yīng)該考慮到實際情況。理論計算的的結(jié)果可能與實際稍有差別,要以實際情況為準。經(jīng)過努力,終于圓滿的完成了本次實訓。通過親身體驗實訓的目的,在于通過理論與實際的結(jié)合,進一步提高我們觀察、分析和解決問題的實際工作能力。大二下半學期了,馬上就要進入社會開始工作,理論的學習我們或許

24、已經(jīng)掌握的很好,但實際的工作能力就是有待提高的了,通過本次實訓以便積累一些經(jīng)驗對我們來說肯定是很有利的。通過這次實訓我不僅學到了以前從未接觸過的新知識,而且學會了獨立的去發(fā)現(xiàn),面對,分析,解決新問題的能力,不僅學到了知識,又鍛煉了自己的能力,使我受益匪淺。參考文獻1 焦素敏 EDA應(yīng)用技術(shù) 北京:清華大學出版社,2005 2孫加存 電子設(shè)計自動化 西安:西安電子科技大學出版社 20083 林明權(quán),等 VHDL數(shù)字控制系統(tǒng)設(shè)計范例 北京:電子工業(yè)出版社,20054 江國強 EDA技術(shù)與應(yīng)用 北京:電子工業(yè)出版社,2005附錄FP2源程序:library ieee;use ieee.std_log

25、ic_1164.all;use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;entity FP2 isport (clk20M : in std_logic; - 2.5 kHz CLK10M : buffer std_logic ; clk100hz :buffer std_logic; clk200hz : buffer std_logic);end fp2;architecture behav of fp2 issignal temp:integer range 0 to 8000;signal temp1:inte

26、ger range 0 to 500;beginprocess(clk20m)beginif clk20m'event and clk20m='1' thenclk10m<=not clk10m;end if;end process;process(clk20m)beginif clk20m'event and clk20m='1' thenif temp<7999 thentemp<=temp+1;elsetemp<=0;clk200hz<=not clk200hz;end if; end if;end proce

27、ss;process(clk200hz)beginif clk200hz'event and clk200hz='1' thenif temp1<50 thentemp1<=temp1+1;elsetemp1<=0;clk100hz<=not clk100hz;end if; end if; end process;end behav;時序圖:CPU源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cpu ISport(mode:

28、in std_logic_vector(1 downto 0); data0,data1,data2:in std_logic_vector(3 downto 0); data:in std_logic_vector(7 downto 0); datao,datal:in std_logic_vector(7 downto 0); dout0,dout1,dout2:out std_logic_vector(3 downto 0); red,yellow,green:out std_logic);end cpu;architecture beh of cpu issignal temp0,te

29、mph,templ:std_logic_vector(7 downto 0);signal t0,t1,t2:std_logic_vector(3 downto 0);begintemp0<=data2&data1;process(datao,temp0,datal)beginif temp0>datao thenred<='1'yellow<='0'green<='0'elsif temp0<datal thenred<='0'yellow<='1'gree

30、n<='0'elsered<='0'yellow<='0'green<='1'end if;end process;process(mode)begincase mode iswhen "00"=>t0<=data0;t1<=data1;t2<=data2;when "01"=>t0<=data(3 downto 0);t1<=data(7 downto 4);t2<="1110"when "

31、;10"=>t0<=data(3 downto 0);t1<=data(7 downto 4);t2<="1111"WHEN others=>null;end case;end process;dout0<=t0;dout1<=t1;dout2<=t2;end beh;時序圖:Addsub源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY addsub ISport(add:in std_logic;

32、addsub:buffer std_logic); end addsub;architecture beh of addsub isbeginprocess(add)beginif rising_edge(add) thenaddsub<=not addsub;end if;end process;end beh;時序圖:Debouncing源程序:-DCFQ.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ IS PORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC

33、); END ENTITY DCFQ ; ARCHITECTURE ART OF DCFQ IS BEGIN PROCESS (CLK, CLRN, PRN) BEGINIF CLRN='0' AND PRN='1' THEN Q<='0' ELSIF CLRN='1' AND PRN='0' THEN Q<='1' ELSIF CLK'EVENT AND CLK='1' THEN Q <=D; END IF ; END PROCESS ; END ARCH

34、ITECTURE ART;-DEBOUNCING.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY DEBOUNCING IS PORT(D_IN, CLK: IN STD_LOGIC; d_out: OUT STD_LOGIC ); END ENTITY DEBOUNCING ; ARCHITECTURE ART OF DEBOUNCING ISSIGNAL DD1,DD0,QQ0,QQ1,D_OUT1:STD_LOGIC; COMPONENT DCFQ

35、IS PORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC); END COMPONENT DCFQ; SIGNAL VCC, INV_D : STD_LOGIC ; SIGNAL Q0, Q1 : STD_LOGIC ; SIGNAL D1, D0 : STD_LOGIC ; BEGIN VCC <= '1' ; INV_D <= NOT D_IN ; U1: DCFQ PORT MAP (CLK => CLK, CLRN => INV_D, PRN => VCC, D =>VCC ,

36、 Q => Q0); U2: DCFQ PORT MAP (CLK => CLK, CLRN => Q0, PRN => VCC, D =>VCC , Q => Q1); PROCESS (CLK) BEGINIF CLK'EVENT AND CLK='1' THEN D0 <= NOT Q1; D1 <= D0; END IF ; END PROCESS ; DD0 <= D0; DD1 <= D1; QQ1 <= not Q1; QQ0 <= Q0; D_OUT <= (D1 AND NO

37、T D0); D_OUT1 <= NOT Q1 ; END ARCHITECTURE ART; 時序圖:Regb源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY regb ISport(clk:in std_logic; d0,d1,d2:in std_logic_vector(3 downto 0); q0,q1,q2:out std_logic_vector(3 downto 0);end regb;architecture beh of regb isbeginpr

38、ocess(clk)beginif rising_edge(clk) thenq0<=d0;q1<=d1;q2<=d2;end if;end process;end beh;時序圖:Mode源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mode ISport(clk,con,reset,ok,cancel:in std_logic; sel:out std_logic_vector(1 downto 0);end mode;architecture beh

39、 of mode isbeginprocess(con,reset,ok,cancel)variable temp:std_logic_vector(1 downto 0);beginif (reset='1') or (ok='1') or (cancel='1') thentemp:="00"elsif rising_edge(clk) thenif con='1' thenif temp="10" thentemp:="00"elsetemp:=temp+1;end

40、 if;end if;end if;sel<=temp;end process;end beh;時序圖:Seths源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY seths ISport(mode:in std_logic_vector(1 downto 0); clk,reset,ok,add,sub,cancel:in std_logic; datao,datal,data:buffer std_logic_vector(7 downto 0); end seths

41、;architecture aa of seths is-signal data:std_logic_vector(7 downto 0);beginprocess(reset,clk)variable tdata:std_logic_vector(7 downto 0);beginif reset='1' thentdata:="00000000"elsif rising_edge(clk) thenif add='1' thenif tdata>"01001001" thentdata:="000000

42、00"elsif tdata(3 downto 0)="1001" thentdata:=tdata+"0111"elsetdata:=tdata+1;end if;end if;if sub='1' thenif tdata(7 downto 0)="00000000" thentdata:="01001001"elsif tdata(3 downto 0)="0000" thentdata:=tdata-"0111"elsetdata:=tdat

43、a-1;end if;end if;data<=tdata;end if;end process;process(ok,cancel)beginif ok='1' and mode="01" thendatao<=data;elsif ok='1' and mode="10" thendatal<=data;elsif cancel='1' thendatao<=datao;datal<=datal;end if;end process;end aa;時序圖:TLC549源程序

44、:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity TLC549 isport(ad_data: in std_logic;-read_n: in std_logic;clk: in std_logic;ad_cs: out std_logic;ad_clk: out std_logic;irq: out std_logic;data0,data1,data2:out std_logic_vector(3 downto 0)-r

45、eaddata: out std_logic_vector(7 downto 0);end TLC549;architecture behav of TLC549issignalcounter: integer range 0 to 31;signaldata_temp: std_logic_vector(7 downto 0);signaldata_reg: std_logic_vector(7 downto 0);signal ad_clk_r: std_logic;signal ad_clk_en: std_logic;signal DCLK_DIV: integer range 0 t

46、o 50000000;signal readdata: std_logic_vector(7 downto 0); constant CLK_FREQ: integer := 50000000;constant DCLK_FREQ : integer := 2000000;signal temp0:integer range 0 to 512; begin readdata <= data_temp ;temp0<=conv_integer(readdata);process(temp0)variable temp,t0,t1,t2:integer range 0 to 512;variable temp1:integer range 0 to 512;begint0:=0;t1:=0;t2:=0;temp1:=temp0*250/255;if temp1>99 thent0:=t0+1;temp1:=temp1-100;end if;if temp1>99 thent0:=t0+1;temp1:=temp1-100;end if;if temp1>9 thent1:=t1+1;temp1:=temp1-10;end if;I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論