vhdl語言范文

時間:2023-04-05 09:52:02

導語:如何才能寫好一篇vhdl語言,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

vhdl語言

篇1

關鍵詞:狀態機;Mealy型狀態機;vhdl語言

中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9599 (2012) 13-0000-02

數字電路分為組合邏輯電路和時序邏輯電路。組合邏輯電路的輸出只與當前輸入有關,時序邏輯電路的輸出不僅與當前輸入有關,還與過去的輸入有關。狀態機是一種廣義的時序電路,它的輸出不僅與當前輸入信號有關,還與當前的狀態有關。

一、狀態機有三個基本要素:狀態、輸入、輸出

狀態是狀態機中最根本的要素。狀態機的最基本特點就是寄存器中存儲的狀態按照一定的條件或規律進行轉移,并輸出特定信號。

輸入信號作為狀態機狀態轉移的條件,即狀態機根據輸入信號和當前狀態決定下一個轉移的狀態。

輸出信號一般由當前狀態和當前輸入信號決定,也可只由當前狀態決定。

二、狀態機的特點

(1)狀態機的結構模式相對簡單,設計方案相對固定。

(2)狀態機的VHDL設計層次分明,結構清晰,易讀易懂。

(3)就運行速度而言,狀態機的每一個狀態中可以完成許多并行的運算和控制操作。

(4)就可靠性而言,狀態機也具有明顯的優勢。

三、狀態機的分類

狀態機可分為有限狀態機和無限狀態機,在這里只討論有限狀態機。按照輸出信號是否與輸入信號有關,可將有限狀態機分為Moore型和Mealy型。Moore型狀態機的輸出只與當前狀態有關,Mealy型狀態機的輸出不僅與當前狀態有關,還與當前輸入有關。Moore型和Mealy型狀態機示意圖分別如圖一和圖二所示。

從輸出的時序上看,Mealy型狀態機的輸出是當前狀態和所有輸入信號的函數,它的輸出是在輸入變化之后立即發生的,不依賴時鐘的同步。Moore型狀態機的輸出僅為當前狀態的函數,狀態機的輸入發生變化還必須與狀態機的時鐘同步。由于Mealy型狀態機的輸出與時鐘不同步,因此很容易在輸出端產生毛刺,造成不可預料的結果。因此從穩定性的角度講,Moore型狀態機比較好;但是從相應時間角度講,Mealy型狀態機對輸入的響應最多可比Moore型狀態機早一個時鐘周期.在工程實踐中,具體電路有具體的設計要求,根據實際情況選擇相應的狀態機。

四、基于狀態機的8路彩燈設計

在我們的生活中,電子彩燈已成為我們裝點生活常用的電器,電子彩燈控制電路的設計要求也越來越高。要求我們設計的彩燈花燈品種更多,控制更加方便,靈活性高,可靠性高。采用傳統數字電路設計的彩燈控制器電路復雜,設計周期長,精度不高?;贔PGA的電子彩燈設計設計靈活,功能完善。

8路彩燈控制系統分為分頻模塊和花型循環控制模塊。

(1)分頻模塊:我們在這里選擇的時鐘脈沖信號是50MHz,由于時鐘脈沖的頻率太高,所以我們未分頻時看到的是8個LED燈全亮,而看不到LED燈閃爍的狀態。我們這時將50MHz分頻,達到人視覺能感覺的頻率,即可看到LED閃爍的效果。

分頻程序如下:

(2)花型循環控制模塊:花型循環控制模塊是系統的核心部分,它主控著8路彩燈的花型。循環彩燈控制模塊主要由狀態機設計,用狀態機設計靈活性強。

按設計的要求實現8種花型:00001111、10000000、01100011、01001111、11000000、11101111、11111111和10010011。用S0,S1,S2,S3,S4,S5,S6,S7來表示8種不同的狀態。狀態圖如下所示。

用狀態機設計語句type states來實現,8路彩燈控制模塊程序如下:

五、設計拓展

8路彩燈設計系統在實際應用中還可以靈活地修改。如果要改變循環燈的控制花型,可改變s0,s1,s2,s3,s4,s5,s6,s7中所設的數值;如果要改變循環燈的花型數量,可改變狀態機中s的數量,如12種花型,可改為s0—s11;還可以修改頻率來控制花型閃爍的速度。

六、小結

使用VHDL語言進行8路彩燈電路設計,思路簡單,功能明了,靈活性強。在控制電路中采用狀態機設計,電路控制靈活,功能便于實現,思路簡潔便于修改。比起用常規的單片機設計8路彩燈電路更簡單實用。此系統可在分頻前在ISE軟件下的ISE simulator上進行仿真和驗證,并可加上適當的約束條件后,在Spatan3E的開發板驗證試驗結果。

參考文獻:

[1]Kleitz.W.VHDL數字電子學[M].北京:北京希望電子出版社,2008

篇2

關鍵詞:VHDL;教學改革;項目化教學

作者簡介:周殿鳳(1978-),女,江蘇寶應人,鹽城師范學院物理科學與電子技術學院,講師;康素成(1966-),男,江蘇濱海人,鹽城師范學院物理科學與電子技術學院,副教授。(江蘇 鹽城 224002)

基金項目:本文系鹽城師范學院高校發展研究項目(項目編號:13YCFZ006)的研究成果。

中圖分類號:G642 文獻標識碼:A 文章編號:1007-0079(2014)09-0111-02

VHDL語言及應用是電子信息工程專業的一門重要的技術類應用型課程,主要講解VHDL語言以及它的應用。但在多年的教學實踐中,筆者發現要想讓學生在短時間內接受大量的語法知識,學生很難充分理解與掌握,這樣在隨后的編程過程中非常容易犯錯,并感覺難以入手,更不用說形成良好的編程習慣和程序風格。[1]大多數大學生畢業后或許精通C語言,可是由于各方面的原因,精通VHDL語言的少之又少,但是企業單位對此方面的人才的需求卻越來越多,筆者出于對VHDL語言的摯愛及多年教學經驗,探索了該課程項目化教學的具體實施方法。

一、改變傳統教學方法

VHDL語言及應用這門課程的終極目標是使學生掌握VHDL語言并能用之進行相關的電子設計。如果教師將大量的時間用于講解枯澀的語法、語句、復雜的算法,學生在學習時也不知它們有何用途,學、用脫節,只是為學而學,不能激發學生學習和應用知識的興趣和積極性,效果很差,[2]因此教師不能按部就班地講解知識。教師可以通過多個實例講解語法,效果會好得多。這就要求老師上課全部現場編寫程序,并且故意犯一些學生經常犯的錯誤,編程中的錯誤基本上都是語法和語句使用不當引起的,教師恰好可以利用這些錯誤來講解語法、語句。這門課程的硬件基礎是FPGA和CPLD芯片,CPLD/FPGA內部沒有CPU,只需要用1課時簡單講解即可,并不需要詳細分析。因為對于設計者而言只要會用這些芯片即可,而且CPLD/FPGA芯片本身就像一張白紙,只要學生的單片機和硬件描述語言足夠好,學生就可以任意發揮,所以本課程的關鍵還是掌握VHDL語言本身。

二、理論教學環節的項目化實施

1.通過最簡單的例子引導學生入門

以二極管閃爍為例,分成幾個層次,一步一步引導學生入門。

先問學生:如何讓一個二極管亮?學生學過數字電路,知道當二極管的陽極為高電平且陰極為低電平時二極管亮。然后講解在VHDL語言里是如何實現的,接著現場編寫程序,最后下載到開發板上并且演示。

接著問:如何讓二極管閃爍呢?當陰極接地且陽極的高、低電平等間隔出現時二極管閃爍,在VHDL里如何實現呢?在剛才程序里稍作修改即可,同樣要演示給學生看,并可順勢講一點這個程序里出現的語法和學習VHDL語言的一些注意事項,如工程名、頂層文件名和實體名要一致,命名時字母的大小寫沒有區別等。做到在不知不覺中自然而然地講解語法知識,學生記得也牢固。[2]

為了讓學生語法學得更扎實,所有程序教師都隨堂編寫,一邊編程序一邊講解語法語句,還可以插入算法的講解。經過實踐,筆者發現現場編程的講解方法可以讓學生較好地記住一些難以理解的語法、詞法和算法。

2.設計巧妙的項目引導學生深入學習

在開展項目化教學時,項目的設計非常關鍵,設計的好壞直接影響教學效果。項目設計應遵循如下原則:一是圍繞課程的重點展開,項目內容應覆蓋基本的教學知識點。二是為了調動學生的積極性,應盡量選擇學生感興趣的項目。三是難度適中,項目過于簡單,學生會很快完成,達不到思考的效果;太難,支撐的理論知識就會過多,教學組織比較困難,不能達到預期的教學效果。VHDL語言及應用共48課時,其中12節為實驗課,理論學時只有36課時,需要用4課時按照傳統的教學方式講解一些在項目中不好講解的知識,如CPLD/FPGA的硬件知識、VHDL語言的部分語法等,故選擇9個小項目講解各種知識。

在9個項目講解的過程中,還要教會學生如何閱讀英文datasheets。在進行真正的項目設計時,必定要用到不少陌生的芯片,要想會用這些芯片,必須看它們的datasheets。datasheets總是長達幾十頁,學生不容易看懂,需要教師引導他們如何抓住其中的重點,快速準確閱讀。

