




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要本文主要介紹了利用VHDL設計語言和Altera公司的MAX+PLUS II軟件開發平臺, 來設計實現地鐵自動售票系統的核心控制部分的功能:站點選擇,票數選擇,投幣處理,余額計算,自動出票等功能。在本設計中采用了有限狀態機的設計方法,將整個售票系統的控制部分化分為五個狀態: 選站狀態,選票狀態,投幣狀態,出票狀態和余額找零狀態。最后通過對程序的調試以及相應部分功能的仿真,驗證了整個系統的原理和本設計方案的正確性。 由于采用了有限狀態機的設計方法,使得本系統運行可靠性高,非法狀態易控制。關鍵詞: FPGA,CPLD, VHDL語言,MAX+PLUS II 軟件,有限狀態機, ,地鐵自動售票系
2、統目錄第一章 緒論 11.1 電子器件的發展和現狀 11.2 設計方法的發展 11.3 層次化的設計與VHDL的應用 11.4 本課題的提出與意義 11.5 本課題研究內容 1第二章 VHDL語言介紹 12.1什么是VHDL 12.2 VHDL語言的特點 12.3 VHDL的設計流程 12.4 VHDL程序的基本結構 1第三章 MAX+PLUS II軟件介紹 13.1 MAX+PLUS II簡介 13.2 Max+Plus開發系統的特點 13.3 Max+Plus功能簡介 13.4 Max+plus設計過程 1第四章 地鐵售票系統的設計與實現 14.1 課題要求 14.2設計分析 14.3狀態
3、機設計 1第五章 結束語 1附錄 1參考文獻 1致謝 1第一章 緒論1.1 電子器件的發展和現狀電子技術的發展總是同電子器件的發展密切相關的,由于電子器件的不斷更新換代,電子技術得到了飛速發展,當今信息技術被廣泛應用在國民經濟的方方面面。多媒體技術的普及、高速寬帶網絡的建設、數字電視的出現以及與我們日常生活息息相關的各種家用電器,都離不開微處理器、存儲器和一些采用行業標準的專用芯片。這些電子器件的發展經歷了從電子管、晶體管、小規模集成電路、中規模集成電路到大規模集成電路和超大規模集成電路幾個階段,其發展趨勢是體積越來越小,集成度越來越高。隨著半導體技術的迅速發展,設計與制造集成電路的任務已不完
4、全由半導體廠商來獨立承擔,系統設計師們更愿意自己設計專用集成電路(ASIC)芯片,而且希望ASIC的設計周期盡可能短,最好在自己的實驗室里就能設計并制造出適用的ASIC芯片,并且能夠得到實際的應用。使用ASIC完成電子系統的設計,其優點是集成度高、保密性強、可大幅度地減少印刷電路板的面積和接插件、電路性能好并能降低裝配和調試費用、更適合較大規模批量生產、降低生產成本。例如,現在微機中使用的顯卡、網卡、數字電視等都是專用的ASIC芯片。采用ASIC設計的不足之處是一次性的投資大,設計周期一般比較長,不便于以后修改設計,因而近幾年在ASIC領域出現了一種半定制電路,即現場可編程邏輯器件FPLD。目
5、前使用較多的可編程邏輯器是現場可編程門陣列FPGA(field programmable gate array)和復雜可編程邏輯器件CPLD(complex programmable gate array)。早期使用的可編程器件有PROM、EPROM、E2PROM、PAL、GAL等,這些芯片的容量一般比較小,只能完成簡單的數字邏輯功能,這些器件基本上是使用專用的編程器進行裝載。CPLD和FPGA的芯片是在早期使用的PAL和GAL基礎上發展起來的,相比早期的可編程器件,現場可編程邏輯器件FPLD的容量大,器件的容量遠遠大于PAL和GAL,更適合做時序和組合邏輯電路的設計,不但集成度高,而且逐漸向
6、低功耗發展,芯片的使用電壓有+5V、+3.3V和+2.5 V幾種,有的芯片外部是+5V而內部的工作電壓則是+3.3V或+2.5V。現在市場上FPLD的品種很多,使用較多的是Altera、Xilinx和Lattice這3個公司的產品,各公司都有不同型號的CPLD和FPGA產品,例如,Xilinx的XC系列;Altera的EPLD系列、FPGA系列;Lattice的ispLSI、ispGAL等。由于各個公司的 FPLD結構不同,使用的裝載電纜線是不一樣的,設計軟件也不同,但共同的特點是:現場可編程邏輯器件FPLD都可以在系統進行編程加載程序,不需要使用專用的編程器,它們都是直接將實驗系統和計算機的
7、并行口連接,通過運行軟件對芯片進行裝載,在實驗室中就可將大量的數字電路設計集成到一個大芯片中,實現系統的微型化和可靠性。目前工程設計人員通常都采用這種方法進行電路設計。1CPLD或EPLD芯片這類器件的使用特點是:芯片一經上電加載即已完成編程,不必在每次上電時重新進行加載,也就是當程序燒入芯片后,只有下一次需要再修改程序時才需要對芯片重新進行加載,否則將不會改變先前所燒入的代碼,類似于大的GAL芯片。例如,Lattice的ispGAL芯片可以在系統進行編程加載程序,也可以與該公司的ispLSI芯片在同一個電路中加載程序。CPLD在結構上主要由可編程邏輯宏單元LMC(logic macro ce
8、ll)圍繞中心的可編程互連矩陣單元組成,其中LMC的邏輯結構比較復雜,并具有復雜的I/O單元互連結構,可以由用戶根據設計的需要生成特定的電路結構,完成一定的功能。2FPGA芯片這類器件不像CPLD或EPLD,每次上電使用時不管是否改變程序都要對芯片進行加載。現在FPGA芯片的容量一般比CPLD或EPLD的容量要大得多,更適合于做較大系統的復雜設計。FPGA芯片通常包含3類可編程資源:可編程的邏輯功能塊、可編程I/O塊和可編程的內部互連。可編程的邏輯功能塊是實現用戶功能的基本單元,它們通常排成一個陣列,遍布于整個芯片中;可編程I/O塊完成芯片上的邏輯與外部封裝管腳的接口,常圍繞著陣列排列于芯片四
9、周;可編程的內部互連包括各種長度的連接線段和一些可編程連接開關,它們將各個可編程邏輯塊或I/O塊連接起來,構成特定功能的電路。Xilinx的XC系列器件采用的是現場可編程門陣列FPGA,現場可編程門陣列是一種類似門陣列的結構,它的基本單元以陣列的形式排列在芯片上,但它不像門陣列那樣由連線掩膜確定其最終的邏輯功能,而是將規則的連線陣列也已做好,其邏輯功能由各連線節點的控制開關的通斷來確定。這些節點的控制開關的值有各種不同的控制方法,如靜態隨機存儲器控制(SRAM)、反熔絲(antifuse based)控制以及由快閃爍存儲器(Flash)控制等幾大類。SRAM控制的FPGA器件是用靜態隨機存儲器
10、中存儲的數值來控制芯片中可編程節點的通斷,以實現芯片的設計功能。這種FPGA在使用時,需要在系統加電時首先進行功能初始化,將存儲器的內容加載到芯片的控制器中。反熔絲控制的FPGA器件是用反熔絲單元來控制可編程器件內的可編程節點的通斷,使芯片中每一部分具有應有的邏輯功能,以實現器件的設計功能。反熔絲單元是一個被動的兩端器件,通常情況下處于開路狀態,在施加充足的電壓后,能夠永久地導通。用于現場可編程器件的反熔絲其占用芯片面積非常小,速度也很高,這方面的性能幾乎可以與門陣列相比。但這種FPGA在編程時需要專用的編程設備,而且芯片功能一經編程確定后,不能再修改,反熔絲控制的FPGA器件價格最低。Fla
11、sh控制的FPGA器件是用快閃爍存儲器的數值來控制FPGA節點的通斷,實現現場可編程目的。這種FPGA的工作特性與SRAM-FPGA相似,但與SRAM-FPGA相比,它的單元面積小。由于Flash具有不揮發性,使用時不必在每次上電時都重新進行功能加載,所以使用是很方便的。1.2 設計方法的發展傳統的手工設計方法一般是根據系統的要求,首先畫出系統的硬件流程圖,再根據功能劃分成不同的模塊,設計過程一般從底層開始,先要選擇具體的元器件,用所選擇的元器件進行各功能模塊的邏輯電路設計,手工畫出一張張的電路原理圖,根據原理圖制作印刷電路板,每個功能模塊都調試通過后,再把各個模塊連接起來進行系統的調試。對整
12、個系統的仿真、調試只能在完成硬件設計以后才能進行,系統設計中的問題在調試的后期才能發現,如果出現設計中沒有考慮到的問題,就要再從底層重新設計,這樣的設計周期一般較長。設計結果是若干張的電路原理圖和信號的連接表,如果是一個大的系統,將是一大摞圖紙,以后系統出現問題,查找修改起來都不直觀。上述過程是從底層開始,并在已有的功能模塊的基礎上來搭建高層次的模塊直至整個系統。因此這種電子系統的傳統的設計方法稱為是自底至上(bottom-up)的設計。這里的底指的是設計樹的末枝,設計過程必須從存在的基本單元模塊出發,基本單元模塊必須是已經設計成熟的單元,也可采用其他項目已開發好的標準單元。由于電子器件的更新
13、換代,在現代數字系統設計中,現場可編程器件FPGA和CPLD的使用越來越廣泛,與此同時基于大規模可編程邏輯器件的EDA(electronic design automation)硬件解決方案(EDA solution)也被廣泛采用。這使得電子電路的設計方法也發生了根本性的變化,出現了電子電路設計自動化。計算機應用的普及,自然產生了計算機輔助設計(CAD)。最早的電子CAD軟件僅僅是一些繪圖軟件,包括繪制電路原理圖、繪制印刷電路板圖、繪制集成電路芯片板圖以及一些簡單的數值計算等。當出現了自動設計、驗證和自動布局布線工具后,這類軟件稱之為第一代的EDA軟件。后來又出現了第二代的EDA軟件,它包括邏
14、輯綜合、仿真以及“自頂向下”的設計等。近年來又出現了第三代的EDA軟件,稱為電子系統設計自動化EsDA,可以通過概念輸入(框圖、公式等)自動生成各種設計結果,包括ASIC芯片設計結果、電路原理圖、PCB板圖以及軟件等,并且可以進行機電一體化設計。與傳統的設計方法不同,現代電子工程師們設計系統的過程是首先描述系統,然后用EDA工具在計算機上進行系統級仿真,設計適合自己用的ASIC芯片,用通用和專用芯片構成系統,進行功能模擬和帶時延的仿真,布PCB板,對PCB板進行仿真,最終生產調試成功。EDA,即電子設計自動化。所謂自動化是指利用計算機完成電子系統設計,現在已經逐漸成為電子系統的主要設計手段,尤
15、其是采用可編程器件和軟件仿真模擬方法的使用,給傳統的電路設計方法帶來了重大的變革,它使得設計工程師們從繁雜而零亂的工作中解放出來,而把著眼點放在電路的設計上,是一種節省時間而又高效率的現代設計理念。EDA技術以計算機為工具,設計者只需要完成對系統功能的描述,就可以由計算機軟件進行處理,代替人來完成數字系統的邏輯綜合、仿真模擬和布局布線等工作。其中模擬硬件電路在實際工作時的時序關系是相當重要的,因為系統設計上的錯誤通過仿真模擬波形時就可以發現,而不是等到線路板調試時才發現錯誤,即使是在線路板調試時又發現錯誤,在外部連接線已經固定的情況下,只要對內部的軟件設計進行改進,就可達到修改設計方案的目的,
16、這種方法比起傳統的電路設計方法進步多了,修改設計如同修改軟件一樣方便。當今的硬件設計方法有幾大優點:一是設計方法由手工設計變為自動設計,可以大大提高設計效率和設計質量,縮短設計周期;二是在系統設計和各個過程中可分別進行仿真,保證了設計的正確性,使得設計能夠一次成功;三是能夠根據實際需要來自行設計ASIC芯片。可編程邏輯器件和EDA技術給硬件系統設計者提供了強有力的工具。如今,只要擁有一臺計算機、一套相應的EDA軟件和空白的可編程器件芯片,在實驗室就可以完成數字系統的設計與生產。可以說,當今的數字系統設計離不開可編程器件和EDA設計工具。1.3 層次化的設計與VHDL的應用1.自頂向下(top-
17、down)的設計方式一般來說,EDA解決方案是一種采用計算機自頂向下(top-down)的設計方式。這里的頂指的是設計樹的樹根,按照數字系統的功能描述,把系統劃分為若干個功能模塊,然后再把每個模塊劃分為不同的層次,由高層次到低層次逐步細化。這樣的設計過程稱之為自頂向下的設計方式。在底層設計時對邏輯進行必要的描述,并依賴特定的軟件執行邏輯優化(logic optimization)與器件映射(device mapping),自頂向下設計的特點是每一層次劃分時都要對某些目標進行優化,這些目標包括工作速度、芯片面積和芯片成本等。最后再使用由各芯片生產廠商提供的編譯器執行布線(route)和網單優化(
18、netlist optimization)。而直接采用原始邏輯圖或布爾方程輸入進行電路設計雖然對于簡單的邏輯可以獲得非常有效的結果。但是對于復雜的系統設計,應用它們就很容易產生錯誤,而必須依靠一種高層的邏輯輸入方式,這樣就產生了硬件描述語言HDL(hardware description language)。所謂硬件描述語言,就是對實際的硬件設計用語言的方式來描述,能夠把復雜的電路設計用形象化的語言方式表示出來,可以描述硬件電路的功能,信號連接關系以及定時關系的語言,它能比電路原理圖更能有效地表示電路的特征。利用硬件描述語言編程來表示邏輯器件及系統硬件的功能和行為,是該設計方法的一個重要特征。
19、硬件描述語言有HDL、AHDL、Verilog HDL和VHDL等。VHDL語言的全稱是“超高速集成電路硬件描述語言”(very high speed integrated circuit hardware description language)屬于硬件描述語言中的一種,對系統硬件的描述功能很強而語法規范又比較簡單。其中符合IEEE-1076標準的VHDL的應用成為EDA解決方案中的首選。VHDL這種行為描述性語言將被廣泛應用到新一代EDA硬件設計方案中,因此對VHDL的應用成為EDA解決方案的核心,更是整個電子邏輯系統設計的核心。2VHDL語言的應用VHDL語言源于美國政府于1980年開
20、始啟動的超高速集成電路(very high speed integrated circuits,vHSIC)計劃。在這一計劃的執行過程中,專家們認識到需要有一種標準的語言來描述集成電路的結構和功能。這樣,vHSIC的硬件描述語言(vHSIC hardware description language),即VHDL誕生了。很快,這一標準被美國電氣和電子工程師協會(IEEE)所承認。VHDL語言作為高級硬件行為描述型語言,如今已經廣泛被應用到FPGA/CPLD和ASIC中的設計。嚴格地講,VHDL是一種用來描述數字邏輯系統的“編程語言”。它通過對硬件行為的直接描述來實現對硬件的物理實現,代表了當今
21、硬件設計的發展方向。VHDL是為了滿足邏輯設計過程中的各種需求而設計的。第一,它是可以用來描述邏輯設計的結構,比如邏輯設計中有多少個子邏輯,而這些子邏輯又是如何連接的。除此之外,VHDL并不十分關心一個具體邏輯依靠何種方式實現,而是把開發者的精力集中到邏輯所實現的功能上。第二,VHDL采用類似高級語言的語句格式完成對硬件行為的描述,具備更強的模塊化能力,并擁有良好的可讀性以及程序的移植性。另外,VHDL淡化狀態機,與或表達式等早一代硬件描述語言中的元素,用更類似于高級語言的表達式取代。這些也是為什么把VHDL稱為“編程語言”的原因。第三,VHDL給出邏輯的模擬與調試為設計工作提供了最大的空間。
22、VHDL調試的過程是相當靈活的:一方面可以使用傳統的調試方法,比如適用傳統的波形激勵或編寫測試向量;另一方面,可以使用一些VHDL原碼調試器,這類調試器可以大大加快VHDL程序調試的速度,因為它可以像調試軟件一樣單步跟蹤調試每一條語句,并且可以設置斷點,觀察內部變量等。這些功能是傳統的調試仿真方法所不具備的。這種調試器比較著名的有Aldec的Active-HDL。擁有高效率的生成代碼,能夠節省大量的資源。甚至不必編寫任何測試向量便可以進行源代碼級的調試。而且,設計者可以非常方便地比較各種方案之間的可行性及其優劣而不需做任何實際的電路實驗。鑒于VHDL具有以上諸多優點,只要開發者具備一定的高級語
23、言程序設計基礎,擁有Pascal、C等計算機高級語言的基礎,同時又了解一些基本數字電路的設計方法,在此基礎上來學習VHDL程序設計應該是比較容易的,可以輕松地掌握VHDL使硬件工作軟件化。現代電子系統設計人員應該把VHDL語言作為一種基礎知識來學習,并要求能夠熟練地使用EDA的設計工具。在EDA解決方案中應用VHDL有助于縮短數字系統的開發周期。但還應該注意,除了靠編寫VHDL程序簡化邏輯之外,還需要選擇合理的HDL synthesis。不同公司的HDL synthesis所支持的語法并不相同,而且生成的代碼效率也不同。經實驗對比,相同的程序經過不同的編譯器編譯,芯片資源的消耗相差高達10%。
24、另外,由于知識產權和專利保護問題,目前國際上尚無統一的集成化開發工具可以完成從邏輯輸入到下載所需的全部工作,這也給VHDL在EDA解決方案中的廣泛應用帶來了一定的困難。但是總的來講,廣大廠商均遵循VHDL87這一通用標準并互相提供良好的軟件接口,在某種程度上可以緩解該矛盾。隨著VHDL93標準的廣泛應用以及第二代可編程邏輯器件的推出,VHDL必將在未來的EDA解決方案中發揮不可替代的作用。1.4 本課題的提出與意義就目前而言,實現地鐵自動售票系統的控制方法很多,可以用可編程序控制器PLC、單片機等方案來實現。但是這些控制方法的功能修改及調試都需要硬件電路的支持,在一定程度上增加了功能修改及系統
25、調試的困難。而FPGA(Field Programmable Gate Array)是專用集成電路(ASIC)中集成度最高的一種,用戶可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現用戶的邏輯。同時,與之相配套的VHDL(Very High Speed Integrated Circuit Hardware Description Language)語言,是一種用來描述數字邏輯系統的編程語言,采用類似高級語言的語句格式完成對硬件行為的描述。VHDL的優越性,成為現在硬件設計師的首選語言。此外,兼容VHDL語言的軟件也越來越多,也越來越實用。MAX+PLUS II正是其中的佼佼者。MAX+
26、PLUS II(Multiple Array Matrix and Programmable Logic User System)是美國Altera公司自行設計的一種軟件工具,它具有原理圖輸入和文本輸入(采用硬件描述語言)兩種輸入手段,利用該工具所配備的編輯、編譯、仿真、綜合、芯片編程等功能,將設計電路圖或電路描述程序變成基本的邏輯單元寫入到可編程的芯片中(如FPGA芯片),即可做成ASIC芯片。本課題正是基于以上現狀提出的,有著重要的意義。1.5 本課題研究內容本課題的主要研究目標是針對于地鐵自動售票系統的核心控制部分進行研究和設計,主要內容包括:1.首先對于目前比較流行的電路設計的VHDL
27、語言進行了相關介紹.主要介紹了:VHDL的起源,VHDL語言的特點,VHDL的設計流程,以及VHDL程序的基本結構.2.其次介紹了不Altera公司推出的第三代PLD開發系統MAX+PLUS II.主要包括: MAX+PLUS II開發系統的特點, MAX+PLUS II開發系統的功能以及MAX+PLUS II的設計過程.3.最后對于地鐵自動售票系統的核心控制部分的功能進行分析,采用狀態機的設計方法,運用VHDL語言編程并進行了相關波形仿真,通過仿真驗證了地鐵售票系統的控制部分功能的正確性.在上述工作中,對地鐵售票系統核心控制部分的設計以及運用VHDL語言編程所進行的邏輯設計和仿真是本論文的主
28、要工作。第二章 VHDL語言介紹2.1什么是VHDLVHDL語言是一種用于電路設計的高級語言。它在80年代的后期出現。最初是由美國國防部開發出來供美軍用來提高設計的可靠性和縮減開發周期的一種使用范圍較小的設計語言 。但是,由于它在一定程度上滿足了當時的設計需求,于是他在1987年成為ANSI/IEEE的標準(IEEE STD 1076-1987)。1993年更進一步修訂,變得更加完備,成為ANSI/IEEE的ANSI/IEEE STD 1076-1993標準。現在,VHDL和Verilog作為IEEE的工業標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬件描述
29、語言. 在新的世紀中,VHDL和Verilog語言將承擔起大部分的數字系統設計任務. VHDL的英文全寫是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應用主要是應用在數字電路的設計中。目前,它在中國的應用多數是用在FPGA/CPLD/EPLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC。2.2 VHDL語言的特點VHDL是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統行為級、寄存器傳輸級和邏輯門級三個不同層次的設計,
30、支持結構、數據流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強,因此在實際應用中越來越廣泛。VHDL的主要特點有:1 作為硬件描述語言的第一個國際標準,VHDL具有很強的可移植性。2 具有豐富的模擬仿真語句和庫函數,隨時可對設計進行仿真模擬,因而能將設計中邏輯上的錯誤消滅在組裝之前,在大系統的設計早期就能查驗設計系統功能的可行性。3 設計層次較高,用于較復雜的計算時,能盡早發現存在的問題,從而縮短設計周期。4 VHDL的設計不依賴于特定的器件,方便了工藝的轉換。5 支持大規模設計的分解和已有設計的再利用。6 對于用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優化,并自動地
31、把VHDL描述設計轉變成門級網表。7 VHDL用源代碼描述來進行復雜控制邏輯的設計,靈活又方便,同時也便于設計結果的交流、保存和重用。2.3 VHDL的設計流程應用VHDL語言進行電子設計,首先要了解基本的設計流程。在EDA解決方案中采用VHDL要經過的流程如圖2.1所示。從圖2.1可以看出,在分析系統指標后,就進入了設計階段,首先是設計輸入,可以采用的輸入方式有VHDL語言、VHDL語言與邏輯圖混合輸入或采用邏輯圖輸入,這一步通常都使用芯片生產商提供的開發工具,有關這方面的內容將在后面介紹。接下來是對所輸入的源文件進行編譯,即HDL Synthesis。通常稱為合成或邏輯合成,這一步通常由三
32、個過程組成,分別是HDL語言合成(language synthesis或HDL compilation)、邏輯優化(optimization)、目標映射(technology mapping)。前兩個過程很好理解,最后一步是為了適應不同公司的編譯器而生成EDIF(electronic design interchange format)的中間文件,也有的生成AHDL、DSL、QDIF、XNF等內部網單描述文件。有些公司的軟件自帶編譯器,而也有些公司的軟件不帶編譯器,這時需要使用第三方軟件,比較著名的有Exemplar 公司的Leonardo Spectrum 和Synplicity 公司的Sy
33、nplify等。一般這類工具都采用Behavior Extracting Synthesis Technology(B.E.S.T.)和Synthesis Constraints Optimization Environment(SCOPE),這兩種技術可以提高VHDL邏輯合成的效率和可靠性。另外,這類工具在生成EDIF文件的同時還生成VHDL格式的網單,可以用于對邏輯功能調試(functional simulator)。這里的邏輯功能調試也就是圖中的功能仿真,這是在芯片裝載程序前的功能仿真模擬,它僅僅驗證邏輯的正確性。在一般的EDA解決方案中,這一步一般采用編寫測試向量或加激勵波形的方法,只
34、能對邏輯的輸出信號進行模擬,而對于一些重要的內部信號則無能為力了。在采用VHDL后可以借助HDL Synthesis生成的VHDL格式的內部網單使用一些特殊的調試器對VHDL源程序進行類似于高級語言調試的單步跟蹤調試。這樣不僅可以觀察重要的內部信號,而且可以清楚地看到程序執行的流程。一般還要經過時序模擬(timing simulatior)也就是圖2.1中的時序分析,在這里可以對電路的工作頻率、工作延時做定性的模擬,雖然這也還會跟實際情況有一定的差距,但還是建議開發者要進行這一步模擬。圖2.1 VHDL的設計流程對于這些步驟,一般均可借助由芯片生產商提供的開發軟件完成。因此一定要在這里將各項功
35、能都調試正確,接下來就是對芯片進行裝載程序,在這里要用各個芯片廠商提供的編譯器來生成可用于裝載(download)的文件進行裝載。例如,Altera公司的軟件生成的裝載文件是 .POF,用軟件菜單中的Program命令裝載芯片;Lattice公司的軟件生成的裝載文件是 .JED,用軟件菜單中的Fitter命令裝載芯片。每個公司的開發工具都具備這些功能。最后是對裝載的芯片進行系統調試以驗證設計的正確性。如果其中哪一步出現錯誤,都要重復前面的步驟,直到最終產品調試通過。2.4 VHDL程序的基本結構一個VHDL程序由5個部分組成,包括實體(ENTITY)、結構體(architecture)、配置(
36、coxnfiguration)、包(package)和庫(library)。實體和結構體兩大部分組成程序設計的最基本單元。圖2.2表示的是一個VHDL程序的基本組成。配置是用來從庫中選擇所需要的單元來組成該系統設計的不同規格的不同版本,VHDL和Verilog HDL已成為IEEE的標準語言,使用IEEE提供的版本。包是存放每個設計模塊都能共享的設計類型、常數和子程序的集合體。庫是用來存放已編譯的實體、結構體、包和配置。在設計中可以使用ASIC芯片制造商提供的庫,也可以使用由用戶生成的IP庫。圖2.2 VHDL程序的基本組成第三章 MAX+PLUS II軟件介紹3.1 MAX+PLUS II簡
37、介Max+PlusII(或寫成Maxplus2,或MP2 是Altera公司推出的的第三代PLD開發系統(Altera第四代PLD開發系統被稱為:QuartusII,主要用于設計新器件和大規模CPLD/FPGA, Altera是世界上最大可編程邏輯器件的供應商之一。使用MAX+PLUSII的設計者不需精通器件內部的復雜結構。設計者可以用自己熟悉的設計工具(如原理圖輸入或硬件描述語言)建立設計,MAX+PLUSII把這些設計轉自動換成最終所需的格式。其設計速度非常快。對于一般幾千門的電路設計,使用MAX+PLUSII,從設計輸入到器件編程完畢,用戶拿到設計好的邏輯電路,大約只需幾小時。設計處理一
38、般在數分鐘內內完成。特別是在原理圖輸入等方面,Maxplus2被公認為是最易使用,人機界面最友善的PLD開發軟件,特別適合初學者使用,其軟件操作界面如圖3.1所示。圖3.1 MAX+PLUS II 軟件操作界面3.2 Max+Plus開發系統的特點1.開放的界面Max+plus支持與Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。2.與結構無關Max+plus系統的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX
39、5000和Classic可編程邏輯器件,提供了世界上唯一真正與結構無關的可編程邏輯設計環境。3.完全集成化Max+plus的設計輸入、處理與較驗功能全部集成在統一的開發環境下,這樣可以加快動態調試、縮短開發周期。4.豐富的設計庫Max+plus提供豐富的庫單元供設計者調用,其中包括74系列的全部器件和多種特殊的邏輯功能(Macro-Function)以及新型的參數化的兆功能(Mage-Function)。5.模塊化工具設計人員可以從各種設計輸入、處理和較驗選項中進行選擇從而使設計環境用戶化。6.硬件描述語言(HDL)Max+plus軟件支持各種HDL設計輸入選項,包括VHDL、Verilog
40、HDL和Altera自己的硬件描述語言AHDL。7.Opencore特征Max+plus軟件具有開放核的特點,允許設計人員添加自己認為有價值的宏函數。3.3 Max+Plus功能簡介1.原理圖輸入(Graphic Editor)MAX+PLUSII軟件具有圖形輸入能力,用戶可以方便的使用圖形編輯器輸入電路圖,圖中的元器件可以調用元件庫中元器件,除調用庫中的元件以外,還可以調用該軟件中的符號功能形成的功能塊.圖形編輯器窗口見圖3.2。圖3.2 圖形編輯器窗口 2.硬件描述語言輸入(Text Editor)MAX+PLUSII軟件中有一個集成的文本編輯器,該編輯器支持VHDL,AHDL和Veril
41、og硬件描述語言的輸入,同時還有一個語言模板使輸入程序語言更加方便,該軟件可以對這些程序語言進行編譯并形成可以下載配置數據,文本編輯器窗口見圖3.3。圖3.3 文本編輯器窗口3.波形編輯器 (Waveform Editor在進行邏輯電路的行為仿真時,需要在所設計電路的輸入端加入一定的波形,波形編輯器可以生成和編輯仿真用的波形(*.SCF文件),使用該編輯器的工具條可以容易方便的生成波形和編輯波形。波形編輯器窗口如圖3.4所示。使用時只要將欲輸入波形的時間段用鼠標涂黑,然后選擇工具條中的按鈕,例如,如果要某一時間段為高電平,只需選擇按鈕 ”1”。還可以使用輸入的波形(*.WDF文件經過編譯生成邏
42、輯功能塊,相當于已知一個芯片的輸入輸出波形,但不知是何種芯片,使用該軟件功能可以解決這個問題,設計出一個輸入和輸出波形相同CPLD電路。圖3.4 波形編輯器窗口4.管腳(底層)編輯窗口 (Floorplan Editor該窗口用于將已設計好邏輯電路的輸入輸出節點賦予實際芯片的引腳,通過鼠標的拖拉,方便的定義管腳的功能。管腳(底層)編輯窗口見圖3.5。圖3.5 管腳(底層)編輯窗口 5.自動錯誤定位在編譯源文件的過程中,若源文件有錯誤,Max+Plus2軟件可以自動指出錯誤類型和錯誤所在的位置。6.邏輯綜合與適配該軟件在編譯過程中,通過邏輯綜合 (Logic Synthesizer和適配(Fit
43、ter 模塊,可以把最簡單的邏輯表達式自動的吻合在合適的器件中。7.設計規則檢查選取CompileProcessingDesign Doctor菜單,將調出規則檢查醫生,該醫生可以按照三種規則中的一個規則檢查各個設計文件,以保證設計的可靠性。一旦選擇該菜單,在編譯窗口將顯示出醫生,用鼠標點擊醫生,該醫生可以告訴你程序文件的健康情況。見圖3.6。 圖3.6 規則檢測醫生8.多器件劃分 (Partitioner如果設計不能完全裝入一個器件,編譯器中的多器件劃分模塊,可自動的將一個設計分成幾個部分并分別裝入幾個器件中,并保證器件之間的連線最少。9.編程文件的產生編譯器中的裝配程序(Assembler
44、將編譯好的程序創建一個或多個編程目標文件:EPROM配置文件(*.POF)例如,MAX7000系列SRAM文件(*.SCF)例如,FLEX8000系列的配置芯片EPROMJEDEC文件(*.JED十六進制文件(*.HEX文本文件(*.TTF串行BIT流文件(*.SBF10.仿真當設計文件被編譯好,并在波形編輯器中將輸入波形編輯完畢后,就可以進行行為仿真了,通過仿真可以檢驗設計的邏輯關系是否準確.11.分析時間(Analyze Timing該功能可以分析各個信號到輸出端的時間延遲,可以給出延遲矩陣和最高工作頻率.見圖3.7和圖3.8。 圖3.7 延遲矩陣圖3.8 最高工作頻率12.器件編程當設計
45、全部完成后,就可以將形成的目標文件下載到芯片中,實際驗證設計的準確性.3.4 Max+plus設計過程1.設計流程使用Max+plus軟件設計流程由以下幾部分組成。如圖3.9所示。1.設計輸入:可以采用原理圖輸入、HDL語言描述、EDIF網表輸入及波形輸入等幾種方式。2.編譯:先根據設計要求設定編譯參數和編譯策略,如器件的選擇、邏輯綜合方式的選擇等。然后根據設定的參數和策略對設計項目進行網表提取、邏輯綜合和器件適配,并產生報告文件、延時信息文件及編程文件,供分析仿真和編程使用。3.仿真:仿真包括功能仿真、時序仿真和定時分析,可以利用軟件的仿真功能來驗證設計項目的邏輯功能是否正確。圖3.9 開發
46、流程圖4.編程與驗證:用經過仿真確認后的編程文件通過編程器(Programmer)將設計下載到實際芯片中,最后測試芯片在系統中的實際運行性能。在設計過程中,如果出現錯誤,則需重新回到設計輸入階段,改正錯誤或調整電路后重復上述過程。圖3.10是Max+plus編譯設計主控界面,它顯示了Max+plus自動設計的各主要處理環節和設計流程,包括設計輸入編輯、編譯網表提取、數據庫建立、邏輯綜合、邏輯分割、適配、延時網表提取、編程文件匯編(裝配)以及編程下載9個步驟。圖3.10 編譯主控界面2.設計步驟1)輸入項目文件名(File/Project/Name2)輸入源文件(圖形、VHDL、AHDL、Ver
47、log和波形輸入方式(Max+plus/graphic Editor;Max+plus/Text Editor;Max+plus/Waveform Editor3)指定CPLD型號(Assign/Device4)設置管腳、下載方式和邏輯綜合的方式(Assign/Global Project Device Option,Assign/Global Logic Synthesis5)保存并檢查源文件(File/project/Save & Check6)指定管腳(Max+plus/Floorplan Editor7)保存和編譯源文件(File/project/Save & Comp
48、ile8)生成波形文件(Max+plus/Waveform Editor9)仿真(Max+plus/Simulator10)下載配置(Max+plus/Programmer第四章 地鐵售票系統的設計與實現4.1 課題要求功能描述:用于模仿地鐵售票的自動售票,完成地鐵售票的核心控制功能。功能要求:售票機有兩個進幣孔,一個是輸入硬幣,一個是輸入紙幣,硬幣的識別范圍是5角和1元的硬幣,紙幣的識別范圍是1元、2元,5元,10元。乘客可以連續多次投入錢幣。乘客可以選擇的種類為2元和4元,乘客一次只能選擇一個出站口。購買車票時,乘客先選擇出站名,然后選擇所需的票數,再進行投幣,投入的錢幣未達到所需金額時,
49、顯示信號,提醒錢不夠,需要繼續投入錢幣,如果投入的錢幣達到所需金額時,售票機自動出票,并找出余額,本次交易結束,等待下一次的交易。在投幣期間,乘客可以按取消鍵取消本次操作,錢幣自動退出。4.2設計分析經過分析, 本地鐵自動售票系統的設計需要實現以下幾項主要功能: 站點選擇, 票數選擇, 投幣處理, 出票及余額找零.本系統可以采用模塊化設計和有限狀態機的設計方案來實現。 采用模塊化設計方法即從整個系統的功能出發, 將系統的整體逐步分解為若干個子系統和模塊,然后用VHDL語言對各個模塊進行編程,最后形成頂層文件,在MAX+PLUS環境下進行編譯與仿真,檢查所編程序是否運行正確。如果出現錯誤,需要進
50、行修改,直到完全通過為止。采用模塊化設計的優點在于:對設計的描述從上到下逐步由粗略到詳細,符合常規的邏輯思維習慣。便于由多個設計者同時進行設計從而加速整個項目的開發進度;每個子模塊都能夠靈活使用綜合和實現工具獨立進行優化,從而達到更好的優化結果;調試、更改某個子模塊時,不會影響其他模塊的實現結果,保證了整個設計的穩定性與可靠性。 有限狀態機(Finite State Machine,簡稱FSM)是指輸出向量不僅依賴于當前輸入向量,也依賴于過去輸入向量序列的電路.一個有限狀態機電路由寄存器邏輯(時序邏輯和組合邏輯組成. 有限狀態機是數字邏輯電路以及數字系統的重要組成部分,尤其應用于數字系統核心部
51、件的設計,以實現高效率高可靠性的邏輯控制。一般有限狀態機的VHDL組成 :說明部分:主要是設計者使用TYPE語句定義新的數據類型,如: TYPE states IS (st0, st1, st2, st3, st4, st5; SIGNAL present_state, next_state: states;主控時序邏輯部分:任務是負責狀態機運轉和在外部時鐘驅動下實現內部狀態轉換的進程。時序進程的實質是一組觸發器,因此,該進程中往往也包括一些清零或置位的輸入控制信號,如Reset信號。 主控組合邏輯部分:任務是根據狀態機外部輸入的狀態控制信號(包括來自外部的和狀態機內部的非進程的信號)和當前的
52、狀態值current_state來確定下一狀態next_state的取值內容,以及對外部或對內部其他進程輸出控制信號的內容。 輔助邏輯部分:輔助邏輯部分主要是用于配合狀態機的主控組合邏輯和主控時序邏輯進行工作,以完善和提高系統的性能。無論與基于VHDL的其它設計方案相比,還是與可完成相似功能的CPU相比,狀態機都有其難以逾越的優越性,它主要表現在以下幾方面: 由于狀態機的結構模式相對簡單,設計方案相對固定,特別是可以定義符號化枚舉類型的狀態,這一切都為VHDL綜合器盡可能發揮其強大的優化功能提供了有利條件。而且,性能良好的綜合器都具備許多可控或不可控的專門用于優化狀態機的功能。 狀態機容易構成
53、性能良好的同步時序邏輯模塊,這對于對付大規模邏輯電路設計中令人深感棘手的競爭冒險現象無疑是一個上佳的選擇,加之綜合器對狀態機的特有的優化功能,使的狀態機解決方案的優越性更為突出。 狀態機的VHDL設計程序層次分明,結構清晰,易讀易懂,易排錯和修改。 在高速運算和控制方面,狀態機更有其巨大的優勢。由于在VHDL中,一個狀態機可以由多個進程構成,一個結構體中可以包含多個狀態機,而一個單獨的狀態機(或多個并行運行的狀態機)以順序方式的所能完成的運算和控制方面的工作與一個CPU類似。 就運行速度而言,狀態機狀態變換周期只有一個時鐘周期,而且,由于在每一狀態中,狀態機可以完成許多并行的運算和控制操作,所
54、以,一個完整的控制程序,即使由多個并行的狀態機構成,其狀態數也是十分有限的。因此有理由認為,由狀態機構成的硬件系統比CPU所能完成同樣功能的軟件系統的工作速度要高出兩個數量級。 就可靠性而言,狀態機的優勢也是十分明顯的。首先是由于狀態機的設計中能使用各種無懈可擊的容錯技術;其次是當狀態機進入非法狀態并從中跳出所耗的時間十分短暫,通常只有2個時鐘周期,約數十個ns,尚不足以對系統的運行構成損害.應用VHDL 設計狀態機的具體步驟如下:(1)根據系統要求確定狀態數量、狀態轉移的條件和各狀態輸出信號的賦值,并畫出狀態轉移圖;(2)按照狀態轉移圖編寫狀態機的VHDL 設計程序;(3)利用EDA 工具對
55、狀態機的功能進行仿真驗證。經過綜合比較,決定采用狀態機來實現本系統的設計,這樣不僅思路很清楚而且可讀性也非常強. 利用狀態機實現售票功能,僅需要一個模塊,避免了考慮各模塊相連時的控制問題因此需要首先把整個系統的所有狀態都給羅列出來,然后實現每個狀態的內容,最后再利用一些變量將各個狀態連接起來,實現整個系統的基本功能.4.3狀態機設計根據以上的分析,地鐵售票系統可以分為以下五個狀態:(1)selstation:選站狀態(2)selticket: 選票狀態(3)inputcoin: 投幣狀態(4)ticketout: 出票狀態(5)givechange: 找零狀態而且系統每個狀態完成以下功能:等待
56、,選站狀態:在該狀態用戶完成選站功能,選站完成后,tp不為零,自動進入選票狀態。當無人使用時,系統也停留在該狀態,等待下一個用戶使用。選票狀態:在該狀態用戶完成選票功能,選票完成后,tmoney不為零,自動進入投幣狀態。按cancelkey鍵可取消操作,系統回到等待、選站狀態。投幣狀態:在該狀態用戶可投幣,可多次投錢,可同時投硬幣和紙幣,但不可同時投一個以上硬幣或一張以上紙幣。用戶投幣后,在該狀態系統內部完成計算投幣總額的功能,并將計算結果跟所需錢數比較,若錢不夠,回到投幣狀態,也可按cancelkey鍵將錢退出;若錢正好投夠,進入出票狀態.出票結束后, 若錢有多余,則自動進入找錢狀態。 出票
57、狀態:在該狀態完成出票功能,票每周期出一張,直到出夠為止。票全部出完以后,自動進入出錢狀態。 找零狀態:在該狀態完成出幣功能,若余額不為零,繼續在此狀態出幣,若余額已為零,系統回到等待、選站狀態。以上所有功能按時鐘周期進行.圖4.1 狀態轉移圖給出tp,tmoney,pmoney,num,en幾個變量,控制狀態間的轉移。根據tp判斷是否完成選站,根據tmoney判斷是否完成選票,根據pmoney判斷投幣是否足夠,根據num判斷出票是否足夠,根據en判斷找錢是否結束. 設計中輸入有clk, reset,station,tn,lettuce,coin ,cancelkey.其中clk是時鐘周期信號
58、, reset為系統復位信號,station是乘客所選的出站號,程序中一共設置了16個站,對應的票價為2元和4元.0代表本站,1-10站票價為2元,11-15站票價為4元.而tn表示乘客所選的票數,為方便設計,乘客一次購車票數限制在3張以內. Lettuce表示乘客投入的紙幣, Coin表示乘客投的硬幣, cancelkey是乘客在選票和投幣期間用來取消操作的.設計中輸出有Tout,Mout,MoneyInputAlarm,State.其中Tout表示出票, 周期數即是出票數, Mout表示找出的零錢, 若所投錢幣總額恰好為車票總額, 則Mout一直為0,MoneyInputAlarm表示所投金額不足時發出的警報,當繼續投幣至足額時MoneyInputAlarm會自動恢復為0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《抱抱》課件小班社會活動
- 三卷有哪些科目考試題及答案
- 保健食品證考試題及答案
- vb高中基礎會考試題及答案
- 2025年馬鞍山學院圖書館招聘考試筆試試題(含答案)
- 2025年城市公共交通管理考試試卷及答案
- 三年級語文下學期全冊教學設計
- 汽修廠客戶資料保密與訪問限制制度
- 環氧乙烷滅菌安全生產培訓方案
- 汽修廠來訪客戶登記與陪同管理制度
- 2025年濟南綜保控股集團有限公司公開招聘(22名)筆試備考試題參考答案詳解
- 機加工工藝培訓
- 2025年內蒙古自治區中考數學真題試卷(含答案)
- CT增強掃描造影劑外滲的預防與處理
- 深靜脈置管的維護與護理
- Unit 2 Home Sweet Home 第6課時(Project Reading Plus) 2025-2026學年人教版英語八年級下冊
- 孤獨癥業務管理制度
- xx公司獎金管理制度
- 勞務服務購買協議書范本
- 2025-2030年中國生物醫學材料行業市場深度分析及發展前景與投資研究報告
- 2025年小學語文一年級下冊無紙筆測試題(小學一年級游園樂考無紙化檢測)
評論
0/150
提交評論