vhdl語言范文
時間:2023-04-05 09:52:02
導(dǎo)語:如何才能寫好一篇vhdl語言,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:狀態(tài)機(jī);Mealy型狀態(tài)機(jī);vhdl語言
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 13-0000-02
數(shù)字電路分為組合邏輯電路和時序邏輯電路。組合邏輯電路的輸出只與當(dāng)前輸入有關(guān),時序邏輯電路的輸出不僅與當(dāng)前輸入有關(guān),還與過去的輸入有關(guān)。狀態(tài)機(jī)是一種廣義的時序電路,它的輸出不僅與當(dāng)前輸入信號有關(guān),還與當(dāng)前的狀態(tài)有關(guān)。
一、狀態(tài)機(jī)有三個基本要素:狀態(tài)、輸入、輸出
狀態(tài)是狀態(tài)機(jī)中最根本的要素。狀態(tài)機(jī)的最基本特點(diǎn)就是寄存器中存儲的狀態(tài)按照一定的條件或規(guī)律進(jìn)行轉(zhuǎn)移,并輸出特定信號。
輸入信號作為狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移的條件,即狀態(tài)機(jī)根據(jù)輸入信號和當(dāng)前狀態(tài)決定下一個轉(zhuǎn)移的狀態(tài)。
輸出信號一般由當(dāng)前狀態(tài)和當(dāng)前輸入信號決定,也可只由當(dāng)前狀態(tài)決定。
二、狀態(tài)機(jī)的特點(diǎn)
(1)狀態(tài)機(jī)的結(jié)構(gòu)模式相對簡單,設(shè)計方案相對固定。
(2)狀態(tài)機(jī)的VHDL設(shè)計層次分明,結(jié)構(gòu)清晰,易讀易懂。
(3)就運(yùn)行速度而言,狀態(tài)機(jī)的每一個狀態(tài)中可以完成許多并行的運(yùn)算和控制操作。
(4)就可靠性而言,狀態(tài)機(jī)也具有明顯的優(yōu)勢。
三、狀態(tài)機(jī)的分類
狀態(tài)機(jī)可分為有限狀態(tài)機(jī)和無限狀態(tài)機(jī),在這里只討論有限狀態(tài)機(jī)。按照輸出信號是否與輸入信號有關(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ī)示意圖分別如圖一和圖二所示。
從輸出的時序上看,Mealy型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),它的輸出是在輸入變化之后立即發(fā)生的,不依賴時鐘的同步。Moore型狀態(tài)機(jī)的輸出僅為當(dāng)前狀態(tài)的函數(shù),狀態(tài)機(jī)的輸入發(fā)生變化還必須與狀態(tài)機(jī)的時鐘同步。由于Mealy型狀態(tài)機(jī)的輸出與時鐘不同步,因此很容易在輸出端產(chǎn)生毛刺,造成不可預(yù)料的結(jié)果。因此從穩(wěn)定性的角度講,Moore型狀態(tài)機(jī)比較好;但是從相應(yīng)時間角度講,Mealy型狀態(tài)機(jī)對輸入的響應(yīng)最多可比Moore型狀態(tài)機(jī)早一個時鐘周期.在工程實踐中,具體電路有具體的設(shè)計要求,根據(jù)實際情況選擇相應(yīng)的狀態(tài)機(jī)。
四、基于狀態(tài)機(jī)的8路彩燈設(shè)計
在我們的生活中,電子彩燈已成為我們裝點(diǎn)生活常用的電器,電子彩燈控制電路的設(shè)計要求也越來越高。要求我們設(shè)計的彩燈花燈品種更多,控制更加方便,靈活性高,可靠性高。采用傳統(tǒng)數(shù)字電路設(shè)計的彩燈控制器電路復(fù)雜,設(shè)計周期長,精度不高。基于FPGA的電子彩燈設(shè)計設(shè)計靈活,功能完善。
8路彩燈控制系統(tǒng)分為分頻模塊和花型循環(huán)控制模塊。
(1)分頻模塊:我們在這里選擇的時鐘脈沖信號是50MHz,由于時鐘脈沖的頻率太高,所以我們未分頻時看到的是8個LED燈全亮,而看不到LED燈閃爍的狀態(tài)。我們這時將50MHz分頻,達(dá)到人視覺能感覺的頻率,即可看到LED閃爍的效果。
分頻程序如下:
(2)花型循環(huán)控制模塊:花型循環(huán)控制模塊是系統(tǒng)的核心部分,它主控著8路彩燈的花型。循環(huán)彩燈控制模塊主要由狀態(tài)機(jī)設(shè)計,用狀態(tài)機(jī)設(shè)計靈活性強(qiáng)。
按設(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è)計語句type states來實現(xiàn),8路彩燈控制模塊程序如下:
五、設(shè)計拓展
8路彩燈設(shè)計系統(tǒng)在實際應(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è)計,思路簡單,功能明了,靈活性強(qiáng)。在控制電路中采用狀態(tài)機(jī)設(shè)計,電路控制靈活,功能便于實現(xiàn),思路簡潔便于修改。比起用常規(guī)的單片機(jī)設(shè)計8路彩燈電路更簡單實用。此系統(tǒng)可在分頻前在ISE軟件下的ISE simulator上進(jìn)行仿真和驗證,并可加上適當(dāng)?shù)募s束條件后,在Spatan3E的開發(fā)板驗證試驗結(jié)果。
參考文獻(xiàn):
[1]Kleitz.W.VHDL數(shù)字電子學(xué)[M].北京:北京希望電子出版社,2008
篇2
關(guān)鍵詞:VHDL;教學(xué)改革;項目化教學(xué)
作者簡介:周殿鳳(1978-),女,江蘇寶應(yīng)人,鹽城師范學(xué)院物理科學(xué)與電子技術(shù)學(xué)院,講師;康素成(1966-),男,江蘇濱海人,鹽城師范學(xué)院物理科學(xué)與電子技術(shù)學(xué)院,副教授。(江蘇 鹽城 224002)
基金項目:本文系鹽城師范學(xué)院高校發(fā)展研究項目(項目編號:13YCFZ006)的研究成果。
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-0079(2014)09-0111-02
VHDL語言及應(yīng)用是電子信息工程專業(yè)的一門重要的技術(shù)類應(yīng)用型課程,主要講解VHDL語言以及它的應(yīng)用。但在多年的教學(xué)實踐中,筆者發(fā)現(xiàn)要想讓學(xué)生在短時間內(nèi)接受大量的語法知識,學(xué)生很難充分理解與掌握,這樣在隨后的編程過程中非常容易犯錯,并感覺難以入手,更不用說形成良好的編程習(xí)慣和程序風(fēng)格。[1]大多數(shù)大學(xué)生畢業(yè)后或許精通C語言,可是由于各方面的原因,精通VHDL語言的少之又少,但是企業(yè)單位對此方面的人才的需求卻越來越多,筆者出于對VHDL語言的摯愛及多年教學(xué)經(jīng)驗,探索了該課程項目化教學(xué)的具體實施方法。
一、改變傳統(tǒng)教學(xué)方法
VHDL語言及應(yīng)用這門課程的終極目標(biāo)是使學(xué)生掌握VHDL語言并能用之進(jìn)行相關(guān)的電子設(shè)計。如果教師將大量的時間用于講解枯澀的語法、語句、復(fù)雜的算法,學(xué)生在學(xué)習(xí)時也不知它們有何用途,學(xué)、用脫節(jié),只是為學(xué)而學(xué),不能激發(fā)學(xué)生學(xué)習(xí)和應(yīng)用知識的興趣和積極性,效果很差,[2]因此教師不能按部就班地講解知識。教師可以通過多個實例講解語法,效果會好得多。這就要求老師上課全部現(xiàn)場編寫程序,并且故意犯一些學(xué)生經(jīng)常犯的錯誤,編程中的錯誤基本上都是語法和語句使用不當(dāng)引起的,教師恰好可以利用這些錯誤來講解語法、語句。這門課程的硬件基礎(chǔ)是FPGA和CPLD芯片,CPLD/FPGA內(nèi)部沒有CPU,只需要用1課時簡單講解即可,并不需要詳細(xì)分析。因為對于設(shè)計者而言只要會用這些芯片即可,而且CPLD/FPGA芯片本身就像一張白紙,只要學(xué)生的單片機(jī)和硬件描述語言足夠好,學(xué)生就可以任意發(fā)揮,所以本課程的關(guān)鍵還是掌握VHDL語言本身。
二、理論教學(xué)環(huán)節(jié)的項目化實施
1.通過最簡單的例子引導(dǎo)學(xué)生入門
以二極管閃爍為例,分成幾個層次,一步一步引導(dǎo)學(xué)生入門。
先問學(xué)生:如何讓一個二極管亮?學(xué)生學(xué)過數(shù)字電路,知道當(dāng)二極管的陽極為高電平且陰極為低電平時二極管亮。然后講解在VHDL語言里是如何實現(xiàn)的,接著現(xiàn)場編寫程序,最后下載到開發(fā)板上并且演示。
接著問:如何讓二極管閃爍呢?當(dāng)陰極接地且陽極的高、低電平等間隔出現(xiàn)時二極管閃爍,在VHDL里如何實現(xiàn)呢?在剛才程序里稍作修改即可,同樣要演示給學(xué)生看,并可順勢講一點(diǎn)這個程序里出現(xiàn)的語法和學(xué)習(xí)VHDL語言的一些注意事項,如工程名、頂層文件名和實體名要一致,命名時字母的大小寫沒有區(qū)別等。做到在不知不覺中自然而然地講解語法知識,學(xué)生記得也牢固。[2]
為了讓學(xué)生語法學(xué)得更扎實,所有程序教師都隨堂編寫,一邊編程序一邊講解語法語句,還可以插入算法的講解。經(jīng)過實踐,筆者發(fā)現(xiàn)現(xiàn)場編程的講解方法可以讓學(xué)生較好地記住一些難以理解的語法、詞法和算法。
2.設(shè)計巧妙的項目引導(dǎo)學(xué)生深入學(xué)習(xí)
在開展項目化教學(xué)時,項目的設(shè)計非常關(guān)鍵,設(shè)計的好壞直接影響教學(xué)效果。項目設(shè)計應(yīng)遵循如下原則:一是圍繞課程的重點(diǎn)展開,項目內(nèi)容應(yīng)覆蓋基本的教學(xué)知識點(diǎn)。二是為了調(diào)動學(xué)生的積極性,應(yīng)盡量選擇學(xué)生感興趣的項目。三是難度適中,項目過于簡單,學(xué)生會很快完成,達(dá)不到思考的效果;太難,支撐的理論知識就會過多,教學(xué)組織比較困難,不能達(dá)到預(yù)期的教學(xué)效果。VHDL語言及應(yīng)用共48課時,其中12節(jié)為實驗課,理論學(xué)時只有36課時,需要用4課時按照傳統(tǒng)的教學(xué)方式講解一些在項目中不好講解的知識,如CPLD/FPGA的硬件知識、VHDL語言的部分語法等,故選擇9個小項目講解各種知識。
在9個項目講解的過程中,還要教會學(xué)生如何閱讀英文datasheets。在進(jìn)行真正的項目設(shè)計時,必定要用到不少陌生的芯片,要想會用這些芯片,必須看它們的datasheets。datasheets總是長達(dá)幾十頁,學(xué)生不容易看懂,需要教師引導(dǎo)他們?nèi)绾巫プ∑渲械闹攸c(diǎn),快速準(zhǔn)確閱讀。
在項目的講解和設(shè)計后期,教師作為領(lǐng)隊將學(xué)生分成小組學(xué)習(xí),分組合作的學(xué)習(xí)方法激發(fā)了學(xué)生學(xué)習(xí)的動力,增強(qiáng)了各成員的責(zé)任感?;ハ嘀g積極配合、互動,培養(yǎng)學(xué)生多角度、多渠道獲得信息,有利于促進(jìn)學(xué)生發(fā)展,完善自我,也將學(xué)生評價變成了主動參與、自我反思、自我教育的過程。[3]
三、實踐教學(xué)環(huán)節(jié)的項目化改革
1.布置型教學(xué)改為開放式教學(xué)
傳統(tǒng)的實驗教學(xué)是教師講解實驗原理,然后演示一下實驗,學(xué)生只需按實驗講義中的步驟進(jìn)行,“依葫蘆畫瓢”,通過反復(fù)訓(xùn)練讓學(xué)生形成一定的基本技能。這種實驗教學(xué)模式,學(xué)生動手機(jī)會少,不能自主學(xué)習(xí),不利于個性發(fā)展,阻礙了學(xué)生的學(xué)習(xí)積極性、主動性、創(chuàng)造性以及現(xiàn)代科學(xué)思維方式的形成。[4]學(xué)生進(jìn)入實驗室后,教師可以提供大量實驗,讓學(xué)生根據(jù)各自興趣選擇想做的實驗。也可以由學(xué)生根據(jù)教學(xué)要求自己擬定實驗內(nèi)容,教師加以適當(dāng)指導(dǎo),減少實驗的盲目性,使學(xué)生真正參與到實驗中來,提高實驗教學(xué)效果,培養(yǎng)學(xué)生的動手能力和創(chuàng)新思維能力。
學(xué)生的實驗成績采取過程記錄法,教師為每一位學(xué)生準(zhǔn)備一張記錄卡,實時記錄學(xué)生的實驗情況。
2.統(tǒng)一實驗變?yōu)閷哟位瘜嶒?/p>
另外傳統(tǒng)的實驗教學(xué)中,所有學(xué)生做的實驗是一樣的。實際上學(xué)生到了大三,基礎(chǔ)已各不相同,可以根據(jù)學(xué)生的基礎(chǔ)采取層次化實驗教學(xué)。教師可以根據(jù)學(xué)生的具體情況將一個班分為4組,假設(shè)1組的學(xué)生基礎(chǔ)最好,2組次之,4組最差;每組的學(xué)生人數(shù)可以不一樣多,該課程成績想得優(yōu)秀的學(xué)生必須選擇1組或2組。針對4組學(xué)生要求教師準(zhǔn)備4套實驗內(nèi)容供學(xué)生選擇,每組的要求不一樣,具體安排如表2所示。因為鹽城師范學(xué)院要求一次實驗為25人左右(半個班級),所以教師需要同時指導(dǎo)2組學(xué)生,實際操作時可以1組和4組一起做實驗,2組和3組一起做實驗。如果教師愿意加班,第一次實驗可以只輔導(dǎo)一組學(xué)生,第二次及以后就可以2個組同時做實驗,交叉輔導(dǎo)了。
對于基礎(chǔ)較差的第4組同學(xué),實驗難度不宜太大,要留給學(xué)生一定的思考空間。同樣是設(shè)計性實驗,不同組別的具體內(nèi)容也可以不同,1組難度加大,而4組則簡單一些。如此訓(xùn)練下來,學(xué)生各有所得,不管基礎(chǔ)好壞,總能學(xué)到一定的知識,甚至有助于基礎(chǔ)差的學(xué)生學(xué)到更多的知識。
四、考核方式改革
項目化教學(xué)需要改變傳統(tǒng)教學(xué)中一張試卷定成績的考核辦法,[5]學(xué)生成績主要由項目的設(shè)計決定,要注意到學(xué)生的設(shè)計思路。理論知識學(xué)完后教師可以選擇幾個綜合性項目,學(xué)生從中任選一個進(jìn)行設(shè)計,這樣可以培養(yǎng)學(xué)生發(fā)現(xiàn)問題和解決問題的能力,也可提高其設(shè)計能力。
五、小結(jié)
本文根據(jù)VHDL語言及應(yīng)用的特點(diǎn),探索了適于它的項目化教學(xué)。通過項目化教學(xué),廢除注入式教學(xué)方法,建立以學(xué)生為本,教師啟發(fā)引導(dǎo)的教學(xué)方法。通過一個個項目和層次化實驗,學(xué)生不僅可以熟悉VHDL語言的基本語法和常用語句,還對硬件描述語言的本質(zhì)有了深刻的認(rèn)識,對所設(shè)計的電路有深刻理解,在此基礎(chǔ)上才能更好地使用VHDL語言進(jìn)行電路設(shè)計。通過多個項目的訓(xùn)練,學(xué)生的設(shè)計能力、創(chuàng)造能力和團(tuán)隊合作能力都可以得到很大提高,因此說項目化教學(xué)是應(yīng)用性強(qiáng)的課程的首選教學(xué)方法。
參考文獻(xiàn):
[1]胡小玲,翟秀艷,袁穎.VHDL的模塊化教學(xué)方法反思與總結(jié)[J].中國電力教育,2013,29(2):112-113.
[2]周殿鳳.片上可編程系統(tǒng)項目化教學(xué)探討[J].輕工科技,2013,
15(5):190-191.
[3]姚培.教師在理實一體化教學(xué)學(xué)生評價中的角色研究[J].中國電力教育,2013,29(25):180-181.
篇3
關(guān)鍵詞:VHDL; Max+Plus Ⅱ; 計數(shù)器; EDA技術(shù)
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:B
文章編號: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è)計、測試,面向多領(lǐng)域、多層次的IEEE標(biāo)準(zhǔn)硬件描述語言。它從20世紀(jì)70年代作為電路設(shè)計工具誕生于美國國防部至今,已經(jīng)成為十分流行的硬件描述工具,并且為大多數(shù)EDA工具所支持\。隨著電子技術(shù)的不斷進(jìn)步,數(shù)字系統(tǒng)的設(shè)計正朝著高速度、大容量、小體積的方向發(fā)展。 傳統(tǒng)的自底而上的模式已不能滿足芯片和系統(tǒng)的設(shè)計要求。為了提高設(shè)計效率,能夠簡化設(shè)計流程,大幅降低設(shè)計難度的VHDL設(shè)計方法受到廣泛關(guān)注。VHDL與其他傳統(tǒng)集成電路描述語言相比,具有明顯優(yōu)勢\:
(1) 功能強(qiáng)大,描述力強(qiáng)。可用于門級、電路級甚至系統(tǒng)級的描述、仿真和設(shè)計。
(2) 可移植性好。對于設(shè)計和仿真工具及不同的平臺均可采用相同的描述。
(3) 研制周期短, 成本低。
(4) 可以延長設(shè)計的生命周期。
(5) 具有電路仿真與驗證功能,用戶甚至不必編寫相量測試即可進(jìn)行源代碼級調(diào)試。設(shè)計者能夠跳過電路實驗,直接對各種方案進(jìn)行比較和選擇,使設(shè)計效率得以提高。
(6) 對設(shè)計的描述具有相對獨(dú)立性。
(7) 語言標(biāo)準(zhǔn)、規(guī)范,易于共享和復(fù)用。
目前,VHDL滲透了電子技術(shù)及其相關(guān)的各個工業(yè)領(lǐng)域,在工業(yè)設(shè)計中發(fā)揮著日益重要的作用。在世界范圍內(nèi),關(guān)于VHDL在多個領(lǐng)域尤其在芯片,系統(tǒng)設(shè)計方面的應(yīng)用研究已經(jīng)取得眾多矚目成果。
而將VHDL與醫(yī)學(xué)相結(jié)合,勢必成為電子自動化設(shè)計(EDA)一個全新的研究方向,本文主要研究將EDA通過VHDL應(yīng)用于醫(yī)學(xué),以對脈搏的測量為例,以實現(xiàn)數(shù)字系統(tǒng)對人體多種生理活動及生理反應(yīng)的直觀精確測量。
1 實驗設(shè)計
1.1 EDA技術(shù)在醫(yī)學(xué)教學(xué)中脈搏測量中的應(yīng)用探討
在臨床診斷,護(hù)理學(xué)等中介紹脈搏的測量時認(rèn)為脈搏很容易在手腕掌面外側(cè)跳動的橈動脈上摸到,也可測量頸部的頸動脈或腹股溝的股動脈。其測量方法是病員手臂放于舒適位置,用食指,中指,無名指的指腹端按壓在橈動脈表面,一般病員默數(shù)半分鐘,將所測的脈率乘以2便是一分鐘的脈數(shù),異常病人測一分鐘。成年人的脈搏在安靜狀態(tài)下每分鐘是60~80次。如少于60次是心動過緩。但訓(xùn)練有素的運(yùn)動員,脈搏有時也在60次以下,這正是心臟健康有力的表現(xiàn)。如超過100次是心動過速。體力活動或情緒激動時,脈搏可暫時增快,發(fā)燒時脈搏也增快。一般是體溫每升高1 ℃,脈搏就增加10~20次。此法只能粗略計算脈搏跳動,如將VHDL語言應(yīng)用其中,便可以通過EDA實驗箱中的七段數(shù)碼管直觀準(zhǔn)確地看到一分鐘的計數(shù)結(jié)果,并與之前通過醫(yī)學(xué)教材講授方法測出結(jié)果相比對,從而判定測量的正確與否。
1.2 設(shè)計思路
將脈搏信號通過脈搏傳感器采集進(jìn)入計算機(jī),而后作為輸入信號,而此信號作為脈沖信號,即如時鐘信號一般,當(dāng)輸入時計數(shù)器開始計數(shù),如下面設(shè)計一個十進(jìn)制計數(shù)器的VHDL描述便可用來對所采集的脈搏信號計數(shù)\。
1.3 VHDL設(shè)計流程
VHDL流程設(shè)計\如圖1所示。
圖1 VHDL流程設(shè)計圖
現(xiàn)在,計算機(jī)輔助工程軟件的供應(yīng)商已把日益通用的硬件描述語言VHDL作為其CAD 或EDA 軟件輸入與輸出的標(biāo)準(zhǔn), 其中ALTEKA公司提供的綜合工具M(jìn)ax+Plus Ⅱ,具有全面的邏輯設(shè)計能力, 從編輯、綜合、布線到仿真、下載都十分方便。
2 設(shè)計方案與結(jié)果分析
VHDL 語言設(shè)計十進(jìn)制計數(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è)計來通過實驗箱的七段數(shù)碼管掃描顯示計數(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;
最終實現(xiàn)的頂層文件原理圖如圖4所示。
圖4 頂層文件原理圖
頂層文件設(shè)計如圖4所示,通過該文件可以實現(xiàn)譯碼,下載到EDA實驗箱時,便可于實驗箱的數(shù)碼管上讀出相應(yīng)的脈搏數(shù),如圖5所示。
圖5 通過數(shù)碼管得到的最終仿真圖
VHDL語言與醫(yī)學(xué)內(nèi)容的結(jié)合,除了應(yīng)用于脈搏的測量,還可應(yīng)用于心跳及呼吸等的測量,以及受人體對聲、光刺激后的生理反應(yīng)時間的測定\等。電子自動化設(shè)計(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è)計等方面發(fā)揮著日益重要的作用\。以VHDL為核心的EDA技術(shù)應(yīng)用于醫(yī)學(xué),能直觀準(zhǔn)確的測量人體的脈搏心跳,呼吸等生理活動,以及受到外界刺激的生理反應(yīng)等,在醫(yī)學(xué)領(lǐng)域存在廣闊的發(fā)展空間,隨著進(jìn)一步的探索和實踐,必將對醫(yī)學(xué)的發(fā)展起到極大的推動作用。
參考文獻(xiàn)
[1]陳耀和. VHDL語言設(shè)計技術(shù)[M]. 北京: 電子工業(yè)出版社, 2004.
[2]汪國強(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è)計[M]. 南京: 東南大學(xué)出版社, 2004.
[5]余孟嘗. 數(shù)字電子技術(shù)簡明教程[M]. 3版. 北京: 高等教育出版社, 2006.
[6]朱正偉. EDA技術(shù)及應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2005.
[7]周政新. 電子設(shè)計自動化實踐與訓(xùn)練[M]. 北京: 中國民航出版社, 1998.
[8]江曉安. 數(shù)字電子技術(shù)[M]. 西安: 西安電子科技大學(xué)出版社, 2002.
篇4
【關(guān)鍵詞】Silverlight WCF CAD 分布線
在水電、建筑、土木施工、環(huán)境藝術(shù)設(shè)計、工業(yè)設(shè)計、服裝設(shè)計等各行各業(yè)從設(shè)計、實施、維護(hù)整個過程中會產(chǎn)生大量的CAD圖形文件,依靠傳統(tǒng)的文件存儲,會產(chǎn)生如下問題:
(1)CAD圖形文件存儲到一定級別的數(shù)量,查詢特別困難。
(2)CAD圖形文件無法直接在Web進(jìn)行查詢和無失真的展示、放大、縮小。
(3)工程用戶無法在CAD圖形文件上直接結(jié)合實時數(shù)據(jù),進(jìn)行動態(tài)展示和交互。
為了解決工程上的實際問題,通過對Silverlight(銀光)技術(shù)深入研究,結(jié)合CAD、Expression Design等軟件能較好的實現(xiàn)CAD圖形文件在Web端進(jìn)行無失真的展示和交互,同時跨平臺、跨瀏覽器,完全滿足用戶需求。
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 作為后臺開發(fā)工具。
Visual Studio 是微軟推行的一套完整的開發(fā)工具,用于完成桌面應(yīng)用程序或Web 應(yīng)用程序等的設(shè)計、開發(fā)和部署,能夠進(jìn)行工具共享,創(chuàng)建基于混合語言的解決方案。
Expression Blend 是在 Silverlight 和 .NET 平臺上進(jìn)行互動設(shè)計的工具。它使得用戶體驗概念可能在從最初的原型到最終的實現(xiàn)中都得到忠實的w現(xiàn)。
Expression Design 是一個專業(yè)的設(shè)計工具。它可以創(chuàng)建圖形資源,并在 Expression Studio:Expression Blend 和 Expression Web 中創(chuàng)建的應(yīng)用程序中使用。
2 CAD圖形的展示與實現(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平臺上展示,如圖1。
可以將處理過的CAD圖形文件以及CAD圖形文件的一些索引信息放入數(shù)據(jù)庫,方便CAD圖形的管理和索引工作,能快速實現(xiàn)CAD圖形的查詢和其它信息系統(tǒng)的使用。
2.2 后臺服務(wù)
Silverlight所有后臺服務(wù)通過WCF服務(wù)完成,Silverlight前臺獲取用戶請求,傳遞給WCF服務(wù),WCF服務(wù)通過后臺處理后,異步返回給Silverlight前臺用戶。
WCF服務(wù)包括CAD圖形文件信息管理和下載、用戶通過關(guān)鍵字查詢CAD圖形文件、查詢到的CAD圖形文件下載到Silverlight前臺。同時WCF服務(wù)還提供CAD文件熱點(diǎn)坐標(biāo)信息、以及用戶與CAD圖形文件交互信息、熱點(diǎn)實測數(shù)據(jù)、熱點(diǎn)歷史數(shù)據(jù)等等。
2.3 Silverlight前端處理
Silverlight通過后臺服務(wù)下載到所需CAD圖形XAML文件,放入畫布上。通過Silverlight提供的放大、縮小、平移等功能,方便用戶對CAD圖形進(jìn)行各種操作。
Silverlight具有豐富的繪圖功能,可以以CAD圖形文件為地圖,根據(jù)各種業(yè)務(wù)需求,在CAD圖形文件上繪制各種圖形,同時結(jié)合后臺服務(wù),查詢各種信息,在CAD圖形文件上進(jìn)行展示。
Silverlight還具有豐富的動畫功能,可以結(jié)合后臺服務(wù),查詢CAD圖形文件上熱點(diǎn)實測、歷史數(shù)據(jù),在CAD圖形上繪制各種生動、形象、直觀的動畫。
3 應(yīng)用
在大壩設(shè)計、施工、維護(hù)中會產(chǎn)生了大量的CAD圖形文件,并且在這些CAD圖形文件中會標(biāo)注大量的監(jiān)測儀器。通過Silverlight技術(shù)結(jié)合WCF服務(wù),實現(xiàn)了CAD圖形文件在Web端快速查詢、展示和日常操作,以及基于CAD圖形文件為底圖的分布線繪制。
3.1 監(jiān)測布置圖
監(jiān)測布置圖實現(xiàn)了大量CAD圖形文件查詢、展示、放大、縮小、移動等功能,提高了工程用戶的工作效率,節(jié)省了大量時間,如圖2。
3.2 分布線
大壩日常維護(hù)人員迫切希望能在CAD圖形文件直接看到監(jiān)測儀器實測數(shù)據(jù),同時可以查詢一段時間各個測點(diǎn)測值,并且通過動畫動態(tài)展示每個測點(diǎn)測值變化趨勢,從而判斷每個測點(diǎn)變化情況,為后期采取相應(yīng)措施提供依據(jù)。Silverlight提供了豐富的動畫功能,能快速實現(xiàn)用戶需求,通過WCF服務(wù)查詢各測點(diǎn)測值,供Silverlight前端調(diào)用,為用戶在前端提供豐富的交互體驗,如圖3。
4 結(jié)語
本文研究了基于Silverlight技術(shù)下的CAD圖形文件應(yīng)用開發(fā),并在此基礎(chǔ)上實現(xiàn)了CAD圖形文件在Web端的查詢、放大、縮小、移動等操作,同時基于CAD文件為底圖開發(fā)了分布線動畫功能,實現(xiàn)了用戶與CAD圖形間交互,滿足了用戶對CAD圖形的各種需求,極大的提高了用戶工作效率和使用體驗。
同時基于矢量圖形在Silverlight的展示和動畫功能技術(shù)研究,可以結(jié)合各行各業(yè)、各種需求開發(fā)出豐富多彩的富客戶端插件,在各行各業(yè)、各個平臺進(jìn)行應(yīng)用。
參考文獻(xiàn)
[1]魏永超. Silverlight 3.0開發(fā)詳解與最佳實踐[M].北京:清華大學(xué)出版社,2003
[2](美)西爾伯沙茨等著,楊冬青等譯.數(shù)據(jù)庫系統(tǒng)概念[M].北京:機(jī)械工業(yè)出版社,2005.
篇5
利用硬件描述語言VHDL,數(shù)字電路系統(tǒng)可從系統(tǒng)行為級、寄存器傳輸級和門級三個不同層次進(jìn)行設(shè)計,即上層到下層(從抽象到具體)逐層描述自己的設(shè)計思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,利用EDA工具,逐層進(jìn)行仿真驗證,再把其中需要變?yōu)閷嶋H電路的模塊組合,經(jīng)過自動綜合工具轉(zhuǎn)換到門級電路網(wǎng)表。接著,再用專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)自動布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實現(xiàn)的具體電路布線結(jié)構(gòu)。目前,這種高層次設(shè)計的方法已被廣泛采用。據(jù)統(tǒng)計,目前在美國硅谷約有90%以上的ASIC和FPGA采用硬件描述語言進(jìn)行設(shè)計。VHDL的應(yīng)用已成為當(dāng)今以及未來EDA解決方案的核心,而且是復(fù)雜數(shù)字系統(tǒng)設(shè)計的核心。
一、VHDL的特點(diǎn)
VHDL是一種全方位的硬件描述語言,具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級三個不同層次的設(shè)計,支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強(qiáng),因此在實際應(yīng)用中越來越廣泛。VHDL的主要特點(diǎn)有:
1.功能強(qiáng)大。與其他的硬件描述語言相比,VHDL具有更強(qiáng)的描述能力和語言結(jié)構(gòu),可以用簡潔的源代碼描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計描述功能,層層細(xì)化,最后直接生成電路級描述。
2.系統(tǒng)硬件描述能力強(qiáng)。VHDL具有豐富的數(shù)據(jù)類型,豐富的仿真語句和庫函數(shù),在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)功能的可行性,隨時可對設(shè)計進(jìn)行仿真模擬。
3.設(shè)計與工藝無關(guān)。用VHDL進(jìn)行硬件電路設(shè)計時,并不需要首先考慮選擇完成設(shè)計的器件。VHDL的硬件描述與具體的工藝和硬件結(jié)構(gòu)無關(guān),因此VHDL設(shè)計程序的硬件實現(xiàn)目標(biāo)器件有廣闊的選擇范圍。
4.設(shè)計方法靈活,易于修改。VHDL語言標(biāo)準(zhǔn)、規(guī)范,大多數(shù)EDA工具都支持VHDL。在硬件設(shè)計過程中,用VHDL語言編寫的源程序便于管理,VHDL易讀、結(jié)構(gòu)模塊化,方便修改、交流和保存。
5.支持廣泛,移植能力強(qiáng)。VHDL是一個標(biāo)準(zhǔn)語言,在電子設(shè)計領(lǐng)域,為眾多的EDA工具支持,因此移植能力好。
二、VHDL的結(jié)構(gòu)和設(shè)計方法
1.VHDL的基本結(jié)構(gòu)
VHDL的結(jié)構(gòu)模型包括五個部分:實體、結(jié)構(gòu)體、配置、程序包、庫。前四種可分別編譯,編譯后放入庫中,以備上層模塊調(diào)用。
(1)實體定義了器件的輸入輸出端口,設(shè)計實體是VHDL的基本單元,可以表示整個系統(tǒng)、一塊電路板、一個芯片或一個門電路。
(2)結(jié)構(gòu)體定義實體的實現(xiàn),即描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為。
(3)配置用于從庫中選取所需單元來組成系統(tǒng)設(shè)計的不同版本,為實體選定某個特定的結(jié)構(gòu)體。
(4)程序包存放各設(shè)計模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等。
(5)庫用來存放編譯結(jié)果,包括實體、結(jié)構(gòu)體、配置、程序包。
2.VHDL的設(shè)計方法
VHDL將層次化的設(shè)計方法引入到硬件描述中,自上向下的設(shè)計是從系統(tǒng)級開始,將整個系統(tǒng)劃分為子模塊,然后對這些子模塊再進(jìn)行進(jìn)一步的劃分,直到可以直接用庫中的元件來實現(xiàn)為止。在設(shè)計方法上,將傳統(tǒng)的“電路設(shè)計硬件搭試調(diào)試焊接”模式轉(zhuǎn)變?yōu)椤肮δ茉O(shè)計軟件模擬仿真下載”方式。數(shù)字系統(tǒng)的設(shè)計采用自頂向下的方法,最頂層電路設(shè)計是指系統(tǒng)的整體要求,最下層是指具體邏輯電路的實現(xiàn)。一般的電子系統(tǒng)設(shè)計可分為兩個階段,第一階段是系統(tǒng)的邏輯設(shè)計和仿真,得出的是門級電路的原理圖或網(wǎng)表;第二階段設(shè)計如印刷電路板的布局布線,集成電路的版圖設(shè)計等,得出的是最終的物理設(shè)計。
三、VHDL的應(yīng)用實例
筆者以Max+plusⅡ軟件作為平臺的一個空調(diào)機(jī)控制器的設(shè)計為例,談?wù)刅HDL在數(shù)字電路設(shè)計中的具體應(yīng)用。
實現(xiàn)一個控制器,常用有限狀態(tài)機(jī)方法實現(xiàn)。傳統(tǒng)的設(shè)計方法主要包括5個過程:確定原始狀態(tài)圖,狀態(tài)簡化,狀態(tài)編碼,觸發(fā)器類型的選擇及控制邏輯方程和輸出方程的確定,畫出電路原理圖。采用這種方法設(shè)計復(fù)雜狀態(tài)機(jī)將會十分繁雜。
利用VHDL來設(shè)計有限狀態(tài)機(jī),可以充分發(fā)揮硬件描述語言的抽象能力,進(jìn)行功能描述,而具體的邏輯化簡和電路設(shè)計可由計算機(jī)自動完成,從而提高了設(shè)計的工作效率,并且條理清晰,修改起來也更方便,所以很適合復(fù)雜時序電路的設(shè)計。應(yīng)用VHDL設(shè)計狀態(tài)機(jī)的步驟如下:第一,根據(jù)系統(tǒng)要求確定狀態(tài)數(shù)量、狀態(tài)轉(zhuǎn)移的條件和各狀態(tài)輸出信號的賦值,并畫出狀態(tài)轉(zhuǎn)移圖;第二,按照狀態(tài)轉(zhuǎn)移圖編寫有限狀態(tài)機(jī)的VHDL程序;第三,利用EDA工具進(jìn)行功能仿真驗證;第四,編程下載。
空調(diào)機(jī)控制器的設(shè)計。它的兩個輸入來自溫度傳感器,用于監(jiān)測室內(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)的制冷和制熱輸出信號。
按照繪制好的狀態(tài)轉(zhuǎn)移圖編寫VHDL程序,編程中采用case語句來描述狀態(tài)的改變,它具有直觀、條理清晰及易于修改等特點(diǎn)。也可以采用不同進(jìn)程來實現(xiàn)狀態(tài)的改變,所以編程方法多種。
功能仿真。利用Max+plusⅡ軟件工具對所編程序進(jìn)行編譯、仿真。當(dāng)temp-low為“1”,即溫度過低,則heat為“1”(制熱);當(dāng)temp-high為“1”,即溫度過高,則cool為“1”(制冷)。經(jīng)綜合后的仿真分析表明,該方案是合理可行的。通過仿真后,即可編程下載。
四、使用VHDL應(yīng)注意的一些問題
由于VHDL語言是描述硬件行為的,相對其它開發(fā)軟件的高級語言而言,在編程過程中有一些特殊性,所以經(jīng)常會出現(xiàn)語法正確但無法綜合的問題。其原因多半因為編程者對硬件內(nèi)部的工作原理了解不夠,寫出的代碼硬件無法實現(xiàn)。在此總結(jié)出一些應(yīng)注意的問題:
篇6
1.1設(shè)計背景
隨著出租車行業(yè)的發(fā)展,對出租車計費(fèi)器的要求也越來越高。二十世紀(jì)后半期,隨著集成電路和計算機(jī)技術(shù)的飛速發(fā)展,數(shù)字系統(tǒng)也得到了飛速發(fā)展,其實現(xiàn)方法經(jīng)歷了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的過程。同時為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成電路(ASIC)逐漸取代了通用全硬件LSI電路,而ASIC以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業(yè)界大量可編程邏輯器件(PLD),尤其是現(xiàn)場可編程邏輯器件(FPLD)被大量地應(yīng)用在ASIC的制作當(dāng)中。在可編程集成電路的開發(fā)過程中,以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、智能化技術(shù)最新成果的電子設(shè)計自動化(EDA)技術(shù)主要能輔助進(jìn)行三方面的設(shè)計工作:IC設(shè)計,電子電路設(shè)計以及PCB設(shè)計
理想的可編程邏輯開發(fā)系統(tǒng)能符合大量的設(shè)計要求:它能夠支持不同結(jié)構(gòu)的器件,在多種平臺運(yùn)行,提供易于使用的界面,并且有廣泛的特征。此外,一個設(shè)計系統(tǒng)應(yīng)該能給設(shè)計師提供充分自由的設(shè)計輸入方法和設(shè)計工具選擇。Altered公司開發(fā)的MAX+PLUSⅡ開發(fā)系統(tǒng)能充分滿足可編程邏輯設(shè)計所有要求。
MAX+PLUSⅡ設(shè)計環(huán)境所提供的靈活性和高效性是無可比擬的。其豐富的圖形界面,輔之以完整的、可及時訪問的在線文檔,使設(shè)計人員能夠輕松、愉快地掌握和使用MAX+PLUSⅡ軟件。
編程器是一種專門用于對可編程器(如EPROM,EEPROM,GAL,CPLD,PAL等)進(jìn)行編程的專業(yè)設(shè)備
PLD器件的邏輯功能描述一般分為原理圖描述和硬件描述語言描述,原理圖描述是一種直觀簡便的方法,它可以將現(xiàn)有的小規(guī)模集成電路實現(xiàn)的功能直接用PLD器件來實現(xiàn),而不必去將現(xiàn)有的電路用語言來描述,但電路圖描述方法無法做到簡練;硬件描述語言描述是可編程器件設(shè)計的另一種描述方法,語言描述可能精確和簡練地表示電路的邏輯功能,現(xiàn)在PLD的設(shè)計過程中廣泛使用。常用的硬件描述語言有ABEL,VHDL語言等,其中ABEL是一種簡單的硬件描述語言,其支持布爾方程、真值表、狀態(tài)機(jī)等邏輯描述,適用于計數(shù)器、譯碼器、運(yùn)算電路、比較器等邏輯功能的描述;VHDL語言是一種行為描述語言,其編程結(jié)構(gòu)類似于計算機(jī)中的C語言,在描述復(fù)雜邏輯設(shè)計時,非常簡潔,具有很強(qiáng)的邏輯描述和仿真能力,是未來硬件設(shè)計語言的主流。
VHDL就是超高速集成電路硬件描述語言。覆蓋面廣,描述能力強(qiáng),是一個多層次的硬件描述語言。在VHDL語言中,設(shè)計的原始描述可以非常簡練,經(jīng)過層層加強(qiáng)后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。具有良好的可讀性,即容易被計算機(jī)接受,也容易被讀者理解。使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關(guān),當(dāng)工藝改變時,只需修改相應(yīng)程序中的屬性參數(shù)即可。支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。一個大規(guī)模的設(shè)計不可能由一個人獨(dú)立完成,必須由多人共同承擔(dān),VHDL為設(shè)計的分解和設(shè)計的再利用提供了有力的支持。
1.2EDA發(fā)展概況
電子設(shè)計技術(shù)的核心就是EDA技術(shù),EDA是指以計算機(jī)為工作臺,融合應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、智能化技術(shù)最新成果而研制成的電子CAD通用軟件包,主要能輔助進(jìn)行三方面的設(shè)計工作,即IC設(shè)計、電子電路設(shè)計和PCB設(shè)計。EDA技術(shù)已有30年的發(fā)展歷程,大致可分為三個階段。70年代為計算機(jī)輔助設(shè)計(CAD)階段,人們開始用計算機(jī)輔助進(jìn)行IC版圖編輯、PCB布局布線,取代了手工操作。80年代為計算機(jī)輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能設(shè)計和結(jié)構(gòu)設(shè)計,并且通過電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起,實現(xiàn)了工程設(shè)計。CAE的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動布局布線,PCB后分析。90年代為電子系統(tǒng)設(shè)計自動化(EDA)階段。
中國EDA市場已漸趨成熟,不過大部分設(shè)計工程師面向的是PC主板和小型ASIC領(lǐng)域,僅有小部分(約11%)的設(shè)計人員開發(fā)復(fù)雜的片上系統(tǒng)器件。為了與臺灣和美國的設(shè)計工程師形成更有力的競爭,中國的設(shè)計隊伍有必要購入一些最新的EDA技術(shù)。
在信息通信領(lǐng)域,要優(yōu)先發(fā)展高速寬帶信息網(wǎng)、深亞微米集成電路、新型元器件、計算機(jī)及軟件技術(shù)、第三代移動通信技術(shù)、信息管理、信息安全技術(shù),積極開拓以數(shù)字技術(shù)、網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的新一代信息產(chǎn)品,發(fā)展新興產(chǎn)業(yè),培育新的經(jīng)濟(jì)增長點(diǎn)。要大力推進(jìn)制造業(yè)信息化,積極開展計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助工程(CAE)、計算機(jī)輔助工藝(CAPP)、計算機(jī)機(jī)輔助制造(CAM)、產(chǎn)品數(shù)據(jù)管理(PDM)、制造資源計劃(MRPII)及企業(yè)資源管理(ERP)等。有條件的企業(yè)可開展“網(wǎng)絡(luò)制造”,便于合作設(shè)計、合作制造,參與國內(nèi)和國際競爭。開展“數(shù)控化”工程和“數(shù)字化”工程。自動化儀表的技術(shù)發(fā)展趨勢的測試技術(shù)、控制技術(shù)與計算機(jī)技術(shù)、通信技術(shù)進(jìn)一步融合,形成測量、控制、通信與計算機(jī)(M3C)結(jié)構(gòu)。在ASIC和PLD設(shè)計方面,向超高速、高密度、低功耗、低電壓方向發(fā)展。外設(shè)技術(shù)與EDA工程相結(jié)合的市場前景看好,如組合超大屏幕的相關(guān)連接,多屏幕技術(shù)也有所發(fā)展。
中國自1995年以來加速開發(fā)半導(dǎo)體產(chǎn)業(yè),先后建立了幾所設(shè)計中心,推動系列設(shè)計活動以應(yīng)對亞太地區(qū)其它EDA市場的競爭。
在EDA軟件開發(fā)方面,目前主要集中在美國。但各國也正在努力開發(fā)相應(yīng)的工具。日本、韓國都有ASIC設(shè)計工具,但不對外開放。中國華大集成電路設(shè)計中心,也提供IC設(shè)計軟件,但性能不是很強(qiáng)。相信在不久的將來會有更多更好的設(shè)計工具有各地開花并結(jié)果。據(jù)最新統(tǒng)計顯示,中國和印度正在成為電子設(shè)計自動化領(lǐng)域發(fā)展最快的兩個市場,年復(fù)合增長率分別達(dá)到了50%和30%。
EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計工具趨于完美的地步。EDA市場日趨成熟,但我國的研發(fā)水平還很有限,需迎頭趕上。
可編程邏輯器件自70年代以來,經(jīng)歷了PAL、GALGPLD、FPGA幾個發(fā)展階段,其中CPLD/FPGA高密度可編程邏輯器件,目前集成度已高達(dá)200萬門/片,它將各模塊ASC集成度高的優(yōu)點(diǎn)和可編程邏輯器件設(shè)計生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場擴(kuò)大時,它可以很容易地轉(zhuǎn)換掩模ASIC實現(xiàn),因此開發(fā)風(fēng)險也大為降低。
硬件描述語言(HDL)是一種用于設(shè)計硬件電子系統(tǒng)的計算機(jī)語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)的門級描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計。例如一個32位的加法器,利用圖形輸入軟件需要輸人500至1000個門,而利用VHDL語言只需要書寫一行“A=B+C”即可。而且VHDL語言可讀性強(qiáng),易于修改和發(fā)現(xiàn)錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發(fā),互不兼容,而且不支持多層次設(shè)計,層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國國防部正式推出了高速集成電路硬件描述語言VHDL,1987年IEEE采納VHDL為硬件描述語言標(biāo)準(zhǔn)(IEEESTD-1076)。
VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級。寄存器傳輸級和邏輯門多個設(shè)計層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由下向上的電路設(shè)計過程都可以用VHDL來完成。VHDL還具有以下優(yōu)點(diǎn):(1)VHDL的寬范圍描述能力使它成為高層進(jìn)設(shè)計的核心,將設(shè)計人員的工作重心提高到了系統(tǒng)功能的實現(xiàn)與調(diào)試,而花較少的精力于物理實現(xiàn)。VHDL可以用簡潔明確的代碼描述來進(jìn)行復(fù)雜控制邏輯設(shè)計,靈活且方便,而且也便于設(shè)計結(jié)果的交流、保存和重用。(3)VHDL的設(shè)計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。(4)VHDL是一個標(biāo)準(zhǔn)語言,為眾多的EDA廠商支持,因此移植性好。傳統(tǒng)的硬件電路設(shè)計方法是采用自下而上的設(shè)計方法,即根據(jù)系統(tǒng)對硬件的要求,詳細(xì)編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進(jìn)行細(xì)化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進(jìn)行各功能模塊的細(xì)化和電路設(shè)計;各功能模塊電路設(shè)計、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進(jìn)行系統(tǒng)的調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。采用傳統(tǒng)方法設(shè)計數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時,設(shè)計者必須具備較好的設(shè)計經(jīng)驗,而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(HardwareDescriptionLanguage,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計環(huán)境中使用,這給設(shè)計者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語言作為可相互交流的設(shè)計環(huán)境已勢在必行。于是,美國于1981年提出了一種新的、標(biāo)準(zhǔn)化的HDL,稱之為VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,簡稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計數(shù)字邏輯系統(tǒng)的語言。設(shè)計者可以利用這種語言來描述自己的設(shè)計思想,然后利用電子設(shè)計自動化工具進(jìn)行仿真,再自動綜合到門電路,最后用PLD實現(xiàn)其功能。
覆蓋面廣,描述能力強(qiáng),是一個多層次的硬件描述語言。在VHDL語言中,設(shè)計的原始描述可以非常簡練,經(jīng)過層層加強(qiáng)后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。
具有良好的可讀性,即容易被計算機(jī)接受,也容易被讀者理解。
使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關(guān),當(dāng)工藝改變時,只需修改相應(yīng)程序中的屬性參數(shù)即可。
支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。一個大規(guī)模的設(shè)計不可能由一個人獨(dú)立完成,必須由多人共同承擔(dān),VHDL為設(shè)計的分解和設(shè)計的再利用提供了有力的支持。
當(dāng)電路系統(tǒng)采用VHDL語言設(shè)計其硬件時,與傳統(tǒng)的電路設(shè)計方法相比較,具有如下的特點(diǎn):
即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計的內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計。在設(shè)計的過程中,對系統(tǒng)自上而下分成三個層次進(jìn)行設(shè)計:
第一層次是行為描述。所謂行為描述,實質(zhì)上就是對整個系統(tǒng)的數(shù)學(xué)模型的描述。一般來說,對系統(tǒng)進(jìn)行行為描述的目的是試圖在系統(tǒng)設(shè)計的初始階段,通過對系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達(dá)系統(tǒng)設(shè)計的要求。
第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達(dá)式,才能進(jìn)行邏輯綜合。
第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級網(wǎng)絡(luò)表)。此時,如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對綜合的結(jié)果在門電路級上進(jìn)行仿真,并檢查其時序關(guān)系。
應(yīng)用邏輯綜合工具產(chǎn)生的門網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼,即可利用PLD實現(xiàn)硬件電路的設(shè)計。
由自上而下的設(shè)計過程可知,從總體行為設(shè)計開始到最終的邏輯綜合,每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計周期。
系統(tǒng)可大量采用PLD芯片。
由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設(shè)計數(shù)字系統(tǒng)時,可以根據(jù)硬件電路的設(shè)計需要,自行利用PLD設(shè)計自用的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)都遵守國際CFI組織制定的統(tǒng)一技術(shù)標(biāo)準(zhǔn)??蚣芙Y(jié)構(gòu)能將來自不同EDA廠商的工具軟件進(jìn)行優(yōu)化組合,集成在一個易于管理的統(tǒng)一的環(huán)境之下,而且還支持任務(wù)之間、設(shè)計師之間以及整個產(chǎn)品開發(fā)過程中的信息傳輸與共享,是并行工程和自頂向下設(shè)計施的實現(xiàn)基礎(chǔ)。
EDA技術(shù)的每一次進(jìn)步,都引起了設(shè)計層次上的一次飛躍,從設(shè)計層次上分,70年代為物理級設(shè)計(CAD),80年代為電路級設(shè)計(CAE),90年代進(jìn)入到系統(tǒng)級設(shè)計(EDA)。物理級設(shè)計主要指IC版圖設(shè)計,一般由半導(dǎo)體廠家完成,對電子工程師沒有太大的意義,因此本文重點(diǎn)介紹電路級設(shè)計和系統(tǒng)級設(shè)計。
仿真通過后,根據(jù)原理圖產(chǎn)生的電氣連接網(wǎng)絡(luò)表進(jìn)行PCB板的自動布局布線。在制作PCB板之前還可以進(jìn)行PCB后分析,其中包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并可將分析后的結(jié)果參數(shù)反標(biāo)回電路圖,進(jìn)行第二次仿真,也稱為后仿真。后仿真主要是檢驗PCB板在實際工作環(huán)境中的可行性。
由此可見,電路級的EDA技術(shù)使電子工程師在實際的電子系統(tǒng)產(chǎn)生前,就可以全面地了解系統(tǒng)的功能特性和物理特性,從而將開發(fā)風(fēng)險消滅在設(shè)計階段,縮短了開發(fā)時間,降低了開發(fā)成本。
篇7
【關(guān)鍵詞】現(xiàn)代EDA技術(shù)教學(xué)內(nèi)容改革
【中圖分類號】G【文獻(xiàn)標(biāo)識碼】A
【文章編號】0450-9889(2012)05C-Otqt3--OA
現(xiàn)代EDA技術(shù)是一門相對前沿和復(fù)雜的課程,該課程要求學(xué)生具備一定的嵌入式技術(shù)知識,而且課程的內(nèi)容對學(xué)生的理解能力和知識的綜合應(yīng)用能力提出了較高的要求。在傳統(tǒng)的現(xiàn)代EDA技術(shù)課程授課過程中,由于對課程的教學(xué)任務(wù)和目標(biāo)不是很明確,因此在授課過程中往往是強(qiáng)調(diào)該課程的一些基本概念和基本原理的介紹。然而,從以往的教學(xué)經(jīng)驗進(jìn)行統(tǒng)計分析發(fā)現(xiàn),僅僅對學(xué)生進(jìn)行一些相關(guān)概念和原理的介紹,遠(yuǎn)不能滿足當(dāng)前社會企業(yè)對EDA技術(shù)應(yīng)用的需求。這就對現(xiàn)代EDA技術(shù)的教學(xué)內(nèi)容及教學(xué)組織形式提出了新的要求。為此,本文將在現(xiàn)有的現(xiàn)代EDA技術(shù)課程教學(xué)內(nèi)容及教學(xué)實施方案的基礎(chǔ)上,對當(dāng)前教學(xué)過程中存在的問題和不足進(jìn)行深入分析,結(jié)合當(dāng)前現(xiàn)代電子設(shè)計企業(yè)對EDA技術(shù)應(yīng)用的需求,制定符合高職嵌入式專業(yè)學(xué)生基礎(chǔ)條件的教學(xué)內(nèi)容及組織形式,以提高高職院校學(xué)生掌握和應(yīng)用現(xiàn)代EDA技術(shù)設(shè)計關(guān)鍵技術(shù)的能力。
一、傳統(tǒng)的教學(xué)內(nèi)容分析
現(xiàn)代EDA技術(shù)課程經(jīng)過近年來的實踐,已經(jīng)形成了一套相對完整的教學(xué)內(nèi)容及教學(xué)方法,是在傳統(tǒng)的教學(xué)過程中現(xiàn)代EDA技術(shù)課程的教學(xué)內(nèi)容及課時安排。在該表中同時也給出了對不同教學(xué)內(nèi)容的教學(xué)要求。通過對傳統(tǒng)的教學(xué)內(nèi)容進(jìn)行分析可以發(fā)現(xiàn),在傳統(tǒng)的教學(xué)內(nèi)容中,占整個教學(xué)學(xué)時最多的一部分是VHDL程序開發(fā)部分。在實際的教學(xué)過程中,VHDL語言的教學(xué)內(nèi)容分兩個部分來開展,前半部分是VHDL語言的基礎(chǔ)部分,主要介紹VHDL的常用語句、形式。在
在課程的教學(xué)內(nèi)容中還包括FPGA開發(fā)簡介、ISE開發(fā)環(huán)境介紹,以及電路仿真配置下載。從整個教學(xué)內(nèi)容來看,傳統(tǒng)的現(xiàn)代EDA技術(shù)課程中介紹的內(nèi)容非常多,涉及的面也很廣,在實際的教學(xué)過程中,學(xué)生也普遍反映該課程的信息量非常大,但是,現(xiàn)代EDA技術(shù)課程在實際教學(xué)后一階段是VHDL程序開發(fā)的高級階段,主要給學(xué)生介紹VHDL環(huán)境下的建模方法,以比較典型常用的門級建模、行為級建模、結(jié)構(gòu)建模等三種方式分別闡述VHDL程序的開發(fā)方法和開發(fā)過程,這兩部分的內(nèi)容都開設(shè)了一定的實驗教學(xué)時間。
過程中所取得的教學(xué)效果卻并不是很理想。分析其原因,在于教學(xué)內(nèi)容的課程設(shè)置上存在比較大的問題。雖然表l所給出的教學(xué)內(nèi)容及課時安排,單純從每一個章節(jié)來看似乎都是很有必要的,而且課時安排也很合理,但是縱觀整個教學(xué)內(nèi)容就可以發(fā)現(xiàn),傳統(tǒng)的教學(xué)過程中對教學(xué)內(nèi)容更多的偏重于現(xiàn)代EDA技術(shù)中的相關(guān)核心知識的介紹,主要是給學(xué)生灌輸EDA設(shè)計的一些基本概念和基本方法,在各個章節(jié)的知識內(nèi)容中并沒有形成一個有機(jī)的整體,更沒有將所學(xué)習(xí)的這些知識與具體的實踐應(yīng)用結(jié)合起來,因此學(xué)生在學(xué)習(xí)過程中,越到課程后期越會發(fā)現(xiàn)學(xué)習(xí)非??菰?,而且直到整個課程完成之后,也不能夠體會EDA技術(shù)的設(shè)計理念,更不能夠?qū)⑺鶎W(xué)習(xí)的知識與EDA的工程應(yīng)相結(jié)合起來,造成了學(xué)生的學(xué)習(xí)效果與行業(yè)應(yīng)用需求想脫離的現(xiàn)狀。因此,對該課程的教學(xué)內(nèi)容進(jìn)行研究和分析之后需要針對所存在的問題,結(jié)合當(dāng)前電子設(shè)計及嵌入式行業(yè)對EDA技術(shù)的實際應(yīng)用需求情況,合理地對該課程的內(nèi)容進(jìn)行調(diào)整和優(yōu)化,將整個教學(xué)的內(nèi)容組織成一個整體,并把教學(xué)內(nèi)容與提升學(xué)生實踐應(yīng)用能力緊密結(jié)合起來。
二、改革后的教學(xué)內(nèi)容組成
針對目前在開展現(xiàn)代EDA技術(shù)課程教學(xué)過程中所存在的教學(xué)內(nèi)容與提升學(xué)生能力不一致的現(xiàn)狀,本文經(jīng)過深入的調(diào)研分析,結(jié)合高職院校學(xué)生的基礎(chǔ)條件以及今后就業(yè)過程中的崗位需求,對現(xiàn)代EDA技術(shù)課程的教學(xué)內(nèi)容進(jìn)行了徹底的改革與優(yōu)化。整個改革過程中,所遵循的原則有:
第一,緊貼任職崗位需求,優(yōu)化課程教學(xué)內(nèi)容,提高內(nèi)容的針對性。在傳統(tǒng)的教學(xué)過程中,有相當(dāng)一部分的教學(xué)時間是在給學(xué)生灌輸EDA技術(shù)的相關(guān)概念和常識,而這些概念和常識在學(xué)生今后的任職崗位應(yīng)用中,未必都會用得到。而對于那些不常用的概念和知識是完全沒有必要在課堂上為學(xué)生反復(fù)介紹的。而學(xué)生在今后任職崗位中可能會用到的一些常用方法和技巧,以及一些工具軟件的使用方法則應(yīng)該在課程的教學(xué)內(nèi)容中予以體現(xiàn)。
第二,增加實驗教學(xué)的比重,提升學(xué)生動手實踐的能力。在傳統(tǒng)的現(xiàn)代EDA技術(shù)教學(xué)內(nèi)容過程中,教學(xué)時間是50學(xué)時,其中實驗占14學(xué)時,實驗所占的學(xué)時比重偏少不足以提升學(xué)生的實踐動手能力。因此,在對教學(xué)內(nèi)容改革過程中,應(yīng)該加大實驗教學(xué)內(nèi)容的比重。
第三,引入EDA設(shè)計的典型案例,加強(qiáng)理論知識與實際工程之間的結(jié)合程度,既讓學(xué)生充分認(rèn)識到所學(xué)習(xí)的知識在今后任職崗位中的具體應(yīng)用情況,同時也提高了學(xué)生所學(xué)習(xí)知識與任職需求結(jié)合的緊密程度。在傳統(tǒng)教學(xué)過程中,所介紹的內(nèi)容都是教科書式的獨(dú)立知識點(diǎn)介紹,沒有將這些知識點(diǎn)與一個完整的EDA設(shè)計案例相結(jié)合起來。因此在對教學(xué)內(nèi)容改革過程中,需要引入一系列的經(jīng)典教學(xué)案。
首先,在開展EDA教學(xué)的基礎(chǔ)部分,花了10個學(xué)時給學(xué)生介紹EDA技術(shù)的發(fā)展概論、VHDL語言的基礎(chǔ)知識,以及ISE實驗開發(fā)環(huán)境。相對傳統(tǒng)的教學(xué)過程,變化最為突出的是VHDL語言基礎(chǔ)部分的課時量大幅度減少,而且在VHDL語言設(shè)計部分沒有安排專門的實驗教學(xué)。這樣設(shè)計的目的是盡可能減少學(xué)生對于基礎(chǔ)知識的學(xué)習(xí)時間,也許學(xué)生通過4個學(xué)時的VHDL語言基礎(chǔ)的學(xué)習(xí)不能夠完全掌握VHDL語言的開發(fā)方法,但是后面還將會給學(xué)生介紹一系列EDA的開發(fā)例,讓學(xué)生通過各種實際的教學(xué)案例,去體會EDA技術(shù)的應(yīng)用方法和應(yīng)用價值,提高學(xué)生學(xué)習(xí)EDA技術(shù)的興趣和動力。
篇8
【關(guān)鍵詞】MATLAB;傅里葉變換;頻域分析;VHDL
頻譜分析在生產(chǎn)實踐和科學(xué)研究中有著廣泛的應(yīng)用。其中,快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)是數(shù)字信號處理的最基本技術(shù)之一。近年來,隨著現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)技術(shù)的迅猛發(fā)展,利用高并行度、高速度的FPGA芯片來實現(xiàn)FFT已成為必然趨勢。
本文將以MATLAB為工具,對信號與系統(tǒng)在聯(lián)系時間系統(tǒng)的頻域進(jìn)行分析。
一、Matlab編程實現(xiàn)FFT實踐頻譜分析
步驟如下:
1.用Matlab產(chǎn)生正弦波,矩形波,以及白噪聲信號,并顯示各自時域波形圖。
2.進(jìn)行FFT變換,顯示各自頻譜圖,其中采樣率,頻率、數(shù)據(jù)長度自選。
3.做出上述三種信號的均方根圖譜,功率圖譜,以及對數(shù)均方根圖譜。
4.用IFFT傅立葉反變換恢復(fù)信號,并顯示恢復(fù)的正弦信號時域波形圖。
正弦波、矩形波以及白噪聲三種信號的FFT變換(傅里葉變換)及IFFT變換(傅里葉反變換恢復(fù)信號)。
圖1-1 正弦波
圖1-2 矩形波
圖1-3 白噪聲信號
二、FFT算法在基于VHDL的FPGA下實現(xiàn)
1.基于VHDL的FPGA設(shè)計流程
本小節(jié)以Xilinx公司的FPGA系統(tǒng)開發(fā)為實例,F(xiàn)PGA的設(shè)計流程一般包括系統(tǒng)功能設(shè)計定義、設(shè)計輸入、功能仿真、邏輯綜合、前仿真、設(shè)計實現(xiàn)(包括翻譯、映射、布局布線)、時序仿真與驗證、下載配置與器件編程、測試驗證等幾個步驟。
本設(shè)計運(yùn)用ISE和ModelSim與Matlab聯(lián)合仿真的設(shè)計方法。
ISE的簡稱為集成綜合的環(huán)境,是Xilinx公司的配套設(shè)計軟件,這種工具可完成上述FPGA/CPLD的整個開發(fā)過程
2.FPGA的基本原理和結(jié)構(gòu)
FPGA即現(xiàn)場可編程門陣列,相對其他可編程器件具有更高的集成度、更強(qiáng)的邏輯實現(xiàn)能力和更好的設(shè)計靈活性。
FPGA的基本結(jié)構(gòu)如圖2-1所示。CLB陣列實現(xiàn)用戶指定的邏輯功能,它們以陣列的形式分布在FPGA中;IOB為內(nèi)部邏輯與器件封裝引腳之間提供了可編程接口,它通常排列在芯片四周;可編程互連資源分布在CLB的空隙,互連資源可以編程配置在模塊之間傳遞的信號網(wǎng)絡(luò),用于實現(xiàn)各個CLB之間、CLB與IOB之間以及全局信號與CLB和IOB之間的連接。FPGA利用可編程查找表實現(xiàn)邏輯塊;程序控制多路復(fù)用器實現(xiàn)其功能選擇。
圖2-1 FPGA的基本結(jié)構(gòu)
3.FFT 處理器的設(shè)計
本設(shè)計用于基于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ù)輸入的時間為64*50ns=3200ns。
本系統(tǒng)采用的時域抽取算法中要對輸入的所有數(shù)據(jù)進(jìn)行倒序以后才開始蝶形運(yùn)算,F(xiàn)FT可以分為數(shù)據(jù)輸入、蝶形運(yùn)算兩個階段,蝶形運(yùn)算結(jié)束后,將最終結(jié)果存儲到另一個單獨(dú)的結(jié)果存儲器另行讀取,而為了能對輸入數(shù)據(jù)實現(xiàn)連續(xù)的FFT變換,就需要蝶形運(yùn)算的總時間小于3200ns,這樣就可以用兩個FFT模塊去輪換做FFT,實現(xiàn)連續(xù)的FFT處理。如圖2-2所示。
64點(diǎn)的基2的時域抽取FFT算法總共有6級蝶形運(yùn)算,每級32次蝶形運(yùn)算,總共需要32*6=192個蝶形運(yùn)算,如果采用單蝶形設(shè)計,需要192次蝶形運(yùn)算,蝶形運(yùn)算的極限時鐘周期為3200ns/192=16.67ns,在本設(shè)計的蝶形運(yùn)算時鐘周期采用16ns。
開發(fā)環(huán)境:Quartus II 6.0
選擇FPGA芯片:Altera公司Stratix系列中的EP1S10484C5
語言:VHDL
圖2-2 兩個FFT模塊
三、MATLAB到VHDL轉(zhuǎn)換工具Simulink
Simulink程序包是MathWorks公司提供的一個非常有吸引力的高水平設(shè)計、仿真工具。
1.高效地從Simulink到VHDL的轉(zhuǎn)換工具
目前為止,設(shè)計者經(jīng)常遇到的最大問題是怎樣完成從算法設(shè)計到物理實現(xiàn)的轉(zhuǎn)換。在這個問題的研究發(fā)展過程中,設(shè)計者首先使用的是一種高層次的設(shè)計仿真工具,最通常的就是Matlab的Simulink。首先利用Mathworks的Matlab/Simulink完成頂層系統(tǒng)設(shè)計,然后通過轉(zhuǎn)換工具配置Simulink中的IP核,即將靜態(tài)參數(shù)傳遞給基于VHDL的IP,將Simulink模型文件(.md1)轉(zhuǎn)換成VHDL的RTL表述和工具命令語言(Tcl)腳本,同時還可進(jìn)行RTL級的功能仿真;然后通過SOPC設(shè)計工具進(jìn)行綜合、適配與時序仿真;最后形成對指定FPGA進(jìn)行編程配置的POF和SOF文件,實現(xiàn)硬件系統(tǒng)的仿真測試。轉(zhuǎn)換的工作可以描述成以下幾步:
(1)分析并確定Simulink模型。
(2)產(chǎn)生VHDL環(huán)境。
(3)生成對應(yīng)網(wǎng)表文件或示意圖進(jìn)行布局、布線和硬件的下載測試。
2.從Simulink到VHDL的自動轉(zhuǎn)換
為了簡單化轉(zhuǎn)換程序,在最初的Simulink模塊中設(shè)定一些約束條件(如圖3-1所示):
(1)運(yùn)行高字節(jié)的信號或變量;
(2)整個設(shè)計只有一種取樣率;
(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程序完成。由于對Simulink描述的分析比較困難,生成的VHDL代碼需要額外的編輯。例如,一些基本模塊如標(biāo)準(zhǔn)邏輯門和雙相位時鐘等的行為描述被手動設(shè)計成標(biāo)準(zhǔn)模塊庫中的一部分。
四、Matlab/Simulink到VHDL代碼的轉(zhuǎn)換研究
1.Xilinx System Generator
Matlab中的Simulink是一種對動態(tài)系統(tǒng)進(jìn)行建模、仿真及分析的交互式工具。Xilinx公司新推出的System Generator是一種高性能的設(shè)計工具,他可以嵌入作為Simulink的一部分運(yùn)行。在Simulink中System Generator打包為Xilinx Blockset,從Simulink的庫中可以瀏覽。System Generator設(shè)計流程圖如圖4-1所示。
轉(zhuǎn)換的操作也很簡單,在System Generator的模型參數(shù)設(shè)置對話框,選擇一個輸出路徑并選擇“Create Test bench”,單擊“Generate”就可以生成VHDL代碼和設(shè)計的testbench變量。當(dāng)選擇生成testbench變量后,Simulink將重新運(yùn)行剛才的仿真。這次由于將經(jīng)歷代碼生成過程,他將在testbench變量中保存所有輸入和輸出信息供VHDL和post-PAR仿真調(diào)用。
圖4-1 System generator設(shè)計流程圖
2.基于System Generator的FFT算法的實現(xiàn)
System Generator for DSP是Xilinx公司開發(fā)的基于Simulink圖形環(huán)境的DSP開發(fā)工具。利用System Generator工具,即使是沒有多少FPGA設(shè)計經(jīng)驗的設(shè)計人員也能夠快速開發(fā)出高性能的FPGA來實現(xiàn)DSP算法。
FFT算法實現(xiàn)流程:
根據(jù)FFT算法的原理以及System Generator工具的特點(diǎn),可以在System Generator中完成FFT算法的設(shè)計,然后自動生成HDL代碼,通過ISE軟件生成位流文件下載到FPGA中,從而完成整個設(shè)計。
實驗環(huán)境:matlab 2010b、ISE 12.3、System Generator for DSP 12.3
(1)系統(tǒng)模型設(shè)計
在Simulink環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用System Generator和其它的Simulink原圖形模塊,構(gòu)成系統(tǒng)級或算法級設(shè)計框圖如圖4-2所示。
圖4-2 設(shè)計框圖
Gateway in和Gateway out模塊:用于雙浮點(diǎn)精度數(shù)據(jù)和定點(diǎn)數(shù)據(jù)之間的轉(zhuǎn)換。
System Generator模塊:提供Matlab和硬件設(shè)計環(huán)境ISE的接口,可在指定目錄中產(chǎn)生可在ISE軟件下實現(xiàn)的硬件描述語言。
Delay模塊:構(gòu)成一個時延環(huán)節(jié),可以配置其延遲時鐘周期的整數(shù)倍。
FIFO模塊:用于實現(xiàn)一組FIFO列。
FFT v3_2模塊:為離散傅立葉變換(DFT)提供了一種有效算法。該模塊根據(jù)不同的結(jié)構(gòu)和實現(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)驗證與仿真
為了證明模型設(shè)計的正確性,需要對模型進(jìn)行測試試驗,將FFT模型的仿真結(jié)果與MATLAB的理論計算結(jié)果進(jìn)行比較,完成對所建立模型的測試工作。
1)信號在MATLAB中的處理
系統(tǒng)的輸入函數(shù)為,點(diǎn)數(shù)N=512,采樣周期為1s,在MATLAB中實現(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);
通過以上程序得到正弦信號通過512點(diǎn)FFT處理后的MATLAB理論計算結(jié)果如圖4-3所示。
a)實部結(jié)果 b)虛部結(jié)果
圖4-3 MATLAB理論計算結(jié)果
2)信號在FFT模型中的處理
在仿真前先對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模型的輸入端輸入正弦信號,然后選擇simulink/start,待仿真結(jié)束后查看scope模塊所顯示的仿真結(jié)果如圖4-4所示。
a)實部結(jié)果 b)虛部結(jié)果
圖4-4 FFT模型仿真結(jié)果
比較圖5-3和圖5-4的波形,可以看出FFT模型處理后的結(jié)果和Matlab的理論計算結(jié)果的波形基本一致,得到的都是頻率單一的實部和虛部。
需要說明的是:在圖5-5中實部和虛部的輸出都是從橫坐標(biāo)的1118點(diǎn)開始的,這是因為FFT模型中的FFT v3_2模塊參數(shù)選擇的是Pipelined Streaming I/O模式,在該模式下輸出需要延遲一段處理時間然后才能連續(xù)輸出,這里橫坐標(biāo)的1118點(diǎn)實際上就是輸出的起始點(diǎn),也就是輸出的的k=0的位置。
3.自動代碼生成
通過上面的測試實驗,證明所建立的FFT模型是滿足要求的,下面就需要將FFT模型轉(zhuǎn)換成HDL代碼。雙擊打開System Generator模塊的系統(tǒng)設(shè)定對話框,在該對話框中設(shè)定好目標(biāo)器件的型號(Virtex6 xc6vsx315t-3ff1156)、綜合工具(XST)、產(chǎn)生語言種類(VHDL)等參數(shù)(如圖4-5所示),并且選中“Createtest bench”選項,之后啟動System Generator模塊,將在指定目錄中產(chǎn)生可在ISE軟件下實現(xiàn)的硬件描述語言,并且自動生成設(shè)計的測試代碼。
圖4-5 System generator的參數(shù)設(shè)置
Gateway in模塊的參數(shù)設(shè)置如圖4-6所示:
圖4-6 Gateway in模塊的參數(shù)設(shè)置
五、總結(jié)
本文的研究工作主要是以下幾個部分:
1.介紹了傅里葉變換及其在頻譜分析中的應(yīng)用;
2.研究了利用MATLAB實現(xiàn)譜分析的傅里葉變換,其中包括基于MATLAB的連續(xù)信號與離散信號的頻域分析;另外,本文實現(xiàn)了基于MATLAB的快速傅里葉變換(FFT)以及信號的采樣——重構(gòu)操作;
3.探討FPGA的結(jié)構(gòu),其中主要涉及基于VHDL的FPGA設(shè)計流程;
4.討論了由Matlab生成VHDL代碼的原理,并介紹了利用System Generator及DSP Builder將Simulink模型轉(zhuǎn)換為VHDL代碼的方法。
下一步的研究工作在于對轉(zhuǎn)換研究進(jìn)行細(xì)化和拓展,其中細(xì)化部分集中于調(diào)試優(yōu)化,而拓展部分在于各種功能器件的轉(zhuǎn)換實現(xiàn)。
參考文獻(xiàn):
[1]石海,毛哲.基于DSP實現(xiàn)RFID實時信號頻譜分析[J].武漢工業(yè)學(xué)院學(xué)報,2008,9(3):69-72.
[2]Agilent Technologies Inc,Agilent N9340A Handheld Spectrum Analyzer TechnicalOverview.
[3]劉樹堂.2006.數(shù)字信號處理——使用MATLAB.西安:西安交通大學(xué)出版社,252-255.
[4]胡廣書著.數(shù)字信號處理——理論、算法與實現(xiàn)[M].北京:清華大學(xué)出版社,2003,2:93-210.
[5]Joyce Van de Vegte著.侯正信,王國安等譯.數(shù)字信號處理基礎(chǔ)[M].北京:電子工業(yè)出版社,2004.249-255,328-361.
篇9
關(guān)鍵詞:DDS;直接數(shù)字頻率合成;調(diào)頻;掃頻;VHDL
中圖分類號:TN99 文獻(xiàn)標(biāo)識碼:B 文章編號: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ù)字量形式的信號通過數(shù)模轉(zhuǎn)換器(DAC)轉(zhuǎn)換成模擬量形式的信號,其基本結(jié)構(gòu)如圖1所示。
圖1 DDS結(jié)構(gòu)示意圖DDS由相位累加器、加法器、波形存儲器(ROM)、數(shù)字乘法器、D/A轉(zhuǎn)換器和低通濾波器(LPF)組成。DDS的核心是相位累加器,由一個加法器和一個相位寄存器(REG)級聯(lián)構(gòu)成。在參考時鐘fc的控制下,相位累加器對頻率控制字K進(jìn)行線性累加,輸出的和再與相位控制字P相加后作為地址,對ROM進(jìn)行尋址。ROM中存放的是經(jīng)過采樣、量化處理后的某種周期性連續(xù)信號一個周期波形的幅度值,也就是與一個周期的相位采樣相對應(yīng)的函數(shù)波形查找表,不同的相位地址對應(yīng)這種周期信號的不同幅度值編碼。ROM輸出的幅度值編碼通過數(shù)字乘法器被幅度控制字A加權(quán),加權(quán)后的幅度值編碼經(jīng)D/A轉(zhuǎn)換器變成相應(yīng)的階梯波,再經(jīng)低通濾波器平滑后就可以得到所合成信號的模擬波形。合成的信號波形取決于ROM中存放的幅度值數(shù)據(jù),因此用DDS可以產(chǎn)生任意波形。
設(shè)相位累加器的字長為N,則DDS的輸出頻率fo和頻率分辨率(即最小輸出頻率)Δfmin分別為:fo=K?fc2N
Δfmin=fc2N 只要N足夠大,DDS可以得到很小的頻率分辨率。要改變DDS的輸出頻率,只要改變頻率控制字K即可。
值得注意的是,根據(jù)Nyquist采樣定理,在對連續(xù)信號進(jìn)行采樣的一個周期內(nèi),采樣頻率不能改變,故利用DDS進(jìn)行信號合成時,在信號合成的一個周期內(nèi),頻率控制字K不能發(fā)生變化,也就是K在每次改變之前至少應(yīng)該持續(xù)2N/K個DDS時鐘周期,即2N/K/fc。
通過改變相位控制字P可以控制輸出信號的相位參數(shù),設(shè)相位加法器的字長為M,當(dāng)相位控制字由0變到P(P≠0)時,ROM的輸入為相位累加器的輸出與相位控制字P之和,因此其輸出的幅度值相位會增加2πP/2M,從而使最后輸出的模擬信號產(chǎn)生相移。
DDS輸出信號的幅度可以通過在ROM之后加入一個數(shù)字乘法器來實現(xiàn),幅度控制字A起到對ROM所輸出的幅度值編碼進(jìn)行加權(quán)的作用。
由此可見,當(dāng)DDS的相位累加器字長和相位加法器字長確定后,通過改變K,P,A就可以有效地控制DDS輸出的模擬信號的頻率、相位和幅度,這就是DDS技術(shù)的調(diào)制特性。
2 VHDL語言實現(xiàn)的DDS
為簡單起見,下面所描述的DDS僅設(shè)置了頻率控制字K,相位控制字P和幅度控制字A都未予以考慮,其處理可以類推。DDS的輸出為正弦波信號。
由于正弦波關(guān)于π奇對稱,關(guān)于π/2與3π/2偶對稱,因此波形存儲器(ROM)中只需存儲其1/4個周期的幅度值編碼。具體地,ROM中存儲正弦波0~π/2相位范圍內(nèi)的256個采樣點(diǎn)的幅度值,采用8位編碼。而DDS的輸出為9位,最高位作為符號位,用以區(qū)分幅度值的正負(fù),“0”表示正,“1”表示負(fù)。ROM為8位地址尋址,而相位累加器的字長采用10位。最高位用以區(qū)分正弦波的前、后半周期,“0”為前半周期,幅度值為正,“1”為后半周期,幅度值為負(fù)。次高位用以區(qū)分正弦波前、后半周期的前、后1/4周期,“0”為前1/4周期,尋址地址為相位累加器的低8位,“1”為后1/4周期,尋址地址為相位累加器低8位的取反。
用VHDL實現(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)境中對其進(jìn)行仿真的結(jié)果,如圖2所示。
圖2 DDS仿真結(jié)果3 掃頻信號的產(chǎn)生
利用DDS技術(shù)的調(diào)制特性可以方便地產(chǎn)生掃頻信號,僅需控制DDS的頻率控制字K,讓其隨預(yù)期設(shè)計的規(guī)律變化即可。
為了采用DDS實現(xiàn)掃頻信號掃頻帶寬范圍內(nèi)的各個頻點(diǎn)fi,需要為其確定相應(yīng)的頻率控制字Ki,從而很容易地計算出所需的一系列Ki值。與DDS的基本原理類似,將符合設(shè)計要求的一系列Ki值存儲在一張查找表中。再利用一個計數(shù)器循環(huán)計數(shù),將其輸出作為查找表的尋址地址,以此不斷地循環(huán)讀取查找表中的各個Ki。這樣就可以使受Ki控制的DDS的輸出始終在所預(yù)期設(shè)計的各個頻點(diǎn)fi上變化,達(dá)到掃頻的目的。其中,計數(shù)器循環(huán)一次的時間就是所要實現(xiàn)的掃頻信號的掃頻周期,而計數(shù)器的計數(shù)范圍則與掃頻信號掃頻帶寬范圍內(nèi)的頻點(diǎn)個數(shù)相對應(yīng)。
以上就是利用DDS實現(xiàn)掃頻信號的基本思路,以下是實現(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)境中對其進(jìn)行仿真的結(jié)果如圖3所示。
圖3 產(chǎn)生頻率控制字的仿真結(jié)果4 結(jié) 語
VHDL是IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,可以描述硬件電路的功能、信號連接關(guān)系及定時關(guān)系,在電子工程領(lǐng)域用來描述、驗證和設(shè)計電子線路得到了廣泛的接受和應(yīng)用。利用DDS技術(shù)的調(diào)制特性產(chǎn)生各種調(diào)制信號簡單方便,容易實現(xiàn)。從文中不難看出,將VHDL語言與DDS技術(shù)結(jié)合起來設(shè)計生成調(diào)頻信號,直觀快捷,可操作性很強(qiáng),必將得到更加廣泛的應(yīng)用。
參 考 文 獻(xiàn)
[1]張順興.?dāng)?shù)字電路與系統(tǒng)設(shè)計[M].南京:東南大學(xué)出版社,2004.
[2]黃智偉.射頻電路設(shè)計[M].北京:電子工業(yè)出版社,2006.
[3]姜宇柏,游思晴.軟件無線電原理與工程應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4]譚會生,瞿遂春.EDA技術(shù)綜合應(yīng)用實例與分析[M].西安:西安電子科技大學(xué)出版社,2004.
[5]潘松,黃繼業(yè),王國棟.現(xiàn)代DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[6]鄧延安.直接數(shù)字頻率合成單象限存儲結(jié)構(gòu)的VHDL語言實現(xiàn)[J].安徽工程科技學(xué)院學(xué)報,2006,21(1):37-39.
[7]李逢玲,鄭飛.基于EDA技術(shù)的調(diào)頻信號發(fā)生器的設(shè)計[J].現(xiàn)代電子技術(shù),2006,29(8):10-12.
[8]DDS原理簡介[EB/OL]..cn.
篇10
【關(guān)鍵詞】項目化教學(xué);FPGA開發(fā)與應(yīng)用;VHDL
1 基于FPGA的數(shù)字系統(tǒng)設(shè)計簡介
FPGA是Field Programmable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它完全由用戶通過軟件進(jìn)行編程和配置,從而完成某種特定的功能,且可以反復(fù)擦寫的新型器件。傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法是自底向上的設(shè)計方法,它是以各種不同的中小規(guī)模集成電路芯片為基礎(chǔ),按照功能要求在印刷電路板上將不同的芯片連接起來,構(gòu)成實現(xiàn)某種功能的電子系統(tǒng)。基于FPGA[1]的數(shù)字系統(tǒng)設(shè)計方法采用自頂向下的設(shè)計方法,把系統(tǒng)分成若干個基本單元,然后再把每個基本單元劃分為下一層次的基本單元。它以FPGA芯片為核心,通過編程的方式完成系統(tǒng)功能的設(shè)計并將設(shè)計寫入FPGA芯片內(nèi),使芯片具有設(shè)計的功能。設(shè)計過程中通過不同階段的仿真可以及時檢查設(shè)計的正確性,電路的修改只需要通過修改程序并重新下載到FPGA中即可。因此基于FPGA的數(shù)字系統(tǒng)設(shè)計易于測試和修改,設(shè)計周期短,便于移植。
2 項目化教學(xué)實施過程
“FPGA開發(fā)與應(yīng)用”這門課是針對大三計算機(jī)網(wǎng)絡(luò)工程專業(yè)學(xué)生開設(shè)的一門專業(yè)課,學(xué)生在前期已學(xué)過《電路》、《數(shù)字電路》、《模擬電路》、《C語言程序設(shè)計》等課程。通過該門課,使學(xué)生掌握VHDL語言(超高速集成電路硬件描述語言)的編程方法,能熟練應(yīng)用ISE平臺進(jìn)行數(shù)字系統(tǒng)設(shè)計,理解自頂向下的系統(tǒng)設(shè)計方法,積累數(shù)字系統(tǒng)設(shè)計經(jīng)驗。
傳統(tǒng)的教學(xué)方法重在介紹VHDL語言的語法規(guī)則和語句,知識點(diǎn)較零散,學(xué)起來較枯燥,而且不知如何應(yīng)用這些語句。而項目化教學(xué)重在將知識點(diǎn)融在項目中理解,學(xué)生通過做一個小項目可以掌握相應(yīng)的知識點(diǎn),并通過3-4人一組協(xié)作完成,培養(yǎng)其團(tuán)隊合作能力、溝通能力和語言表達(dá)能力等。項目化教學(xué)真正實現(xiàn)了三個轉(zhuǎn)變:以教師為中心轉(zhuǎn)變?yōu)橐詫W(xué)生為中心;以課本為中心轉(zhuǎn)變?yōu)橐皂椖繛橹行模灰哉n堂為中心轉(zhuǎn)變?yōu)橐詫嶋H經(jīng)驗為中心[2]。
下面將通過“點(diǎn)亮兩位數(shù)字”項目分析如何實施項目化教學(xué)[3][4]。“點(diǎn)亮兩位數(shù)字”項目即利用Xilinx公司的ISE軟件平臺進(jìn)行系統(tǒng)設(shè)計,通過VHDL語言編程實現(xiàn)顯示兩位數(shù)字的功能,并最終生成二進(jìn)制文件,下載到Basys2開發(fā)板上驗證。
2.1 項目立項階段
教師先向?qū)W生展示最終要完成的效果,講明項目任務(wù),再對學(xué)生進(jìn)行分組,盡量采取自愿原則,教師可對小組成員適當(dāng)調(diào)整,保證每組中至少有一人學(xué)習(xí)情況較好,并任命一人為組長。
2.2 需求分析階段
根據(jù)項目要求,分析最終要呈現(xiàn)的效果,確定程序的功能模塊和性能需求。比如要用兩個數(shù)碼管顯示、動態(tài)掃描問題、譯碼問題等。
2.3 系統(tǒng)設(shè)計階段
首先每個小組要確定總體方案設(shè)計,例如分哪幾個模塊、每個模塊要實現(xiàn)什么功能,再進(jìn)行詳細(xì)設(shè)計,包括用Visio軟件繪制系統(tǒng)功能結(jié)構(gòu)圖(如圖1所示)、每個模塊如何用VHDL語言實現(xiàn)等。在詳細(xì)設(shè)計中,涉及每個模塊具體的功能,寫出詳細(xì)的系統(tǒng)設(shè)計報告,以此進(jìn)行編碼和測試,從而保證系統(tǒng)設(shè)計的可靠性??梢杂山M長分配任務(wù),讓每個組員完成一個模塊的編寫工作。
2.4 編碼、測試階段
教師檢查每組的系統(tǒng)功能結(jié)構(gòu)圖,若無問題,則可以開始編程。在用VHDL語言編程階段,學(xué)生可根據(jù)系統(tǒng)功能結(jié)構(gòu)圖分模塊進(jìn)行調(diào)試,先將底層三個模塊(分頻器、控制模塊、譯碼器)都編好后,通過ISE軟件編譯檢查語法錯誤、并進(jìn)行仿真,若無問題,再進(jìn)行頂層文件編寫;若有問題,則需修改源代碼,直至無錯誤為止。頂層文件主要是通過元件例化語句將底層三個模塊進(jìn)行連接,編好后,也需要經(jīng)過ISE軟件編譯檢查語法錯誤。
2.5 下載、驗證階段
最后將生成的二進(jìn)制文件下載到basys2開發(fā)板上驗證,若能正確顯示兩位數(shù)字,即成功。若不能正常顯示,則需返回到ISE軟件中,修改底層文件或頂層文件,直至驗證成功為止。
2.6 驗收階段
在編寫代碼的過程中,教師可適當(dāng)給予指導(dǎo),給學(xué)生提供一些參考資料或相似的例子,幫助學(xué)生完成項目。教師要檢查各組最終能否實現(xiàn)“顯示兩位數(shù)字”,協(xié)助并指導(dǎo)各組,完成編寫“顯示兩位數(shù)字”項目文檔,并對各組進(jìn)行成績評定。各組組長向全班匯報、展示本組的作品,并列舉項目開發(fā)中遇到的各種問題,其他組的學(xué)生可以提問,最后教師對各組進(jìn)行點(diǎn)評。各組組長根據(jù)小組成員的貢獻(xiàn)對小組成員進(jìn)行打分,教師根據(jù)小組成績和組長對各成員的打分,確定每位學(xué)生的成績。
3 總結(jié)
由于傳統(tǒng)的教學(xué)方法重在介紹VHDL語言的語法和語句,學(xué)生學(xué)起來較枯燥,因此結(jié)合《FPGA開發(fā)與應(yīng)用》課程的特點(diǎn),通過“顯示兩位數(shù)字”項目,展示如何在《FPGA開發(fā)與應(yīng)用》課程中實施項目化教學(xué)。通過項目化教學(xué),不但能使學(xué)生掌握VHDL語言的編程方法和自頂向下的系統(tǒng)設(shè)計方法,熟悉真實項目的實施過程,而且通過分組協(xié)作完成一個項目,可以鍛煉學(xué)生的團(tuán)隊協(xié)作能力、溝通能力、語言表達(dá)能力等,從而激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的自主學(xué)習(xí)能力。
【參考文獻(xiàn)】
[1]陳學(xué)英,李穎.FPGA應(yīng)用實驗教程[M].國防工業(yè)出版社,2013,05.
[2]張學(xué)琳,陳齊超,段珊,胡波.項目教學(xué)法在“C語言課程設(shè)計”中的研究與應(yīng)用[J].實驗技術(shù)與管理,2011,28(02):164-167.