在項目的講解和設計后期,教師作為領隊將學生分成小組學習,分組合作的學習方法激發了學生學習的動力,增強了各成員的責任感?;ハ嘀g積極配合、互動,培養學生多角度、多渠道獲得信息,有利于促進學生發展,完善自我,也將學生評價變成了主動參與、自我反思、自我教育的過程。[3]

三、實踐教學環節的項目化改革

1.布置型教學改為開放式教學

傳統的實驗教學是教師講解實驗原理,然后演示一下實驗,學生只需按實驗講義中的步驟進行,“依葫蘆畫瓢”,通過反復訓練讓學生形成一定的基本技能。這種實驗教學模式,學生動手機會少,不能自主學習,不利于個性發展,阻礙了學生的學習積極性、主動性、創造性以及現代科學思維方式的形成。[4]學生進入實驗室后,教師可以提供大量實驗,讓學生根據各自興趣選擇想做的實驗。也可以由學生根據教學要求自己擬定實驗內容,教師加以適當指導,減少實驗的盲目性,使學生真正參與到實驗中來,提高實驗教學效果,培養學生的動手能力和創新思維能力。

學生的實驗成績采取過程記錄法,教師為每一位學生準備一張記錄卡,實時記錄學生的實驗情況。

2.統一實驗變為層次化實驗

另外傳統的實驗教學中,所有學生做的實驗是一樣的。實際上學生到了大三,基礎已各不相同,可以根據學生的基礎采取層次化實驗教學。教師可以根據學生的具體情況將一個班分為4組,假設1組的學生基礎最好,2組次之,4組最差;每組的學生人數可以不一樣多,該課程成績想得優秀的學生必須選擇1組或2組。針對4組學生要求教師準備4套實驗內容供學生選擇,每組的要求不一樣,具體安排如表2所示。因為鹽城師范學院要求一次實驗為25人左右(半個班級),所以教師需要同時指導2組學生,實際操作時可以1組和4組一起做實驗,2組和3組一起做實驗。如果教師愿意加班,第一次實驗可以只輔導一組學生,第二次及以后就可以2個組同時做實驗,交叉輔導了。

對于基礎較差的第4組同學,實驗難度不宜太大,要留給學生一定的思考空間。同樣是設計性實驗,不同組別的具體內容也可以不同,1組難度加大,而4組則簡單一些。如此訓練下來,學生各有所得,不管基礎好壞,總能學到一定的知識,甚至有助于基礎差的學生學到更多的知識。

四、考核方式改革

項目化教學需要改變傳統教學中一張試卷定成績的考核辦法,[5]學生成績主要由項目的設計決定,要注意到學生的設計思路。理論知識學完后教師可以選擇幾個綜合性項目,學生從中任選一個進行設計,這樣可以培養學生發現問題和解決問題的能力,也可提高其設計能力。

五、小結

本文根據VHDL語言及應用的特點,探索了適于它的項目化教學。通過項目化教學,廢除注入式教學方法,建立以學生為本,教師啟發引導的教學方法。通過一個個項目和層次化實驗,學生不僅可以熟悉VHDL語言的基本語法和常用語句,還對硬件描述語言的本質有了深刻的認識,對所設計的電路有深刻理解,在此基礎上才能更好地使用VHDL語言進行電路設計。通過多個項目的訓練,學生的設計能力、創造能力和團隊合作能力都可以得到很大提高,因此說項目化教學是應用性強的課程的首選教學方法。

參考文獻:

[1]胡小玲,翟秀艷,袁穎.VHDL的模塊化教學方法反思與總結[J].中國電力教育,2013,29(2):112-113.

[2]周殿鳳.片上可編程系統項目化教學探討[J].輕工科技,2013,

15(5):190-191.

[3]姚培.教師在理實一體化教學學生評價中的角色研究[J].中國電力教育,2013,29(25):180-181.

篇3

關鍵詞:VHDL; Max+Plus Ⅱ; 計數器; EDA技術

中圖分類號:TP311文獻標識碼: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超高速集成電路硬件描述語言是隨著集成電路系統化和高度集成化逐步發展起來的,是一種用于數字系統設計、測試,面向多領域、多層次的IEEE標準硬件描述語言。它從20世紀70年代作為電路設計工具誕生于美國國防部至今,已經成為十分流行的硬件描述工具,并且為大多數EDA工具所支持\。隨著電子技術的不斷進步,數字系統的設計正朝著高速度、大容量、小體積的方向發展。 傳統的自底而上的模式已不能滿足芯片和系統的設計要求。為了提高設計效率,能夠簡化設計流程,大幅降低設計難度的VHDL設計方法受到廣泛關注。VHDL與其他傳統集成電路描述語言相比,具有明顯優勢\:

(1) 功能強大,描述力強??捎糜陂T級、電路級甚至系統級的描述、仿真和設計。

(2) 可移植性好。對于設計和仿真工具及不同的平臺均可采用相同的描述。

(3) 研制周期短, 成本低。

(4) 可以延長設計的生命周期。

(5) 具有電路仿真與驗證功能,用戶甚至不必編寫相量測試即可進行源代碼級調試。設計者能夠跳過電路實驗,直接對各種方案進行比較和選擇,使設計效率得以提高。

(6) 對設計的描述具有相對獨立性。

(7) 語言標準、規范,易于共享和復用。

目前,VHDL滲透了電子技術及其相關的各個工業領域,在工業設計中發揮著日益重要的作用。在世界范圍內,關于VHDL在多個領域尤其在芯片,系統設計方面的應用研究已經取得眾多矚目成果。

而將VHDL與醫學相結合,勢必成為電子自動化設計(EDA)一個全新的研究方向,本文主要研究將EDA通過VHDL應用于醫學,以對脈搏的測量為例,以實現數字系統對人體多種生理活動及生理反應的直觀精確測量。

1 實驗設計

1.1 EDA技術在醫學教學中脈搏測量中的應用探討

在臨床診斷,護理學等中介紹脈搏的測量時認為脈搏很容易在手腕掌面外側跳動的橈動脈上摸到,也可測量頸部的頸動脈或腹股溝的股動脈。其測量方法是病員手臂放于舒適位置,用食指,中指,無名指的指腹端按壓在橈動脈表面,一般病員默數半分鐘,將所測的脈率乘以2便是一分鐘的脈數,異常病人測一分鐘。成年人的脈搏在安靜狀態下每分鐘是60~80次。如少于60次是心動過緩。但訓練有素的運動員,脈搏有時也在60次以下,這正是心臟健康有力的表現。如超過100次是心動過速。體力活動或情緒激動時,脈搏可暫時增快,發燒時脈搏也增快。一般是體溫每升高1 ℃,脈搏就增加10~20次。此法只能粗略計算脈搏跳動,如將VHDL語言應用其中,便可以通過EDA實驗箱中的七段數碼管直觀準確地看到一分鐘的計數結果,并與之前通過醫學教材講授方法測出結果相比對,從而判定測量的正確與否。

1.2 設計思路

將脈搏信號通過脈搏傳感器采集進入計算機,而后作為輸入信號,而此信號作為脈沖信號,即如時鐘信號一般,當輸入時計數器開始計數,如下面設計一個十進制計數器的VHDL描述便可用來對所采集的脈搏信號計數\。

1.3 VHDL設計流程

VHDL流程設計\如圖1所示。

圖1 VHDL流程設計圖

現在,計算機輔助工程軟件的供應商已把日益通用的硬件描述語言VHDL作為其CAD 或EDA 軟件輸入與輸出的標準, 其中ALTEKA公司提供的綜合工具Max+Plus Ⅱ,具有全面的邏輯設計能力, 從編輯、綜合、布線到仿真、下載都十分方便。

2 設計方案與結果分析

VHDL 語言設計十進制計數器的源程序\:

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;

在程序輸入完成后, 經Max+Plus Ⅱ中的Compiler編譯通過后,可用Stimulator進行仿真,查看仿真結果,如圖2所示。

圖2 經Max+Plus Ⅱ編譯,通過Stimulator得到的仿真結果

也可以加入七段顯示譯碼器的VHDL設計來通過實驗箱的七段數碼管掃描顯示計數結果\仿真結果如圖3所示。

圖3 譯碼器的仿真結果

代碼如下:

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;

最終實現的頂層文件原理圖如圖4所示。

圖4 頂層文件原理圖

頂層文件設計如圖4所示,通過該文件可以實現譯碼,下載到EDA實驗箱時,便可于實驗箱的數碼管上讀出相應的脈搏數,如圖5所示。

圖5 通過數碼管得到的最終仿真圖

VHDL語言與醫學內容的結合,除了應用于脈搏的測量,還可應用于心跳及呼吸等的測量,以及受人體對聲、光刺激后的生理反應時間的測定\等。電子自動化設計(EDA)及其相關技術,在醫學領域具有巨大的應用前景,有待進一步的研究和發掘。

3 結 語

