第一篇:EDA技術(shù)在數(shù)字電路開放實(shí)驗(yàn)中的應(yīng)用
EDA技術(shù)在數(shù)字電路開放實(shí)驗(yàn)中的應(yīng)用
周云波 劉小群
寶雞文理學(xué)院物理與信息技術(shù)系
摘要:介紹了常用的EDA軟件及開放性實(shí)驗(yàn)的實(shí)驗(yàn)教學(xué)方法,并通過實(shí)例闡述了EDA技術(shù)在開放性實(shí)驗(yàn)中的應(yīng)用。關(guān)鍵詞:EDA ;開放性實(shí)驗(yàn);仿真
為了充分利用實(shí)驗(yàn)室資源,讓學(xué)生能夠自主選擇實(shí)驗(yàn)的內(nèi)容與時(shí)間,從而激發(fā)學(xué)生做實(shí)驗(yàn)的興趣,提高學(xué)生思考問題、分析問題、解決問題的能力,近幾年各高校都開設(shè)了開放實(shí)驗(yàn)。我們從2006年也開設(shè)了開放實(shí)驗(yàn),開放實(shí)驗(yàn)由于學(xué)生可以自選題目,這對(duì)實(shí)驗(yàn)室的設(shè)備提出了很高的要求,但利用EDA設(shè)計(jì)實(shí)驗(yàn)電路,仿真實(shí)驗(yàn)結(jié)果,克服了實(shí)驗(yàn)設(shè)備不足的矛盾。“EDA”是Electronic Design Automation(電子設(shè)計(jì)自動(dòng)化)的簡(jiǎn)寫,是能夠幫助人們?cè)O(shè)計(jì)電子電路或系統(tǒng)的軟件工具。EDA是以計(jì)算機(jī)為工作平臺(tái)、以硬件描述語言(VHDL)為設(shè)計(jì)語言、以可編程器件(CPLD/FPGA)為實(shí)驗(yàn)載體、以ASIC/SOC芯片為目標(biāo)器件、進(jìn)行必要的元件建模和系統(tǒng)仿真的電子產(chǎn)品自動(dòng)化設(shè)計(jì)過程。目前進(jìn)入我國并具有廣泛影響的EDA軟件有:muhisim7、OW_AD、Protel、Viewlogio、Mentor、Synopsys、PCBW Id、Cadence、MicmSim等等,這些軟件各具特色,大體分為芯片級(jí)設(shè)計(jì)工具、電路板級(jí)設(shè)計(jì)工具、可編程邏輯器件開發(fā)工具和電路仿真工具等幾類。利用EDA工具,可以從概念,算法、協(xié)議開始設(shè)計(jì)電子系統(tǒng),從電路設(shè)計(jì),性能分析直到IC版圖或PCB版圖生成的全過程均可在計(jì)算機(jī)上自動(dòng)完成。EDA代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,其基本特征是設(shè)計(jì)人員以計(jì)算機(jī)為工具,按照自頂向下的設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,由硬件描述語言完成系統(tǒng)行為級(jí)設(shè)計(jì),利用先進(jìn)的開發(fā)工具自動(dòng)完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局布線、仿真及特定目標(biāo)芯片的適配編譯和編程下載,這被稱為數(shù)字邏輯電路的高層次設(shè)計(jì)方法。下面以一個(gè)七段數(shù)碼管的驅(qū)動(dòng)為例,說明EDA設(shè)計(jì)的實(shí)驗(yàn)方法。1.實(shí)驗(yàn)教學(xué)方法
本實(shí)驗(yàn)是作為本科生的選修課,對(duì)全校電信、電子電氣、自動(dòng)化專業(yè)同學(xué)開放。做為模擬電路、數(shù)字電路、通訊原理、EDA軟件等理論課的后續(xù)課程,學(xué)生具備了一定的相關(guān)理論知識(shí)。實(shí)驗(yàn)?zāi)繕?biāo)的實(shí)現(xiàn)都要經(jīng)過一番努力才能達(dá)到,因此在實(shí)驗(yàn)的安排上不能簡(jiǎn)單地限定實(shí)驗(yàn)時(shí)間和固定內(nèi)容,必須采取全面開放式和自主式的實(shí)驗(yàn)教學(xué)方法。實(shí)驗(yàn)進(jìn)程包括初始階段和提高階段。
(1)初始階段 要求教師先講解操作步驟,給出程序清單,使實(shí)驗(yàn)按著先簡(jiǎn)單后復(fù)雜的順序進(jìn)行。(2)提高階段 要求同學(xué)完成較為復(fù)雜的應(yīng)用和算法編程,并獨(dú)立完成實(shí)驗(yàn)內(nèi)容。對(duì)于能力強(qiáng)的同學(xué)可以根據(jù)自己的興趣來完成自己的題目。研究生可以結(jié)合自己的課題,利用實(shí)驗(yàn)室的資源完成課程的內(nèi)容,最后寫出一份完整的總結(jié)報(bào)告。
(3開放實(shí)驗(yàn)時(shí),采用仿真實(shí)驗(yàn)和仿真設(shè)計(jì)與硬件實(shí)驗(yàn)相結(jié)合的方法,EDA的元件庫提供了比實(shí)驗(yàn)室種類齊全的儀器、儀表和幾千種元器件可供使用,利用圖形方式創(chuàng)建電路,軟件界面直觀、操作使用方便,且容量極其豐富的元器件庫,還可根據(jù)器件的發(fā)展隨時(shí)擴(kuò)充,使用時(shí)可直接調(diào)用和修改元件及參數(shù)。學(xué)生可用EDA先在計(jì)算機(jī)上模擬設(shè)計(jì)所選題目的內(nèi)容,由于仿真設(shè)計(jì)元件連線簡(jiǎn)單,參數(shù)修改方便,任何一種設(shè)計(jì)方案都可以嘗試,在對(duì)硬件電路設(shè)計(jì)方案進(jìn)行仿真過程中,驗(yàn)證設(shè)計(jì)方案正確性與否,從而得到更加合理可行的實(shí)現(xiàn)方案。同時(shí)根據(jù)仿真結(jié)果,可對(duì)設(shè)計(jì)方案進(jìn)行修改和調(diào)整,分析各元件參數(shù)對(duì)整個(gè)數(shù)字電路的作用與影響,利用仿真電子儀器儀表,按照設(shè)計(jì)可完成常規(guī)的瞬態(tài)分析、穩(wěn)態(tài)分析和時(shí)域分析等多種電路分析方法,輔助學(xué)生完成對(duì)電路原理到電路硬件設(shè)計(jì)的分析,可以直接觀察各子系統(tǒng)的波形及整個(gè)電路的實(shí)驗(yàn)結(jié)果,如果有錯(cuò)誤,系統(tǒng)軟件會(huì)有相應(yīng)的提示。這樣經(jīng)過反復(fù)比較、反復(fù)分析、反復(fù)修改的過程,最后再用硬件完成開放實(shí)驗(yàn)的設(shè)計(jì)。實(shí)驗(yàn)時(shí)利用EDA仿真設(shè)計(jì)改變了傳統(tǒng)的基于電路板的設(shè)計(jì)方法,提高了設(shè)計(jì)效率,掌握了用計(jì)算機(jī)軟件設(shè)計(jì)、應(yīng)用的方法,提高了實(shí)驗(yàn)的安全性、自診斷性、直觀性、綜合性、重組性和信息化等特點(diǎn)。根據(jù)實(shí)驗(yàn)?zāi)K間縱向發(fā)展和橫向聯(lián)系,進(jìn)行組合調(diào)整,建立網(wǎng)絡(luò)化的實(shí)踐教學(xué)平臺(tái),每個(gè)實(shí)驗(yàn)室配備計(jì)算機(jī)及網(wǎng)絡(luò)、常用儀器設(shè)備、相關(guān)實(shí)驗(yàn)裝置等,充分提高了實(shí)驗(yàn)室的資源利用,實(shí)現(xiàn)理論與實(shí)踐的緊密結(jié)合。2.實(shí)驗(yàn)實(shí)例:
設(shè)計(jì)一個(gè)七段數(shù)碼管的譯碼器并下載到ispLSI1016中,驗(yàn)證其功能是否正確。輸入在A,B,C三個(gè)按鈕開關(guān)的控 制下,經(jīng)ispGDS14,到譯碼器使輸出a1,b1,c1,d1,e1,f1,g1驅(qū)動(dòng)七段數(shù)碼管為相應(yīng)的數(shù)字。VHDL源程序:library ieee;
use ieee.std_logic_1164.all;entity liu1is port(datain:in std_logic_vector(2 downto 0);
led:out std_logic_vector(6 downto 0));end;architecture liu1_ architecture of liu1 is begin process(datain)begin case datain is
when “000”=>led<=“0111111”;
when “001”=>led<=“0000110”;
when “010”=>led<=“1011011”;
when “011”=>led<=“1001111”;
when “100”=>led<=“1100110”;
when “101”=>led<=“1101101”;
when “110”=>led<=“1111101”;
when “111”=>led<=“0000111”;
when others=>led<=“1111111”;end case;end process;end arch;測(cè)試向量程序: module z1
c,x=.c.,.x.;datain_0_,datain_1_,datain_2_ PIN;led_0_,led_1_,led_2_,led_3_,led_4_,led_5_,led_6_ PIN;TEST_VECTORS([datain_0_,datain_1_,datain_2_]->[led_0_,led_1_,led_2_,led_3_,led_4_, led_5_,led_6_])[0,0,0]->[x,x,x,x,x,x,x];[0,0,1]->[x,x,x,x,x,x,x];[0,1,0]->[x,x,x,x,x,x,x];[0,1,1]->[x,x,x,x,x,x,x];[1,0,0]->[x,x,x,x,x,x,x];[1,0,1]->[x,x,x,x,x,x,x];[1,1,0]->[x,x,x,x,x,x,x] [1,1,1]->[x,x,x,x,x,x,x];END 2 仿真結(jié)果: 程序下載:
寫可編程數(shù)字開關(guān)器件ispGDS14的設(shè)計(jì)源文件(在TC下或在MS-DOS EDIT下)
device = ispgds14 PIN 6 = PIN 12 PIN 8 = PIN 16 PIN 9 = PIN 11
存,存時(shí)起名 *g.gds ,并注意路經(jīng),看PDSGDS存在那里。
用ispGDS的匯編GASM對(duì)*g.gds進(jìn)行編譯,即在C:PDSGDS下,打入 GASM *g 回車,則自動(dòng)生成下載文件 *g.jed 輸出引腳
I/O1(16)→a1 I/O6(21)→b1 I/O3(18)→c1
I/O4(19)→d1 I/O5(20)→e1 I/O2(17)→f1 I/O7(22)→g1 輸入引腳
I/O28(7)→A I/O29(8)→B I/O30(9)→C 下載
在Design→Down load 下,或雙擊 IDCD 注意,實(shí)驗(yàn)板上按鍵松開為“1” 下面我們介紹PDS上設(shè)計(jì)。雙擊PDS圖標(biāo)
3.結(jié)論
[參考文獻(xiàn)]:
[1] 王鎖萍.龔建榮等.電子設(shè)計(jì)教程.成都:電子科技大學(xué)出版社,2000.2 [2] 潘松,黃蛀生.EDA技術(shù)實(shí)用教程.北京:科學(xué)出版社.2002.10.[3] 曾繁泰,李冰,李曉林.EDA工程概論[M].北京,清華大學(xué)出版社,2002.[4] 蔣卓勤,鄧玉元.Multisim2001及其在電子設(shè)計(jì)中的應(yīng)用[M].西安:電子科技大學(xué)出版社,2003.[5] 徐志軍等.大規(guī)模可編程邏輯器件及其應(yīng)用[M].電子科技大學(xué)出版社.[6] 符興昌.EDA技術(shù)在數(shù)字系統(tǒng)設(shè)計(jì)分析中的應(yīng)用[J].微計(jì)算機(jī)信息, 2006, 5-2: 267-269
作者簡(jiǎn)介:周云波(1965~),女,高級(jí)實(shí)驗(yàn)師。
劉小群(1977~),女,講師,碩士研究生,研究方向?yàn)椋和ㄐ排c信息技術(shù) 項(xiàng)目:寶雞文理學(xué)院項(xiàng)目(YK0822)
第二篇:EDA技術(shù)在數(shù)字電子技術(shù)實(shí)驗(yàn)中的應(yīng)用
EDA技術(shù)在數(shù)字電子技術(shù)實(shí)驗(yàn)中的應(yīng)用
摘要:在電子信息類的專業(yè)當(dāng)中,數(shù)字電子技術(shù)的上實(shí)驗(yàn)教學(xué)是非常重要的。隨著社會(huì)的發(fā)展和電子信息技術(shù)的逐漸進(jìn)步,傳統(tǒng)的實(shí)驗(yàn)教學(xué)方法已經(jīng)不再適用了,我們需要引進(jìn)更加新進(jìn)的技術(shù)來對(duì)其進(jìn)行改革。EDA技術(shù)的引進(jìn)可以說是數(shù)字電子技術(shù)實(shí)驗(yàn)的一個(gè)進(jìn)步,也可以說是教學(xué)改革的一個(gè)趨勢(shì)。本文將對(duì)EDA技術(shù)在數(shù)字電子技術(shù)實(shí)驗(yàn)中的應(yīng)用進(jìn)行簡(jiǎn)單的分析和研究,并對(duì)EDA技術(shù)進(jìn)行一些介紹,從而說明該技術(shù)的重要性。
關(guān)鍵詞:EDA技術(shù);數(shù)字電子技術(shù)教學(xué);實(shí)驗(yàn)應(yīng)用
數(shù)字電子技術(shù)在近些年得到了快速的發(fā)展,而該技術(shù)已經(jīng)應(yīng)用在了我們的日常生活中。在電子信息的學(xué)習(xí)過程中,數(shù)字電子技術(shù)實(shí)驗(yàn)是不可或缺的一部分,它的理論性和實(shí)踐性都非常強(qiáng),因此進(jìn)行該試驗(yàn)要具備足夠的專業(yè)知識(shí)以及一定的動(dòng)手操作能力。隨著計(jì)算機(jī)和電子技術(shù)的迅速發(fā)展,我們對(duì)于該方面的教學(xué)理念和模式也需要與時(shí)俱進(jìn),較為落后和過于傳統(tǒng)的教學(xué)模式會(huì)嚴(yán)重影響到我們對(duì)于相關(guān)人才的培養(yǎng),所以我們需要將EDA技術(shù)應(yīng)用到數(shù)字電子實(shí)驗(yàn)當(dāng)中。
一、EDA技術(shù)的概述
EDA又稱為電子設(shè)計(jì)自動(dòng)化。該技術(shù)的發(fā)展時(shí)間雖然只有短短的三十幾年,但是它涉及的范圍是非常廣泛的。EDA技術(shù)是將具有較大規(guī)模的能夠編程的控制器作為載體,將硬件的語言描述作為一種表達(dá),運(yùn)用計(jì)算機(jī)、相關(guān)的軟件和編程器來進(jìn)行電子和硬件系統(tǒng)設(shè)計(jì)的技術(shù)。它所擁有的功能是十分強(qiáng)大的,能夠進(jìn)行邏輯的布線規(guī)劃、設(shè)計(jì)、簡(jiǎn)化、分割、優(yōu)化、分析等工作。EDA技術(shù)是伴隨著計(jì)算和電子信息等技術(shù)的發(fā)展而產(chǎn)生的,在后兩者迅速發(fā)展而變得愈發(fā)復(fù)雜時(shí),EAD技術(shù)的使用在極大程度上為電子電路設(shè)計(jì)提供了幫助,它在設(shè)計(jì)的每一個(gè)階段都發(fā)揮著十分重要的作用,可以說該技術(shù)在電子信息技術(shù)的發(fā)展上起到了很大的推動(dòng)作用。
二、基于EDA技術(shù)的數(shù)字電子技術(shù)實(shí)驗(yàn)構(gòu)架
現(xiàn)階段,我國很多相關(guān)的公司已經(jīng)成功的建立起虛擬實(shí)驗(yàn)臺(tái),并且可以使用它做完整的數(shù)字電子技術(shù)實(shí)驗(yàn)。EDA技術(shù)的應(yīng)用將數(shù)字電子技術(shù)的實(shí)驗(yàn)內(nèi)容變得更加豐富,這樣就可以做一些難度較高或者是實(shí)際操作難度大的電子實(shí)驗(yàn)。
(1)虛擬的數(shù)字電子技術(shù)實(shí)驗(yàn)構(gòu)架。在搭建數(shù)字電子技術(shù)實(shí)驗(yàn)平臺(tái)的過程當(dāng)中,會(huì)使用到多種EDA的開發(fā)工具。而建立實(shí)驗(yàn)平臺(tái)由主要分成了兩個(gè)部分:第一部分就是在實(shí)驗(yàn)中加入了仿真模塊,此功能是將EDA技術(shù)作為基礎(chǔ)來提供學(xué)習(xí)的一個(gè)平臺(tái);第二部分是指實(shí)驗(yàn)在虛擬環(huán)境中進(jìn)行,這樣可以有效對(duì)信息進(jìn)行功能以及管理上的評(píng)估。這兩個(gè)部分之間存在著一定的聯(lián)系,數(shù)據(jù)信息要做到互通和交換,這樣才能建立起一個(gè)完整的EDA數(shù)字電子技術(shù)實(shí)驗(yàn)平臺(tái)。
(2)各模塊框架。仿真功能是該實(shí)驗(yàn)平臺(tái)的一個(gè)非常重要的功能,而它又被分成了四個(gè)部分,分別是收集項(xiàng)目的信息數(shù)據(jù)、基礎(chǔ)教育、進(jìn)行虛擬實(shí)驗(yàn)、結(jié)果的分析。在進(jìn)行實(shí)驗(yàn)的過程中需要在虛擬實(shí)驗(yàn)臺(tái)中了解一些具體的要求,然后做好充足的準(zhǔn)備并選擇所能應(yīng)用到的EDA開發(fā)工具,從而將獲取的實(shí)驗(yàn)任務(wù)完成。在結(jié)束后要將實(shí)驗(yàn)數(shù)據(jù)、圖表、仿真曲線、程序代碼進(jìn)行匯總,上傳到服務(wù)器,以便日后查閱。
在進(jìn)行基礎(chǔ)學(xué)習(xí)時(shí)要把握好四個(gè)要素:①熟悉掌握軟件編程語言;②了解并熟練使用EDA工具;③認(rèn)真了解并熟記實(shí)驗(yàn)儀器的操作方法;④具有足夠的專業(yè)知識(shí)。在實(shí)驗(yàn)中我們經(jīng)常會(huì)使用到的EDA工具包括QuartusⅡ、Protel和Matlab等。而軟件編程語言工具會(huì)經(jīng)常使用匯編語言和VHDL語言。實(shí)驗(yàn)器具以常用數(shù)字芯片為主。除此之外,在網(wǎng)上可以通過相應(yīng)的渠道可以找到實(shí)驗(yàn)案例并將其下載出來,案例中會(huì)對(duì)實(shí)驗(yàn)的設(shè)計(jì)思路和技術(shù)要點(diǎn)等方面進(jìn)行詳細(xì)的說明,會(huì)更有利于學(xué)習(xí)者的學(xué)習(xí)。
同樣,信息功能和管理評(píng)估模塊也是由四個(gè)部分所組成的:①提供實(shí)驗(yàn)信息;②審批階段;③對(duì)實(shí)驗(yàn)進(jìn)度進(jìn)行實(shí)時(shí)掌控;④對(duì)信息數(shù)據(jù)的管理。負(fù)責(zé)該模塊的管理者需要把實(shí)驗(yàn)內(nèi)容在平臺(tái)進(jìn)行公布,讓實(shí)驗(yàn)者了解實(shí)驗(yàn)內(nèi)容。在實(shí)驗(yàn)完成后還要把一些相關(guān)數(shù)據(jù)和結(jié)果存儲(chǔ)到數(shù)據(jù)庫中。
三、在數(shù)字電子技術(shù)實(shí)驗(yàn)中引入EDA技術(shù)的優(yōu)勢(shì)
(1)提高實(shí)驗(yàn)可靠性。EDA技術(shù)在實(shí)驗(yàn)中的應(yīng)用可以達(dá)到一個(gè)揚(yáng)長(zhǎng)避短的效果,對(duì)于實(shí)驗(yàn)的效率和結(jié)果的準(zhǔn)確度上有很大程度上的提高,而且可以直觀的顯示出某些電路設(shè)計(jì)中存在的問題和錯(cuò)誤。在實(shí)際中,因?yàn)槊恳粋€(gè)門電路中會(huì)存在延時(shí)現(xiàn)象,由此就會(huì)產(chǎn)生冒險(xiǎn)競(jìng)爭(zhēng),這就會(huì)導(dǎo)致正常信號(hào)進(jìn)入到不正常的尖峰脈沖當(dāng)中,但是由于采樣精度較低的緣故,該現(xiàn)象是很難被觀察到的。而EDA技術(shù)的應(yīng)用就可以將該現(xiàn)象顯示出,然后再確定出解決問題的辦法。
(2)加強(qiáng)實(shí)驗(yàn)者的動(dòng)手操作能力。數(shù)字電子技術(shù)實(shí)驗(yàn)平臺(tái)所需要的開發(fā)周期是比較短的,并且具有調(diào)試簡(jiǎn)單和容易更改電路的特點(diǎn),這些都可以讓實(shí)驗(yàn)人員很容易的了解設(shè)計(jì)要領(lǐng)。這樣既可以調(diào)動(dòng)人們的實(shí)驗(yàn)興趣,還可以更容易的將理論知識(shí)運(yùn)用到實(shí)踐當(dāng)中。
(3)實(shí)驗(yàn)開放性較好。EDA的仿真技術(shù)可以擺脫器材上的限制,很多工作都可以在計(jì)算機(jī)上進(jìn)行,而實(shí)驗(yàn)的設(shè)計(jì)工作同樣可以不在實(shí)驗(yàn)室中進(jìn)行,在完成之后將其進(jìn)行保存即可。而測(cè)試芯片具有實(shí)際的運(yùn)行特性,可以將實(shí)驗(yàn)的靈活度進(jìn)行提高。
(4)提高實(shí)驗(yàn)效率。數(shù)字電子技術(shù)實(shí)驗(yàn)的過程是十分復(fù)雜的,需要設(shè)計(jì)和產(chǎn)生的數(shù)據(jù)量是很大的,如果在中途出現(xiàn)錯(cuò)誤就可能導(dǎo)致實(shí)驗(yàn)失敗或者是將過程變得更加繁瑣。EDA技術(shù)的應(yīng)用將實(shí)驗(yàn)的操作過程進(jìn)行了簡(jiǎn)化,更容易進(jìn)行調(diào)整,在相同的時(shí)間內(nèi)還可以進(jìn)行多個(gè)實(shí)驗(yàn)方案從而進(jìn)行比較,實(shí)驗(yàn)的效率也得到了很大的提高。
(5)彌補(bǔ)客觀條件的短缺。進(jìn)行數(shù)字電子技術(shù)實(shí)驗(yàn)需要一套完整的相關(guān)設(shè)備,但是這些設(shè)備裝置的價(jià)格是十分昂貴的,由于經(jīng)費(fèi)不足的問題會(huì)導(dǎo)致實(shí)驗(yàn)無法進(jìn)行。EDA的仿真技術(shù)可以讓實(shí)驗(yàn)在計(jì)算機(jī)中進(jìn)行,從而避免因客觀條件限制而無法進(jìn)行試驗(yàn)的情況,并且進(jìn)行仿真實(shí)驗(yàn)還可以不用擔(dān)心損壞儀器所產(chǎn)生的損失。
EDA技術(shù)的加入對(duì)于數(shù)字電子技術(shù)實(shí)驗(yàn)來說是非常重要的,它既降低了實(shí)驗(yàn)進(jìn)行的難度,又提高了知識(shí)理論在實(shí)踐中的應(yīng)用,也可以說它為數(shù)字電子技術(shù)的發(fā)展起到了推動(dòng)的作用。本文對(duì)EDA技術(shù)在數(shù)字電子技術(shù)實(shí)驗(yàn)中的應(yīng)用進(jìn)行簡(jiǎn)單的分析和研究,并介紹了該技術(shù)所擁有的一些優(yōu)勢(shì),希望它能在數(shù)字電子技術(shù)實(shí)驗(yàn)中得到推廣。
參考文獻(xiàn):
[1]蔡朝.利用EDA技術(shù)改造數(shù)字電路實(shí)驗(yàn)教學(xué)[J].孝感學(xué)院學(xué)報(bào),2002(06).[2]艾明晶,康光宇.EDA教學(xué)實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2002(10).[3]李清峰.對(duì)EDA課程教學(xué)的思考[J].湖南商學(xué)院學(xué)報(bào),2001(06).[4]聶春燕、吳曉旭、張玲霞.加強(qiáng)實(shí)驗(yàn)室改革和建設(shè)培養(yǎng)學(xué)生實(shí)踐能力[j].長(zhǎng)春大學(xué)學(xué)報(bào),2007,17(4):92-93.
第三篇:基于EDA技術(shù)的數(shù)字電路課程設(shè)計(jì)
基于EDA技術(shù)的數(shù)字電路課程設(shè)計(jì)
摘要:EDA技術(shù)結(jié)合數(shù)字電路課程設(shè)計(jì)課程是新教育改革的體現(xiàn),創(chuàng)新的教學(xué)模式開啟了學(xué)生的智慧,增強(qiáng)實(shí)踐性與邏輯思維,激發(fā)學(xué)生熱情。在闡述了EDA的特征及優(yōu)勢(shì)的同時(shí),探究了它與數(shù)字電路課程設(shè)計(jì)的過程,最后對(duì)以新課程改革的觀點(diǎn)分析課程設(shè)計(jì)的優(yōu)勢(shì)。
關(guān)鍵詞:EDA技術(shù) 數(shù)字電路設(shè)計(jì)課 新課程改革
引言
隨著社會(huì)科學(xué)技術(shù)不斷發(fā)展,培養(yǎng)四有新人的重任略顯重要。在日常生活中隨處可見EDA技術(shù)的應(yīng)用,電子信息時(shí)代,逐漸被HTML描述性語言代替。傳統(tǒng)的理念及設(shè)計(jì)手段已經(jīng)不能完全滿足現(xiàn)代企業(yè)和社會(huì)的需求。在EDA(EleCTRonICs Design Automation)技術(shù)基礎(chǔ)上,融入到數(shù)字電路課程是教育時(shí)代的要求,也是教學(xué)改革的新課程的要求。國家不僅重視創(chuàng)新發(fā)展,更注重培養(yǎng)人才,課程設(shè)計(jì),直接影響學(xué)生的思想和培育。
1.EDA技術(shù)的特征及優(yōu)勢(shì)
1.1簡(jiǎn)單易于操作
計(jì)算機(jī)行業(yè)中,軟件硬件的應(yīng)用是相互結(jié)合的。那么,關(guān)于EDA技術(shù)應(yīng)用的性質(zhì)特征為整個(gè)設(shè)計(jì)過程簡(jiǎn)單可操作性強(qiáng)。在此方面涉及方面比較廣泛,內(nèi)容相對(duì)豐富,通過硬件描述與軟件開發(fā)工具,實(shí)現(xiàn)特定的測(cè)試電路設(shè)計(jì),在修改方面也達(dá)到便利的效果。
1.2產(chǎn)品的互換性強(qiáng)
EDA技術(shù)在設(shè)計(jì)上實(shí)現(xiàn)了邏輯編程器件,應(yīng)用上可以自動(dòng)的檢測(cè)、編輯,以及對(duì)一些程序的重新建構(gòu),對(duì)其進(jìn)行修改。設(shè)計(jì)芯片方法靈活性強(qiáng),有別于傳統(tǒng)的設(shè)計(jì)思路,在使用效率方面得到顯而易見的效果。因而,產(chǎn)品的互換性較強(qiáng)。
1.3自動(dòng)性能高
在傳統(tǒng)的設(shè)計(jì)上,需要技術(shù)人員的操作,在人員輔助下操作完成設(shè)計(jì)。EDA技術(shù)設(shè)計(jì)突破以往的多人操作的難點(diǎn),實(shí)現(xiàn)自動(dòng)化設(shè)計(jì)。這不僅在人員調(diào)動(dòng)方面節(jié)約了成本,而且實(shí)現(xiàn)了自動(dòng)化設(shè)計(jì)。在性能上達(dá)到優(yōu)化,測(cè)試全過程及及結(jié)果將會(huì)自動(dòng)完成。
2.基于EDA技術(shù)結(jié)合數(shù)字電路課程設(shè)計(jì)的探究
2.1設(shè)計(jì)方法與要求
EDA在設(shè)計(jì)方法上遵循技術(shù)改革創(chuàng)新方式,將其傳統(tǒng)的設(shè)計(jì)概念中,加入新的焊接模式的轉(zhuǎn)變,達(dá)到了計(jì)算機(jī)自動(dòng)化的性能;在設(shè)計(jì)要求上,運(yùn)用于數(shù)字系統(tǒng)中,例如,在設(shè)計(jì)數(shù)字鬧鐘的過程中,增加了計(jì)時(shí)、整點(diǎn)報(bào)時(shí)等功能。在設(shè)計(jì)流程上,使用芯片也比傳統(tǒng)芯片更實(shí)用。
2.2適配器件如何應(yīng)用
這時(shí)代,EDA設(shè)計(jì)的特點(diǎn),在底層配件上都盡顯完善,適配對(duì)象包括布局線都進(jìn)行了邏輯性操作。這增加了仿真設(shè)計(jì)的效果。根據(jù)所需要的設(shè)計(jì)文件類型,完成自動(dòng)化設(shè)計(jì)過程。若設(shè)計(jì)有誤,可自動(dòng)下載編程,進(jìn)行修改。可見器件的適配設(shè)計(jì)在實(shí)際應(yīng)用中發(fā)揮其明顯作用。
2.3編碼電路與譯碼電路共占195個(gè)邏輯單元
數(shù)字電路課程設(shè)計(jì)應(yīng)用在EDA中,通過目標(biāo)系統(tǒng),使用描述性編碼完成設(shè)計(jì)工作,編譯碼電路在出錯(cuò)后會(huì)自動(dòng)改錯(cuò),編碼電路與譯碼電路共同實(shí)現(xiàn)了邏輯性的功能,這個(gè)過程,體現(xiàn)了EDA技術(shù)在數(shù)字電路中越來越重要。
3.突破傳統(tǒng)教學(xué)教程,注重能力的培養(yǎng)
3.1跟上時(shí)代腳步,注重教程改革
電路數(shù)字課程設(shè)計(jì)是電子信息專業(yè)的一門基礎(chǔ)課程。教學(xué)課程方面,比以往的教學(xué)方案中增加更多互動(dòng)模式,傳教方式靈活簡(jiǎn)單易懂,注重培養(yǎng)學(xué)生的實(shí)踐能力。目前,EDA技術(shù)涉及的領(lǐng)域遍布全國,它的發(fā)展已經(jīng)步入科技前沿。
3.2根據(jù)社會(huì)需要,學(xué)以致用
數(shù)字電路課程設(shè)計(jì),應(yīng)用于實(shí)際生活的每個(gè)層面。在學(xué)校、醫(yī)院、樓層、社區(qū)、企業(yè)、家庭、交通等領(lǐng)域中,隨處可見,例如在醫(yī)院里,病床疾病呼叫,還有密碼解鎖、樓層內(nèi)的控?zé)?、觸摸延時(shí)燈、數(shù)字鐘、還有循環(huán)彩燈以及在交通運(yùn)輸方面使用的交通燈等,要結(jié)合實(shí)際需求,達(dá)到教學(xué)與實(shí)踐相結(jié)合。
3.3技術(shù)與課程設(shè)計(jì)相結(jié)合,利于能力的培養(yǎng)
DEA技術(shù)與數(shù)字電路課程設(shè)計(jì)的結(jié)合,在給學(xué)生邏輯思維上的灌輸通通明朗。不論在教學(xué)教程上還是培育學(xué)生上都得到了實(shí)質(zhì)性的提高。傳統(tǒng)的數(shù)字電路課程設(shè)計(jì)制約了學(xué)生的分析能力,固定的教學(xué)模式,限制了學(xué)習(xí)設(shè)計(jì)思路,及其獨(dú)立設(shè)計(jì)與組裝的能力。因此,注重教學(xué)課程改革與培養(yǎng)實(shí)踐技能成為發(fā)展趨勢(shì)。
4高校開展EDA技術(shù)課程,教育教學(xué)不斷完善
就目前狀況來看,EDA技術(shù)的課程與實(shí)踐課開展的十分普遍,對(duì)于高職電子專業(yè)人員來說,綜合EDA技術(shù)的數(shù)字電路課程設(shè)計(jì)綜合的實(shí)現(xiàn)了學(xué)生的應(yīng)用能力,這是技術(shù)理論上的一場(chǎng)革命性的訓(xùn)練。新課程的培養(yǎng)目標(biāo)理念深厚,這種教學(xué)方式,貫徹了“三個(gè)代表”的重要思想。
在課程上新改革,例如以往的法務(wù)部與稅務(wù)部的分割線比較明顯,而在大時(shí)代背景下,需要新型人才,也需要在企業(yè)中事倍功半,在以往的教程上綜合了法務(wù)與稅務(wù)的知識(shí),在新課程的推動(dòng)下,出現(xiàn)法務(wù)稅務(wù)師,這不僅節(jié)約了人才,而且自身能力提高,實(shí)現(xiàn)個(gè)人獨(dú)特的價(jià)值?;贓DA技術(shù)的數(shù)字電路課程設(shè)計(jì)理念也是如此,為節(jié)約人才與新型技術(shù)人員的培養(yǎng)提供可行性的策略。
總結(jié)
數(shù)字電路課程設(shè)計(jì)思路有兩個(gè),一個(gè)是仿真電路設(shè)計(jì),一個(gè)是應(yīng)用設(shè)計(jì)印刷電路板。課程設(shè)計(jì)的教程實(shí)踐將會(huì)實(shí)現(xiàn)個(gè)人的獨(dú)立設(shè)計(jì)與創(chuàng)新能力。能夠培養(yǎng)具有邏輯性的思考和解決問題的高素質(zhì)人才,提高學(xué)生積極性與學(xué)校熱情,是實(shí)現(xiàn)基于EDA技術(shù)的數(shù)字電路課程設(shè)計(jì)的關(guān)鍵所在。
參考文獻(xiàn)
[1] 李彩.科技視界.淺談時(shí)序邏輯電路.2013(3)[2] 王璐,于冠龍,馬永強(qiáng).淺析航空電子元器件的質(zhì)量控制.黑龍江科技信息.2015(32)
第四篇:EDA技術(shù)實(shí)驗(yàn)教案
一、課程名稱:
EDA技術(shù)實(shí)驗(yàn)
二、教材名稱: 《EDA技術(shù)使用教程》,潘松等編著。
三、本課程教學(xué)目的、要求:
介紹EDA的基本知識(shí)、常用的EDA工具的使用方法和目標(biāo)器件的結(jié)構(gòu)原理、VHDL設(shè)計(jì)輸入方法(圖形和文本)、VHDL仿真、VHDL的設(shè)計(jì)優(yōu)化等。
EDA技術(shù)作為重要的專業(yè)課程,其實(shí)踐性強(qiáng)。在教學(xué)時(shí)要注重理論和實(shí)踐的緊密結(jié)合,通過大量上機(jī)操作,使學(xué)生掌握VHDL的基本結(jié)構(gòu)和編程思想。實(shí)驗(yàn)1 原理圖輸入方法及8位全加器設(shè)計(jì)(4課時(shí))
1)實(shí)驗(yàn)?zāi)康模?/p>
熟悉利用MAX+plusⅡ的原理圖輸入方法設(shè)計(jì)簡(jiǎn)單組合電路,掌握層次化設(shè)計(jì)的方法,并通過一個(gè)8位全加器的設(shè)計(jì)把握利用EDA軟件進(jìn)行電子電路設(shè)計(jì)的詳細(xì)流程。2)實(shí)驗(yàn)報(bào)告要求:
詳細(xì)敘述8位加法器的設(shè)計(jì)流程;給出各層次的原理圖及其對(duì)應(yīng)的仿真波形圖;給出加法器的延時(shí)情況。
3)實(shí)驗(yàn)步驟:
(1)設(shè)計(jì)一個(gè)一位半加器。
步驟1:輸入設(shè)計(jì)項(xiàng)目和存盤 步驟2:輸入半加器元件: 步驟3:將項(xiàng)目設(shè)置為工程文件 步驟4:選擇目標(biāo)器件并編譯 步驟5:時(shí)序仿真 步驟6:包裝元件入庫
選擇菜單“File”→“Open”,在“Open”對(duì)話框中選擇原理圖編輯文件選項(xiàng)“Graphic Editor Files”,然后選擇h_adder.gdf,重新打開半加器設(shè)計(jì)文件,然后選擇如圖4-5中“File”菜單的“Create Default Symbol”項(xiàng),將當(dāng)前文件變成了一個(gè)包裝好的單一元件(Symbol),并被放置在工程路徑指定的目錄中以備后用。
(2)利用半加器組成一個(gè)一位全加器,并記錄仿真結(jié)果。(3)利用全加器組成一個(gè)八位全加器,并記錄仿真結(jié)果。
實(shí)驗(yàn)二
簡(jiǎn)單組合電路和時(shí)序電路設(shè)計(jì)(4課時(shí))
一、實(shí)驗(yàn)?zāi)康模?/p>
熟悉Max+plusⅡ的VHDL文本設(shè)計(jì)流程全過程,學(xué)習(xí)簡(jiǎn)單組合電路和時(shí)序電路的設(shè)計(jì)和仿真方法。
二、實(shí)驗(yàn)內(nèi)容
1:首先利用MAX+plusⅡ完成2選1多路選擇器和一位全加器的文本編輯輸入和仿真測(cè)試等步驟,給出仿真波形,驗(yàn)證本項(xiàng)設(shè)計(jì)的功能。
2:設(shè)計(jì)觸發(fā)器(J-K),給出程序設(shè)計(jì)、軟件編譯、仿真分析、硬件測(cè)試及詳細(xì)實(shí)驗(yàn)過程。
3:先設(shè)計(jì)或門和一位半加器的VHDL描述文件,并進(jìn)行仿真調(diào)試,再用元件例化的方法實(shí)現(xiàn)一位全加器,并仿真調(diào)試。要求記錄VHDL文件內(nèi)容和仿真波形結(jié)果。
4:用一位全加器設(shè)計(jì)8為全加器。要求記錄VHDL文件內(nèi)容和仿真波形結(jié)果。(選作)參考程序 ENTITY mux21a IS PORT(a, b : IN BIT;s : IN BIT;y : OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT;BEGIN d <= a AND(NOT S);e <= b AND s;y <= d OR e;END ARCHITECTURE one;
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a, b :IN STD_LOGIC;c : OUT STD_LOGIC);END ENTITY or2a;
ARCHITECTURE fu1 OF or2a IS BEGIN c <= a OR b;END ARCHITECTURE fu1;
半加器描述(1)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adder IS PORT(a, b : IN STD_LOGIC;co, so : OUT STD_LOGIC);END ENTITY adder;ARCHITECTURE fh1 OF adder is BEGIN so <= NOT(a XOR(NOT b));co <= a AND b;END ARCHITECTURE fh1;
1位二進(jìn)制全加器頂層設(shè)計(jì)描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder IS PORT(ain,bin,cin : IN STD_LOGIC;cout,sum : OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT(a,b : IN STD_LOGIC;co,so : OUT STD_LOGIC);END COMPONENT ; COMPONENT or2a PORT(a,b : IN STD_LOGIC;c : OUT STD_LOGIC);END COMPONENT;
SIGNAL d,e,f : STD_LOGIC;BEGIN u1 : h_adder PORT MAP(a=>ain,b=>bin,co=>d,so=>e);u2 : h_adder PORT MAP(a=>e,b=>cin,co=>f,so=>sum);u3 : or2a PORT MAP(a=>d,b=>f,c=>cout);END ARCHITECTURE fd1;二選一多路選擇器仿真結(jié)果:
實(shí)驗(yàn)三
含異步清0和同步時(shí)鐘使能的4位加法計(jì)數(shù)器(4課時(shí))
一、實(shí)驗(yàn)?zāi)康模?/p>
學(xué)習(xí)計(jì)數(shù)器的設(shè)計(jì)、仿真,進(jìn)一步熟悉VHDL設(shè)計(jì)技術(shù)。
二、實(shí)驗(yàn)內(nèi)容:
設(shè)計(jì)一含計(jì)數(shù)使能、異步復(fù)位和能進(jìn)行計(jì)數(shù)值并行預(yù)置功能的4位加法計(jì)數(shù)器。RST是異步清零信號(hào),高電平有效;clk是時(shí)鐘輸入信號(hào);D0、D1、D2、D3是4位數(shù)據(jù)輸入端(數(shù)據(jù)預(yù)置輸入端)。Q0、Q1、Q2、Q3為計(jì)數(shù)器輸出端。COUT為進(jìn)位輸出端。ENA為使能端,為?1?時(shí),計(jì)數(shù)器實(shí)現(xiàn)對(duì)CLK時(shí)鐘脈沖信號(hào)的加1計(jì)數(shù),為0時(shí)停止計(jì)數(shù)。
參考程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B IS PORT(CLK : IN STD_LOGIC;RST : IN STD_LOGIC;ENA : IN STD_LOGIC;OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN P_REG: PROCESS(CLK, RST, ENA)BEGIN IF RST = '1' THEN CQI <= “0000”;ELSIF CLK'EVENT AND CLK = '1' THEN IF ENA = '1' THEN CQI <= CQI + 1;ELSE CQI <= “0000”;END IF;END IF;OUTY <= CQI;END PROCESS P_REG;COUT <= CQI(0)AND CQI(1)AND CQI(2)AND CQI(3);--進(jìn)位輸出 END behav;
實(shí)驗(yàn)四
7段數(shù)碼顯示譯碼器設(shè)計(jì)(2課時(shí))
一、實(shí)驗(yàn)?zāi)康模?/p>
1、學(xué)習(xí)7段數(shù)碼顯示譯碼器設(shè)計(jì);
2、學(xué)習(xí)VHDL的多層次設(shè)計(jì)方法。
二、實(shí)驗(yàn)原理:
7段數(shù)碼是純組合電路,通常的小規(guī)模專用IC,如74或4000系列的器件只能作十進(jìn)制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA/CPLD中來實(shí)現(xiàn)。但為了簡(jiǎn)化過程,首先完成7段BCD碼譯碼器的設(shè)計(jì)。例如輸出為“1101101”時(shí),數(shù)碼管的7個(gè)段:g、f、e、d、c、b、a分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。
圖6-21 共陰數(shù)碼管及其電路
三、實(shí)驗(yàn)內(nèi)容
1、編程實(shí)現(xiàn)7段數(shù)碼顯示譯碼器設(shè)計(jì);
2、對(duì)7段數(shù)碼顯示譯碼器設(shè)計(jì)進(jìn)行編輯、仿真,給出其所有信號(hào)的時(shí)序仿真波形; 參考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE one OF DECL7S IS BEGIN PROCESS(A)BEGIN CASE A IS WHEN “0000” => LED7S <= “0111111”;WHEN “0001” => LED7S <= “0000110”;WHEN “0010” => LED7S <= “1011011”;WHEN “0011” => LED7S <= “1001111”;WHEN “0100” => LED7S <= “1100110”;WHEN “0101” => LED7S <= “1101101”;WHEN “0110” => LED7S <= “1111101”;WHEN “0111” => LED7S <= “0000111”;WHEN “1000” => LED7S <= “1111111”;WHEN “1001” => LED7S <= “1101111”;WHEN OTHERS => NULL;END CASE;END PROCESS;END;仿真結(jié)果:
綜合后的計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖:
實(shí)驗(yàn)五
用狀態(tài)機(jī)實(shí)現(xiàn)序列檢測(cè)器的設(shè)計(jì)(4課時(shí))
一、實(shí)驗(yàn)?zāi)康模?/p>
1、掌握狀態(tài)機(jī)的編程方法和步驟;
2、掌握用狀態(tài)機(jī)設(shè)計(jì)序列檢測(cè)器的方法和步驟;
二、實(shí)驗(yàn)內(nèi)容
用狀態(tài)機(jī)編程實(shí)現(xiàn)對(duì)系列數(shù)“11100101”的檢測(cè),當(dāng)某一系列串(以左移方式)進(jìn)入檢測(cè)器后,若該串與預(yù)置的系列數(shù)相同,則輸出“A”,否則輸出“B”。
三、實(shí)驗(yàn)步驟:
1、編輯系列檢測(cè)器的VHDL程序;
2、仿真測(cè)試并給出仿真波形,了解控制信號(hào)的時(shí)序;
3、將上述方案改為系列檢測(cè)密碼為可預(yù)置(外部輸入)情況,重新編寫程序、編譯和仿真,并記錄仿真結(jié)果。參考程序:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK IS PORT(DIN,CLK,CLR : IN STD_LOGIC;AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END SCHK;ARCHITECTURE behv OF SCHK IS SIGNAL Q:INTEGER RANGE 0 TO 8;SIGNAL D:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN D<=“11100101”;PROCESS(CLK,CLR)BEGIN IF CLR= '1' THEN Q <= 0;ELSIF clk='1' AND clk'EVENT THEN CASE Q IS WHEN 0 => IF DIN = D(7)THEN Q<=1;ELSE Q<=0;END IF;WHEN 1 => IF DIN = D(6)THEN Q<=2;ELSE Q<=0;END IF;WHEN 2 => IF DIN = D(5)THEN Q<=3;ELSE Q<=0;END IF;WHEN 3 => IF DIN = D(4)THEN Q<=4;ELSE Q<=0;END IF;WHEN 4 => IF DIN = D(3)THEN Q<=5;ELSE Q<=0;END IF;WHEN 5 => IF DIN = D(2)THEN Q<=6;ELSE Q<=0;END IF;WHEN 6 => IF DIN = D(1)THEN Q<=7;ELSE Q<=0;END IF;WHEN 7 => IF DIN = D(0)THEN Q<=8;ELSE Q<=0;END IF;WHEN OTHERS=> Q<=0;END CASE;END IF;END PROCESS;PROCESS(Q)BEGIN IF Q=8 THEN AB<=“1010”;ELSE AB<=“1011”;END IF;END PROCESS;END behv;仿真結(jié)果:
提高型實(shí)驗(yàn):
實(shí)驗(yàn)六
用VHDL實(shí)現(xiàn)數(shù)字鐘及校園打鈴系統(tǒng)(6課時(shí))
一、實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握VHDL語言的進(jìn)行系統(tǒng)設(shè)計(jì)的方法和步驟。
3、提高學(xué)生綜合應(yīng)用能力。
二、實(shí)驗(yàn)內(nèi)容:
1、用VHDL實(shí)現(xiàn)數(shù)字鐘及校園打鈴系統(tǒng)的軟件編輯。
2、用VHDL實(shí)現(xiàn)數(shù)字鐘及校園打鈴系統(tǒng)的軟件仿真。
三、實(shí)驗(yàn)步驟
1、用VHDL編輯60進(jìn)制計(jì)數(shù)器,并進(jìn)行軟件仿真。
2、用VHDL編輯24進(jìn)制計(jì)數(shù)器,并進(jìn)行軟件仿真。
3、用VHDL編輯30進(jìn)制計(jì)數(shù)器,并進(jìn)行軟件仿真。
4、用元件例化的方法實(shí)現(xiàn)數(shù)字鐘的軟件編輯及軟件仿真。
5、實(shí)現(xiàn)數(shù)字鐘的校時(shí)功能。
6、實(shí)現(xiàn)數(shù)字鐘的打鈴功能。
7、完成數(shù)字鐘及校園打鈴系統(tǒng)的實(shí)驗(yàn)報(bào)告。
實(shí)驗(yàn)七
A/D采樣控制器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握A/D采樣控制器的工作原理。
3、掌握A/D采樣控制器的VHDL語言編程方法。
二、實(shí)驗(yàn)內(nèi)容:
1、設(shè)計(jì)一A/D0809模數(shù)轉(zhuǎn)換器控制器。
2、將轉(zhuǎn)換結(jié)果送數(shù)碼管顯示器顯示(2位)。
3、模擬輸入通道為IN0。
三、實(shí)驗(yàn)步驟:
1、ADC0809特點(diǎn)介紹
(1)、單極性輸入,8位A/D轉(zhuǎn)換精度。(2)、逐次逼近式,每次采樣時(shí)間約為100US(3)、8通道模擬輸入
2、A/D轉(zhuǎn)換器外部引腳功能結(jié)構(gòu)圖
3、A/D轉(zhuǎn)換器時(shí)序圖
4、AD轉(zhuǎn)換控制器與AD轉(zhuǎn)換器的接口電路框圖
5、狀態(tài)控制
S0狀態(tài):初始狀態(tài)。ADDC=‘1’,選擇1通道模擬信號(hào)輸入。
ALE=START=OE=LOCK=‘0’;
S1狀態(tài):通道鎖存。ALE=‘1’, START=OE=LOCK=‘0’;
S2狀態(tài):?jiǎn)?dòng)A/D轉(zhuǎn)換。ALE=‘1’,START=‘1’,OE=LOCK=‘0’; S3狀態(tài):A/D轉(zhuǎn)換等待狀態(tài)。
ALE=START=‘0’,OE=LOCK=‘0’;
IF EOC=‘0’
保持當(dāng)前狀態(tài)不變,繼續(xù)等待A/D轉(zhuǎn)換。
ELSE
轉(zhuǎn)換結(jié)束,進(jìn)入下一狀態(tài)。
S4狀態(tài):數(shù)據(jù)輸出允許狀態(tài)。A/D轉(zhuǎn)換完畢,開啟數(shù)據(jù)輸出允許信號(hào)。
ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘0’;
S5狀態(tài):數(shù)據(jù)鎖存狀態(tài)。開啟數(shù)據(jù)鎖存信號(hào),將轉(zhuǎn)換結(jié)果送鎖存器鎖存。
ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; S6狀態(tài):延時(shí)狀態(tài)。為了保證數(shù)據(jù)可靠鎖存,延時(shí)一個(gè)時(shí)鐘狀態(tài)周期。
ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; 其它狀態(tài):返回到初始狀態(tài)。ALE=START=OE=LOCK=‘0’;
6、參考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD0809 IS
PORT(D :IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CLK0,EOC : IN STD_LOGIC;
ADDA,OE : OUT STD_LOGIC;
ALE,START : OUT STD_LOGIC;
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
QQ : OUT INTEGER RANGE 15 DOWNTO 0);END AD0809;ARCHITECTURE behav OF AD0809 IS
TYPE ST_TYPE IS(S0, S1, S2, S3,S4,S5,S6,S7);
SIGNAL CURRENT_STATE,NEXT_STATE : ST_TYPE;
SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL LOCK :STD_LOGIC;
BEGIN
ADDA<='1';
PRO: PROCESS(CURRENT_STATE,EOC)
BEGIN
CASE CURRENT_STATE IS
WHEN S0 => QQ<=0;ALE<='0';START<='0';OE<='0';LOCK<='0';NEXT_STATE <= S1;
WHEN S1 => QQ<=1;ALE<='0';START<='0';OE<='0';LOCK<='0';NEXT_STATE <= S2;
WHEN S2 => QQ<=2;ALE<='1';START<='1';OE<='0';LOCK<='0';NEXT_STATE <= S3;
WHEN S3 => QQ<=3;ALE<='1';START<='1';OE<='0';LOCK<='0';
IF EOC='0' THEN NEXT_STATE <= S4;
ELSE NEXT_STATE <= S3;
END IF;
WHEN S4 => QQ<=4;ALE<='0';START<='0';OE<='0';LOCK<='0';
IF EOC='1' THEN NEXT_STATE <= S5;
ELSE NEXT_STATE <= S4;
END IF;
WHEN S5 => QQ<=5;ALE<='0';START<='1';OE<='1';LOCK<='0';NEXT_STATE <= S6;
WHEN S6 => QQ<=6;ALE<='0';START<='0';OE<='1';LOCK<='1';NEXT_STATE <= S7;
WHEN S7 => QQ<=7;ALE<='0';START<='0';OE<='1';LOCK<='1';NEXT_STATE <= S0;
WHEN OTHERS => NEXT_STATE <= S0;
END CASE;
END PROCESS PRO;REG:PROCESS(CLK0)
BEGIN
IF CLK0'EVENT AND CLK0='1' THEN
CURRENT_STATE<=NEXT_STATE;
END IF;
END PROCESS REG;
COM:PROCESS(LOCK)
BEGIN
IF LOCK'EVENT AND LOCK='1' THEN
REGL<=D;
END IF;
END PROCESS COM;
Q<=REGL;END behav;
實(shí)驗(yàn)八
數(shù)字頻率計(jì)設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握數(shù)字頻率計(jì)的工作原理。
3、掌握數(shù)字頻率計(jì)的VHDL語言編程方法。
二、實(shí)驗(yàn)內(nèi)容:
1、設(shè)計(jì)8位十進(jìn)制數(shù)字頻率計(jì)。
2、測(cè)量頻率范圍為1Hz-50MHz
三、實(shí)驗(yàn)原理: 測(cè)頻原理框圖
四、實(shí)驗(yàn)步驟 1、8位十進(jìn)制計(jì)數(shù)器設(shè)計(jì)
(1)用VHDL設(shè)計(jì)十進(jìn)制計(jì)數(shù)器,并進(jìn)行軟件和硬件仿真 參考程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS
PORT(CLK,RST,EN : IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC);
END CNT10;ARCHITECTURE behav OF CNT10 IS BEGIN
PROCESS(CLK, RST, EN)
VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RST = '1' THEN
CQI :=(OTHERS =>'0');--計(jì)數(shù)器復(fù)位
ELSIF CLK'EVENT AND CLK='1' THEN
--檢測(cè)時(shí)鐘上升沿
IF EN = '1' THEN
--檢測(cè)是否允許計(jì)數(shù)
IF CQI < “1001” THEN
CQI := CQI + 1;--允許計(jì)數(shù)
ELSE
CQI :=(OTHERS =>'0');--大于9,計(jì)數(shù)值清零
END IF;
END IF;
END IF;
IF CQI = “1001” THEN COUT <= '1';--計(jì)數(shù)大于9,輸出進(jìn)位信號(hào)
ELSE
COUT <= '0';
END IF;
CQ <= CQI;
--將計(jì)數(shù)值向端口輸出
END PROCESS;END behav;(2)8位十進(jìn)制頻率計(jì)電路圖 2、32位鎖存器設(shè)計(jì) 參考程序
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY reg32b IS
PORT(load : IN STD_LOGIC;
din: in STD_LOGIC_VECTOR(31 DOWNTO 0);
DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));
END reg32b;ARCHITECTURE behav OF reg32b IS BEGIN
PROCESS(load,din)
BEGIN
IF load'EVENT AND load='1' THEN
dout<=din;
END PROCESS;END behav;3控制器設(shè)計(jì)
(1)控制器時(shí)序圖
(2)參考程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY testctl IS
PORT(clk : IN STD_LOGIC;
tsten:out
STD_LOGIC;
clr_cnt: out
STD_LOGIC;
load:out
STD_LOGIC);
END testctl;ARCHITECTURE behav OF testctl IS
signal div2clk:std_logic;BEGIN
PROCESS(clk)
BEGIN
IF clk'EVENT AND clk='1' THEN
div2clk<=not div2clk;
END PROCESS;
process(clk,div2clk)
begin
if clk='0' and div2clk='0'
then
clr_cnt<='1';
else clr_cnt<='0';
end if;
end process;
load<=not div2clk;
tsten<=div2clk;END behav;
END IF;END IF;
實(shí)驗(yàn)九
DAC接口電路與波形發(fā)生器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握DA轉(zhuǎn)換器接口方法。
3、掌握DA轉(zhuǎn)換器的VHDL語言編程方法。
二、實(shí)驗(yàn)內(nèi)容:
1、設(shè)計(jì)一DAC0832數(shù)模轉(zhuǎn)換器控制器。
2、要求使用DAC轉(zhuǎn)換器輸出一正弦波,最大值為5V。(使用單緩沖方式)
3、要求正弦波頻率能步進(jìn)可調(diào),步進(jìn)間隔為100Hz。(使用2個(gè)按鍵控制,一個(gè)步進(jìn)為加,另一個(gè)為步進(jìn)減)
三、實(shí)驗(yàn)原理
1、DAC0832特點(diǎn)(1)、8位電流DAC轉(zhuǎn)換,輸出為電流信號(hào),因此要轉(zhuǎn)換為電壓輸出,必須外接集成運(yùn)算放大器。(2)、轉(zhuǎn)換時(shí)間約為50---500ns,轉(zhuǎn)換速度比電壓型DAC轉(zhuǎn)換器快,電壓型一般為1---10us(3)、20腳雙列直插式封裝的CMOS型器件。(4)、內(nèi)部具有兩極數(shù)據(jù)寄存器,可采用單或雙緩沖方式。
2、D/A轉(zhuǎn)換器外部引腳功能及內(nèi)部結(jié)構(gòu)圖
3、工作方式
方式一:直通工作方式(本實(shí)驗(yàn)采用此種方式)
一般用于只有一路輸出信號(hào)的情況。
接線情況:ILE=1,CS=WR1=WR2
=XFER=0 方式
二、雙緩沖器工作方式
采用兩步操作完成,可使DA轉(zhuǎn)換輸出前一數(shù)據(jù)的同時(shí),將采集下一個(gè)數(shù)據(jù)送到8位輸入寄存器,以提高轉(zhuǎn)換速度。
一般用于多路DA輸出。
4、DA轉(zhuǎn)換器與控制器接口電路設(shè)計(jì)
5、實(shí)驗(yàn)儀實(shí)際接口電路圖
6、DA轉(zhuǎn)換器輸出波形步進(jìn)可調(diào)控制電路設(shè)計(jì) 設(shè)計(jì)思想:
設(shè)輸入控制器的時(shí)鐘頻率為50MHz。
1、DA轉(zhuǎn)換一次,需要一個(gè)時(shí)鐘周期。若采用64點(diǎn)輸出,則需要64個(gè)時(shí)鐘周期。如果控制器時(shí)鐘頻率為64Hz,則輸出的正弦波頻率為1Hz。
2、因此,只需要控制DA轉(zhuǎn)換控制器的時(shí)鐘頻率,則就可以控制正弦波頻率,正弦波頻率與時(shí)鐘頻率的 關(guān)系為1:64。
3、題目要求正弦波步進(jìn)頻率為100Hz,則時(shí)鐘頻率步進(jìn)應(yīng)為6400Hz。按“加”鍵,則時(shí)鐘頻率增加6400Hz,按“減”減,時(shí)鐘頻率減小6400Hz。
7、帶按鍵控制DA轉(zhuǎn)換器與控制器接口電路設(shè)計(jì)
四、實(shí)驗(yàn)程序 參考程序:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DAC0832 IS
PORT(CLK :IN STD_LOGIC;
DD : OUT INTEGER RANGE 255 DOWNTO 0);END DAC0832;ARCHITECTURE behav OF DAC0832 IS SIGNAL Q:INTEGER RANGE 63 DOWNTO 0;SIGNAL D : INTEGER RANGE 255 DOWNTO 0;BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN Q<=Q+1;
END IF;
END PROCESS;PROCESS(Q)
BEGIN
CASE Q
IS
WHEN 00=>D<=254;WHEN 01=>D<=252;WHEN 02=>D<=249;WHEN 03=> D<=245;
WHEN 04=>D<=239;WHEN 05=>D<=233;WHEN
06=> D<=225;WHEN
07=> D<=217;
WHEN 08=>D<=207;WHEN 09=>D<=197;WHEN
10=> D<=186;WHEN
11=> D<=174;
WHEN 12=>D<=162;WHEN 13=>D<=150;WHEN 14=> D<=137;WHEN
15=> D<=124;
WHEN 16=>D<=112;WHEN 17=>D<=99;WHEN 18=> D<=87;
WHEN
19=> D<=75;
WHEN 20=>D<=64;WHEN
21=>D<=53;WHEN 22=>D<=43;
WHEN 23=> D<=34;
WHEN 24=>D<=26;WHEN 25=>D<=19;WHEN
26=> D<=13;
WHEN
27=> D<=8;
WHEN 28=>D<=4;
WHEN
29=>D<=1;
WHEN 30=>D<=0;
WHEN
31=> D<=0;
WHEN 32=>D<=1;WHEN 33=>D<=4;
WHEN 34=> D<=8;
WHEN 35=> D<=13;WHEN 36=>D<=19;WHEN 37=>D<=26;
WHEN 38=> D<=34;
WHEN
39=> D<=43;
WHEN 40=>D<=53;WHEN
41=>D<=64;WHEN 42=> D<=75;
WHEN
43=> D<=87;
WHEN 44=>D<=99;WHEN 45=>D<=112;WHEN 46=>D<=124;WHEN
47=> D<=137;
WHEN 48=>D<=150;WHEN 49=>D<=162;WHEN 50=> D<=255;WHEN 51=> D<=174;
WHEN 52=>D<=186;WHEN 53=>D<=197;WHEN 54=>D<=207;WHEN 55=> D<=217;
WHEN 56=>D<=225;WHEN 57=>D<=233;WHEN 58=> D<=239;WHEN
59=> D<=245;
WHEN 60=>D<=249;WHEN 61=> D<=252;WHEN 62=> D<=254;WHEN 63=>D<=255;WHEN OTHERS=>NULL;END CASE;END PROCESS;
DD<=D;
END;
實(shí)驗(yàn)十
七段顯示器動(dòng)態(tài)掃描電路設(shè)計(jì)(提高型)
實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握七段顯示器動(dòng)態(tài)掃描電路設(shè)計(jì)方法。設(shè)計(jì)要求:
1、設(shè)計(jì)一個(gè)七段數(shù)碼管動(dòng)態(tài)掃描電路。
2、數(shù)碼管個(gè)數(shù)為8個(gè),共陰極接法。
3、設(shè)計(jì)BCD碼--七段字符碼的轉(zhuǎn)換電路;
4、設(shè)計(jì)一電路,控制上述電路實(shí)現(xiàn)“12345678”八個(gè)數(shù)字的顯示,要求顯示方式為:
(1)自左至右逐個(gè)點(diǎn)亮數(shù)碼管,最后全亮;再重復(fù)以上動(dòng)作,每次變化時(shí)間間隔為1秒。
(2)自左至右點(diǎn)亮數(shù)碼管,每次只點(diǎn)亮一個(gè),最后全息滅,再重復(fù)以上動(dòng)作,每次變化時(shí)間間隔為1秒。
(3)先中間兩個(gè)點(diǎn)亮,再依次向外點(diǎn)亮;全亮后,再依次向中間熄滅;重復(fù)上述步驟,每次變化時(shí)間間隔為1秒。一、七段顯示器動(dòng)態(tài)掃描電路設(shè)計(jì)框圖
二、存儲(chǔ)器設(shè)計(jì)(8位8字節(jié)靜態(tài)隨機(jī)存儲(chǔ)器SRAM)LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY MEMO_RD_WR IS PORT(WR,RD: IN STD_LOGIC;
A : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
B : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END MEMO_RD_WR;ARCHITECTURE a OF MEMO_RD_WR IS
SIGNAL Q0,Q1,Q2,Q3: STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL Q4,Q5,Q6,Q7: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(WR,A)
BEGIN
IF WR='1' THEN
CASE
A
IS
WHEN “000”=>Q0<=D;
WHEN “001”=> Q1<=D;
WHEN “010”=>Q2<=D;
WHEN “011”=> Q3<=D;
WHEN “100”=>Q4<=D;
WHEN “101”=> Q5<=D;
WHEN “110”=>Q6<=D;
WHEN “111”=> Q7<=D;
WHEN OTHERS=>NULL;
END CASE;
END IF;
END PROCESS;PROCESS(RD,B)
BEGIN
IF RD='1' THEN
CASE
B
IS
WHEN “000”=>Q<=Q0;
WHEN “001”=> Q<=Q1;
WHEN “010”=>Q<=Q2;
WHEN “011”=> Q<=Q3;
WHEN “100”=>Q<=Q4;
WHEN “101”=> Q<=Q5;
WHEN “110”=>Q<=Q6;
WHEN “111”=> Q<=Q7;
WHEN OTHERS=>NULL;
END CASE;
END IF;
END PROCESS;END a;
四、循環(huán)取數(shù)電路設(shè)計(jì) LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY GET_CODE IS PORT(CLK1: IN STD_LOGIC;
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
RD:OUT STD_LOGIC;
A : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END GET_CODE;ARCHITECTURE a OF GET_CODE
IS
SIGNAL LOAD: STD_LOGIC;
SIGNAL QQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN
RD<=?1?;
LOAD<=CLK1;PROCESS(CLK1)
BEGIN
IF CLK1'EVENT AND CLK1='1' THEN
IF NUM<=7
THEN
NUM<=NUM+1;
ELSE NUM<=0;
END IF;
END IF;END PROCESS;PROCESS(NUM)
BEGIN
CASE NUM IS
WHEN 0 =>A<=“000”;
WHEN 1 =>A<=“001”;
WHEN 2 =>A<=“010”;
WHEN 3 =>A<=“011”;
WHEN 4 =>A<=“100”;
WHEN 5 =>A<=“101”;
WHEN 6 =>A<=“110”;
WHEN 7 =>A<=“111”;
WHEN OTHERS =>NULL;
END CASE;
END PROCESS;PROCESS(LOAD)
BEGIN
IF LOAD?EVENT AND LOAD=?1?
THEN-------上升沿鎖存
QQ<=D;
END IF;END PROCESS;DOUT(7 DOWNTO 0)<=QQ(7 DOWNTO 0);END a;
五、掃描控制器設(shè)計(jì) LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY SCAN_8 IS PORT(CLK2: IN STD_LOGIC;
C : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END SCAN_8;ARCHITECTURE a OF SCAN_8
IS
SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN PROCESS(CLK2)
BEGIN
IF CLK2'EVENT AND CLK2=‘1' THEN
IF NUM<=7
THEN
NUM<=NUM+1;
ELSE NUM<=0;
END IF;
END IF;END PROCESS;Process(num)
begin
CASE
NUM
IS
WHEN 1=>C<=“11111110”;WHEN 2=> C<=“11111101”;
WHEN 3=>C<=“11111011”;WHEN 4=> C<=“11110111”;
WHEN 5=>C<=“11101111”;WHEN 6=> C<=“11011111”;
WHEN 7=>C<=“10111111”;WHEN 0=> C<=“01111111”;
WHEN
OTHERS=>NULL;
END CASE;END PROCESS;END A;
應(yīng)用實(shí)例一:顯示“01234567”八個(gè)數(shù)字
LIBRARY ieee;
USE ieee.std_logic_1164.all;ENTITY disp_data IS PORT(CLK: IN STD_LOGIC;
WR:OUT STD_LOGIC;
A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END disp_data;ARCHITECTURE a OF disp_data
IS
--SIGNAL QQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN
WR<=?1?;PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF NUM<=7
THEN
NUM<=NUM+1;
ELSE NUM<=0;
END IF;
END IF;END PROCESS;PROCESS(NUM)
BEGIN
CASE NUM IS
WHEN 0 =>Q<=“00111111”;A<=“000”;
WHEN 1 =>Q<=“00000110”;A<=“001”;
WHEN 2 =>Q<=“01011011”;A<=“010”;
WHEN 3 =>Q<=“01001111”;A<=“011”;
WHEN 4 =>Q<=“01100110”;A<=“100”;
WHEN 5 =>Q<=“01101101”;A<=“101”;
WHEN 6 =>Q<=“01111101”;A<=“110”;
WHEN 7 =>Q<=“01111111”;A<=“111”;
WHEN OTHERS =>NULL;
END CASE;END PROCESS;END a;實(shí)驗(yàn)十一
彩燈控制器設(shè)計(jì)(提高型實(shí)驗(yàn))
實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握VHDL語言的進(jìn)行系統(tǒng)設(shè)計(jì)的方法和步驟。
3、培養(yǎng)學(xué)生綜合應(yīng)用能力。實(shí)驗(yàn)內(nèi)容:
1、了解各類節(jié)日彩燈的顯示方式(主要是動(dòng)態(tài)方式)(上街觀察);
2、將你所了解的情況,畫出你的設(shè)計(jì)思想框圖;
3、根據(jù)框圖畫出電路框圖(用EDA技術(shù));
4、用VHDL語言編程實(shí)現(xiàn);
5、完成課程設(shè)計(jì)報(bào)告(約2000字)
實(shí)驗(yàn)
十二、紅綠交通燈控制系統(tǒng)
實(shí)驗(yàn)?zāi)康募耙螅?/p>
1、掌握VHDL語言的基本結(jié)構(gòu)及編程思想。
2、掌握VHDL語言的進(jìn)行系統(tǒng)設(shè)計(jì)的方法和步驟。
3、培養(yǎng)學(xué)生綜合應(yīng)用能力。實(shí)驗(yàn)內(nèi)容:
設(shè)計(jì)一個(gè)簡(jiǎn)易十字路口交通燈控制器。要求:
1、每個(gè)路口有紅、綠、黃三個(gè)指示燈指示交通運(yùn)行情況。紅燈亮,禁止車輛通行;綠燈亮,車輛正常通行。
2、利用兩位數(shù)碼管顯示通行到計(jì)時(shí)時(shí)間。
3、用VHDL語言編程實(shí)現(xiàn);
4、完成課程設(shè)計(jì)報(bào)告 實(shí)驗(yàn)步驟:
1、紅綠黃燈秒計(jì)數(shù)選擇控制電路(traffic_mux)SING_STATE:
00
綠燈20秒(橫向路口);
01
黃燈5秒(橫向路口)
綠燈20秒(直向路口)
黃燈5秒(直向路口)
RECOUNT:重新計(jì)數(shù)信號(hào)。=?1?,發(fā)送倒計(jì)時(shí)時(shí)間數(shù)據(jù); =?0?,正常倒計(jì)時(shí); LIBRARY IEEE;
USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all;
USE IEEE.std_logic_arith.all;entity traffic_mux is
port(reset,clk_1Hz,recount: in std_logic;
sign_state: in std_logic_vector(1 downto 0);
load: out integer range 255 downto 0);end;
begin
process(reset,clk_1s)
begin
if reset='1' then
load<=“00000000”;
elsif(clk_1Hz'event and clk_1Hz='1')
then
if
recount = '1‘
then
CASE sign_state IS
WHEN “00” => load <= 20;
WHEN “01” => load <= 5;
WHEN “10” => load <= 20;
WHEN “01” => load <= 5;
WHEN OTHERS =>null;
END CASE;
end if;
end if;end process;end BEHAVIOR;
2、倒計(jì)時(shí)控制電路(count_down)library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity count_down is port(reset,clk_1Hz: in std_logic;recount:in std_logic;load: in integer range 255 downto 0;seg7:out std_logic_vector(15 downto 0);next_state: out std_logic);end;architecture BEHAVIOR of count_down is signal cnt_ff: integer range 255 downto 0;begin process(clk_1Hz,reset)begin if(reset='1')then cnt_ff<=“00000000”;seg7<=“***0”;elsif(clk_1Hz'event and clk_1Hz='1')then if recount='1‘ then cnt_ff<=load-1;else cnt_ff<=cnt_ff-1;end if;end if;end process;process(cnt_ff)begin case cnt_ff is when 0=>seg7<=“***1”;when 1=>seg7<=“***0”;when 2=> seg7<=“***1”;when 3=> seg7<=“***1”;when 4=> seg7<=“***0”;when 5=> seg7<=“***1”;when 6=> seg7<=“***1”;when 7=> seg7<=“***1”;when 8=> seg7<=“***1”;when 9=> seg7<=“***1”;when 10=> seg7<=“***1”;when 11=> seg7<=“***0”;when 12=> seg7<=“***1”;when 13=> seg7<=“***1”;when 14=> seg7<=“***0”;when 15=> seg7<=“***1”;when 16=> seg7<=“***1”;when 17=> seg7<=“***1”;when 18=> seg7<=“***1”;when 19=> seg7<=“***1”;when 20=> seg7<=“***1”;when 21=> seg7<=“***0”;when 22=> seg7<=“***1”;when 23=> seg7<=“***1”;when 24=> seg7<=“***0”;when 25=> seg7<=“***1”;when 26=> seg7<=“***1”;when 27=> seg7<=“***1”;when 28=> seg7<=“***1”;when 29=> seg7<=“***1”;when others=> seg7<=“***1”;end case;end process;next_state <= '1' when cnt_ff=1 else '0';end BEHAVIOR;
3、紅綠燈信號(hào)控制電路(traffic_fsm)LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;entity traffic_FSM is port(reset,clk,clk_1Hz,flash_1Hz: in std_logic;a_m:in std_logic;next_state: in std_logic;recount: out std_logic;sign_state: out std_logic_vector(1 downto 0);red: out std_logic_vector(1 downto 0);green: out std_logic_vector(1 downto 0);yellow: out std_logic_vector(1 downto 0));end;architecture BEHAVIOR of traffic_FSM is type Sreg0_type is(r0g1, r0y1, g0r1, y0r1, y0y1, y0g1, g0y1, r0r1);signal state : Sreg0_type;signal light: std_logic_vector(5 downto 0);begin if(reset='1')then state<=r0g1;
----設(shè)定當(dāng)前為橫向紅燈亮,豎向綠燈亮 sign_state<=“01”;------選擇20秒倒計(jì)時(shí)
recount<=‘1’;------裝入計(jì)數(shù)初值并啟動(dòng)倒計(jì)時(shí) else if(clk'event and clk='1')then case STATE is when r0g1 => if(a_m='1' and clk_1Hz='1')then if(next_state = ‘1’)then--當(dāng)前計(jì)數(shù)完畢,轉(zhuǎn)入下一種計(jì)時(shí)
recount<='1';state<=r0y1;sign_state <= “01”;else recount<=‘0’;state<=r0g1;----否則,繼續(xù)倒計(jì)時(shí) end if;when r0y1 =>--now state: red0 on yellow1 flash if(a_m='1' and clk_1Hz='1')then if(next_state = '1')then recount<='1';state<=g0r1;sign_state <= “10”;else recount<='0';state<=r0y1;end if;when g0r1 =>--now state: green0 on red1 on if(a_m='1' and ena_1Hz='1')then if(next_state = '1')then recount<='1';state<=y0r1;sign_state <= “11”;else recount<='0';state<=g0r1;end if;when y0r1 =>--now state: green0 on red1 on if(a_m='1' and ena_1Hz='1')then if(next_state = '1')then recount<='1';state<=r0g1;sign_state <= “00”;else recount<='0';state<=y0r1;--red=2'b10;green=2'b00;yellow=2'b01;end if;when others => state<=r0g1;recount<='0';sign_state <= “00”;end case;end if;end if;end process;--light: r(10)y(10)g(10)light <= “010010” when(state=r0g1)else “011000” when(state=r0y1)else “100001” when(state=g0r1)else “100100” when(state=y0r1)else “110000”;red <= light(5 downto 4);yellow <= light(3 downto 2)and(flash_1Hz & flash_1Hz);green <= light(1 downto 0);end BEHAVIOR;
第五篇:EDA技術(shù)應(yīng)用讀后感
EDA技術(shù)應(yīng)用讀后感
大三的第一學(xué)期我們學(xué)一門關(guān)于EDA技術(shù)的課程,雖然對(duì)于這個(gè)名稱不算陌生,之前也聽過,但是它有什么功能卻什么也不知道。今天在老師的引導(dǎo)下我們讀了一些關(guān)于這方面的文章,初步的對(duì)EDA有了一定的認(rèn)識(shí)。DA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語言VHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)已經(jīng)成為當(dāng)今世界電子技術(shù)發(fā)展的重要領(lǐng)域之一。
電子設(shè)計(jì)的必由之路是數(shù)字化,電子系統(tǒng)的發(fā)展到現(xiàn)在已經(jīng)很多年了,經(jīng)過多年的發(fā)展,現(xiàn)在的發(fā)展正是最迅速最完美的時(shí)期。EDA的發(fā)展涉及多方面,例如,教學(xué)方面,在科學(xué)研究和新產(chǎn)品開發(fā)方面,產(chǎn)品的設(shè)計(jì)與制作方面。隨州EDA技術(shù)的發(fā)展,世界各國都積極的行動(dòng)了起來,我國也積極響應(yīng)世界的發(fā)展趨勢(shì)大力提倡技術(shù)的發(fā)展。EDA技術(shù)越來越廣泛的應(yīng)用,電子產(chǎn)品的日新月異,這項(xiàng)技術(shù)已經(jīng)成為電子設(shè)計(jì)的何核心,我們作為新一代的大學(xué)生更應(yīng)該深刻認(rèn)識(shí)這一點(diǎn),努力學(xué)習(xí)知識(shí),做一名有價(jià)值的中國人。
《EDA技術(shù)的應(yīng)用與發(fā)展》 作者:張曉霞來源:《中國新技術(shù)新產(chǎn)品》 2012-5-25期刊
《EDA技術(shù)的發(fā)展與應(yīng)用現(xiàn)狀》 作者:張楊林來源:《當(dāng)代農(nóng)機(jī)》 2007-4-25期刊 《EDA技術(shù)的發(fā)展》作者:江冰來源:《河海大學(xué)常州分校學(xué)報(bào)》 2004-6-25期刊
建議:希望老師可以上課聲音大一點(diǎn),盡量有耐心的講的細(xì)一點(diǎn)。課堂可以多做一些演示方
便我們理解。