vhdl語言范文
時(shí)間:2023-04-05 09:52:02
導(dǎo)語:如何才能寫好一篇vhdl語言,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:狀態(tài)機(jī);Mealy型狀態(tài)機(jī);vhdl語言
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 13-0000-02
數(shù)字電路分為組合邏輯電路和時(shí)序邏輯電路。組合邏輯電路的輸出只與當(dāng)前輸入有關(guān),時(shí)序邏輯電路的輸出不僅與當(dāng)前輸入有關(guān),還與過去的輸入有關(guān)。狀態(tài)機(jī)是一種廣義的時(shí)序電路,它的輸出不僅與當(dāng)前輸入信號(hào)有關(guān),還與當(dāng)前的狀態(tài)有關(guān)。
一、狀態(tài)機(jī)有三個(gè)基本要素:狀態(tài)、輸入、輸出
狀態(tài)是狀態(tài)機(jī)中最根本的要素。狀態(tài)機(jī)的最基本特點(diǎn)就是寄存器中存儲(chǔ)的狀態(tài)按照一定的條件或規(guī)律進(jìn)行轉(zhuǎn)移,并輸出特定信號(hào)。
輸入信號(hào)作為狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移的條件,即狀態(tài)機(jī)根據(jù)輸入信號(hào)和當(dāng)前狀態(tài)決定下一個(gè)轉(zhuǎn)移的狀態(tài)。
輸出信號(hào)一般由當(dāng)前狀態(tài)和當(dāng)前輸入信號(hào)決定,也可只由當(dāng)前狀態(tài)決定。
二、狀態(tài)機(jī)的特點(diǎn)
(1)狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單,設(shè)計(jì)方案相對(duì)固定。
(2)狀態(tài)機(jī)的VHDL設(shè)計(jì)層次分明,結(jié)構(gòu)清晰,易讀易懂。
(3)就運(yùn)行速度而言,狀態(tài)機(jī)的每一個(gè)狀態(tài)中可以完成許多并行的運(yùn)算和控制操作。
(4)就可靠性而言,狀態(tài)機(jī)也具有明顯的優(yōu)勢(shì)。
三、狀態(tài)機(jī)的分類
狀態(tài)機(jī)可分為有限狀態(tài)機(jī)和無限狀態(tài)機(jī),在這里只討論有限狀態(tài)機(jī)。按照輸出信號(hào)是否與輸入信號(hào)有關(guān),可將有限狀態(tài)機(jī)分為Moore型和Mealy型。Moore型狀態(tài)機(jī)的輸出只與當(dāng)前狀態(tài)有關(guān),Mealy型狀態(tài)機(jī)的輸出不僅與當(dāng)前狀態(tài)有關(guān),還與當(dāng)前輸入有關(guān)。Moore型和Mealy型狀態(tài)機(jī)示意圖分別如圖一和圖二所示。
從輸出的時(shí)序上看,Mealy型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號(hào)的函數(shù),它的輸出是在輸入變化之后立即發(fā)生的,不依賴時(shí)鐘的同步。Moore型狀態(tài)機(jī)的輸出僅為當(dāng)前狀態(tài)的函數(shù),狀態(tài)機(jī)的輸入發(fā)生變化還必須與狀態(tài)機(jī)的時(shí)鐘同步。由于Mealy型狀態(tài)機(jī)的輸出與時(shí)鐘不同步,因此很容易在輸出端產(chǎn)生毛刺,造成不可預(yù)料的結(jié)果。因此從穩(wěn)定性的角度講,Moore型狀態(tài)機(jī)比較好;但是從相應(yīng)時(shí)間角度講,Mealy型狀態(tài)機(jī)對(duì)輸入的響應(yīng)最多可比Moore型狀態(tài)機(jī)早一個(gè)時(shí)鐘周期.在工程實(shí)踐中,具體電路有具體的設(shè)計(jì)要求,根據(jù)實(shí)際情況選擇相應(yīng)的狀態(tài)機(jī)。
四、基于狀態(tài)機(jī)的8路彩燈設(shè)計(jì)
在我們的生活中,電子彩燈已成為我們裝點(diǎn)生活常用的電器,電子彩燈控制電路的設(shè)計(jì)要求也越來越高。要求我們?cè)O(shè)計(jì)的彩燈花燈品種更多,控制更加方便,靈活性高,可靠性高。采用傳統(tǒng)數(shù)字電路設(shè)計(jì)的彩燈控制器電路復(fù)雜,設(shè)計(jì)周期長(zhǎng),精度不高。基于FPGA的電子彩燈設(shè)計(jì)設(shè)計(jì)靈活,功能完善。
8路彩燈控制系統(tǒng)分為分頻模塊和花型循環(huán)控制模塊。
(1)分頻模塊:我們?cè)谶@里選擇的時(shí)鐘脈沖信號(hào)是50MHz,由于時(shí)鐘脈沖的頻率太高,所以我們未分頻時(shí)看到的是8個(gè)LED燈全亮,而看不到LED燈閃爍的狀態(tài)。我們這時(shí)將50MHz分頻,達(dá)到人視覺能感覺的頻率,即可看到LED閃爍的效果。
分頻程序如下:
(2)花型循環(huán)控制模塊:花型循環(huán)控制模塊是系統(tǒng)的核心部分,它主控著8路彩燈的花型。循環(huán)彩燈控制模塊主要由狀態(tài)機(jī)設(shè)計(jì),用狀態(tài)機(jī)設(shè)計(jì)靈活性強(qiáng)。
按設(shè)計(jì)的要求實(shí)現(xiàn)8種花型:00001111、10000000、01100011、01001111、11000000、11101111、11111111和10010011。用S0,S1,S2,S3,S4,S5,S6,S7來表示8種不同的狀態(tài)。狀態(tài)圖如下所示。
用狀態(tài)機(jī)設(shè)計(jì)語句type states來實(shí)現(xiàn),8路彩燈控制模塊程序如下:
五、設(shè)計(jì)拓展
8路彩燈設(shè)計(jì)系統(tǒng)在實(shí)際應(yīng)用中還可以靈活地修改。如果要改變循環(huán)燈的控制花型,可改變s0,s1,s2,s3,s4,s5,s6,s7中所設(shè)的數(shù)值;如果要改變循環(huán)燈的花型數(shù)量,可改變狀態(tài)機(jī)中s的數(shù)量,如12種花型,可改為s0—s11;還可以修改頻率來控制花型閃爍的速度。
六、小結(jié)
使用VHDL語言進(jìn)行8路彩燈電路設(shè)計(jì),思路簡(jiǎn)單,功能明了,靈活性強(qiáng)。在控制電路中采用狀態(tài)機(jī)設(shè)計(jì),電路控制靈活,功能便于實(shí)現(xiàn),思路簡(jiǎn)潔便于修改。比起用常規(guī)的單片機(jī)設(shè)計(jì)8路彩燈電路更簡(jiǎn)單實(shí)用。此系統(tǒng)可在分頻前在ISE軟件下的ISE simulator上進(jìn)行仿真和驗(yàn)證,并可加上適當(dāng)?shù)募s束條件后,在Spatan3E的開發(fā)板驗(yàn)證試驗(yàn)結(jié)果。
參考文獻(xiàn):
[1]Kleitz.W.VHDL數(shù)字電子學(xué)[M].北京:北京希望電子出版社,2008
篇2
關(guān)鍵詞:VHDL;教學(xué)改革;項(xiàng)目化教學(xué)
作者簡(jiǎn)介:周殿鳳(1978-),女,江蘇寶應(yīng)人,鹽城師范學(xué)院物理科學(xué)與電子技術(shù)學(xué)院,講師;康素成(1966-),男,江蘇濱海人,鹽城師范學(xué)院物理科學(xué)與電子技術(shù)學(xué)院,副教授。(江蘇 鹽城 224002)
基金項(xiàng)目:本文系鹽城師范學(xué)院高校發(fā)展研究項(xiàng)目(項(xiàng)目編號(hào):13YCFZ006)的研究成果。
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-0079(2014)09-0111-02
VHDL語言及應(yīng)用是電子信息工程專業(yè)的一門重要的技術(shù)類應(yīng)用型課程,主要講解VHDL語言以及它的應(yīng)用。但在多年的教學(xué)實(shí)踐中,筆者發(fā)現(xiàn)要想讓學(xué)生在短時(shí)間內(nèi)接受大量的語法知識(shí),學(xué)生很難充分理解與掌握,這樣在隨后的編程過程中非常容易犯錯(cuò),并感覺難以入手,更不用說形成良好的編程習(xí)慣和程序風(fēng)格。[1]大多數(shù)大學(xué)生畢業(yè)后或許精通C語言,可是由于各方面的原因,精通VHDL語言的少之又少,但是企業(yè)單位對(duì)此方面的人才的需求卻越來越多,筆者出于對(duì)VHDL語言的摯愛及多年教學(xué)經(jīng)驗(yàn),探索了該課程項(xiàng)目化教學(xué)的具體實(shí)施方法。
一、改變傳統(tǒng)教學(xué)方法
VHDL語言及應(yīng)用這門課程的終極目標(biāo)是使學(xué)生掌握VHDL語言并能用之進(jìn)行相關(guān)的電子設(shè)計(jì)。如果教師將大量的時(shí)間用于講解枯澀的語法、語句、復(fù)雜的算法,學(xué)生在學(xué)習(xí)時(shí)也不知它們有何用途,學(xué)、用脫節(jié),只是為學(xué)而學(xué),不能激發(fā)學(xué)生學(xué)習(xí)和應(yīng)用知識(shí)的興趣和積極性,效果很差,[2]因此教師不能按部就班地講解知識(shí)。教師可以通過多個(gè)實(shí)例講解語法,效果會(huì)好得多。這就要求老師上課全部現(xiàn)場(chǎng)編寫程序,并且故意犯一些學(xué)生經(jīng)常犯的錯(cuò)誤,編程中的錯(cuò)誤基本上都是語法和語句使用不當(dāng)引起的,教師恰好可以利用這些錯(cuò)誤來講解語法、語句。這門課程的硬件基礎(chǔ)是FPGA和CPLD芯片,CPLD/FPGA內(nèi)部沒有CPU,只需要用1課時(shí)簡(jiǎn)單講解即可,并不需要詳細(xì)分析。因?yàn)閷?duì)于設(shè)計(jì)者而言只要會(huì)用這些芯片即可,而且CPLD/FPGA芯片本身就像一張白紙,只要學(xué)生的單片機(jī)和硬件描述語言足夠好,學(xué)生就可以任意發(fā)揮,所以本課程的關(guān)鍵還是掌握VHDL語言本身。
二、理論教學(xué)環(huán)節(jié)的項(xiàng)目化實(shí)施
1.通過最簡(jiǎn)單的例子引導(dǎo)學(xué)生入門
以二極管閃爍為例,分成幾個(gè)層次,一步一步引導(dǎo)學(xué)生入門。
先問學(xué)生:如何讓一個(gè)二極管亮?學(xué)生學(xué)過數(shù)字電路,知道當(dāng)二極管的陽極為高電平且陰極為低電平時(shí)二極管亮。然后講解在VHDL語言里是如何實(shí)現(xiàn)的,接著現(xiàn)場(chǎng)編寫程序,最后下載到開發(fā)板上并且演示。
接著問:如何讓二極管閃爍呢?當(dāng)陰極接地且陽極的高、低電平等間隔出現(xiàn)時(shí)二極管閃爍,在VHDL里如何實(shí)現(xiàn)呢?在剛才程序里稍作修改即可,同樣要演示給學(xué)生看,并可順勢(shì)講一點(diǎn)這個(gè)程序里出現(xiàn)的語法和學(xué)習(xí)VHDL語言的一些注意事項(xiàng),如工程名、頂層文件名和實(shí)體名要一致,命名時(shí)字母的大小寫沒有區(qū)別等。做到在不知不覺中自然而然地講解語法知識(shí),學(xué)生記得也牢固。[2]
為了讓學(xué)生語法學(xué)得更扎實(shí),所有程序教師都隨堂編寫,一邊編程序一邊講解語法語句,還可以插入算法的講解。經(jīng)過實(shí)踐,筆者發(fā)現(xiàn)現(xiàn)場(chǎng)編程的講解方法可以讓學(xué)生較好地記住一些難以理解的語法、詞法和算法。
2.設(shè)計(jì)巧妙的項(xiàng)目引導(dǎo)學(xué)生深入學(xué)習(xí)
在開展項(xiàng)目化教學(xué)時(shí),項(xiàng)目的設(shè)計(jì)非常關(guān)鍵,設(shè)計(jì)的好壞直接影響教學(xué)效果。項(xiàng)目設(shè)計(jì)應(yīng)遵循如下原則:一是圍繞課程的重點(diǎn)展開,項(xiàng)目?jī)?nèi)容應(yīng)覆蓋基本的教學(xué)知識(shí)點(diǎn)。二是為了調(diào)動(dòng)學(xué)生的積極性,應(yīng)盡量選擇學(xué)生感興趣的項(xiàng)目。三是難度適中,項(xiàng)目過于簡(jiǎn)單,學(xué)生會(huì)很快完成,達(dá)不到思考的效果;太難,支撐的理論知識(shí)就會(huì)過多,教學(xué)組織比較困難,不能達(dá)到預(yù)期的教學(xué)效果。VHDL語言及應(yīng)用共48課時(shí),其中12節(jié)為實(shí)驗(yàn)課,理論學(xué)時(shí)只有36課時(shí),需要用4課時(shí)按照傳統(tǒng)的教學(xué)方式講解一些在項(xiàng)目中不好講解的知識(shí),如CPLD/FPGA的硬件知識(shí)、VHDL語言的部分語法等,故選擇9個(gè)小項(xiàng)目講解各種知識(shí)。
在9個(gè)項(xiàng)目講解的過程中,還要教會(huì)學(xué)生如何閱讀英文datasheets。在進(jìn)行真正的項(xiàng)目設(shè)計(jì)時(shí),必定要用到不少陌生的芯片,要想會(huì)用這些芯片,必須看它們的datasheets。datasheets總是長(zhǎng)達(dá)幾十頁,學(xué)生不容易看懂,需要教師引導(dǎo)他們?nèi)绾巫プ∑渲械闹攸c(diǎn),快速準(zhǔn)確閱讀。
在項(xiàng)目的講解和設(shè)計(jì)后期,教師作為領(lǐng)隊(duì)將學(xué)生分成小組學(xué)習(xí),分組合作的學(xué)習(xí)方法激發(fā)了學(xué)生學(xué)習(xí)的動(dòng)力,增強(qiáng)了各成員的責(zé)任感。互相之間積極配合、互動(dòng),培養(yǎng)學(xué)生多角度、多渠道獲得信息,有利于促進(jìn)學(xué)生發(fā)展,完善自我,也將學(xué)生評(píng)價(jià)變成了主動(dòng)參與、自我反思、自我教育的過程。[3]
三、實(shí)踐教學(xué)環(huán)節(jié)的項(xiàng)目化改革
1.布置型教學(xué)改為開放式教學(xué)
傳統(tǒng)的實(shí)驗(yàn)教學(xué)是教師講解實(shí)驗(yàn)原理,然后演示一下實(shí)驗(yàn),學(xué)生只需按實(shí)驗(yàn)講義中的步驟進(jìn)行,“依葫蘆畫瓢”,通過反復(fù)訓(xùn)練讓學(xué)生形成一定的基本技能。這種實(shí)驗(yàn)教學(xué)模式,學(xué)生動(dòng)手機(jī)會(huì)少,不能自主學(xué)習(xí),不利于個(gè)性發(fā)展,阻礙了學(xué)生的學(xué)習(xí)積極性、主動(dòng)性、創(chuàng)造性以及現(xiàn)代科學(xué)思維方式的形成。[4]學(xué)生進(jìn)入實(shí)驗(yàn)室后,教師可以提供大量實(shí)驗(yàn),讓學(xué)生根據(jù)各自興趣選擇想做的實(shí)驗(yàn)。也可以由學(xué)生根據(jù)教學(xué)要求自己擬定實(shí)驗(yàn)內(nèi)容,教師加以適當(dāng)指導(dǎo),減少實(shí)驗(yàn)的盲目性,使學(xué)生真正參與到實(shí)驗(yàn)中來,提高實(shí)驗(yàn)教學(xué)效果,培養(yǎng)學(xué)生的動(dòng)手能力和創(chuàng)新思維能力。
學(xué)生的實(shí)驗(yàn)成績(jī)采取過程記錄法,教師為每一位學(xué)生準(zhǔn)備一張記錄卡,實(shí)時(shí)記錄學(xué)生的實(shí)驗(yàn)情況。
2.統(tǒng)一實(shí)驗(yàn)變?yōu)閷哟位瘜?shí)驗(yàn)
另外傳統(tǒng)的實(shí)驗(yàn)教學(xué)中,所有學(xué)生做的實(shí)驗(yàn)是一樣的。實(shí)際上學(xué)生到了大三,基礎(chǔ)已各不相同,可以根據(jù)學(xué)生的基礎(chǔ)采取層次化實(shí)驗(yàn)教學(xué)。教師可以根據(jù)學(xué)生的具體情況將一個(gè)班分為4組,假設(shè)1組的學(xué)生基礎(chǔ)最好,2組次之,4組最差;每組的學(xué)生人數(shù)可以不一樣多,該課程成績(jī)想得優(yōu)秀的學(xué)生必須選擇1組或2組。針對(duì)4組學(xué)生要求教師準(zhǔn)備4套實(shí)驗(yàn)內(nèi)容供學(xué)生選擇,每組的要求不一樣,具體安排如表2所示。因?yàn)辂}城師范學(xué)院要求一次實(shí)驗(yàn)為25人左右(半個(gè)班級(jí)),所以教師需要同時(shí)指導(dǎo)2組學(xué)生,實(shí)際操作時(shí)可以1組和4組一起做實(shí)驗(yàn),2組和3組一起做實(shí)驗(yàn)。如果教師愿意加班,第一次實(shí)驗(yàn)可以只輔導(dǎo)一組學(xué)生,第二次及以后就可以2個(gè)組同時(shí)做實(shí)驗(yàn),交叉輔導(dǎo)了。
對(duì)于基礎(chǔ)較差的第4組同學(xué),實(shí)驗(yàn)難度不宜太大,要留給學(xué)生一定的思考空間。同樣是設(shè)計(jì)性實(shí)驗(yàn),不同組別的具體內(nèi)容也可以不同,1組難度加大,而4組則簡(jiǎn)單一些。如此訓(xùn)練下來,學(xué)生各有所得,不管基礎(chǔ)好壞,總能學(xué)到一定的知識(shí),甚至有助于基礎(chǔ)差的學(xué)生學(xué)到更多的知識(shí)。
四、考核方式改革
項(xiàng)目化教學(xué)需要改變傳統(tǒng)教學(xué)中一張?jiān)嚲矶ǔ煽?jī)的考核辦法,[5]學(xué)生成績(jī)主要由項(xiàng)目的設(shè)計(jì)決定,要注意到學(xué)生的設(shè)計(jì)思路。理論知識(shí)學(xué)完后教師可以選擇幾個(gè)綜合性項(xiàng)目,學(xué)生從中任選一個(gè)進(jìn)行設(shè)計(jì),這樣可以培養(yǎng)學(xué)生發(fā)現(xiàn)問題和解決問題的能力,也可提高其設(shè)計(jì)能力。
五、小結(jié)
本文根據(jù)VHDL語言及應(yīng)用的特點(diǎn),探索了適于它的項(xiàng)目化教學(xué)。通過項(xiàng)目化教學(xué),廢除注入式教學(xué)方法,建立以學(xué)生為本,教師啟發(fā)引導(dǎo)的教學(xué)方法。通過一個(gè)個(gè)項(xiàng)目和層次化實(shí)驗(yàn),學(xué)生不僅可以熟悉VHDL語言的基本語法和常用語句,還對(duì)硬件描述語言的本質(zhì)有了深刻的認(rèn)識(shí),對(duì)所設(shè)計(jì)的電路有深刻理解,在此基礎(chǔ)上才能更好地使用VHDL語言進(jìn)行電路設(shè)計(jì)。通過多個(gè)項(xiàng)目的訓(xùn)練,學(xué)生的設(shè)計(jì)能力、創(chuàng)造能力和團(tuán)隊(duì)合作能力都可以得到很大提高,因此說項(xiàng)目化教學(xué)是應(yīng)用性強(qiáng)的課程的首選教學(xué)方法。
參考文獻(xiàn):
[1]胡小玲,翟秀艷,袁穎.VHDL的模塊化教學(xué)方法反思與總結(jié)[J].中國(guó)電力教育,2013,29(2):112-113.
[2]周殿鳳.片上可編程系統(tǒng)項(xiàng)目化教學(xué)探討[J].輕工科技,2013,
15(5):190-191.
[3]姚培.教師在理實(shí)一體化教學(xué)學(xué)生評(píng)價(jià)中的角色研究[J].中國(guó)電力教育,2013,29(25):180-181.
篇3
關(guān)鍵詞:VHDL; Max+Plus Ⅱ; 計(jì)數(shù)器; EDA技術(shù)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2010)08-0070-03
Medical Application of EDA Technology Taking VHDL Language as Core
TAN Xiao-ling, DUAN Xin-wen
(Qinghai Normal University, Xining 810008, China)
Abstract: As a new hardware description language, VHDL is mainly used for the description, simulation and automatic design of digital circuits and systems. It is the core technology of current clectronic design automation (EDA) and can be more widely used in the medical speciality and other relative fields along with the development of information technology. In this study, the counter designed with VHDL was applied to human pulse measurement. Compared to the artificial method, the results measured by such counter is more accurate and can be displayed intuitively by the digital tubes. It shows the close contact between the digital system designed with VHDL and medicine, as well as its great prospects on the medical practice. It had proved that the combination of EDA and medicine not only promotes the further application of EDA technology, but also boosts the development of medicine greatly.
Keywords:VHDL; Max+Plus Ⅱ; counter; EDA technology
0 引 言
VHDL超高速集成電路硬件描述語言是隨著集成電路系統(tǒng)化和高度集成化逐步發(fā)展起來的,是一種用于數(shù)字系統(tǒng)設(shè)計(jì)、測(cè)試,面向多領(lǐng)域、多層次的IEEE標(biāo)準(zhǔn)硬件描述語言。它從20世紀(jì)70年代作為電路設(shè)計(jì)工具誕生于美國(guó)國(guó)防部至今,已經(jīng)成為十分流行的硬件描述工具,并且為大多數(shù)EDA工具所支持\。隨著電子技術(shù)的不斷進(jìn)步,數(shù)字系統(tǒng)的設(shè)計(jì)正朝著高速度、大容量、小體積的方向發(fā)展。 傳統(tǒng)的自底而上的模式已不能滿足芯片和系統(tǒng)的設(shè)計(jì)要求。為了提高設(shè)計(jì)效率,能夠簡(jiǎn)化設(shè)計(jì)流程,大幅降低設(shè)計(jì)難度的VHDL設(shè)計(jì)方法受到廣泛關(guān)注。VHDL與其他傳統(tǒng)集成電路描述語言相比,具有明顯優(yōu)勢(shì)\:
(1) 功能強(qiáng)大,描述力強(qiáng)。可用于門級(jí)、電路級(jí)甚至系統(tǒng)級(jí)的描述、仿真和設(shè)計(jì)。
(2) 可移植性好。對(duì)于設(shè)計(jì)和仿真工具及不同的平臺(tái)均可采用相同的描述。
(3) 研制周期短, 成本低。
(4) 可以延長(zhǎng)設(shè)計(jì)的生命周期。
(5) 具有電路仿真與驗(yàn)證功能,用戶甚至不必編寫相量測(cè)試即可進(jìn)行源代碼級(jí)調(diào)試。設(shè)計(jì)者能夠跳過電路實(shí)驗(yàn),直接對(duì)各種方案進(jìn)行比較和選擇,使設(shè)計(jì)效率得以提高。
(6) 對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性。
(7) 語言標(biāo)準(zhǔn)、規(guī)范,易于共享和復(fù)用。
目前,VHDL滲透了電子技術(shù)及其相關(guān)的各個(gè)工業(yè)領(lǐng)域,在工業(yè)設(shè)計(jì)中發(fā)揮著日益重要的作用。在世界范圍內(nèi),關(guān)于VHDL在多個(gè)領(lǐng)域尤其在芯片,系統(tǒng)設(shè)計(jì)方面的應(yīng)用研究已經(jīng)取得眾多矚目成果。
而將VHDL與醫(yī)學(xué)相結(jié)合,勢(shì)必成為電子自動(dòng)化設(shè)計(jì)(EDA)一個(gè)全新的研究方向,本文主要研究將EDA通過VHDL應(yīng)用于醫(yī)學(xué),以對(duì)脈搏的測(cè)量為例,以實(shí)現(xiàn)數(shù)字系統(tǒng)對(duì)人體多種生理活動(dòng)及生理反應(yīng)的直觀精確測(cè)量。
1 實(shí)驗(yàn)設(shè)計(jì)
1.1 EDA技術(shù)在醫(yī)學(xué)教學(xué)中脈搏測(cè)量中的應(yīng)用探討
在臨床診斷,護(hù)理學(xué)等中介紹脈搏的測(cè)量時(shí)認(rèn)為脈搏很容易在手腕掌面外側(cè)跳動(dòng)的橈動(dòng)脈上摸到,也可測(cè)量頸部的頸動(dòng)脈或腹股溝的股動(dòng)脈。其測(cè)量方法是病員手臂放于舒適位置,用食指,中指,無名指的指腹端按壓在橈動(dòng)脈表面,一般病員默數(shù)半分鐘,將所測(cè)的脈率乘以2便是一分鐘的脈數(shù),異常病人測(cè)一分鐘。成年人的脈搏在安靜狀態(tài)下每分鐘是60~80次。如少于60次是心動(dòng)過緩。但訓(xùn)練有素的運(yùn)動(dòng)員,脈搏有時(shí)也在60次以下,這正是心臟健康有力的表現(xiàn)。如超過100次是心動(dòng)過速。體力活動(dòng)或情緒激動(dòng)時(shí),脈搏可暫時(shí)增快,發(fā)燒時(shí)脈搏也增快。一般是體溫每升高1 ℃,脈搏就增加10~20次。此法只能粗略計(jì)算脈搏跳動(dòng),如將VHDL語言應(yīng)用其中,便可以通過EDA實(shí)驗(yàn)箱中的七段數(shù)碼管直觀準(zhǔn)確地看到一分鐘的計(jì)數(shù)結(jié)果,并與之前通過醫(yī)學(xué)教材講授方法測(cè)出結(jié)果相比對(duì),從而判定測(cè)量的正確與否。
1.2 設(shè)計(jì)思路
將脈搏信號(hào)通過脈搏傳感器采集進(jìn)入計(jì)算機(jī),而后作為輸入信號(hào),而此信號(hào)作為脈沖信號(hào),即如時(shí)鐘信號(hào)一般,當(dāng)輸入時(shí)計(jì)數(shù)器開始計(jì)數(shù),如下面設(shè)計(jì)一個(gè)十進(jìn)制計(jì)數(shù)器的VHDL描述便可用來對(duì)所采集的脈搏信號(hào)計(jì)數(shù)\。
1.3 VHDL設(shè)計(jì)流程
VHDL流程設(shè)計(jì)\如圖1所示。
圖1 VHDL流程設(shè)計(jì)圖
現(xiàn)在,計(jì)算機(jī)輔助工程軟件的供應(yīng)商已把日益通用的硬件描述語言VHDL作為其CAD 或EDA 軟件輸入與輸出的標(biāo)準(zhǔn), 其中ALTEKA公司提供的綜合工具M(jìn)ax+Plus Ⅱ,具有全面的邏輯設(shè)計(jì)能力, 從編輯、綜合、布線到仿真、下載都十分方便。
2 設(shè)計(jì)方案與結(jié)果分析
VHDL 語言設(shè)計(jì)十進(jìn)制計(jì)數(shù)器的源程序\:
library ieee;
use ieee.stdlogic1164.all;
use ieee.stdlogicunsigned.all;
entity jsq is
port(cp,rst:in stdlogic;
cp1:out stdlogic;
q:out stdlogicvector(3 downto 0));
end jsq;
architecture behave of jsq is
begin
process(cp,rst)
variable q1:stdlogicvector(3 downto 0);
begin
if rst=′1′ then q1:=(others=>′0′);
elsif cp′event and cp=′1′then
if q1
else q1:=(others=>′0′);
end if;
q
end if;
if q1="1001" then cp1
else cp1
end if;
end process;
end behave;
在程序輸入完成后, 經(jīng)Max+Plus Ⅱ中的Compiler編譯通過后,可用Stimulator進(jìn)行仿真,查看仿真結(jié)果,如圖2所示。
圖2 經(jīng)Max+Plus Ⅱ編譯,通過Stimulator得到的仿真結(jié)果
也可以加入七段顯示譯碼器的VHDL設(shè)計(jì)來通過實(shí)驗(yàn)箱的七段數(shù)碼管掃描顯示計(jì)數(shù)結(jié)果\仿真結(jié)果如圖3所示。
圖3 譯碼器的仿真結(jié)果
代碼如下:
library IEEE;
use ieee.stdlogic1164.all;
use ieee.stdlogicunsigned.all;
entity huay is
port( q1:in stdlogicvector(3 downto 0);
light:OUT stdlogicvector(6 downto 0));
end huay;
architecture behave of huay is
begin
process(q1)
begin
case q1 is
when"0000"=>light
when"0001"=>light
when"0010"=>light
when"0011"=>light
when"0100"=>light
when"0101"=>light
when"0111"=>light
when"1000"=>light
when"1001"=>light
when others=>light
end case;
end process;
end behave;
最終實(shí)現(xiàn)的頂層文件原理圖如圖4所示。
圖4 頂層文件原理圖
頂層文件設(shè)計(jì)如圖4所示,通過該文件可以實(shí)現(xiàn)譯碼,下載到EDA實(shí)驗(yàn)箱時(shí),便可于實(shí)驗(yàn)箱的數(shù)碼管上讀出相應(yīng)的脈搏數(shù),如圖5所示。
圖5 通過數(shù)碼管得到的最終仿真圖
VHDL語言與醫(yī)學(xué)內(nèi)容的結(jié)合,除了應(yīng)用于脈搏的測(cè)量,還可應(yīng)用于心跳及呼吸等的測(cè)量,以及受人體對(duì)聲、光刺激后的生理反應(yīng)時(shí)間的測(cè)定\等。電子自動(dòng)化設(shè)計(jì)(EDA)及其相關(guān)技術(shù),在醫(yī)學(xué)領(lǐng)域具有巨大的應(yīng)用前景,有待進(jìn)一步的研究和發(fā)掘。
3 結(jié) 語
VHDL是一種隨著電子技術(shù)的不斷發(fā)展,為滿足電路系統(tǒng)化和高度集成化要求而發(fā)展起來的一種新型硬件描述語言。VHDL具有廣泛的應(yīng)用范圍,在芯片及電路系統(tǒng)設(shè)計(jì)等方面發(fā)揮著日益重要的作用\。以VHDL為核心的EDA技術(shù)應(yīng)用于醫(yī)學(xué),能直觀準(zhǔn)確的測(cè)量人體的脈搏心跳,呼吸等生理活動(dòng),以及受到外界刺激的生理反應(yīng)等,在醫(yī)學(xué)領(lǐng)域存在廣闊的發(fā)展空間,隨著進(jìn)一步的探索和實(shí)踐,必將對(duì)醫(yī)學(xué)的發(fā)展起到極大的推動(dòng)作用。
參考文獻(xiàn)
[1]陳耀和. VHDL語言設(shè)計(jì)技術(shù)[M]. 北京: 電子工業(yè)出版社, 2004.
[2]汪國(guó)強(qiáng). EDA技術(shù)及應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2006.
[3]潘澤強(qiáng). VHDL語言在數(shù)字電路教學(xué)中的應(yīng)用[J]. 科技資訊, 2008(35): 15.
[4]張順興. 數(shù)字電路與系統(tǒng)設(shè)計(jì)[M]. 南京: 東南大學(xué)出版社, 2004.
[5]余孟嘗. 數(shù)字電子技術(shù)簡(jiǎn)明教程[M]. 3版. 北京: 高等教育出版社, 2006.
[6]朱正偉. EDA技術(shù)及應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2005.
[7]周政新. 電子設(shè)計(jì)自動(dòng)化實(shí)踐與訓(xùn)練[M]. 北京: 中國(guó)民航出版社, 1998.
[8]江曉安. 數(shù)字電子技術(shù)[M]. 西安: 西安電子科技大學(xué)出版社, 2002.
篇4
【關(guān)鍵詞】Silverlight WCF CAD 分布線
在水電、建筑、土木施工、環(huán)境藝術(shù)設(shè)計(jì)、工業(yè)設(shè)計(jì)、服裝設(shè)計(jì)等各行各業(yè)從設(shè)計(jì)、實(shí)施、維護(hù)整個(gè)過程中會(huì)產(chǎn)生大量的CAD圖形文件,依靠傳統(tǒng)的文件存儲(chǔ),會(huì)產(chǎn)生如下問題:
(1)CAD圖形文件存儲(chǔ)到一定級(jí)別的數(shù)量,查詢特別困難。
(2)CAD圖形文件無法直接在Web進(jìn)行查詢和無失真的展示、放大、縮小。
(3)工程用戶無法在CAD圖形文件上直接結(jié)合實(shí)時(shí)數(shù)據(jù),進(jìn)行動(dòng)態(tài)展示和交互。
為了解決工程上的實(shí)際問題,通過對(duì)Silverlight(銀光)技術(shù)深入研究,結(jié)合CAD、Expression Design等軟件能較好的實(shí)現(xiàn)CAD圖形文件在Web端進(jìn)行無失真的展示和交互,同時(shí)跨平臺(tái)、跨瀏覽器,完全滿足用戶需求。
1 系統(tǒng)開發(fā)環(huán)境
本文是Silverlight富客戶端技術(shù)與WCF服務(wù)技術(shù)結(jié)合應(yīng)用于CAD圖形文件展示與交互的嘗試,使用C#語言結(jié)合XAML描述模式開發(fā)。系統(tǒng)采用Expression Blend 4.0 作為Web 前端開發(fā)工具,通過CAD2010和Expression Design 4.0處理CAD圖形原文件,Visual Studio 2010 作為后臺(tái)開發(fā)工具。
Visual Studio 是微軟推行的一套完整的開發(fā)工具,用于完成桌面應(yīng)用程序或Web 應(yīng)用程序等的設(shè)計(jì)、開發(fā)和部署,能夠進(jìn)行工具共享,創(chuàng)建基于混合語言的解決方案。
Expression Blend 是在 Silverlight 和 .NET 平臺(tái)上進(jìn)行互動(dòng)設(shè)計(jì)的工具。它使得用戶體驗(yàn)概念可能在從最初的原型到最終的實(shí)現(xiàn)中都得到忠實(shí)的w現(xiàn)。
Expression Design 是一個(gè)專業(yè)的設(shè)計(jì)工具。它可以創(chuàng)建圖形資源,并在 Expression Studio:Expression Blend 和 Expression Web 中創(chuàng)建的應(yīng)用程序中使用。
2 CAD圖形的展示與實(shí)現(xiàn)
2.1 圖形的處理
通過CAD2010打開CAD圖形原始文件(*.dwg),點(diǎn)擊文件-》輸出,保存為圖元文件(*.wmf)。該文件為矢量文件,放大和縮小不變形、不失真。
打開Expression Design 4.0軟件,點(diǎn)擊文件-》打開,查找上一步處理過的圖元文件(*.wmf),選中打開。處理過的CAD圖形文件就顯示在Expression Design畫布上。點(diǎn)擊文件-》導(dǎo)出,為XAML文件,即可在Silverlight和WPF平臺(tái)上展示,如圖1。
可以將處理過的CAD圖形文件以及CAD圖形文件的一些索引信息放入數(shù)據(jù)庫,方便CAD圖形的管理和索引工作,能快速實(shí)現(xiàn)CAD圖形的查詢和其它信息系統(tǒng)的使用。
2.2 后臺(tái)服務(wù)
Silverlight所有后臺(tái)服務(wù)通過WCF服務(wù)完成,Silverlight前臺(tái)獲取用戶請(qǐng)求,傳遞給WCF服務(wù),WCF服務(wù)通過后臺(tái)處理后,異步返回給Silverlight前臺(tái)用戶。
WCF服務(wù)包括CAD圖形文件信息管理和下載、用戶通過關(guān)鍵字查詢CAD圖形文件、查詢到的CAD圖形文件下載到Silverlight前臺(tái)。同時(shí)WCF服務(wù)還提供CAD文件熱點(diǎn)坐標(biāo)信息、以及用戶與CAD圖形文件交互信息、熱點(diǎn)實(shí)測(cè)數(shù)據(jù)、熱點(diǎn)歷史數(shù)據(jù)等等。
2.3 Silverlight前端處理
Silverlight通過后臺(tái)服務(wù)下載到所需CAD圖形XAML文件,放入畫布上。通過Silverlight提供的放大、縮小、平移等功能,方便用戶對(duì)CAD圖形進(jìn)行各種操作。
Silverlight具有豐富的繪圖功能,可以以CAD圖形文件為地圖,根據(jù)各種業(yè)務(wù)需求,在CAD圖形文件上繪制各種圖形,同時(shí)結(jié)合后臺(tái)服務(wù),查詢各種信息,在CAD圖形文件上進(jìn)行展示。
Silverlight還具有豐富的動(dòng)畫功能,可以結(jié)合后臺(tái)服務(wù),查詢CAD圖形文件上熱點(diǎn)實(shí)測(cè)、歷史數(shù)據(jù),在CAD圖形上繪制各種生動(dòng)、形象、直觀的動(dòng)畫。
3 應(yīng)用
在大壩設(shè)計(jì)、施工、維護(hù)中會(huì)產(chǎn)生了大量的CAD圖形文件,并且在這些CAD圖形文件中會(huì)標(biāo)注大量的監(jiān)測(cè)儀器。通過Silverlight技術(shù)結(jié)合WCF服務(wù),實(shí)現(xiàn)了CAD圖形文件在Web端快速查詢、展示和日常操作,以及基于CAD圖形文件為底圖的分布線繪制。
3.1 監(jiān)測(cè)布置圖
監(jiān)測(cè)布置圖實(shí)現(xiàn)了大量CAD圖形文件查詢、展示、放大、縮小、移動(dòng)等功能,提高了工程用戶的工作效率,節(jié)省了大量時(shí)間,如圖2。
3.2 分布線
大壩日常維護(hù)人員迫切希望能在CAD圖形文件直接看到監(jiān)測(cè)儀器實(shí)測(cè)數(shù)據(jù),同時(shí)可以查詢一段時(shí)間各個(gè)測(cè)點(diǎn)測(cè)值,并且通過動(dòng)畫動(dòng)態(tài)展示每個(gè)測(cè)點(diǎn)測(cè)值變化趨勢(shì),從而判斷每個(gè)測(cè)點(diǎn)變化情況,為后期采取相應(yīng)措施提供依據(jù)。Silverlight提供了豐富的動(dòng)畫功能,能快速實(shí)現(xiàn)用戶需求,通過WCF服務(wù)查詢各測(cè)點(diǎn)測(cè)值,供Silverlight前端調(diào)用,為用戶在前端提供豐富的交互體驗(yàn),如圖3。
4 結(jié)語
本文研究了基于Silverlight技術(shù)下的CAD圖形文件應(yīng)用開發(fā),并在此基礎(chǔ)上實(shí)現(xiàn)了CAD圖形文件在Web端的查詢、放大、縮小、移動(dòng)等操作,同時(shí)基于CAD文件為底圖開發(fā)了分布線動(dòng)畫功能,實(shí)現(xiàn)了用戶與CAD圖形間交互,滿足了用戶對(duì)CAD圖形的各種需求,極大的提高了用戶工作效率和使用體驗(yàn)。
同時(shí)基于矢量圖形在Silverlight的展示和動(dòng)畫功能技術(shù)研究,可以結(jié)合各行各業(yè)、各種需求開發(fā)出豐富多彩的富客戶端插件,在各行各業(yè)、各個(gè)平臺(tái)進(jìn)行應(yīng)用。
參考文獻(xiàn)
[1]魏永超. Silverlight 3.0開發(fā)詳解與最佳實(shí)踐[M].北京:清華大學(xué)出版社,2003
[2](美)西爾伯沙茨等著,楊冬青等譯.數(shù)據(jù)庫系統(tǒng)概念[M].北京:機(jī)械工業(yè)出版社,2005.
篇5
利用硬件描述語言VHDL,數(shù)字電路系統(tǒng)可從系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和門級(jí)三個(gè)不同層次進(jìn)行設(shè)計(jì),即上層到下層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,利用EDA工具,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過自動(dòng)綜合工具轉(zhuǎn)換到門級(jí)電路網(wǎng)表。接著,再用專用集成電路(ASIC)或現(xiàn)場(chǎng)可編程門陣列(FPGA)自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu)。目前,這種高層次設(shè)計(jì)的方法已被廣泛采用。據(jù)統(tǒng)計(jì),目前在美國(guó)硅谷約有90%以上的ASIC和FPGA采用硬件描述語言進(jìn)行設(shè)計(jì)。VHDL的應(yīng)用已成為當(dāng)今以及未來EDA解決方案的核心,而且是復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)的核心。
一、VHDL的特點(diǎn)
VHDL是一種全方位的硬件描述語言,具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門級(jí)三個(gè)不同層次的設(shè)計(jì),支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強(qiáng),因此在實(shí)際應(yīng)用中越來越廣泛。VHDL的主要特點(diǎn)有:
1.功能強(qiáng)大。與其他的硬件描述語言相比,VHDL具有更強(qiáng)的描述能力和語言結(jié)構(gòu),可以用簡(jiǎn)潔的源代碼描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后直接生成電路級(jí)描述。
2.系統(tǒng)硬件描述能力強(qiáng)。VHDL具有豐富的數(shù)據(jù)類型,豐富的仿真語句和庫函數(shù),在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)功能的可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。
3.設(shè)計(jì)與工藝無關(guān)。用VHDL進(jìn)行硬件電路設(shè)計(jì)時(shí),并不需要首先考慮選擇完成設(shè)計(jì)的器件。VHDL的硬件描述與具體的工藝和硬件結(jié)構(gòu)無關(guān),因此VHDL設(shè)計(jì)程序的硬件實(shí)現(xiàn)目標(biāo)器件有廣闊的選擇范圍。
4.設(shè)計(jì)方法靈活,易于修改。VHDL語言標(biāo)準(zhǔn)、規(guī)范,大多數(shù)EDA工具都支持VHDL。在硬件設(shè)計(jì)過程中,用VHDL語言編寫的源程序便于管理,VHDL易讀、結(jié)構(gòu)模塊化,方便修改、交流和保存。
5.支持廣泛,移植能力強(qiáng)。VHDL是一個(gè)標(biāo)準(zhǔn)語言,在電子設(shè)計(jì)領(lǐng)域,為眾多的EDA工具支持,因此移植能力好。
二、VHDL的結(jié)構(gòu)和設(shè)計(jì)方法
1.VHDL的基本結(jié)構(gòu)
VHDL的結(jié)構(gòu)模型包括五個(gè)部分:實(shí)體、結(jié)構(gòu)體、配置、程序包、庫。前四種可分別編譯,編譯后放入庫中,以備上層模塊調(diào)用。
(1)實(shí)體定義了器件的輸入輸出端口,設(shè)計(jì)實(shí)體是VHDL的基本單元,可以表示整個(gè)系統(tǒng)、一塊電路板、一個(gè)芯片或一個(gè)門電路。
(2)結(jié)構(gòu)體定義實(shí)體的實(shí)現(xiàn),即描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為。
(3)配置用于從庫中選取所需單元來組成系統(tǒng)設(shè)計(jì)的不同版本,為實(shí)體選定某個(gè)特定的結(jié)構(gòu)體。
(4)程序包存放各設(shè)計(jì)模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等。
(5)庫用來存放編譯結(jié)果,包括實(shí)體、結(jié)構(gòu)體、配置、程序包。
2.VHDL的設(shè)計(jì)方法
VHDL將層次化的設(shè)計(jì)方法引入到硬件描述中,自上向下的設(shè)計(jì)是從系統(tǒng)級(jí)開始,將整個(gè)系統(tǒng)劃分為子模塊,然后對(duì)這些子模塊再進(jìn)行進(jìn)一步的劃分,直到可以直接用庫中的元件來實(shí)現(xiàn)為止。在設(shè)計(jì)方法上,將傳統(tǒng)的“電路設(shè)計(jì)硬件搭試調(diào)試焊接”模式轉(zhuǎn)變?yōu)椤肮δ茉O(shè)計(jì)軟件模擬仿真下載”方式。數(shù)字系統(tǒng)的設(shè)計(jì)采用自頂向下的方法,最頂層電路設(shè)計(jì)是指系統(tǒng)的整體要求,最下層是指具體邏輯電路的實(shí)現(xiàn)。一般的電子系統(tǒng)設(shè)計(jì)可分為兩個(gè)階段,第一階段是系統(tǒng)的邏輯設(shè)計(jì)和仿真,得出的是門級(jí)電路的原理圖或網(wǎng)表;第二階段設(shè)計(jì)如印刷電路板的布局布線,集成電路的版圖設(shè)計(jì)等,得出的是最終的物理設(shè)計(jì)。
三、VHDL的應(yīng)用實(shí)例
筆者以Max+plusⅡ軟件作為平臺(tái)的一個(gè)空調(diào)機(jī)控制器的設(shè)計(jì)為例,談?wù)刅HDL在數(shù)字電路設(shè)計(jì)中的具體應(yīng)用。
實(shí)現(xiàn)一個(gè)控制器,常用有限狀態(tài)機(jī)方法實(shí)現(xiàn)。傳統(tǒng)的設(shè)計(jì)方法主要包括5個(gè)過程:確定原始狀態(tài)圖,狀態(tài)簡(jiǎn)化,狀態(tài)編碼,觸發(fā)器類型的選擇及控制邏輯方程和輸出方程的確定,畫出電路原理圖。采用這種方法設(shè)計(jì)復(fù)雜狀態(tài)機(jī)將會(huì)十分繁雜。
利用VHDL來設(shè)計(jì)有限狀態(tài)機(jī),可以充分發(fā)揮硬件描述語言的抽象能力,進(jìn)行功能描述,而具體的邏輯化簡(jiǎn)和電路設(shè)計(jì)可由計(jì)算機(jī)自動(dòng)完成,從而提高了設(shè)計(jì)的工作效率,并且條理清晰,修改起來也更方便,所以很適合復(fù)雜時(shí)序電路的設(shè)計(jì)。應(yīng)用VHDL設(shè)計(jì)狀態(tài)機(jī)的步驟如下:第一,根據(jù)系統(tǒng)要求確定狀態(tài)數(shù)量、狀態(tài)轉(zhuǎn)移的條件和各狀態(tài)輸出信號(hào)的賦值,并畫出狀態(tài)轉(zhuǎn)移圖;第二,按照狀態(tài)轉(zhuǎn)移圖編寫有限狀態(tài)機(jī)的VHDL程序;第三,利用EDA工具進(jìn)行功能仿真驗(yàn)證;第四,編程下載。
空調(diào)機(jī)控制器的設(shè)計(jì)。它的兩個(gè)輸入來自溫度傳感器,用于監(jiān)測(cè)室內(nèi)溫度。如果室內(nèi)溫度正常,則temp-high和temp-low均為‘0’;如果室內(nèi)溫度過高,則temp-high為‘1’,temp-low為‘0’;如果室內(nèi)溫度過低,則temp-high為‘0’,temp-low為‘1’。根據(jù)temp-high和temp-low的值來決定當(dāng)前的工作狀態(tài),并給出相應(yīng)的制冷和制熱輸出信號(hào)。
按照繪制好的狀態(tài)轉(zhuǎn)移圖編寫VHDL程序,編程中采用case語句來描述狀態(tài)的改變,它具有直觀、條理清晰及易于修改等特點(diǎn)。也可以采用不同進(jìn)程來實(shí)現(xiàn)狀態(tài)的改變,所以編程方法多種。
功能仿真。利用Max+plusⅡ軟件工具對(duì)所編程序進(jìn)行編譯、仿真。當(dāng)temp-low為“1”,即溫度過低,則heat為“1”(制熱);當(dāng)temp-high為“1”,即溫度過高,則cool為“1”(制冷)。經(jīng)綜合后的仿真分析表明,該方案是合理可行的。通過仿真后,即可編程下載。
四、使用VHDL應(yīng)注意的一些問題
由于VHDL語言是描述硬件行為的,相對(duì)其它開發(fā)軟件的高級(jí)語言而言,在編程過程中有一些特殊性,所以經(jīng)常會(huì)出現(xiàn)語法正確但無法綜合的問題。其原因多半因?yàn)榫幊陶邔?duì)硬件內(nèi)部的工作原理了解不夠,寫出的代碼硬件無法實(shí)現(xiàn)。在此總結(jié)出一些應(yīng)注意的問題:
篇6
1.1設(shè)計(jì)背景
隨著出租車行業(yè)的發(fā)展,對(duì)出租車計(jì)費(fèi)器的要求也越來越高。二十世紀(jì)后半期,隨著集成電路和計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)字系統(tǒng)也得到了飛速發(fā)展,其實(shí)現(xiàn)方法經(jīng)歷了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的過程。同時(shí)為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成電路(ASIC)逐漸取代了通用全硬件LSI電路,而ASIC以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業(yè)界大量可編程邏輯器件(PLD),尤其是現(xiàn)場(chǎng)可編程邏輯器件(FPLD)被大量地應(yīng)用在ASIC的制作當(dāng)中。在可編程集成電路的開發(fā)過程中,以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)最新成果的電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù)主要能輔助進(jìn)行三方面的設(shè)計(jì)工作:IC設(shè)計(jì),電子電路設(shè)計(jì)以及PCB設(shè)計(jì)
理想的可編程邏輯開發(fā)系統(tǒng)能符合大量的設(shè)計(jì)要求:它能夠支持不同結(jié)構(gòu)的器件,在多種平臺(tái)運(yùn)行,提供易于使用的界面,并且有廣泛的特征。此外,一個(gè)設(shè)計(jì)系統(tǒng)應(yīng)該能給設(shè)計(jì)師提供充分自由的設(shè)計(jì)輸入方法和設(shè)計(jì)工具選擇。Altered公司開發(fā)的MAX+PLUSⅡ開發(fā)系統(tǒng)能充分滿足可編程邏輯設(shè)計(jì)所有要求。
MAX+PLUSⅡ設(shè)計(jì)環(huán)境所提供的靈活性和高效性是無可比擬的。其豐富的圖形界面,輔之以完整的、可及時(shí)訪問的在線文檔,使設(shè)計(jì)人員能夠輕松、愉快地掌握和使用MAX+PLUSⅡ軟件。
編程器是一種專門用于對(duì)可編程器(如EPROM,EEPROM,GAL,CPLD,PAL等)進(jìn)行編程的專業(yè)設(shè)備
PLD器件的邏輯功能描述一般分為原理圖描述和硬件描述語言描述,原理圖描述是一種直觀簡(jiǎn)便的方法,它可以將現(xiàn)有的小規(guī)模集成電路實(shí)現(xiàn)的功能直接用PLD器件來實(shí)現(xiàn),而不必去將現(xiàn)有的電路用語言來描述,但電路圖描述方法無法做到簡(jiǎn)練;硬件描述語言描述是可編程器件設(shè)計(jì)的另一種描述方法,語言描述可能精確和簡(jiǎn)練地表示電路的邏輯功能,現(xiàn)在PLD的設(shè)計(jì)過程中廣泛使用。常用的硬件描述語言有ABEL,VHDL語言等,其中ABEL是一種簡(jiǎn)單的硬件描述語言,其支持布爾方程、真值表、狀態(tài)機(jī)等邏輯描述,適用于計(jì)數(shù)器、譯碼器、運(yùn)算電路、比較器等邏輯功能的描述;VHDL語言是一種行為描述語言,其編程結(jié)構(gòu)類似于計(jì)算機(jī)中的C語言,在描述復(fù)雜邏輯設(shè)計(jì)時(shí),非常簡(jiǎn)潔,具有很強(qiáng)的邏輯描述和仿真能力,是未來硬件設(shè)計(jì)語言的主流。
VHDL就是超高速集成電路硬件描述語言。覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言。在VHDL語言中,設(shè)計(jì)的原始描述可以非常簡(jiǎn)練,經(jīng)過層層加強(qiáng)后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。具有良好的可讀性,即容易被計(jì)算機(jī)接受,也容易被讀者理解。使用期長(zhǎng),不會(huì)因工藝變化而使描述過時(shí)。因?yàn)閂HDL的硬件描述與工藝無關(guān),當(dāng)工藝改變時(shí),只需修改相應(yīng)程序中的屬性參數(shù)即可。支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用。一個(gè)大規(guī)模的設(shè)計(jì)不可能由一個(gè)人獨(dú)立完成,必須由多人共同承擔(dān),VHDL為設(shè)計(jì)的分解和設(shè)計(jì)的再利用提供了有力的支持。
1.2EDA發(fā)展概況
電子設(shè)計(jì)技術(shù)的核心就是EDA技術(shù),EDA是指以計(jì)算機(jī)為工作臺(tái),融合應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)最新成果而研制成的電子CAD通用軟件包,主要能輔助進(jìn)行三方面的設(shè)計(jì)工作,即IC設(shè)計(jì)、電子電路設(shè)計(jì)和PCB設(shè)計(jì)。EDA技術(shù)已有30年的發(fā)展歷程,大致可分為三個(gè)階段。70年代為計(jì)算機(jī)輔助設(shè)計(jì)(CAD)階段,人們開始用計(jì)算機(jī)輔助進(jìn)行IC版圖編輯、PCB布局布線,取代了手工操作。80年代為計(jì)算機(jī)輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì),并且通過電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起,實(shí)現(xiàn)了工程設(shè)計(jì)。CAE的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動(dòng)布局布線,PCB后分析。90年代為電子系統(tǒng)設(shè)計(jì)自動(dòng)化(EDA)階段。
中國(guó)EDA市場(chǎng)已漸趨成熟,不過大部分設(shè)計(jì)工程師面向的是PC主板和小型ASIC領(lǐng)域,僅有小部分(約11%)的設(shè)計(jì)人員開發(fā)復(fù)雜的片上系統(tǒng)器件。為了與臺(tái)灣和美國(guó)的設(shè)計(jì)工程師形成更有力的競(jìng)爭(zhēng),中國(guó)的設(shè)計(jì)隊(duì)伍有必要購入一些最新的EDA技術(shù)。
在信息通信領(lǐng)域,要優(yōu)先發(fā)展高速寬帶信息網(wǎng)、深亞微米集成電路、新型元器件、計(jì)算機(jī)及軟件技術(shù)、第三代移動(dòng)通信技術(shù)、信息管理、信息安全技術(shù),積極開拓以數(shù)字技術(shù)、網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的新一代信息產(chǎn)品,發(fā)展新興產(chǎn)業(yè),培育新的經(jīng)濟(jì)增長(zhǎng)點(diǎn)。要大力推進(jìn)制造業(yè)信息化,積極開展計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助工程(CAE)、計(jì)算機(jī)輔助工藝(CAPP)、計(jì)算機(jī)機(jī)輔助制造(CAM)、產(chǎn)品數(shù)據(jù)管理(PDM)、制造資源計(jì)劃(MRPII)及企業(yè)資源管理(ERP)等。有條件的企業(yè)可開展“網(wǎng)絡(luò)制造”,便于合作設(shè)計(jì)、合作制造,參與國(guó)內(nèi)和國(guó)際競(jìng)爭(zhēng)。開展“數(shù)控化”工程和“數(shù)字化”工程。自動(dòng)化儀表的技術(shù)發(fā)展趨勢(shì)的測(cè)試技術(shù)、控制技術(shù)與計(jì)算機(jī)技術(shù)、通信技術(shù)進(jìn)一步融合,形成測(cè)量、控制、通信與計(jì)算機(jī)(M3C)結(jié)構(gòu)。在ASIC和PLD設(shè)計(jì)方面,向超高速、高密度、低功耗、低電壓方向發(fā)展。外設(shè)技術(shù)與EDA工程相結(jié)合的市場(chǎng)前景看好,如組合超大屏幕的相關(guān)連接,多屏幕技術(shù)也有所發(fā)展。
中國(guó)自1995年以來加速開發(fā)半導(dǎo)體產(chǎn)業(yè),先后建立了幾所設(shè)計(jì)中心,推動(dòng)系列設(shè)計(jì)活動(dòng)以應(yīng)對(duì)亞太地區(qū)其它EDA市場(chǎng)的競(jìng)爭(zhēng)。
在EDA軟件開發(fā)方面,目前主要集中在美國(guó)。但各國(guó)也正在努力開發(fā)相應(yīng)的工具。日本、韓國(guó)都有ASIC設(shè)計(jì)工具,但不對(duì)外開放。中國(guó)華大集成電路設(shè)計(jì)中心,也提供IC設(shè)計(jì)軟件,但性能不是很強(qiáng)。相信在不久的將來會(huì)有更多更好的設(shè)計(jì)工具有各地開花并結(jié)果。據(jù)最新統(tǒng)計(jì)顯示,中國(guó)和印度正在成為電子設(shè)計(jì)自動(dòng)化領(lǐng)域發(fā)展最快的兩個(gè)市場(chǎng),年復(fù)合增長(zhǎng)率分別達(dá)到了50%和30%。
EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計(jì)工具趨于完美的地步。EDA市場(chǎng)日趨成熟,但我國(guó)的研發(fā)水平還很有限,需迎頭趕上。
可編程邏輯器件自70年代以來,經(jīng)歷了PAL、GALGPLD、FPGA幾個(gè)發(fā)展階段,其中CPLD/FPGA高密度可編程邏輯器件,目前集成度已高達(dá)200萬門/片,它將各模塊ASC集成度高的優(yōu)點(diǎn)和可編程邏輯器件設(shè)計(jì)生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場(chǎng)擴(kuò)大時(shí),它可以很容易地轉(zhuǎn)換掩模ASIC實(shí)現(xiàn),因此開發(fā)風(fēng)險(xiǎn)也大為降低。
硬件描述語言(HDL)是一種用于設(shè)計(jì)硬件電子系統(tǒng)的計(jì)算機(jī)語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)的門級(jí)描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計(jì)。例如一個(gè)32位的加法器,利用圖形輸入軟件需要輸人500至1000個(gè)門,而利用VHDL語言只需要書寫一行“A=B+C”即可。而且VHDL語言可讀性強(qiáng),易于修改和發(fā)現(xiàn)錯(cuò)誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發(fā),互不兼容,而且不支持多層次設(shè)計(jì),層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國(guó)國(guó)防部正式推出了高速集成電路硬件描述語言VHDL,1987年IEEE采納VHDL為硬件描述語言標(biāo)準(zhǔn)(IEEESTD-1076)。
VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級(jí)。寄存器傳輸級(jí)和邏輯門多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個(gè)自頂向下或由下向上的電路設(shè)計(jì)過程都可以用VHDL來完成。VHDL還具有以下優(yōu)點(diǎn):(1)VHDL的寬范圍描述能力使它成為高層進(jìn)設(shè)計(jì)的核心,將設(shè)計(jì)人員的工作重心提高到了系統(tǒng)功能的實(shí)現(xiàn)與調(diào)試,而花較少的精力于物理實(shí)現(xiàn)。VHDL可以用簡(jiǎn)潔明確的代碼描述來進(jìn)行復(fù)雜控制邏輯設(shè)計(jì),靈活且方便,而且也便于設(shè)計(jì)結(jié)果的交流、保存和重用。(3)VHDL的設(shè)計(jì)不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。(4)VHDL是一個(gè)標(biāo)準(zhǔn)語言,為眾多的EDA廠商支持,因此移植性好。傳統(tǒng)的硬件電路設(shè)計(jì)方法是采用自下而上的設(shè)計(jì)方法,即根據(jù)系統(tǒng)對(duì)硬件的要求,詳細(xì)編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對(duì)系統(tǒng)的功能進(jìn)行細(xì)化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進(jìn)行各功能模塊的細(xì)化和電路設(shè)計(jì);各功能模塊電路設(shè)計(jì)、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進(jìn)行系統(tǒng)的調(diào)試,最后完成整個(gè)系統(tǒng)的硬件設(shè)計(jì)。采用傳統(tǒng)方法設(shè)計(jì)數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時(shí),設(shè)計(jì)者必須具備較好的設(shè)計(jì)經(jīng)驗(yàn),而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計(jì)者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(HardwareDescriptionLanguage,簡(jiǎn)稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計(jì)環(huán)境中使用,這給設(shè)計(jì)者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語言作為可相互交流的設(shè)計(jì)環(huán)境已勢(shì)在必行。于是,美國(guó)于1981年提出了一種新的、標(biāo)準(zhǔn)化的HDL,稱之為VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,簡(jiǎn)稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語言。設(shè)計(jì)者可以利用這種語言來描述自己的設(shè)計(jì)思想,然后利用電子設(shè)計(jì)自動(dòng)化工具進(jìn)行仿真,再自動(dòng)綜合到門電路,最后用PLD實(shí)現(xiàn)其功能。
覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言。在VHDL語言中,設(shè)計(jì)的原始描述可以非常簡(jiǎn)練,經(jīng)過層層加強(qiáng)后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。
具有良好的可讀性,即容易被計(jì)算機(jī)接受,也容易被讀者理解。
使用期長(zhǎng),不會(huì)因工藝變化而使描述過時(shí)。因?yàn)閂HDL的硬件描述與工藝無關(guān),當(dāng)工藝改變時(shí),只需修改相應(yīng)程序中的屬性參數(shù)即可。
支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用。一個(gè)大規(guī)模的設(shè)計(jì)不可能由一個(gè)人獨(dú)立完成,必須由多人共同承擔(dān),VHDL為設(shè)計(jì)的分解和設(shè)計(jì)的再利用提供了有力的支持。
當(dāng)電路系統(tǒng)采用VHDL語言設(shè)計(jì)其硬件時(shí),與傳統(tǒng)的電路設(shè)計(jì)方法相比較,具有如下的特點(diǎn):
即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計(jì)的內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。在設(shè)計(jì)的過程中,對(duì)系統(tǒng)自上而下分成三個(gè)層次進(jìn)行設(shè)計(jì):
第一層次是行為描述。所謂行為描述,實(shí)質(zhì)上就是對(duì)整個(gè)系統(tǒng)的數(shù)學(xué)模型的描述。一般來說,對(duì)系統(tǒng)進(jìn)行行為描述的目的是試圖在系統(tǒng)設(shè)計(jì)的初始階段,通過對(duì)系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計(jì)中存在的問題。在行為描述階段,并不真正考慮其實(shí)際的操作和算法用何種方法來實(shí)現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達(dá)系統(tǒng)設(shè)計(jì)的要求。
第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實(shí)現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達(dá)式,才能進(jìn)行邏輯綜合。
第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級(jí)網(wǎng)絡(luò)表)。此時(shí),如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對(duì)綜合的結(jié)果在門電路級(jí)上進(jìn)行仿真,并檢查其時(shí)序關(guān)系。
應(yīng)用邏輯綜合工具產(chǎn)生的門網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼,即可利用PLD實(shí)現(xiàn)硬件電路的設(shè)計(jì)。
由自上而下的設(shè)計(jì)過程可知,從總體行為設(shè)計(jì)開始到最終的邏輯綜合,每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計(jì)中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計(jì)周期。
系統(tǒng)可大量采用PLD芯片。
由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設(shè)計(jì)數(shù)字系統(tǒng)時(shí),可以根據(jù)硬件電路的設(shè)計(jì)需要,自行利用PLD設(shè)計(jì)自用的ASIC芯片,而無須受通用元器件的限制。
EDA系統(tǒng)框架結(jié)構(gòu)EDA系統(tǒng)框架結(jié)構(gòu)(FRAMEWORK)是一套配置和使用EDA軟件包的規(guī)范。目前主要的EDA系統(tǒng)都建立了框架結(jié)構(gòu),如CADENCE公司的DesignFramework,Mentor公司的FalconFramework,而且這些框架結(jié)構(gòu)都遵守國(guó)際CFI組織制定的統(tǒng)一技術(shù)標(biāo)準(zhǔn)。框架結(jié)構(gòu)能將來自不同EDA廠商的工具軟件進(jìn)行優(yōu)化組合,集成在一個(gè)易于管理的統(tǒng)一的環(huán)境之下,而且還支持任務(wù)之間、設(shè)計(jì)師之間以及整個(gè)產(chǎn)品開發(fā)過程中的信息傳輸與共享,是并行工程和自頂向下設(shè)計(jì)施的實(shí)現(xiàn)基礎(chǔ)。
EDA技術(shù)的每一次進(jìn)步,都引起了設(shè)計(jì)層次上的一次飛躍,從設(shè)計(jì)層次上分,70年代為物理級(jí)設(shè)計(jì)(CAD),80年代為電路級(jí)設(shè)計(jì)(CAE),90年代進(jìn)入到系統(tǒng)級(jí)設(shè)計(jì)(EDA)。物理級(jí)設(shè)計(jì)主要指IC版圖設(shè)計(jì),一般由半導(dǎo)體廠家完成,對(duì)電子工程師沒有太大的意義,因此本文重點(diǎn)介紹電路級(jí)設(shè)計(jì)和系統(tǒng)級(jí)設(shè)計(jì)。
仿真通過后,根據(jù)原理圖產(chǎn)生的電氣連接網(wǎng)絡(luò)表進(jìn)行PCB板的自動(dòng)布局布線。在制作PCB板之前還可以進(jìn)行PCB后分析,其中包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并可將分析后的結(jié)果參數(shù)反標(biāo)回電路圖,進(jìn)行第二次仿真,也稱為后仿真。后仿真主要是檢驗(yàn)PCB板在實(shí)際工作環(huán)境中的可行性。
由此可見,電路級(jí)的EDA技術(shù)使電子工程師在實(shí)際的電子系統(tǒng)產(chǎn)生前,就可以全面地了解系統(tǒng)的功能特性和物理特性,從而將開發(fā)風(fēng)險(xiǎn)消滅在設(shè)計(jì)階段,縮短了開發(fā)時(shí)間,降低了開發(fā)成本。
篇7
【關(guān)鍵詞】現(xiàn)代EDA技術(shù)教學(xué)內(nèi)容改革
【中圖分類號(hào)】G【文獻(xiàn)標(biāo)識(shí)碼】A
【文章編號(hào)】0450-9889(2012)05C-Otqt3--OA
現(xiàn)代EDA技術(shù)是一門相對(duì)前沿和復(fù)雜的課程,該課程要求學(xué)生具備一定的嵌入式技術(shù)知識(shí),而且課程的內(nèi)容對(duì)學(xué)生的理解能力和知識(shí)的綜合應(yīng)用能力提出了較高的要求。在傳統(tǒng)的現(xiàn)代EDA技術(shù)課程授課過程中,由于對(duì)課程的教學(xué)任務(wù)和目標(biāo)不是很明確,因此在授課過程中往往是強(qiáng)調(diào)該課程的一些基本概念和基本原理的介紹。然而,從以往的教學(xué)經(jīng)驗(yàn)進(jìn)行統(tǒng)計(jì)分析發(fā)現(xiàn),僅僅對(duì)學(xué)生進(jìn)行一些相關(guān)概念和原理的介紹,遠(yuǎn)不能滿足當(dāng)前社會(huì)企業(yè)對(duì)EDA技術(shù)應(yīng)用的需求。這就對(duì)現(xiàn)代EDA技術(shù)的教學(xué)內(nèi)容及教學(xué)組織形式提出了新的要求。為此,本文將在現(xiàn)有的現(xiàn)代EDA技術(shù)課程教學(xué)內(nèi)容及教學(xué)實(shí)施方案的基礎(chǔ)上,對(duì)當(dāng)前教學(xué)過程中存在的問題和不足進(jìn)行深入分析,結(jié)合當(dāng)前現(xiàn)代電子設(shè)計(jì)企業(yè)對(duì)EDA技術(shù)應(yīng)用的需求,制定符合高職嵌入式專業(yè)學(xué)生基礎(chǔ)條件的教學(xué)內(nèi)容及組織形式,以提高高職院校學(xué)生掌握和應(yīng)用現(xiàn)代EDA技術(shù)設(shè)計(jì)關(guān)鍵技術(shù)的能力。
一、傳統(tǒng)的教學(xué)內(nèi)容分析
現(xiàn)代EDA技術(shù)課程經(jīng)過近年來的實(shí)踐,已經(jīng)形成了一套相對(duì)完整的教學(xué)內(nèi)容及教學(xué)方法,是在傳統(tǒng)的教學(xué)過程中現(xiàn)代EDA技術(shù)課程的教學(xué)內(nèi)容及課時(shí)安排。在該表中同時(shí)也給出了對(duì)不同教學(xué)內(nèi)容的教學(xué)要求。通過對(duì)傳統(tǒng)的教學(xué)內(nèi)容進(jìn)行分析可以發(fā)現(xiàn),在傳統(tǒng)的教學(xué)內(nèi)容中,占整個(gè)教學(xué)學(xué)時(shí)最多的一部分是VHDL程序開發(fā)部分。在實(shí)際的教學(xué)過程中,VHDL語言的教學(xué)內(nèi)容分兩個(gè)部分來開展,前半部分是VHDL語言的基礎(chǔ)部分,主要介紹VHDL的常用語句、形式。在
在課程的教學(xué)內(nèi)容中還包括FPGA開發(fā)簡(jiǎn)介、ISE開發(fā)環(huán)境介紹,以及電路仿真配置下載。從整個(gè)教學(xué)內(nèi)容來看,傳統(tǒng)的現(xiàn)代EDA技術(shù)課程中介紹的內(nèi)容非常多,涉及的面也很廣,在實(shí)際的教學(xué)過程中,學(xué)生也普遍反映該課程的信息量非常大,但是,現(xiàn)代EDA技術(shù)課程在實(shí)際教學(xué)后一階段是VHDL程序開發(fā)的高級(jí)階段,主要給學(xué)生介紹VHDL環(huán)境下的建模方法,以比較典型常用的門級(jí)建模、行為級(jí)建模、結(jié)構(gòu)建模等三種方式分別闡述VHDL程序的開發(fā)方法和開發(fā)過程,這兩部分的內(nèi)容都開設(shè)了一定的實(shí)驗(yàn)教學(xué)時(shí)間。
過程中所取得的教學(xué)效果卻并不是很理想。分析其原因,在于教學(xué)內(nèi)容的課程設(shè)置上存在比較大的問題。雖然表l所給出的教學(xué)內(nèi)容及課時(shí)安排,單純從每一個(gè)章節(jié)來看似乎都是很有必要的,而且課時(shí)安排也很合理,但是縱觀整個(gè)教學(xué)內(nèi)容就可以發(fā)現(xiàn),傳統(tǒng)的教學(xué)過程中對(duì)教學(xué)內(nèi)容更多的偏重于現(xiàn)代EDA技術(shù)中的相關(guān)核心知識(shí)的介紹,主要是給學(xué)生灌輸EDA設(shè)計(jì)的一些基本概念和基本方法,在各個(gè)章節(jié)的知識(shí)內(nèi)容中并沒有形成一個(gè)有機(jī)的整體,更沒有將所學(xué)習(xí)的這些知識(shí)與具體的實(shí)踐應(yīng)用結(jié)合起來,因此學(xué)生在學(xué)習(xí)過程中,越到課程后期越會(huì)發(fā)現(xiàn)學(xué)習(xí)非常枯燥,而且直到整個(gè)課程完成之后,也不能夠體會(huì)EDA技術(shù)的設(shè)計(jì)理念,更不能夠?qū)⑺鶎W(xué)習(xí)的知識(shí)與EDA的工程應(yīng)相結(jié)合起來,造成了學(xué)生的學(xué)習(xí)效果與行業(yè)應(yīng)用需求想脫離的現(xiàn)狀。因此,對(duì)該課程的教學(xué)內(nèi)容進(jìn)行研究和分析之后需要針對(duì)所存在的問題,結(jié)合當(dāng)前電子設(shè)計(jì)及嵌入式行業(yè)對(duì)EDA技術(shù)的實(shí)際應(yīng)用需求情況,合理地對(duì)該課程的內(nèi)容進(jìn)行調(diào)整和優(yōu)化,將整個(gè)教學(xué)的內(nèi)容組織成一個(gè)整體,并把教學(xué)內(nèi)容與提升學(xué)生實(shí)踐應(yīng)用能力緊密結(jié)合起來。
二、改革后的教學(xué)內(nèi)容組成
針對(duì)目前在開展現(xiàn)代EDA技術(shù)課程教學(xué)過程中所存在的教學(xué)內(nèi)容與提升學(xué)生能力不一致的現(xiàn)狀,本文經(jīng)過深入的調(diào)研分析,結(jié)合高職院校學(xué)生的基礎(chǔ)條件以及今后就業(yè)過程中的崗位需求,對(duì)現(xiàn)代EDA技術(shù)課程的教學(xué)內(nèi)容進(jìn)行了徹底的改革與優(yōu)化。整個(gè)改革過程中,所遵循的原則有:
第一,緊貼任職崗位需求,優(yōu)化課程教學(xué)內(nèi)容,提高內(nèi)容的針對(duì)性。在傳統(tǒng)的教學(xué)過程中,有相當(dāng)一部分的教學(xué)時(shí)間是在給學(xué)生灌輸EDA技術(shù)的相關(guān)概念和常識(shí),而這些概念和常識(shí)在學(xué)生今后的任職崗位應(yīng)用中,未必都會(huì)用得到。而對(duì)于那些不常用的概念和知識(shí)是完全沒有必要在課堂上為學(xué)生反復(fù)介紹的。而學(xué)生在今后任職崗位中可能會(huì)用到的一些常用方法和技巧,以及一些工具軟件的使用方法則應(yīng)該在課程的教學(xué)內(nèi)容中予以體現(xiàn)。
第二,增加實(shí)驗(yàn)教學(xué)的比重,提升學(xué)生動(dòng)手實(shí)踐的能力。在傳統(tǒng)的現(xiàn)代EDA技術(shù)教學(xué)內(nèi)容過程中,教學(xué)時(shí)間是50學(xué)時(shí),其中實(shí)驗(yàn)占14學(xué)時(shí),實(shí)驗(yàn)所占的學(xué)時(shí)比重偏少不足以提升學(xué)生的實(shí)踐動(dòng)手能力。因此,在對(duì)教學(xué)內(nèi)容改革過程中,應(yīng)該加大實(shí)驗(yàn)教學(xué)內(nèi)容的比重。
第三,引入EDA設(shè)計(jì)的典型案例,加強(qiáng)理論知識(shí)與實(shí)際工程之間的結(jié)合程度,既讓學(xué)生充分認(rèn)識(shí)到所學(xué)習(xí)的知識(shí)在今后任職崗位中的具體應(yīng)用情況,同時(shí)也提高了學(xué)生所學(xué)習(xí)知識(shí)與任職需求結(jié)合的緊密程度。在傳統(tǒng)教學(xué)過程中,所介紹的內(nèi)容都是教科書式的獨(dú)立知識(shí)點(diǎn)介紹,沒有將這些知識(shí)點(diǎn)與一個(gè)完整的EDA設(shè)計(jì)案例相結(jié)合起來。因此在對(duì)教學(xué)內(nèi)容改革過程中,需要引入一系列的經(jīng)典教學(xué)案。
首先,在開展EDA教學(xué)的基礎(chǔ)部分,花了10個(gè)學(xué)時(shí)給學(xué)生介紹EDA技術(shù)的發(fā)展概論、VHDL語言的基礎(chǔ)知識(shí),以及ISE實(shí)驗(yàn)開發(fā)環(huán)境。相對(duì)傳統(tǒng)的教學(xué)過程,變化最為突出的是VHDL語言基礎(chǔ)部分的課時(shí)量大幅度減少,而且在VHDL語言設(shè)計(jì)部分沒有安排專門的實(shí)驗(yàn)教學(xué)。這樣設(shè)計(jì)的目的是盡可能減少學(xué)生對(duì)于基礎(chǔ)知識(shí)的學(xué)習(xí)時(shí)間,也許學(xué)生通過4個(gè)學(xué)時(shí)的VHDL語言基礎(chǔ)的學(xué)習(xí)不能夠完全掌握VHDL語言的開發(fā)方法,但是后面還將會(huì)給學(xué)生介紹一系列EDA的開發(fā)例,讓學(xué)生通過各種實(shí)際的教學(xué)案例,去體會(huì)EDA技術(shù)的應(yīng)用方法和應(yīng)用價(jià)值,提高學(xué)生學(xué)習(xí)EDA技術(shù)的興趣和動(dòng)力。
篇8
【關(guān)鍵詞】MATLAB;傅里葉變換;頻域分析;VHDL
頻譜分析在生產(chǎn)實(shí)踐和科學(xué)研究中有著廣泛的應(yīng)用。其中,快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)是數(shù)字信號(hào)處理的最基本技術(shù)之一。近年來,隨著現(xiàn)場(chǎng)可編程門陣列FPGA(Field Programmable Gate Array)技術(shù)的迅猛發(fā)展,利用高并行度、高速度的FPGA芯片來實(shí)現(xiàn)FFT已成為必然趨勢(shì)。
本文將以MATLAB為工具,對(duì)信號(hào)與系統(tǒng)在聯(lián)系時(shí)間系統(tǒng)的頻域進(jìn)行分析。
一、Matlab編程實(shí)現(xiàn)FFT實(shí)踐頻譜分析
步驟如下:
1.用Matlab產(chǎn)生正弦波,矩形波,以及白噪聲信號(hào),并顯示各自時(shí)域波形圖。
2.進(jìn)行FFT變換,顯示各自頻譜圖,其中采樣率,頻率、數(shù)據(jù)長(zhǎng)度自選。
3.做出上述三種信號(hào)的均方根圖譜,功率圖譜,以及對(duì)數(shù)均方根圖譜。
4.用IFFT傅立葉反變換恢復(fù)信號(hào),并顯示恢復(fù)的正弦信號(hào)時(shí)域波形圖。
正弦波、矩形波以及白噪聲三種信號(hào)的FFT變換(傅里葉變換)及IFFT變換(傅里葉反變換恢復(fù)信號(hào))。
圖1-1 正弦波
圖1-2 矩形波
圖1-3 白噪聲信號(hào)
二、FFT算法在基于VHDL的FPGA下實(shí)現(xiàn)
1.基于VHDL的FPGA設(shè)計(jì)流程
本小節(jié)以Xilinx公司的FPGA系統(tǒng)開發(fā)為實(shí)例,F(xiàn)PGA的設(shè)計(jì)流程一般包括系統(tǒng)功能設(shè)計(jì)定義、設(shè)計(jì)輸入、功能仿真、邏輯綜合、前仿真、設(shè)計(jì)實(shí)現(xiàn)(包括翻譯、映射、布局布線)、時(shí)序仿真與驗(yàn)證、下載配置與器件編程、測(cè)試驗(yàn)證等幾個(gè)步驟。
本設(shè)計(jì)運(yùn)用ISE和ModelSim與Matlab聯(lián)合仿真的設(shè)計(jì)方法。
ISE的簡(jiǎn)稱為集成綜合的環(huán)境,是Xilinx公司的配套設(shè)計(jì)軟件,這種工具可完成上述FPGA/CPLD的整個(gè)開發(fā)過程
2.FPGA的基本原理和結(jié)構(gòu)
FPGA即現(xiàn)場(chǎng)可編程門陣列,相對(duì)其他可編程器件具有更高的集成度、更強(qiáng)的邏輯實(shí)現(xiàn)能力和更好的設(shè)計(jì)靈活性。
FPGA的基本結(jié)構(gòu)如圖2-1所示。CLB陣列實(shí)現(xiàn)用戶指定的邏輯功能,它們以陣列的形式分布在FPGA中;IOB為內(nèi)部邏輯與器件封裝引腳之間提供了可編程接口,它通常排列在芯片四周;可編程互連資源分布在CLB的空隙,互連資源可以編程配置在模塊之間傳遞的信號(hào)網(wǎng)絡(luò),用于實(shí)現(xiàn)各個(gè)CLB之間、CLB與IOB之間以及全局信號(hào)與CLB和IOB之間的連接。FPGA利用可編程查找表實(shí)現(xiàn)邏輯塊;程序控制多路復(fù)用器實(shí)現(xiàn)其功能選擇。
圖2-1 FPGA的基本結(jié)構(gòu)
3.FFT 處理器的設(shè)計(jì)
本設(shè)計(jì)用于基于IEEE 802.11a協(xié)議的OFDM系統(tǒng)的OFDM調(diào)制,根據(jù)IEEE802.11a協(xié)議規(guī)定,OFDM調(diào)制采用64點(diǎn)FFT變換,采樣速率20M/s,即采樣周期為50ns,即64點(diǎn)FFT數(shù)據(jù)輸入的時(shí)間為64*50ns=3200ns。
本系統(tǒng)采用的時(shí)域抽取算法中要對(duì)輸入的所有數(shù)據(jù)進(jìn)行倒序以后才開始蝶形運(yùn)算,F(xiàn)FT可以分為數(shù)據(jù)輸入、蝶形運(yùn)算兩個(gè)階段,蝶形運(yùn)算結(jié)束后,將最終結(jié)果存儲(chǔ)到另一個(gè)單獨(dú)的結(jié)果存儲(chǔ)器另行讀取,而為了能對(duì)輸入數(shù)據(jù)實(shí)現(xiàn)連續(xù)的FFT變換,就需要蝶形運(yùn)算的總時(shí)間小于3200ns,這樣就可以用兩個(gè)FFT模塊去輪換做FFT,實(shí)現(xiàn)連續(xù)的FFT處理。如圖2-2所示。
64點(diǎn)的基2的時(shí)域抽取FFT算法總共有6級(jí)蝶形運(yùn)算,每級(jí)32次蝶形運(yùn)算,總共需要32*6=192個(gè)蝶形運(yùn)算,如果采用單蝶形設(shè)計(jì),需要192次蝶形運(yùn)算,蝶形運(yùn)算的極限時(shí)鐘周期為3200ns/192=16.67ns,在本設(shè)計(jì)的蝶形運(yùn)算時(shí)鐘周期采用16ns。
開發(fā)環(huán)境:Quartus II 6.0
選擇FPGA芯片:Altera公司Stratix系列中的EP1S10484C5
語言:VHDL
圖2-2 兩個(gè)FFT模塊
三、MATLAB到VHDL轉(zhuǎn)換工具Simulink
Simulink程序包是MathWorks公司提供的一個(gè)非常有吸引力的高水平設(shè)計(jì)、仿真工具。
1.高效地從Simulink到VHDL的轉(zhuǎn)換工具
目前為止,設(shè)計(jì)者經(jīng)常遇到的最大問題是怎樣完成從算法設(shè)計(jì)到物理實(shí)現(xiàn)的轉(zhuǎn)換。在這個(gè)問題的研究發(fā)展過程中,設(shè)計(jì)者首先使用的是一種高層次的設(shè)計(jì)仿真工具,最通常的就是Matlab的Simulink。首先利用Mathworks的Matlab/Simulink完成頂層系統(tǒng)設(shè)計(jì),然后通過轉(zhuǎn)換工具配置Simulink中的IP核,即將靜態(tài)參數(shù)傳遞給基于VHDL的IP,將Simulink模型文件(.md1)轉(zhuǎn)換成VHDL的RTL表述和工具命令語言(Tcl)腳本,同時(shí)還可進(jìn)行RTL級(jí)的功能仿真;然后通過SOPC設(shè)計(jì)工具進(jìn)行綜合、適配與時(shí)序仿真;最后形成對(duì)指定FPGA進(jìn)行編程配置的POF和SOF文件,實(shí)現(xiàn)硬件系統(tǒng)的仿真測(cè)試。轉(zhuǎn)換的工作可以描述成以下幾步:
(1)分析并確定Simulink模型。
(2)產(chǎn)生VHDL環(huán)境。
(3)生成對(duì)應(yīng)網(wǎng)表文件或示意圖進(jìn)行布局、布線和硬件的下載測(cè)試。
2.從Simulink到VHDL的自動(dòng)轉(zhuǎn)換
為了簡(jiǎn)單化轉(zhuǎn)換程序,在最初的Simulink模塊中設(shè)定一些約束條件(如圖3-1所示):
(1)運(yùn)行高字節(jié)的信號(hào)或變量;
(2)整個(gè)設(shè)計(jì)只有一種取樣率;
(3)系統(tǒng)只由入口、常數(shù)、端口及總線組成。
這些能夠使相關(guān)的VHDL結(jié)構(gòu)描述比較容易地產(chǎn)生。工具箱的下一部分就可以允許不同的變量類型和生成可應(yīng)用的結(jié)構(gòu)和行為的VHDL。
圖3-1 從Simulink到VHDL轉(zhuǎn)換流程
從MDL(主要數(shù)據(jù)程序)模型到VHDL的轉(zhuǎn)換的初步翻譯由定制的Matlab程序完成。由于對(duì)Simulink描述的分析比較困難,生成的VHDL代碼需要額外的編輯。例如,一些基本模塊如標(biāo)準(zhǔn)邏輯門和雙相位時(shí)鐘等的行為描述被手動(dòng)設(shè)計(jì)成標(biāo)準(zhǔn)模塊庫中的一部分。
四、Matlab/Simulink到VHDL代碼的轉(zhuǎn)換研究
1.Xilinx System Generator
Matlab中的Simulink是一種對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真及分析的交互式工具。Xilinx公司新推出的System Generator是一種高性能的設(shè)計(jì)工具,他可以嵌入作為Simulink的一部分運(yùn)行。在Simulink中System Generator打包為Xilinx Blockset,從Simulink的庫中可以瀏覽。System Generator設(shè)計(jì)流程圖如圖4-1所示。
轉(zhuǎn)換的操作也很簡(jiǎn)單,在System Generator的模型參數(shù)設(shè)置對(duì)話框,選擇一個(gè)輸出路徑并選擇“Create Test bench”,單擊“Generate”就可以生成VHDL代碼和設(shè)計(jì)的testbench變量。當(dāng)選擇生成testbench變量后,Simulink將重新運(yùn)行剛才的仿真。這次由于將經(jīng)歷代碼生成過程,他將在testbench變量中保存所有輸入和輸出信息供VHDL和post-PAR仿真調(diào)用。
圖4-1 System generator設(shè)計(jì)流程圖
2.基于System Generator的FFT算法的實(shí)現(xiàn)
System Generator for DSP是Xilinx公司開發(fā)的基于Simulink圖形環(huán)境的DSP開發(fā)工具。利用System Generator工具,即使是沒有多少FPGA設(shè)計(jì)經(jīng)驗(yàn)的設(shè)計(jì)人員也能夠快速開發(fā)出高性能的FPGA來實(shí)現(xiàn)DSP算法。
FFT算法實(shí)現(xiàn)流程:
根據(jù)FFT算法的原理以及System Generator工具的特點(diǎn),可以在System Generator中完成FFT算法的設(shè)計(jì),然后自動(dòng)生成HDL代碼,通過ISE軟件生成位流文件下載到FPGA中,從而完成整個(gè)設(shè)計(jì)。
實(shí)驗(yàn)環(huán)境:matlab 2010b、ISE 12.3、System Generator for DSP 12.3
(1)系統(tǒng)模型設(shè)計(jì)
在Simulink環(huán)境中建立一個(gè)mdl模型文件,用圖形方式調(diào)用System Generator和其它的Simulink原圖形模塊,構(gòu)成系統(tǒng)級(jí)或算法級(jí)設(shè)計(jì)框圖如圖4-2所示。
圖4-2 設(shè)計(jì)框圖
Gateway in和Gateway out模塊:用于雙浮點(diǎn)精度數(shù)據(jù)和定點(diǎn)數(shù)據(jù)之間的轉(zhuǎn)換。
System Generator模塊:提供Matlab和硬件設(shè)計(jì)環(huán)境ISE的接口,可在指定目錄中產(chǎn)生可在ISE軟件下實(shí)現(xiàn)的硬件描述語言。
Delay模塊:構(gòu)成一個(gè)時(shí)延環(huán)節(jié),可以配置其延遲時(shí)鐘周期的整數(shù)倍。
FIFO模塊:用于實(shí)現(xiàn)一組FIFO列。
FFT v3_2模塊:為離散傅立葉變換(DFT)提供了一種有效算法。該模塊根據(jù)不同的結(jié)構(gòu)和實(shí)現(xiàn)方式有三種模式可供選擇:1)流水線,Streaming I/O結(jié)構(gòu);2)基4,BurstI/O結(jié)構(gòu);3)基2,Burst I/O結(jié)構(gòu)。
(2)驗(yàn)證與仿真
為了證明模型設(shè)計(jì)的正確性,需要對(duì)模型進(jìn)行測(cè)試試驗(yàn),將FFT模型的仿真結(jié)果與MATLAB的理論計(jì)算結(jié)果進(jìn)行比較,完成對(duì)所建立模型的測(cè)試工作。
1)信號(hào)在MATLAB中的處理
系統(tǒng)的輸入函數(shù)為,點(diǎn)數(shù)N=512,采樣周期為1s,在MATLAB中實(shí)現(xiàn)FFT處理的程序描述如下:
n=512;
n=0:511;
t=1*n;
k=n;
x=sin(2*pi/25*t);
y=fft(x,N);
r=real(y);
i=imag(y);
subplot(1,1,1);
plot(k,r);
subplot(1,1,1);
plot(k,i);
通過以上程序得到正弦信號(hào)通過512點(diǎn)FFT處理后的MATLAB理論計(jì)算結(jié)果如圖4-3所示。
a)實(shí)部結(jié)果 b)虛部結(jié)果
圖4-3 MATLAB理論計(jì)算結(jié)果
2)信號(hào)在FFT模型中的處理
在仿真前先對(duì)Gateway in模塊和FFT v3_2模塊進(jìn)行一下參數(shù)配置:
Gateway in模塊
Output type:Signed
Number of bits:16
Binary point:15
Quantization:Round
Overflow:Saturate
Sample period:1
FFT v3_2模塊:
Impliment:Pipelined Streaming I/O
Number of sample points:512
Output ordering:Natural order
Scaling:Unscaled
Rounding mode:Truncation
Phase factor bit width:8
將參數(shù)配置好后在Simulink的FFT模型的輸入端輸入正弦信號(hào),然后選擇simulink/start,待仿真結(jié)束后查看scope模塊所顯示的仿真結(jié)果如圖4-4所示。
a)實(shí)部結(jié)果 b)虛部結(jié)果
圖4-4 FFT模型仿真結(jié)果
比較圖5-3和圖5-4的波形,可以看出FFT模型處理后的結(jié)果和Matlab的理論計(jì)算結(jié)果的波形基本一致,得到的都是頻率單一的實(shí)部和虛部。
需要說明的是:在圖5-5中實(shí)部和虛部的輸出都是從橫坐標(biāo)的1118點(diǎn)開始的,這是因?yàn)镕FT模型中的FFT v3_2模塊參數(shù)選擇的是Pipelined Streaming I/O模式,在該模式下輸出需要延遲一段處理時(shí)間然后才能連續(xù)輸出,這里橫坐標(biāo)的1118點(diǎn)實(shí)際上就是輸出的起始點(diǎn),也就是輸出的的k=0的位置。
3.自動(dòng)代碼生成
通過上面的測(cè)試實(shí)驗(yàn),證明所建立的FFT模型是滿足要求的,下面就需要將FFT模型轉(zhuǎn)換成HDL代碼。雙擊打開System Generator模塊的系統(tǒng)設(shè)定對(duì)話框,在該對(duì)話框中設(shè)定好目標(biāo)器件的型號(hào)(Virtex6 xc6vsx315t-3ff1156)、綜合工具(XST)、產(chǎn)生語言種類(VHDL)等參數(shù)(如圖4-5所示),并且選中“Createtest bench”選項(xiàng),之后啟動(dòng)System Generator模塊,將在指定目錄中產(chǎn)生可在ISE軟件下實(shí)現(xiàn)的硬件描述語言,并且自動(dòng)生成設(shè)計(jì)的測(cè)試代碼。
圖4-5 System generator的參數(shù)設(shè)置
Gateway in模塊的參數(shù)設(shè)置如圖4-6所示:
圖4-6 Gateway in模塊的參數(shù)設(shè)置
五、總結(jié)
本文的研究工作主要是以下幾個(gè)部分:
1.介紹了傅里葉變換及其在頻譜分析中的應(yīng)用;
2.研究了利用MATLAB實(shí)現(xiàn)譜分析的傅里葉變換,其中包括基于MATLAB的連續(xù)信號(hào)與離散信號(hào)的頻域分析;另外,本文實(shí)現(xiàn)了基于MATLAB的快速傅里葉變換(FFT)以及信號(hào)的采樣——重構(gòu)操作;
3.探討FPGA的結(jié)構(gòu),其中主要涉及基于VHDL的FPGA設(shè)計(jì)流程;
4.討論了由Matlab生成VHDL代碼的原理,并介紹了利用System Generator及DSP Builder將Simulink模型轉(zhuǎn)換為VHDL代碼的方法。
下一步的研究工作在于對(duì)轉(zhuǎn)換研究進(jìn)行細(xì)化和拓展,其中細(xì)化部分集中于調(diào)試優(yōu)化,而拓展部分在于各種功能器件的轉(zhuǎn)換實(shí)現(xiàn)。
參考文獻(xiàn):
[1]石海,毛哲.基于DSP實(shí)現(xiàn)RFID實(shí)時(shí)信號(hào)頻譜分析[J].武漢工業(yè)學(xué)院學(xué)報(bào),2008,9(3):69-72.
[2]Agilent Technologies Inc,Agilent N9340A Handheld Spectrum Analyzer TechnicalOverview.
[3]劉樹堂.2006.數(shù)字信號(hào)處理——使用MATLAB.西安:西安交通大學(xué)出版社,252-255.
[4]胡廣書著.數(shù)字信號(hào)處理——理論、算法與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003,2:93-210.
[5]Joyce Van de Vegte著.侯正信,王國(guó)安等譯.數(shù)字信號(hào)處理基礎(chǔ)[M].北京:電子工業(yè)出版社,2004.249-255,328-361.
篇9
關(guān)鍵詞:DDS;直接數(shù)字頻率合成;調(diào)頻;掃頻;VHDL
中圖分類號(hào):TN99 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1503002
Generation of Linear Frequency Modulation Signal Based on DDS
ZHANG Xianzhi
(Unit 63891 PLA,Luoyang,471003,China)
Abstract:DDS is a new technology which advanced theory and method of digital processing into frequency synthesis.VHDL is a kind of hardware description language,it is used to describe the function of circuit hardware,the connection relationship of signal and the timing relationship.So,it is applied broadly in the field of electron engineering.The fundamental and modulation characteristics of DDS are introduced.Besides,DDS is implemented by programming in VHDL language.A sort of linear FM signal based on DDS technology is implemented.Then,simulation result of the main part of them is given,and its correctness is verificated.
Keywords:DDS;direct digital frequency synthesis;FM;sweep frequency;VHDL
1 DDS(直接數(shù)字式頻率合成器)的基本原理
直接數(shù)字頻率合成是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。DDS把一系列數(shù)字量形式的信號(hào)通過數(shù)模轉(zhuǎn)換器(DAC)轉(zhuǎn)換成模擬量形式的信號(hào),其基本結(jié)構(gòu)如圖1所示。
圖1 DDS結(jié)構(gòu)示意圖DDS由相位累加器、加法器、波形存儲(chǔ)器(ROM)、數(shù)字乘法器、D/A轉(zhuǎn)換器和低通濾波器(LPF)組成。DDS的核心是相位累加器,由一個(gè)加法器和一個(gè)相位寄存器(REG)級(jí)聯(lián)構(gòu)成。在參考時(shí)鐘fc的控制下,相位累加器對(duì)頻率控制字K進(jìn)行線性累加,輸出的和再與相位控制字P相加后作為地址,對(duì)ROM進(jìn)行尋址。ROM中存放的是經(jīng)過采樣、量化處理后的某種周期性連續(xù)信號(hào)一個(gè)周期波形的幅度值,也就是與一個(gè)周期的相位采樣相對(duì)應(yīng)的函數(shù)波形查找表,不同的相位地址對(duì)應(yīng)這種周期信號(hào)的不同幅度值編碼。ROM輸出的幅度值編碼通過數(shù)字乘法器被幅度控制字A加權(quán),加權(quán)后的幅度值編碼經(jīng)D/A轉(zhuǎn)換器變成相應(yīng)的階梯波,再經(jīng)低通濾波器平滑后就可以得到所合成信號(hào)的模擬波形。合成的信號(hào)波形取決于ROM中存放的幅度值數(shù)據(jù),因此用DDS可以產(chǎn)生任意波形。
設(shè)相位累加器的字長(zhǎng)為N,則DDS的輸出頻率fo和頻率分辨率(即最小輸出頻率)Δfmin分別為:fo=K?fc2N
Δfmin=fc2N 只要N足夠大,DDS可以得到很小的頻率分辨率。要改變DDS的輸出頻率,只要改變頻率控制字K即可。
值得注意的是,根據(jù)Nyquist采樣定理,在對(duì)連續(xù)信號(hào)進(jìn)行采樣的一個(gè)周期內(nèi),采樣頻率不能改變,故利用DDS進(jìn)行信號(hào)合成時(shí),在信號(hào)合成的一個(gè)周期內(nèi),頻率控制字K不能發(fā)生變化,也就是K在每次改變之前至少應(yīng)該持續(xù)2N/K個(gè)DDS時(shí)鐘周期,即2N/K/fc。
通過改變相位控制字P可以控制輸出信號(hào)的相位參數(shù),設(shè)相位加法器的字長(zhǎng)為M,當(dāng)相位控制字由0變到P(P≠0)時(shí),ROM的輸入為相位累加器的輸出與相位控制字P之和,因此其輸出的幅度值相位會(huì)增加2πP/2M,從而使最后輸出的模擬信號(hào)產(chǎn)生相移。
DDS輸出信號(hào)的幅度可以通過在ROM之后加入一個(gè)數(shù)字乘法器來實(shí)現(xiàn),幅度控制字A起到對(duì)ROM所輸出的幅度值編碼進(jìn)行加權(quán)的作用。
由此可見,當(dāng)DDS的相位累加器字長(zhǎng)和相位加法器字長(zhǎng)確定后,通過改變K,P,A就可以有效地控制DDS輸出的模擬信號(hào)的頻率、相位和幅度,這就是DDS技術(shù)的調(diào)制特性。
2 VHDL語言實(shí)現(xiàn)的DDS
為簡(jiǎn)單起見,下面所描述的DDS僅設(shè)置了頻率控制字K,相位控制字P和幅度控制字A都未予以考慮,其處理可以類推。DDS的輸出為正弦波信號(hào)。
由于正弦波關(guān)于π奇對(duì)稱,關(guān)于π/2與3π/2偶對(duì)稱,因此波形存儲(chǔ)器(ROM)中只需存儲(chǔ)其1/4個(gè)周期的幅度值編碼。具體地,ROM中存儲(chǔ)正弦波0~π/2相位范圍內(nèi)的256個(gè)采樣點(diǎn)的幅度值,采用8位編碼。而DDS的輸出為9位,最高位作為符號(hào)位,用以區(qū)分幅度值的正負(fù),“0”表示正,“1”表示負(fù)。ROM為8位地址尋址,而相位累加器的字長(zhǎng)采用10位。最高位用以區(qū)分正弦波的前、后半周期,“0”為前半周期,幅度值為正,“1”為后半周期,幅度值為負(fù)。次高位用以區(qū)分正弦波前、后半周期的前、后1/4周期,“0”為前1/4周期,尋址地址為相位累加器的低8位,“1”為后1/4周期,尋址地址為相位累加器低8位的取反。
用VHDL實(shí)現(xiàn)DDS的源程序的核心部分如下:
process (clk)
begin
if clk′event and clk = ′1′ then
if addr (8) = ′1′ then
taddr
else
taddr
end if;
if taddr = x"00" then
dsin (8)
else
dsin (8)
end if;
case taddr is
when x"00" => dsin (7 downto 0)
when x"01" => dsin (7 downto 0)
when x"02" => dsin (7 downto 0)
…… ……
when x"FE" => dsin (7 downto 0)
when x"FF" => dsin (7 downto 0)
when others => dsin (7 downto 0)
end case;
addr
end if;
end process;
在Xilinx ISE 8.2i開發(fā)環(huán)境中對(duì)其進(jìn)行仿真的結(jié)果,如圖2所示。
圖2 DDS仿真結(jié)果3 掃頻信號(hào)的產(chǎn)生
利用DDS技術(shù)的調(diào)制特性可以方便地產(chǎn)生掃頻信號(hào),僅需控制DDS的頻率控制字K,讓其隨預(yù)期設(shè)計(jì)的規(guī)律變化即可。
為了采用DDS實(shí)現(xiàn)掃頻信號(hào)掃頻帶寬范圍內(nèi)的各個(gè)頻點(diǎn)fi,需要為其確定相應(yīng)的頻率控制字Ki,從而很容易地計(jì)算出所需的一系列Ki值。與DDS的基本原理類似,將符合設(shè)計(jì)要求的一系列Ki值存儲(chǔ)在一張查找表中。再利用一個(gè)計(jì)數(shù)器循環(huán)計(jì)數(shù),將其輸出作為查找表的尋址地址,以此不斷地循環(huán)讀取查找表中的各個(gè)Ki。這樣就可以使受Ki控制的DDS的輸出始終在所預(yù)期設(shè)計(jì)的各個(gè)頻點(diǎn)fi上變化,達(dá)到掃頻的目的。其中,計(jì)數(shù)器循環(huán)一次的時(shí)間就是所要實(shí)現(xiàn)的掃頻信號(hào)的掃頻周期,而計(jì)數(shù)器的計(jì)數(shù)范圍則與掃頻信號(hào)掃頻帶寬范圍內(nèi)的頻點(diǎn)個(gè)數(shù)相對(duì)應(yīng)。
以上就是利用DDS實(shí)現(xiàn)掃頻信號(hào)的基本思路,以下是實(shí)現(xiàn)此思路的VHDL源程序的主要部分:
process (clk)
begin
if clk′event and clk = ′1′ then
case t is
when o"0" => dcs
when o"1" => dcs
when o"2" => dcs
when o"3" => dcs
when o"4" => dcs
when o"5" => dcs
when o"6" => dcs
when o"7" => dcs
when others => dcs
end case;
t
end if;
end process;
在Xilinx ISE 8.2i開發(fā)環(huán)境中對(duì)其進(jìn)行仿真的結(jié)果如圖3所示。
圖3 產(chǎn)生頻率控制字的仿真結(jié)果4 結(jié) 語
VHDL是IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,可以描述硬件電路的功能、信號(hào)連接關(guān)系及定時(shí)關(guān)系,在電子工程領(lǐng)域用來描述、驗(yàn)證和設(shè)計(jì)電子線路得到了廣泛的接受和應(yīng)用。利用DDS技術(shù)的調(diào)制特性產(chǎn)生各種調(diào)制信號(hào)簡(jiǎn)單方便,容易實(shí)現(xiàn)。從文中不難看出,將VHDL語言與DDS技術(shù)結(jié)合起來設(shè)計(jì)生成調(diào)頻信號(hào),直觀快捷,可操作性很強(qiáng),必將得到更加廣泛的應(yīng)用。
參 考 文 獻(xiàn)
[1]張順興.?dāng)?shù)字電路與系統(tǒng)設(shè)計(jì)[M].南京:東南大學(xué)出版社,2004.
[2]黃智偉.射頻電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006.
[3]姜宇柏,游思晴.軟件無線電原理與工程應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4]譚會(huì)生,瞿遂春.EDA技術(shù)綜合應(yīng)用實(shí)例與分析[M].西安:西安電子科技大學(xué)出版社,2004.
[5]潘松,黃繼業(yè),王國(guó)棟.現(xiàn)代DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[6]鄧延安.直接數(shù)字頻率合成單象限存儲(chǔ)結(jié)構(gòu)的VHDL語言實(shí)現(xiàn)[J].安徽工程科技學(xué)院學(xué)報(bào),2006,21(1):37-39.
[7]李逢玲,鄭飛.基于EDA技術(shù)的調(diào)頻信號(hào)發(fā)生器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2006,29(8):10-12.
[8]DDS原理簡(jiǎn)介[EB/OL]..cn.
篇10
【關(guān)鍵詞】項(xiàng)目化教學(xué);FPGA開發(fā)與應(yīng)用;VHDL
1 基于FPGA的數(shù)字系統(tǒng)設(shè)計(jì)簡(jiǎn)介
FPGA是Field Programmable Gate Array的縮寫,即現(xiàn)場(chǎng)可編程門陣列,它完全由用戶通過軟件進(jìn)行編程和配置,從而完成某種特定的功能,且可以反復(fù)擦寫的新型器件。傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法是自底向上的設(shè)計(jì)方法,它是以各種不同的中小規(guī)模集成電路芯片為基礎(chǔ),按照功能要求在印刷電路板上將不同的芯片連接起來,構(gòu)成實(shí)現(xiàn)某種功能的電子系統(tǒng)。基于FPGA[1]的數(shù)字系統(tǒng)設(shè)計(jì)方法采用自頂向下的設(shè)計(jì)方法,把系統(tǒng)分成若干個(gè)基本單元,然后再把每個(gè)基本單元?jiǎng)澐譃橄乱粚哟蔚幕締卧K訤PGA芯片為核心,通過編程的方式完成系統(tǒng)功能的設(shè)計(jì)并將設(shè)計(jì)寫入FPGA芯片內(nèi),使芯片具有設(shè)計(jì)的功能。設(shè)計(jì)過程中通過不同階段的仿真可以及時(shí)檢查設(shè)計(jì)的正確性,電路的修改只需要通過修改程序并重新下載到FPGA中即可。因此基于FPGA的數(shù)字系統(tǒng)設(shè)計(jì)易于測(cè)試和修改,設(shè)計(jì)周期短,便于移植。
2 項(xiàng)目化教學(xué)實(shí)施過程
“FPGA開發(fā)與應(yīng)用”這門課是針對(duì)大三計(jì)算機(jī)網(wǎng)絡(luò)工程專業(yè)學(xué)生開設(shè)的一門專業(yè)課,學(xué)生在前期已學(xué)過《電路》、《數(shù)字電路》、《模擬電路》、《C語言程序設(shè)計(jì)》等課程。通過該門課,使學(xué)生掌握VHDL語言(超高速集成電路硬件描述語言)的編程方法,能熟練應(yīng)用ISE平臺(tái)進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì),理解自頂向下的系統(tǒng)設(shè)計(jì)方法,積累數(shù)字系統(tǒng)設(shè)計(jì)經(jīng)驗(yàn)。
傳統(tǒng)的教學(xué)方法重在介紹VHDL語言的語法規(guī)則和語句,知識(shí)點(diǎn)較零散,學(xué)起來較枯燥,而且不知如何應(yīng)用這些語句。而項(xiàng)目化教學(xué)重在將知識(shí)點(diǎn)融在項(xiàng)目中理解,學(xué)生通過做一個(gè)小項(xiàng)目可以掌握相應(yīng)的知識(shí)點(diǎn),并通過3-4人一組協(xié)作完成,培養(yǎng)其團(tuán)隊(duì)合作能力、溝通能力和語言表達(dá)能力等。項(xiàng)目化教學(xué)真正實(shí)現(xiàn)了三個(gè)轉(zhuǎn)變:以教師為中心轉(zhuǎn)變?yōu)橐詫W(xué)生為中心;以課本為中心轉(zhuǎn)變?yōu)橐皂?xiàng)目為中心;以課堂為中心轉(zhuǎn)變?yōu)橐詫?shí)際經(jīng)驗(yàn)為中心[2]。
下面將通過“點(diǎn)亮兩位數(shù)字”項(xiàng)目分析如何實(shí)施項(xiàng)目化教學(xué)[3][4]。“點(diǎn)亮兩位數(shù)字”項(xiàng)目即利用Xilinx公司的ISE軟件平臺(tái)進(jìn)行系統(tǒng)設(shè)計(jì),通過VHDL語言編程實(shí)現(xiàn)顯示兩位數(shù)字的功能,并最終生成二進(jìn)制文件,下載到Basys2開發(fā)板上驗(yàn)證。
2.1 項(xiàng)目立項(xiàng)階段
教師先向?qū)W生展示最終要完成的效果,講明項(xiàng)目任務(wù),再對(duì)學(xué)生進(jìn)行分組,盡量采取自愿原則,教師可對(duì)小組成員適當(dāng)調(diào)整,保證每組中至少有一人學(xué)習(xí)情況較好,并任命一人為組長(zhǎng)。
2.2 需求分析階段
根據(jù)項(xiàng)目要求,分析最終要呈現(xiàn)的效果,確定程序的功能模塊和性能需求。比如要用兩個(gè)數(shù)碼管顯示、動(dòng)態(tài)掃描問題、譯碼問題等。
2.3 系統(tǒng)設(shè)計(jì)階段
首先每個(gè)小組要確定總體方案設(shè)計(jì),例如分哪幾個(gè)模塊、每個(gè)模塊要實(shí)現(xiàn)什么功能,再進(jìn)行詳細(xì)設(shè)計(jì),包括用Visio軟件繪制系統(tǒng)功能結(jié)構(gòu)圖(如圖1所示)、每個(gè)模塊如何用VHDL語言實(shí)現(xiàn)等。在詳細(xì)設(shè)計(jì)中,涉及每個(gè)模塊具體的功能,寫出詳細(xì)的系統(tǒng)設(shè)計(jì)報(bào)告,以此進(jìn)行編碼和測(cè)試,從而保證系統(tǒng)設(shè)計(jì)的可靠性。可以由組長(zhǎng)分配任務(wù),讓每個(gè)組員完成一個(gè)模塊的編寫工作。
2.4 編碼、測(cè)試階段
教師檢查每組的系統(tǒng)功能結(jié)構(gòu)圖,若無問題,則可以開始編程。在用VHDL語言編程階段,學(xué)生可根據(jù)系統(tǒng)功能結(jié)構(gòu)圖分模塊進(jìn)行調(diào)試,先將底層三個(gè)模塊(分頻器、控制模塊、譯碼器)都編好后,通過ISE軟件編譯檢查語法錯(cuò)誤、并進(jìn)行仿真,若無問題,再進(jìn)行頂層文件編寫;若有問題,則需修改源代碼,直至無錯(cuò)誤為止。頂層文件主要是通過元件例化語句將底層三個(gè)模塊進(jìn)行連接,編好后,也需要經(jīng)過ISE軟件編譯檢查語法錯(cuò)誤。
2.5 下載、驗(yàn)證階段
最后將生成的二進(jìn)制文件下載到basys2開發(fā)板上驗(yàn)證,若能正確顯示兩位數(shù)字,即成功。若不能正常顯示,則需返回到ISE軟件中,修改底層文件或頂層文件,直至驗(yàn)證成功為止。
2.6 驗(yàn)收階段
在編寫代碼的過程中,教師可適當(dāng)給予指導(dǎo),給學(xué)生提供一些參考資料或相似的例子,幫助學(xué)生完成項(xiàng)目。教師要檢查各組最終能否實(shí)現(xiàn)“顯示兩位數(shù)字”,協(xié)助并指導(dǎo)各組,完成編寫“顯示兩位數(shù)字”項(xiàng)目文檔,并對(duì)各組進(jìn)行成績(jī)?cè)u(píng)定。各組組長(zhǎng)向全班匯報(bào)、展示本組的作品,并列舉項(xiàng)目開發(fā)中遇到的各種問題,其他組的學(xué)生可以提問,最后教師對(duì)各組進(jìn)行點(diǎn)評(píng)。各組組長(zhǎng)根據(jù)小組成員的貢獻(xiàn)對(duì)小組成員進(jìn)行打分,教師根據(jù)小組成績(jī)和組長(zhǎng)對(duì)各成員的打分,確定每位學(xué)生的成績(jī)。
3 總結(jié)
由于傳統(tǒng)的教學(xué)方法重在介紹VHDL語言的語法和語句,學(xué)生學(xué)起來較枯燥,因此結(jié)合《FPGA開發(fā)與應(yīng)用》課程的特點(diǎn),通過“顯示兩位數(shù)字”項(xiàng)目,展示如何在《FPGA開發(fā)與應(yīng)用》課程中實(shí)施項(xiàng)目化教學(xué)。通過項(xiàng)目化教學(xué),不但能使學(xué)生掌握VHDL語言的編程方法和自頂向下的系統(tǒng)設(shè)計(jì)方法,熟悉真實(shí)項(xiàng)目的實(shí)施過程,而且通過分組協(xié)作完成一個(gè)項(xiàng)目,可以鍛煉學(xué)生的團(tuán)隊(duì)協(xié)作能力、溝通能力、語言表達(dá)能力等,從而激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的自主學(xué)習(xí)能力。
【參考文獻(xiàn)】
[1]陳學(xué)英,李穎.FPGA應(yīng)用實(shí)驗(yàn)教程[M].國(guó)防工業(yè)出版社,2013,05.
[2]張學(xué)琳,陳齊超,段珊,胡波.項(xiàng)目教學(xué)法在“C語言課程設(shè)計(jì)”中的研究與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(02):164-167.