VHDL是一種隨著電子技術的不斷發展,為滿足電路系統化和高度集成化要求而發展起來的一種新型硬件描述語言。VHDL具有廣泛的應用范圍,在芯片及電路系統設計等方面發揮著日益重要的作用\。以VHDL為核心的EDA技術應用于醫學,能直觀準確的測量人體的脈搏心跳,呼吸等生理活動,以及受到外界刺激的生理反應等,在醫學領域存在廣闊的發展空間,隨著進一步的探索和實踐,必將對醫學的發展起到極大的推動作用。

參考文獻

[1]陳耀和. VHDL語言設計技術[M]. 北京: 電子工業出版社, 2004.

[2]汪國強. EDA技術及應用[M]. 北京: 電子工業出版社, 2006.

[3]潘澤強. VHDL語言在數字電路教學中的應用[J]. 科技資訊, 2008(35): 15.

[4]張順興. 數字電路與系統設計[M]. 南京: 東南大學出版社, 2004.

[5]余孟嘗. 數字電子技術簡明教程[M]. 3版. 北京: 高等教育出版社, 2006.

[6]朱正偉. EDA技術及應用[M]. 北京: 清華大學出版社, 2005.

[7]周政新. 電子設計自動化實踐與訓練[M]. 北京: 中國民航出版社, 1998.

[8]江曉安. 數字電子技術[M]. 西安: 西安電子科技大學出版社, 2002.

篇4

【關鍵詞】Silverlight WCF CAD 分布線

在水電、建筑、土木施工、環境藝術設計、工業設計、服裝設計等各行各業從設計、實施、維護整個過程中會產生大量的CAD圖形文件,依靠傳統的文件存儲,會產生如下問題:

(1)CAD圖形文件存儲到一定級別的數量,查詢特別困難。

(2)CAD圖形文件無法直接在Web進行查詢和無失真的展示、放大、縮小。

(3)工程用戶無法在CAD圖形文件上直接結合實時數據,進行動態展示和交互。

為了解決工程上的實際問題,通過對Silverlight(銀光)技術深入研究,結合CAD、Expression Design等軟件能較好的實現CAD圖形文件在Web端進行無失真的展示和交互,同時跨平臺、跨瀏覽器,完全滿足用戶需求。

1 系統開發環境

本文是Silverlight富客戶端技術與WCF服務技術結合應用于CAD圖形文件展示與交互的嘗試,使用C#語言結合XAML描述模式開發。系統采用Expression Blend 4.0 作為Web 前端開發工具,通過CAD2010和Expression Design 4.0處理CAD圖形原文件,Visual Studio 2010 作為后臺開發工具。

Visual Studio 是微軟推行的一套完整的開發工具,用于完成桌面應用程序或Web 應用程序等的設計、開發和部署,能夠進行工具共享,創建基于混合語言的解決方案。

Expression Blend 是在 Silverlight 和 .NET 平臺上進行互動設計的工具。它使得用戶體驗概念可能在從最初的原型到最終的實現中都得到忠實的w現。

Expression Design 是一個專業的設計工具。它可以創建圖形資源,并在 Expression Studio:Expression Blend 和 Expression Web 中創建的應用程序中使用。

2 CAD圖形的展示與實現

2.1 圖形的處理

通過CAD2010打開CAD圖形原始文件(*.dwg),點擊文件-》輸出,保存為圖元文件(*.wmf)。該文件為矢量文件,放大和縮小不變形、不失真。

打開Expression Design 4.0軟件,點擊文件-》打開,查找上一步處理過的圖元文件(*.wmf),選中打開。處理過的CAD圖形文件就顯示在Expression Design畫布上。點擊文件-》導出,為XAML文件,即可在Silverlight和WPF平臺上展示,如圖1。

可以將處理過的CAD圖形文件以及CAD圖形文件的一些索引信息放入數據庫,方便CAD圖形的管理和索引工作,能快速實現CAD圖形的查詢和其它信息系統的使用。

2.2 后臺服務

Silverlight所有后臺服務通過WCF服務完成,Silverlight前臺獲取用戶請求,傳遞給WCF服務,WCF服務通過后臺處理后,異步返回給Silverlight前臺用戶。

WCF服務包括CAD圖形文件信息管理和下載、用戶通過關鍵字查詢CAD圖形文件、查詢到的CAD圖形文件下載到Silverlight前臺。同時WCF服務還提供CAD文件熱點坐標信息、以及用戶與CAD圖形文件交互信息、熱點實測數據、熱點歷史數據等等。

2.3 Silverlight前端處理

Silverlight通過后臺服務下載到所需CAD圖形XAML文件,放入畫布上。通過Silverlight提供的放大、縮小、平移等功能,方便用戶對CAD圖形進行各種操作。

Silverlight具有豐富的繪圖功能,可以以CAD圖形文件為地圖,根據各種業務需求,在CAD圖形文件上繪制各種圖形,同時結合后臺服務,查詢各種信息,在CAD圖形文件上進行展示。

Silverlight還具有豐富的動畫功能,可以結合后臺服務,查詢CAD圖形文件上熱點實測、歷史數據,在CAD圖形上繪制各種生動、形象、直觀的動畫。

3 應用

在大壩設計、施工、維護中會產生了大量的CAD圖形文件,并且在這些CAD圖形文件中會標注大量的監測儀器。通過Silverlight技術結合WCF服務,實現了CAD圖形文件在Web端快速查詢、展示和日常操作,以及基于CAD圖形文件為底圖的分布線繪制。

3.1 監測布置圖

監測布置圖實現了大量CAD圖形文件查詢、展示、放大、縮小、移動等功能,提高了工程用戶的工作效率,節省了大量時間,如圖2。

3.2 分布線

大壩日常維護人員迫切希望能在CAD圖形文件直接看到監測儀器實測數據,同時可以查詢一段時間各個測點測值,并且通過動畫動態展示每個測點測值變化趨勢,從而判斷每個測點變化情況,為后期采取相應措施提供依據。Silverlight提供了豐富的動畫功能,能快速實現用戶需求,通過WCF服務查詢各測點測值,供Silverlight前端調用,為用戶在前端提供豐富的交互體驗,如圖3。

4 結語

本文研究了基于Silverlight技術下的CAD圖形文件應用開發,并在此基礎上實現了CAD圖形文件在Web端的查詢、放大、縮小、移動等操作,同時基于CAD文件為底圖開發了分布線動畫功能,實現了用戶與CAD圖形間交互,滿足了用戶對CAD圖形的各種需求,極大的提高了用戶工作效率和使用體驗。

同時基于矢量圖形在Silverlight的展示和動畫功能技術研究,可以結合各行各業、各種需求開發出豐富多彩的富客戶端插件,在各行各業、各個平臺進行應用。

參考文獻

[1]魏永超. Silverlight 3.0開發詳解與最佳實踐[M].北京:清華大學出版社,2003

[2](美)西爾伯沙茨等著,楊冬青等譯.數據庫系統概念[M].北京:機械工業出版社,2005.

篇5

利用硬件描述語言VHDL,數字電路系統可從系統行為級、寄存器傳輸級和門級三個不同層次進行設計,即上層到下層(從抽象到具體)逐層描述自己的設計思想,用一系列分層次的模塊來表示極其復雜的數字系統。然后,利用EDA工具,逐層進行仿真驗證,再把其中需要變為實際電路的模塊組合,經過自動綜合工具轉換到門級電路網表。接著,再用專用集成電路(ASIC)或現場可編程門陣列(FPGA)自動布局布線工具,把網表轉換為要實現的具體電路布線結構。目前,這種高層次設計的方法已被廣泛采用。據統計,目前在美國硅谷約有90%以上的ASIC和FPGA采用硬件描述語言進行設計。VHDL的應用已成為當今以及未來EDA解決方案的核心,而且是復雜數字系統設計的核心。

一、VHDL的特點

VHDL是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統行為級、寄存器傳輸級和邏輯門級三個不同層次的設計,支持結構、數據流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強,因此在實際應用中越來越廣泛。VHDL的主要特點有:

1.功能強大。與其他的硬件描述語言相比,VHDL具有更強的描述能力和語言結構,可以用簡潔的源代碼描述復雜的邏輯控制。它具有多層次的設計描述功能,層層細化,最后直接生成電路級描述。

2.系統硬件描述能力強。VHDL具有豐富的數據類型,豐富的仿真語句和庫函數,在任何大系統的設計早期就能查驗設計系統功能的可行性,隨時可對設計進行仿真模擬。

3.設計與工藝無關。用VHDL進行硬件電路設計時,并不需要首先考慮選擇完成設計的器件。VHDL的硬件描述與具體的工藝和硬件結構無關,因此VHDL設計程序的硬件實現目標器件有廣闊的選擇范圍。

4.設計方法靈活,易于修改。VHDL語言標準、規范,大多數EDA工具都支持VHDL。在硬件設計過程中,用VHDL語言編寫的源程序便于管理,VHDL易讀、結構模塊化,方便修改、交流和保存。

5.支持廣泛,移植能力強。VHDL是一個標準語言,在電子設計領域,為眾多的EDA工具支持,因此移植能力好。

二、VHDL的結構和設計方法

1.VHDL的基本結構

VHDL的結構模型包括五個部分:實體、結構體、配置、程序包、庫。前四種可分別編譯,編譯后放入庫中,以備上層模塊調用。

(1)實體定義了器件的輸入輸出端口,設計實體是VHDL的基本單元,可以表示整個系統、一塊電路板、一個芯片或一個門電路。

(2)結構體定義實體的實現,即描述系統內部的結構和行為。

(3)配置用于從庫中選取所需單元來組成系統設計的不同版本,為實體選定某個特定的結構體。

(4)程序包存放各設計模塊都能共享的數據類型、常數和子程序等。

(5)庫用來存放編譯結果,包括實體、結構體、配置、程序包。

2.VHDL的設計方法

VHDL將層次化的設計方法引入到硬件描述中,自上向下的設計是從系統級開始,將整個系統劃分為子模塊,然后對這些子模塊再進行進一步的劃分,直到可以直接用庫中的元件來實現為止。在設計方法上,將傳統的“電路設計硬件搭試調試焊接”模式轉變為“功能設計軟件模擬仿真下載”方式。數字系統的設計采用自頂向下的方法,最頂層電路設計是指系統的整體要求,最下層是指具體邏輯電路的實現。一般的電子系統設計可分為兩個階段,第一階段是系統的邏輯設計和仿真,得出的是門級電路的原理圖或網表;第二階段設計如印刷電路板的布局布線,集成電路的版圖設計等,得出的是最終的物理設計。

三、VHDL的應用實例

筆者以Max+plusⅡ軟件作為平臺的一個空調機控制器的設計為例,談談VHDL在數字電路設計中的具體應用。

實現一個控制器,常用有限狀態機方法實現。傳統的設計方法主要包括5個過程:確定原始狀態圖,狀態簡化,狀態編碼,觸發器類型的選擇及控制邏輯方程和輸出方程的確定,畫出電路原理圖。采用這種方法設計復雜狀態機將會十分繁雜。

利用VHDL來設計有限狀態機,可以充分發揮硬件描述語言的抽象能力,進行功能描述,而具體的邏輯化簡和電路設計可由計算機自動完成,從而提高了設計的工作效率,并且條理清晰,修改起來也更方便,所以很適合復雜時序電路的設計。應用VHDL設計狀態機的步驟如下:第一,根據系統要求確定狀態數量、狀態轉移的條件和各狀態輸出信號的賦值,并畫出狀態轉移圖;第二,按照狀態轉移圖編寫有限狀態機的VHDL程序;第三,利用EDA工具進行功能仿真驗證;第四,編程下載。

空調機控制器的設計。它的兩個輸入來自溫度傳感器,用于監測室內溫度。如果室內溫度正常,則temp-high和temp-low均為‘0’;如果室內溫度過高,則temp-high為‘1’,temp-low為‘0’;如果室內溫度過低,則temp-high為‘0’,temp-low為‘1’。根據temp-high和temp-low的值來決定當前的工作狀態,并給出相應的制冷和制熱輸出信號。

按照繪制好的狀態轉移圖編寫VHDL程序,編程中采用case語句來描述狀態的改變,它具有直觀、條理清晰及易于修改等特點。也可以采用不同進程來實現狀態的改變,所以編程方法多種。

功能仿真。利用Max+plusⅡ軟件工具對所編程序進行編譯、仿真。當temp-low為“1”,即溫度過低,則heat為“1”(制熱);當temp-high為“1”,即溫度過高,則cool為“1”(制冷)。經綜合后的仿真分析表明,該方案是合理可行的。通過仿真后,即可編程下載。

四、使用VHDL應注意的一些問題

由于VHDL語言是描述硬件行為的,相對其它開發軟件的高級語言而言,在編程過程中有一些特殊性,所以經常會出現語法正確但無法綜合的問題。其原因多半因為編程者對硬件內部的工作原理了解不夠,寫出的代碼硬件無法實現。在此總結出一些應注意的問題:

篇6

1.1設計背景

隨著出租車行業的發展,對出租車計費器的要求也越來越高。二十世紀后半期,隨著集成電路和計算機技術的飛速發展,數字系統也得到了飛速發展,其實現方法經歷了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的過程。同時為了提高系統的可靠性與通用性,微處理器和專業集成電路(ASIC)逐漸取代了通用全硬件LSI電路,而ASIC以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業界大量可編程邏輯器件(PLD),尤其是現場可編程邏輯器件(FPLD)被大量地應用在ASIC的制作當中。在可編程集成電路的開發過程中,以計算機為工作平臺,融合了應用電子技術、計算機技術、智能化技術最新成果的電子設計自動化(EDA)技術主要能輔助進行三方面的設計工作:IC設計,電子電路設計以及PCB設計

理想的可編程邏輯開發系統能符合大量的設計要求:它能夠支持不同結構的器件,在多種平臺運行,提供易于使用的界面,并且有廣泛的特征。此外,一個設計系統應該能給設計師提供充分自由的設計輸入方法和設計工具選擇。Altered公司開發的MAX+PLUSⅡ開發系統能充分滿足可編程邏輯設計所有要求。

MAX+PLUSⅡ設計環境所提供的靈活性和高效性是無可比擬的。其豐富的圖形界面,輔之以完整的、可及時訪問的在線文檔,使設計人員能夠輕松、愉快地掌握和使用MAX+PLUSⅡ軟件。

編程器是一種專門用于對可編程器(如EPROM,EEPROM,GAL,CPLD,PAL等)進行編程的專業設備

PLD器件的邏輯功能描述一般分為原理圖描述和硬件描述語言描述,原理圖描述是一種直觀簡便的方法,它可以將現有的小規模集成電路實現的功能直接用PLD器件來實現,而不必去將現有的電路用語言來描述,但電路圖描述方法無法做到簡練;硬件描述語言描述是可編程器件設計的另一種描述方法,語言描述可能精確和簡練地表示電路的邏輯功能,現在PLD的設計過程中廣泛使用。常用的硬件描述語言有ABEL,VHDL語言等,其中ABEL是一種簡單的硬件描述語言,其支持布爾方程、真值表、狀態機等邏輯描述,適用于計數器、譯碼器、運算電路、比較器等邏輯功能的描述;VHDL語言是一種行為描述語言,其編程結構類似于計算機中的C語言,在描述復雜邏輯設計時,非常簡潔,具有很強的邏輯描述和仿真能力,是未來硬件設計語言的主流。

VHDL就是超高速集成電路硬件描述語言。覆蓋面廣,描述能力強,是一個多層次的硬件描述語言。在VHDL語言中,設計的原始描述可以非常簡練,經過層層加強后,最終可成為直接付諸生產的電路或版圖參數描述。具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關,當工藝改變時,只需修改相應程序中的屬性參數即可。支持大規模設計的分解和已有設計的再利用。一個大規模的設計不可能由一個人獨立完成,必須由多人共同承擔,VHDL為設計的分解和設計的再利用提供了有力的支持。

1.2EDA發展概況

電子設計技術的核心就是EDA技術,EDA是指以計算機為工作臺,融合應用電子技術、計算機技術、智能化技術最新成果而研制成的電子CAD通用軟件包,主要能輔助進行三方面的設計工作,即IC設計、電子電路設計和PCB設計。EDA技術已有30年的發展歷程,大致可分為三個階段。70年代為計算機輔助設計(CAD)階段,人們開始用計算機輔助進行IC版圖編輯、PCB布局布線,取代了手工操作。80年代為計算機輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能設計和結構設計,并且通過電氣連接網絡表將兩者結合在一起,實現了工程設計。CAE的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動布局布線,PCB后分析。90年代為電子系統設計自動化(EDA)階段。

中國EDA市場已漸趨成熟,不過大部分設計工程師面向的是PC主板和小型ASIC領域,僅有小部分(約11%)的設計人員開發復雜的片上系統器件。為了與臺灣和美國的設計工程師形成更有力的競爭,中國的設計隊伍有必要購入一些最新的EDA技術。

在信息通信領域,要優先發展高速寬帶信息網、深亞微米集成電路、新型元器件、計算機及軟件技術、第三代移動通信技術、信息管理、信息安全技術,積極開拓以數字技術、網絡技術為基礎的新一代信息產品,發展新興產業,培育新的經濟增長點。要大力推進制造業信息化,積極開展計算機輔助設計(CAD)、計算機輔助工程(CAE)、計算機輔助工藝(CAPP)、計算機機輔助制造(CAM)、產品數據管理(PDM)、制造資源計劃(MRPII)及企業資源管理(ERP)等。有條件的企業可開展“網絡制造”,便于合作設計、合作制造,參與國內和國際競爭。開展“數控化”工程和“數字化”工程。自動化儀表的技術發展趨勢的測試技術、控制技術與計算機技術、通信技術進一步融合,形成測量、控制、通信與計算機(M3C)結構。在ASIC和PLD設計方面,向超高速、高密度、低功耗、低電壓方向發展。外設技術與EDA工程相結合的市場前景看好,如組合超大屏幕的相關連接,多屏幕技術也有所發展。

中國自1995年以來加速開發半導體產業,先后建立了幾所設計中心,推動系列設計活動以應對亞太地區其它EDA市場的競爭。

在EDA軟件開發方面,目前主要集中在美國。但各國也正在努力開發相應的工具。日本、韓國都有ASIC設計工具,但不對外開放。中國華大集成電路設計中心,也提供IC設計軟件,但性能不是很強。相信在不久的將來會有更多更好的設計工具有各地開花并結果。據最新統計顯示,中國和印度正在成為電子設計自動化領域發展最快的兩個市場,年復合增長率分別達到了50%和30%。

EDA技術發展迅猛,完全可以用日新月異來描述。EDA技術的應用廣泛,現在已涉及到各行各業。EDA水平不斷提高,設計工具趨于完美的地步。EDA市場日趨成熟,但我國的研發水平還很有限,需迎頭趕上。

可編程邏輯器件自70年代以來,經歷了PAL、GALGPLD、FPGA幾個發展階段,其中CPLD/FPGA高密度可編程邏輯器件,目前集成度已高達200萬門/片,它將各模塊ASC集成度高的優點和可編程邏輯器件設計生產方便的特點結合在一起,特別適合于樣品研制或小批量產品開發,使產品能以最快的速度上市,而當市場擴大時,它可以很容易地轉換掩模ASIC實現,因此開發風險也大為降低。

硬件描述語言(HDL)是一種用于設計硬件電子系統的計算機語言,它用軟件編程的方式來描述電子系統的邏輯功能、電路結構和連接形式,與傳統的門級描述方式相比,它更適合大規模系統的設計。例如一個32位的加法器,利用圖形輸入軟件需要輸人500至1000個門,而利用VHDL語言只需要書寫一行“A=B+C”即可。而且VHDL語言可讀性強,易于修改和發現錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發,互不兼容,而且不支持多層次設計,層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國國防部正式推出了高速集成電路硬件描述語言VHDL,1987年IEEE采納VHDL為硬件描述語言標準(IEEESTD-1076)。

VHDL是一種全方位的硬件描述語言,包括系統行為級。寄存器傳輸級和邏輯門多個設計層次,支持結構、數據流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由下向上的電路設計過程都可以用VHDL來完成。VHDL還具有以下優點:(1)VHDL的寬范圍描述能力使它成為高層進設計的核心,將設計人員的工作重心提高到了系統功能的實現與調試,而花較少的精力于物理實現。VHDL可以用簡潔明確的代碼描述來進行復雜控制邏輯設計,靈活且方便,而且也便于設計結果的交流、保存和重用。(3)VHDL的設計不依賴于特定的器件,方便了工藝的轉換。(4)VHDL是一個標準語言,為眾多的EDA廠商支持,因此移植性好。傳統的硬件電路設計方法是采用自下而上的設計方法,即根據系統對硬件的要求,詳細編制技術規格書,并畫出系統控制流圖;然后根據技術規格書和系統控制流圖,對系統的功能進行細化,合理地劃分功能模塊,并畫出系統的功能框圖;接著就進行各功能模塊的細化和電路設計;各功能模塊電路設計、調試完成后,將各功能模塊的硬件電路連接起來再進行系統的調試,最后完成整個系統的硬件設計。采用傳統方法設計數字系統,特別是當電路系統非常龐大時,設計者必須具備較好的設計經驗,而且繁雜多樣的原理圖的閱讀和修改也給設計者帶來諸多的不便。為了提高開發的效率,增加已有開發成果的可繼承性以及縮短開發周期,各ASIC研制和生產廠家相繼開發了具有自己特色的電路硬件描述語言(HardwareDescriptionLanguage,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設計環境中使用,這給設計者之間的相互交流帶來了極大的困難。因此,開發一種強大的、標準化的硬件描述語言作為可相互交流的設計環境已勢在必行。于是,美國于1981年提出了一種新的、標準化的HDL,稱之為VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,簡稱VHDL。這是一種用形式化方法來描述數字電路和設計數字邏輯系統的語言。設計者可以利用這種語言來描述自己的設計思想,然后利用電子設計自動化工具進行仿真,再自動綜合到門電路,最后用PLD實現其功能。

覆蓋面廣,描述能力強,是一個多層次的硬件描述語言。在VHDL語言中,設計的原始描述可以非常簡練,經過層層加強后,最終可成為直接付諸生產的電路或版圖參數描述。

具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。

使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關,當工藝改變時,只需修改相應程序中的屬性參數即可。

支持大規模設計的分解和已有設計的再利用。一個大規模的設計不可能由一個人獨立完成,必須由多人共同承擔,VHDL為設計的分解和設計的再利用提供了有力的支持。

當電路系統采用VHDL語言設計其硬件時,與傳統的電路設計方法相比較,具有如下的特點:

即從系統總體要求出發,自上而下地逐步將設計的內容細化,最后完成系統硬件的整體設計。在設計的過程中,對系統自上而下分成三個層次進行設計:

第一層次是行為描述。所謂行為描述,實質上就是對整個系統的數學模型的描述。一般來說,對系統進行行為描述的目的是試圖在系統設計的初始階段,通過對系統行為描述的仿真來發現設計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現,而是考慮系統的結構及其工作的過程是否能到達系統設計的要求。

第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數據流描述)。如前所述,用行為方式描述的系統結構的程序,其抽象程度高,是很難直接映射到具體邏輯元件結構的。要想得到硬件的具體實現,必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統采用RTL方式描述,才能導出系統的邏輯表達式,才能進行邏輯綜合。

第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉換成用基本邏輯元件表示的文件(門級網絡表)。此時,如果需要,可將邏輯綜合的結果以邏輯原理圖的方式輸出。此后可對綜合的結果在門電路級上進行仿真,并檢查其時序關系。

應用邏輯綜合工具產生的門網絡表,將其轉換成PLD的編程碼,即可利用PLD實現硬件電路的設計。

由自上而下的設計過程可知,從總體行為設計開始到最終的邏輯綜合,每一步都要進行仿真檢查,這樣有利于盡早發現設計中存在的問題,從而可以大大縮短系統的設計周期。

系統可大量采用PLD芯片。

由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設計數字系統時,可以根據硬件電路的設計需要,自行利用PLD設計自用的ASIC芯片,而無須受通用元器件的限制。

EDA系統框架結構EDA系統框架結構(FRAMEWORK)是一套配置和使用EDA軟件包的規范。目前主要的EDA系統都建立了框架結構,如CADENCE公司的DesignFramework,Mentor公司的FalconFramework,而且這些框架結構都遵守國際CFI組織制定的統一技術標準??蚣芙Y構能將來自不同EDA廠商的工具軟件進行優化組合,集成在一個易于管理的統一的環境之下,而且還支持任務之間、設計師之間以及整個產品開發過程中的信息傳輸與共享,是并行工程和自頂向下設計施的實現基礎。

EDA技術的每一次進步,都引起了設計層次上的一次飛躍,從設計層次上分,70年代為物理級設計(CAD),80年代為電路級設計(CAE),90年代進入到系統級設計(EDA)。物理級設計主要指IC版圖設計,一般由半導體廠家完成,對電子工程師沒有太大的意義,因此本文重點介紹電路級設計和系統級設計。

仿真通過后,根據原理圖產生的電氣連接網絡表進行PCB板的自動布局布線。在制作PCB板之前還可以進行PCB后分析,其中包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并可將分析后的結果參數反標回電路圖,進行第二次仿真,也稱為后仿真。后仿真主要是檢驗PCB板在實際工作環境中的可行性。

由此可見,電路級的EDA技術使電子工程師在實際的電子系統產生前,就可以全面地了解系統的功能特性和物理特性,從而將開發風險消滅在設計階段,縮短了開發時間,降低了開發成本。

篇7

【關鍵詞】現代EDA技術教學內容改革

【中圖分類號】G【文獻標識碼】A

【文章編號】0450-9889(2012)05C-Otqt3--OA

現代EDA技術是一門相對前沿和復雜的課程,該課程要求學生具備一定的嵌入式技術知識,而且課程的內容對學生的理解能力和知識的綜合應用能力提出了較高的要求。在傳統的現代EDA技術課程授課過程中,由于對課程的教學任務和目標不是很明確,因此在授課過程中往往是強調該課程的一些基本概念和基本原理的介紹。然而,從以往的教學經驗進行統計分析發現,僅僅對學生進行一些相關概念和原理的介紹,遠不能滿足當前社會企業對EDA技術應用的需求。這就對現代EDA技術的教學內容及教學組織形式提出了新的要求。為此,本文將在現有的現代EDA技術課程教學內容及教學實施方案的基礎上,對當前教學過程中存在的問題和不足進行深入分析,結合當前現代電子設計企業對EDA技術應用的需求,制定符合高職嵌入式專業學生基礎條件的教學內容及組織形式,以提高高職院校學生掌握和應用現代EDA技術設計關鍵技術的能力。

一、傳統的教學內容分析

現代EDA技術課程經過近年來的實踐,已經形成了一套相對完整的教學內容及教學方法,是在傳統的教學過程中現代EDA技術課程的教學內容及課時安排。在該表中同時也給出了對不同教學內容的教學要求。通過對傳統的教學內容進行分析可以發現,在傳統的教學內容中,占整個教學學時最多的一部分是VHDL程序開發部分。在實際的教學過程中,VHDL語言的教學內容分兩個部分來開展,前半部分是VHDL語言的基礎部分,主要介紹VHDL的常用語句、形式。在

在課程的教學內容中還包括FPGA開發簡介、ISE開發環境介紹,以及電路仿真配置下載。從整個教學內容來看,傳統的現代EDA技術課程中介紹的內容非常多,涉及的面也很廣,在實際的教學過程中,學生也普遍反映該課程的信息量非常大,但是,現代EDA技術課程在實際教學后一階段是VHDL程序開發的高級階段,主要給學生介紹VHDL環境下的建模方法,以比較典型常用的門級建模、行為級建模、結構建模等三種方式分別闡述VHDL程序的開發方法和開發過程,這兩部分的內容都開設了一定的實驗教學時間。

過程中所取得的教學效果卻并不是很理想。分析其原因,在于教學內容的課程設置上存在比較大的問題。雖然表l所給出的教學內容及課時安排,單純從每一個章節來看似乎都是很有必要的,而且課時安排也很合理,但是縱觀整個教學內容就可以發現,傳統的教學過程中對教學內容更多的偏重于現代EDA技術中的相關核心知識的介紹,主要是給學生灌輸EDA設計的一些基本概念和基本方法,在各個章節的知識內容中并沒有形成一個有機的整體,更沒有將所學習的這些知識與具體的實踐應用結合起來,因此學生在學習過程中,越到課程后期越會發現學習非??菰铮抑钡秸麄€課程完成之后,也不能夠體會EDA技術的設計理念,更不能夠將所學習的知識與EDA的工程應相結合起來,造成了學生的學習效果與行業應用需求想脫離的現狀。因此,對該課程的教學內容進行研究和分析之后需要針對所存在的問題,結合當前電子設計及嵌入式行業對EDA技術的實際應用需求情況,合理地對該課程的內容進行調整和優化,將整個教學的內容組織成一個整體,并把教學內容與提升學生實踐應用能力緊密結合起來。

二、改革后的教學內容組成

針對目前在開展現代EDA技術課程教學過程中所存在的教學內容與提升學生能力不一致的現狀,本文經過深入的調研分析,結合高職院校學生的基礎條件以及今后就業過程中的崗位需求,對現代EDA技術課程的教學內容進行了徹底的改革與優化。整個改革過程中,所遵循的原則有:

第一,緊貼任職崗位需求,優化課程教學內容,提高內容的針對性。在傳統的教學過程中,有相當一部分的教學時間是在給學生灌輸EDA技術的相關概念和常識,而這些概念和常識在學生今后的任職崗位應用中,未必都會用得到。而對于那些不常用的概念和知識是完全沒有必要在課堂上為學生反復介紹的。而學生在今后任職崗位中可能會用到的一些常用方法和技巧,以及一些工具軟件的使用方法則應該在課程的教學內容中予以體現。

第二,增加實驗教學的比重,提升學生動手實踐的能力。在傳統的現代EDA技術教學內容過程中,教學時間是50學時,其中實驗占14學時,實驗所占的學時比重偏少不足以提升學生的實踐動手能力。因此,在對教學內容改革過程中,應該加大實驗教學內容的比重。

第三,引入EDA設計的典型案例,加強理論知識與實際工程之間的結合程度,既讓學生充分認識到所學習的知識在今后任職崗位中的具體應用情況,同時也提高了學生所學習知識與任職需求結合的緊密程度。在傳統教學過程中,所介紹的內容都是教科書式的獨立知識點介紹,沒有將這些知識點與一個完整的EDA設計案例相結合起來。因此在對教學內容改革過程中,需要引入一系列的經典教學案。

首先,在開展EDA教學的基礎部分,花了10個學時給學生介紹EDA技術的發展概論、VHDL語言的基礎知識,以及ISE實驗開發環境。相對傳統的教學過程,變化最為突出的是VHDL語言基礎部分的課時量大幅度減少,而且在VHDL語言設計部分沒有安排專門的實驗教學。這樣設計的目的是盡可能減少學生對于基礎知識的學習時間,也許學生通過4個學時的VHDL語言基礎的學習不能夠完全掌握VHDL語言的開發方法,但是后面還將會給學生介紹一系列EDA的開發例,讓學生通過各種實際的教學案例,去體會EDA技術的應用方法和應用價值,提高學生學習EDA技術的興趣和動力。

篇8

【關鍵詞】MATLAB;傅里葉變換;頻域分析;VHDL

頻譜分析在生產實踐和科學研究中有著廣泛的應用。其中,快速傅里葉變換(Fast Fourier Transform,FFT)是數字信號處理的最基本技術之一。近年來,隨著現場可編程門陣列FPGA(Field Programmable Gate Array)技術的迅猛發展,利用高并行度、高速度的FPGA芯片來實現FFT已成為必然趨勢。

本文將以MATLAB為工具,對信號與系統在聯系時間系統的頻域進行分析。

一、Matlab編程實現FFT實踐頻譜分析

步驟如下:

1.用Matlab產生正弦波,矩形波,以及白噪聲信號,并顯示各自時域波形圖。

2.進行FFT變換,顯示各自頻譜圖,其中采樣率,頻率、數據長度自選。

3.做出上述三種信號的均方根圖譜,功率圖譜,以及對數均方根圖譜。

4.用IFFT傅立葉反變換恢復信號,并顯示恢復的正弦信號時域波形圖。

正弦波、矩形波以及白噪聲三種信號的FFT變換(傅里葉變換)及IFFT變換(傅里葉反變換恢復信號)。

圖1-1 正弦波

圖1-2 矩形波

圖1-3 白噪聲信號

二、FFT算法在基于VHDL的FPGA下實現

1.基于VHDL的FPGA設計流程

本小節以Xilinx公司的FPGA系統開發為實例,FPGA的設計流程一般包括系統功能設計定義、設計輸入、功能仿真、邏輯綜合、前仿真、設計實現(包括翻譯、映射、布局布線)、時序仿真與驗證、下載配置與器件編程、測試驗證等幾個步驟。

本設計運用ISE和ModelSim與Matlab聯合仿真的設計方法。

ISE的簡稱為集成綜合的環境,是Xilinx公司的配套設計軟件,這種工具可完成上述FPGA/CPLD的整個開發過程

2.FPGA的基本原理和結構

FPGA即現場可編程門陣列,相對其他可編程器件具有更高的集成度、更強的邏輯實現能力和更好的設計靈活性。

FPGA的基本結構如圖2-1所示。CLB陣列實現用戶指定的邏輯功能,它們以陣列的形式分布在FPGA中;IOB為內部邏輯與器件封裝引腳之間提供了可編程接口,它通常排列在芯片四周;可編程互連資源分布在CLB的空隙,互連資源可以編程配置在模塊之間傳遞的信號網絡,用于實現各個CLB之間、CLB與IOB之間以及全局信號與CLB和IOB之間的連接。FPGA利用可編程查找表實現邏輯塊;程序控制多路復用器實現其功能選擇。

圖2-1 FPGA的基本結構

3.FFT 處理器的設計

本設計用于基于IEEE 802.11a協議的OFDM系統的OFDM調制,根據IEEE802.11a協議規定,OFDM調制采用64點FFT變換,采樣速率20M/s,即采樣周期為50ns,即64點FFT數據輸入的時間為64*50ns=3200ns。

本系統采用的時域抽取算法中要對輸入的所有數據進行倒序以后才開始蝶形運算,FFT可以分為數據輸入、蝶形運算兩個階段,蝶形運算結束后,將最終結果存儲到另一個單獨的結果存儲器另行讀取,而為了能對輸入數據實現連續的FFT變換,就需要蝶形運算的總時間小于3200ns,這樣就可以用兩個FFT模塊去輪換做FFT,實現連續的FFT處理。如圖2-2所示。

64點的基2的時域抽取FFT算法總共有6級蝶形運算,每級32次蝶形運算,總共需要32*6=192個蝶形運算,如果采用單蝶形設計,需要192次蝶形運算,蝶形運算的極限時鐘周期為3200ns/192=16.67ns,在本設計的蝶形運算時鐘周期采用16ns。

開發環境:Quartus II 6.0

選擇FPGA芯片:Altera公司Stratix系列中的EP1S10484C5

語言:VHDL

圖2-2 兩個FFT模塊

三、MATLAB到VHDL轉換工具Simulink

Simulink程序包是MathWorks公司提供的一個非常有吸引力的高水平設計、仿真工具。

1.高效地從Simulink到VHDL的轉換工具

目前為止,設計者經常遇到的最大問題是怎樣完成從算法設計到物理實現的轉換。在這個問題的研究發展過程中,設計者首先使用的是一種高層次的設計仿真工具,最通常的就是Matlab的Simulink。首先利用Mathworks的Matlab/Simulink完成頂層系統設計,然后通過轉換工具配置Simulink中的IP核,即將靜態參數傳遞給基于VHDL的IP,將Simulink模型文件(.md1)轉換成VHDL的RTL表述和工具命令語言(Tcl)腳本,同時還可進行RTL級的功能仿真;然后通過SOPC設計工具進行綜合、適配與時序仿真;最后形成對指定FPGA進行編程配置的POF和SOF文件,實現硬件系統的仿真測試。轉換的工作可以描述成以下幾步:

(1)分析并確定Simulink模型。

(2)產生VHDL環境。

(3)生成對應網表文件或示意圖進行布局、布線和硬件的下載測試。

2.從Simulink到VHDL的自動轉換

為了簡單化轉換程序,在最初的Simulink模塊中設定一些約束條件(如圖3-1所示):

(1)運行高字節的信號或變量;

(2)整個設計只有一種取樣率;

(3)系統只由入口、常數、端口及總線組成。

這些能夠使相關的VHDL結構描述比較容易地產生。工具箱的下一部分就可以允許不同的變量類型和生成可應用的結構和行為的VHDL。

圖3-1 從Simulink到VHDL轉換流程

從MDL(主要數據程序)模型到VHDL的轉換的初步翻譯由定制的Matlab程序完成。由于對Simulink描述的分析比較困難,生成的VHDL代碼需要額外的編輯。例如,一些基本模塊如標準邏輯門和雙相位時鐘等的行為描述被手動設計成標準模塊庫中的一部分。

四、Matlab/Simulink到VHDL代碼的轉換研究

1.Xilinx System Generator

Matlab中的Simulink是一種對動態系統進行建模、仿真及分析的交互式工具。Xilinx公司新推出的System Generator是一種高性能的設計工具,他可以嵌入作為Simulink的一部分運行。在Simulink中System Generator打包為Xilinx Blockset,從Simulink的庫中可以瀏覽。System Generator設計流程圖如圖4-1所示。

轉換的操作也很簡單,在System Generator的模型參數設置對話框,選擇一個輸出路徑并選擇“Create Test bench”,單擊“Generate”就可以生成VHDL代碼和設計的testbench變量。當選擇生成testbench變量后,Simulink將重新運行剛才的仿真。這次由于將經歷代碼生成過程,他將在testbench變量中保存所有輸入和輸出信息供VHDL和post-PAR仿真調用。

圖4-1 System generator設計流程圖

2.基于System Generator的FFT算法的實現

System Generator for DSP是Xilinx公司開發的基于Simulink圖形環境的DSP開發工具。利用System Generator工具,即使是沒有多少FPGA設計經驗的設計人員也能夠快速開發出高性能的FPGA來實現DSP算法。

FFT算法實現流程:

根據FFT算法的原理以及System Generator工具的特點,可以在System Generator中完成FFT算法的設計,然后自動生成HDL代碼,通過ISE軟件生成位流文件下載到FPGA中,從而完成整個設計。

實驗環境:matlab 2010b、ISE 12.3、System Generator for DSP 12.3

(1)系統模型設計

在Simulink環境中建立一個mdl模型文件,用圖形方式調用System Generator和其它的Simulink原圖形模塊,構成系統級或算法級設計框圖如圖4-2所示。

圖4-2 設計框圖

Gateway in和Gateway out模塊:用于雙浮點精度數據和定點數據之間的轉換。

System Generator模塊:提供Matlab和硬件設計環境ISE的接口,可在指定目錄中產生可在ISE軟件下實現的硬件描述語言。

Delay模塊:構成一個時延環節,可以配置其延遲時鐘周期的整數倍。

FIFO模塊:用于實現一組FIFO列。

FFT v3_2模塊:為離散傅立葉變換(DFT)提供了一種有效算法。該模塊根據不同的結構和實現方式有三種模式可供選擇:1)流水線,Streaming I/O結構;2)基4,BurstI/O結構;3)基2,Burst I/O結構。

(2)驗證與仿真

為了證明模型設計的正確性,需要對模型進行測試試驗,將FFT模型的仿真結果與MATLAB的理論計算結果進行比較,完成對所建立模型的測試工作。

1)信號在MATLAB中的處理

系統的輸入函數為,點數N=512,采樣周期為1s,在MATLAB中實現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點FFT處理后的MATLAB理論計算結果如圖4-3所示。

a)實部結果 b)虛部結果

圖4-3 MATLAB理論計算結果

2)信號在FFT模型中的處理

在仿真前先對Gateway in模塊和FFT v3_2模塊進行一下參數配置:

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

將參數配置好后在Simulink的FFT模型的輸入端輸入正弦信號,然后選擇simulink/start,待仿真結束后查看scope模塊所顯示的仿真結果如圖4-4所示。

a)實部結果 b)虛部結果

圖4-4 FFT模型仿真結果

比較圖5-3和圖5-4的波形,可以看出FFT模型處理后的結果和Matlab的理論計算結果的波形基本一致,得到的都是頻率單一的實部和虛部。

需要說明的是:在圖5-5中實部和虛部的輸出都是從橫坐標的1118點開始的,這是因為FFT模型中的FFT v3_2模塊參數選擇的是Pipelined Streaming I/O模式,在該模式下輸出需要延遲一段處理時間然后才能連續輸出,這里橫坐標的1118點實際上就是輸出的起始點,也就是輸出的的k=0的位置。

3.自動代碼生成

通過上面的測試實驗,證明所建立的FFT模型是滿足要求的,下面就需要將FFT模型轉換成HDL代碼。雙擊打開System Generator模塊的系統設定對話框,在該對話框中設定好目標器件的型號(Virtex6 xc6vsx315t-3ff1156)、綜合工具(XST)、產生語言種類(VHDL)等參數(如圖4-5所示),并且選中“Createtest bench”選項,之后啟動System Generator模塊,將在指定目錄中產生可在ISE軟件下實現的硬件描述語言,并且自動生成設計的測試代碼。

圖4-5 System generator的參數設置

Gateway in模塊的參數設置如圖4-6所示:

圖4-6 Gateway in模塊的參數設置

五、總結

本文的研究工作主要是以下幾個部分:

1.介紹了傅里葉變換及其在頻譜分析中的應用;

2.研究了利用MATLAB實現譜分析的傅里葉變換,其中包括基于MATLAB的連續信號與離散信號的頻域分析;另外,本文實現了基于MATLAB的快速傅里葉變換(FFT)以及信號的采樣——重構操作;

3.探討FPGA的結構,其中主要涉及基于VHDL的FPGA設計流程;

4.討論了由Matlab生成VHDL代碼的原理,并介紹了利用System Generator及DSP Builder將Simulink模型轉換為VHDL代碼的方法。

下一步的研究工作在于對轉換研究進行細化和拓展,其中細化部分集中于調試優化,而拓展部分在于各種功能器件的轉換實現。

參考文獻:

[1]石海,毛哲.基于DSP實現RFID實時信號頻譜分析[J].武漢工業學院學報,2008,9(3):69-72.

[2]Agilent Technologies Inc,Agilent N9340A Handheld Spectrum Analyzer TechnicalOverview.

[3]劉樹堂.2006.數字信號處理——使用MATLAB.西安:西安交通大學出版社,252-255.

[4]胡廣書著.數字信號處理——理論、算法與實現[M].北京:清華大學出版社,2003,2:93-210.

[5]Joyce Van de Vegte著.侯正信,王國安等譯.數字信號處理基礎[M].北京:電子工業出版社,2004.249-255,328-361.

篇9

關鍵詞:DDS;直接數字頻率合成;調頻;掃頻;VHDL

中圖分類號:TN99 文獻標識碼: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(直接數字式頻率合成器)的基本原理

直接數字頻率合成是從相位概念出發直接合成所需波形的一種頻率合成技術。DDS把一系列數字量形式的信號通過數模轉換器(DAC)轉換成模擬量形式的信號,其基本結構如圖1所示。

圖1 DDS結構示意圖DDS由相位累加器、加法器、波形存儲器(ROM)、數字乘法器、D/A轉換器和低通濾波器(LPF)組成。DDS的核心是相位累加器,由一個加法器和一個相位寄存器(REG)級聯構成。在參考時鐘fc的控制下,相位累加器對頻率控制字K進行線性累加,輸出的和再與相位控制字P相加后作為地址,對ROM進行尋址。ROM中存放的是經過采樣、量化處理后的某種周期性連續信號一個周期波形的幅度值,也就是與一個周期的相位采樣相對應的函數波形查找表,不同的相位地址對應這種周期信號的不同幅度值編碼。ROM輸出的幅度值編碼通過數字乘法器被幅度控制字A加權,加權后的幅度值編碼經D/A轉換器變成相應的階梯波,再經低通濾波器平滑后就可以得到所合成信號的模擬波形。合成的信號波形取決于ROM中存放的幅度值數據,因此用DDS可以產生任意波形。

設相位累加器的字長為N,則DDS的輸出頻率fo和頻率分辨率(即最小輸出頻率)Δfmin分別為:fo=K?fc2N

Δfmin=fc2N 只要N足夠大,DDS可以得到很小的頻率分辨率。要改變DDS的輸出頻率,只要改變頻率控制字K即可。

值得注意的是,根據Nyquist采樣定理,在對連續信號進行采樣的一個周期內,采樣頻率不能改變,故利用DDS進行信號合成時,在信號合成的一個周期內,頻率控制字K不能發生變化,也就是K在每次改變之前至少應該持續2N/K個DDS時鐘周期,即2N/K/fc。

通過改變相位控制字P可以控制輸出信號的相位參數,設相位加法器的字長為M,當相位控制字由0變到P(P≠0)時,ROM的輸入為相位累加器的輸出與相位控制字P之和,因此其輸出的幅度值相位會增加2πP/2M,從而使最后輸出的模擬信號產生相移。

DDS輸出信號的幅度可以通過在ROM之后加入一個數字乘法器來實現,幅度控制字A起到對ROM所輸出的幅度值編碼進行加權的作用。

由此可見,當DDS的相位累加器字長和相位加法器字長確定后,通過改變K,P,A就可以有效地控制DDS輸出的模擬信號的頻率、相位和幅度,這就是DDS技術的調制特性。

2 VHDL語言實現的DDS

為簡單起見,下面所描述的DDS僅設置了頻率控制字K,相位控制字P和幅度控制字A都未予以考慮,其處理可以類推。DDS的輸出為正弦波信號。

由于正弦波關于π奇對稱,關于π/2與3π/2偶對稱,因此波形存儲器(ROM)中只需存儲其1/4個周期的幅度值編碼。具體地,ROM中存儲正弦波0~π/2相位范圍內的256個采樣點的幅度值,采用8位編碼。而DDS的輸出為9位,最高位作為符號位,用以區分幅度值的正負,“0”表示正,“1”表示負。ROM為8位地址尋址,而相位累加器的字長采用10位。最高位用以區分正弦波的前、后半周期,“0”為前半周期,幅度值為正,“1”為后半周期,幅度值為負。次高位用以區分正弦波前、后半周期的前、后1/4周期,“0”為前1/4周期,尋址地址為相位累加器的低8位,“1”為后1/4周期,尋址地址為相位累加器低8位的取反。

用VHDL實現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開發環境中對其進行仿真的結果,如圖2所示。

圖2 DDS仿真結果3 掃頻信號的產生

利用DDS技術的調制特性可以方便地產生掃頻信號,僅需控制DDS的頻率控制字K,讓其隨預期設計的規律變化即可。

為了采用DDS實現掃頻信號掃頻帶寬范圍內的各個頻點fi,需要為其確定相應的頻率控制字Ki,從而很容易地計算出所需的一系列Ki值。與DDS的基本原理類似,將符合設計要求的一系列Ki值存儲在一張查找表中。再利用一個計數器循環計數,將其輸出作為查找表的尋址地址,以此不斷地循環讀取查找表中的各個Ki。這樣就可以使受Ki控制的DDS的輸出始終在所預期設計的各個頻點fi上變化,達到掃頻的目的。其中,計數器循環一次的時間就是所要實現的掃頻信號的掃頻周期,而計數器的計數范圍則與掃頻信號掃頻帶寬范圍內的頻點個數相對應。

以上就是利用DDS實現掃頻信號的基本思路,以下是實現此思路的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開發環境中對其進行仿真的結果如圖3所示。

圖3 產生頻率控制字的仿真結果4 結 語

VHDL是IEEE的工業標準硬件描述語言,可以描述硬件電路的功能、信號連接關系及定時關系,在電子工程領域用來描述、驗證和設計電子線路得到了廣泛的接受和應用。利用DDS技術的調制特性產生各種調制信號簡單方便,容易實現。從文中不難看出,將VHDL語言與DDS技術結合起來設計生成調頻信號,直觀快捷,可操作性很強,必將得到更加廣泛的應用。

參 考 文 獻

[1]張順興.數字電路與系統設計[M].南京:東南大學出版社,2004.

[2]黃智偉.射頻電路設計[M].北京:電子工業出版社,2006.

[3]姜宇柏,游思晴.軟件無線電原理與工程應用[M].北京:機械工業出版社,2006.

[4]譚會生,瞿遂春.EDA技術綜合應用實例與分析[M].西安:西安電子科技大學出版社,2004.

[5]潘松,黃繼業,王國棟.現代DSP技術[M].西安:西安電子科技大學出版社,2003.

[6]鄧延安.直接數字頻率合成單象限存儲結構的VHDL語言實現[J].安徽工程科技學院學報,2006,21(1):37-39.

[7]李逢玲,鄭飛.基于EDA技術的調頻信號發生器的設計[J].現代電子技術,2006,29(8):10-12.

[8]DDS原理簡介[EB/OL]..cn.

篇10

【關鍵詞】項目化教學;FPGA開發與應用;VHDL

1 基于FPGA的數字系統設計簡介

FPGA是Field Programmable Gate Array的縮寫,即現場可編程門陣列,它完全由用戶通過軟件進行編程和配置,從而完成某種特定的功能,且可以反復擦寫的新型器件。傳統的數字系統設計方法是自底向上的設計方法,它是以各種不同的中小規模集成電路芯片為基礎,按照功能要求在印刷電路板上將不同的芯片連接起來,構成實現某種功能的電子系統?;贔PGA[1]的數字系統設計方法采用自頂向下的設計方法,把系統分成若干個基本單元,然后再把每個基本單元劃分為下一層次的基本單元。它以FPGA芯片為核心,通過編程的方式完成系統功能的設計并將設計寫入FPGA芯片內,使芯片具有設計的功能。設計過程中通過不同階段的仿真可以及時檢查設計的正確性,電路的修改只需要通過修改程序并重新下載到FPGA中即可。因此基于FPGA的數字系統設計易于測試和修改,設計周期短,便于移植。

2 項目化教學實施過程

“FPGA開發與應用”這門課是針對大三計算機網絡工程專業學生開設的一門專業課,學生在前期已學過《電路》、《數字電路》、《模擬電路》、《C語言程序設計》等課程。通過該門課,使學生掌握VHDL語言(超高速集成電路硬件描述語言)的編程方法,能熟練應用ISE平臺進行數字系統設計,理解自頂向下的系統設計方法,積累數字系統設計經驗。

傳統的教學方法重在介紹VHDL語言的語法規則和語句,知識點較零散,學起來較枯燥,而且不知如何應用這些語句。而項目化教學重在將知識點融在項目中理解,學生通過做一個小項目可以掌握相應的知識點,并通過3-4人一組協作完成,培養其團隊合作能力、溝通能力和語言表達能力等。項目化教學真正實現了三個轉變:以教師為中心轉變為以學生為中心;以課本為中心轉變為以項目為中心;以課堂為中心轉變為以實際經驗為中心[2]。

下面將通過“點亮兩位數字”項目分析如何實施項目化教學[3][4]?!包c亮兩位數字”項目即利用Xilinx公司的ISE軟件平臺進行系統設計,通過VHDL語言編程實現顯示兩位數字的功能,并最終生成二進制文件,下載到Basys2開發板上驗證。

2.1 項目立項階段

教師先向學生展示最終要完成的效果,講明項目任務,再對學生進行分組,盡量采取自愿原則,教師可對小組成員適當調整,保證每組中至少有一人學習情況較好,并任命一人為組長。

2.2 需求分析階段

根據項目要求,分析最終要呈現的效果,確定程序的功能模塊和性能需求。比如要用兩個數碼管顯示、動態掃描問題、譯碼問題等。

2.3 系統設計階段

首先每個小組要確定總體方案設計,例如分哪幾個模塊、每個模塊要實現什么功能,再進行詳細設計,包括用Visio軟件繪制系統功能結構圖(如圖1所示)、每個模塊如何用VHDL語言實現等。在詳細設計中,涉及每個模塊具體的功能,寫出詳細的系統設計報告,以此進行編碼和測試,從而保證系統設計的可靠性??梢杂山M長分配任務,讓每個組員完成一個模塊的編寫工作。

2.4 編碼、測試階段

教師檢查每組的系統功能結構圖,若無問題,則可以開始編程。在用VHDL語言編程階段,學生可根據系統功能結構圖分模塊進行調試,先將底層三個模塊(分頻器、控制模塊、譯碼器)都編好后,通過ISE軟件編譯檢查語法錯誤、并進行仿真,若無問題,再進行頂層文件編寫;若有問題,則需修改源代碼,直至無錯誤為止。頂層文件主要是通過元件例化語句將底層三個模塊進行連接,編好后,也需要經過ISE軟件編譯檢查語法錯誤。

2.5 下載、驗證階段

最后將生成的二進制文件下載到basys2開發板上驗證,若能正確顯示兩位數字,即成功。若不能正常顯示,則需返回到ISE軟件中,修改底層文件或頂層文件,直至驗證成功為止。

2.6 驗收階段

在編寫代碼的過程中,教師可適當給予指導,給學生提供一些參考資料或相似的例子,幫助學生完成項目。教師要檢查各組最終能否實現“顯示兩位數字”,協助并指導各組,完成編寫“顯示兩位數字”項目文檔,并對各組進行成績評定。各組組長向全班匯報、展示本組的作品,并列舉項目開發中遇到的各種問題,其他組的學生可以提問,最后教師對各組進行點評。各組組長根據小組成員的貢獻對小組成員進行打分,教師根據小組成績和組長對各成員的打分,確定每位學生的成績。

3 總結

由于傳統的教學方法重在介紹VHDL語言的語法和語句,學生學起來較枯燥,因此結合《FPGA開發與應用》課程的特點,通過“顯示兩位數字”項目,展示如何在《FPGA開發與應用》課程中實施項目化教學。通過項目化教學,不但能使學生掌握VHDL語言的編程方法和自頂向下的系統設計方法,熟悉真實項目的實施過程,而且通過分組協作完成一個項目,可以鍛煉學生的團隊協作能力、溝通能力、語言表達能力等,從而激發學生的學習興趣,提高學生的自主學習能力。

【參考文獻】

[1]陳學英,李穎.FPGA應用實驗教程[M].國防工業出版社,2013,05.

[2]張學琳,陳齊超,段珊,胡波.項目教學法在“C語言課程設計”中的研究與應用[J].實驗技術與管理,2011,28(02):164-167.