基于FPGA的病床呼叫系統(tǒng)設計_第1頁
基于FPGA的病床呼叫系統(tǒng)設計_第2頁
基于FPGA的病床呼叫系統(tǒng)設計_第3頁
基于FPGA的病床呼叫系統(tǒng)設計_第4頁
基于FPGA的病床呼叫系統(tǒng)設計_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、摘 要病床呼叫系統(tǒng)是現(xiàn)在國內(nèi)醫(yī)院中需求很高的一種應用電子設備,具有相當大的社會意義和重要的實用價值。所使用的病床呼叫系統(tǒng)既要考慮到醫(yī)院的整體環(huán)境,又要有很好的實用性以及裝飾性。它為病人和醫(yī)護人員之間搭建起一個信息溝通的快速通道,使病房病人在緊要時可得到及時的治療。 本文論述了一種病床呼叫系統(tǒng)的設計方案和實現(xiàn)方法。系統(tǒng)使用VHDL語言,采用目前比較流行的FPGA來完成病房患者呼叫器與護士所在護士站主控之間的通信。文中給出了該系統(tǒng)的軟件設計與仿真結(jié)果。本系統(tǒng)底層模塊采用文本設計輸入方法,編譯,仿真,生成相應的模塊元器件;頂層模塊采用原理圖設計輸入方法,將底層模塊元器件結(jié)合簡單門電路連線而成;最后對

2、系統(tǒng)進行了整體仿真測試。結(jié)果表明,系統(tǒng)各功能模塊工作狀態(tài)良好,整個系統(tǒng)設計達到了預期的目的。 本系統(tǒng)具有結(jié)構(gòu)簡單,程序調(diào)試容易,可靠性高,功耗低,安裝方便等特點,具有很強的實用價值。 關鍵詞:病床呼叫;VHDL;FPGA;底層模塊 AbstractElectronic device that widely used in many hospitals for the system of hospital bed calling,become more and more popular and valuable.The system should consider both valuable a

3、nd decorative as well as the whole design of the hospital requirements. It is building an information channel that could connect with both patients and health care workers, so it may be very beneficial for patients to have the effective treatments in a short time. This paper discussed the concrete d

4、esign and the method of realization on the system of hospital bed calling.In the system designed,FPGA that is very popular nowadays using VHDL was adopted to help the patients in hospital bed communicate with nurses in the nurses station.The software design and the simulation results of the system a

5、re presented in this thesis. The button modules of the system was designed by the method of text design input, compiled,simulated and then generated the corresponding component of the module;The method of schematic diagram design input was adopted to design the top module,in which the components of

6、the button modules combined and linked with some simple gates;Finally,the system was tested as a while. On a summary of all the work,all of the modules worked well and the whole system attained the desired goals.The system is charactered by simple structure, easy program debugging,high reliability,

7、low power consumption and easy installation, which make it possess practical value. Keywords:hospital bed calling; FPGA; VHDL;button modules目 錄VII1 緒 論11.1 課題背景和意義11.2 國內(nèi)外研究現(xiàn)狀11.3 課題主要內(nèi)容21.4 論文的章節(jié)安排22 開發(fā)工具介紹42.1 開發(fā)語言VHDL42.1.1 簡介42.1.2 特點42.1.3 優(yōu)勢52.2 可編程邏輯器件FPGA62.2.1 背景62.2.2 技術特點62.2.3 設計流程72.2.4

8、 產(chǎn)品比較92.2.5 工作原理92.3 開發(fā)平臺Quartus II102.3.1 Quartus II軟件簡介102.3.2 Quartus II設計輸入102.3.3 Quartus II設計編譯112.3.4 Quartus II設計仿真122.3.5 Quartus II器件編程133 系統(tǒng)總體方案設計153.1 功能需求分析153.2 總體設計方案153.3 系統(tǒng)設計步驟164 底層模塊的詳細設計174.1 按鍵矩陣擴展模塊174.1.1 設計要求174.1.2 設計原理174.1.3 設計方法174.1.4 仿真結(jié)果234.1.5 電路符號244.2 定時模塊244.2.1 設計

9、要求244.2.2 設計原理244.2.3 設計方法254.2.4 仿真結(jié)果274.2.5 電路符號274.3 二進制編碼轉(zhuǎn)BCD碼模塊284.3.1 設計要求284.3.2 設計原理284.3.3 設計方法284.3.4 仿真結(jié)果304.3.5 電路符號304.4 數(shù)碼管動態(tài)掃描模塊314.4.1 設計要求314.4.2 設計原理314.4.3 設計方法314.4.4 仿真結(jié)果324.4.5 電路符號344.5 顯示段碼轉(zhuǎn)換模塊344.5.1 設計要求344.5.2 設計原理344.5.3 設計方法344.5.4 仿真結(jié)果364.5.5 電路符號364.6 二分頻模塊364.6.1 設計要求

10、364.6.2 設計原理364.6.3 設計方法374.6.4 仿真結(jié)果384.6.5 電路符號385 頂層電路的綜合設計395.1 設計思路395.2 設計方法395.3 仿真結(jié)果41結(jié) 論44致 謝46參考文獻47附錄A 英文原文48附錄B 漢語翻譯551 緒 論1.1 課題背景和意義現(xiàn)代社會的重要標志之一就是電子信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越好,復雜程度越來越高,更新的步伐越來越快。支撐電子信息產(chǎn)品高速發(fā)展的基礎就是微電子制造工藝水平的提高和電子產(chǎn)品設計開發(fā)技術的發(fā)展。前者的代表是微細加工技術,而后者以電子設計自動化(electronic design a

11、utomatic, EDA)技術為代表。許多EDA開發(fā)工具都支持的硬件描述語言已成為滿足這些滿足需求的關鍵技術。硬件描述語言發(fā)展至今已有幾十年歷史,并成功地應用于硬件系統(tǒng)的設計、仿真、綜合和驗證等各個方面,特別是VHDL語言適用于可編程邏輯器件的設計,已成為設計人員首選的開發(fā)工具。正常情況下,病房和護士站之間有一定距離,病人數(shù)量龐大,醫(yī)務人員數(shù)量有限,無法達到一對一的監(jiān)護要求,使得監(jiān)護工作很難完成,且病人出現(xiàn)問題時,醫(yī)務人員在第一時間內(nèi)無法獲得救助信息,這給治療帶來一定困難。面對患者越來越多的更加具有個性化的要求,為了減少醫(yī)療事故所帶來的壓力,以及為了更好適應現(xiàn)代化的步伐,達到服務的

12、智能化,醫(yī)院需要引入病床呼叫系統(tǒng),升級現(xiàn)有設備。病床呼叫系統(tǒng)是傳送病床信息的重要手段,病床呼叫系統(tǒng)可將病人的請求快遞傳送給值班醫(yī)生和護士。呼叫系統(tǒng)的優(yōu)劣直接關系到病人安危,歷來受到各大醫(yī)院的普遍重視。它要求及時、可靠、準確、簡便可行、利于推廣。基于FPGA的具有呼叫、語音提示、顯示等功能的病床呼叫系統(tǒng),基本滿足了醫(yī)院的病房護理要求1。本課題基于VHDL的醫(yī)院病床呼叫系統(tǒng)設計,系統(tǒng)維護簡單,工作應用簡單。因此,本課題是非常有意義的。1.2 國內(nèi)外研究現(xiàn)狀隨著全球老齡化進程的不斷加快,全球生存環(huán)境的嚴重惡化,以及人類對健康關注的增加,醫(yī)療行業(yè)正快速膨脹。由于醫(yī)療行業(yè)的客戶是患者,醫(yī)療行業(yè)比其他任意

13、一個行業(yè)都需要提高客戶滿意度?;颊呦M玫阶罡哔|(zhì)量的護理和服務,因為他們的生命就掌握在服務提供者的手中,所以他們所提出要求的苛刻程度超過其他任何客戶。怎么樣更好的滿足患者的要求,提升患者的滿意度,是從事醫(yī)療行業(yè)的所有管理人員應該積極思考的問題。病床呼叫系統(tǒng)已經(jīng)成為醫(yī)院提高自身醫(yī)護服務質(zhì)量,提高員工的工作效率,減少醫(yī)療事故發(fā)生的一種非常重要的基礎設施。從早期的人工呼叫發(fā)展到今天的電子按鈴呼叫系統(tǒng),病床呼叫系統(tǒng)的發(fā)展大概經(jīng)歷了3個階段,即傳統(tǒng)意義上的口頭呼叫、搖鈴呼叫和電子按鈴呼叫3個階段。病床呼叫系統(tǒng)在國外發(fā)展比較迅速,目前已經(jīng)出現(xiàn)了向著護理系統(tǒng)的智能化和可視化發(fā)展,但我們國家的病床呼叫系統(tǒng)起步

14、則比較晚,在上世紀八十年代還處于人工呼叫或者搖鈴呼叫階段。到上世紀八十年代以后,電子按鈴呼叫才開始在我國各大醫(yī)院得以應用,但是技術含量比較低。目前國內(nèi)的大部分醫(yī)院均處在非常低端的管理模式上,在資源利用上采用人工呼叫,不能做到智能一體化的管理模式,另外由于醫(yī)院采用有線管理,線路盤繞復雜,極易引起火災,存在著很大安全隱患。當病人身體出現(xiàn)不適或者其他方面需要幫助時,通常都是呼叫醫(yī)生,繼而等待治療。在這過程中,不但浪費了病人的寶貴時間,更給醫(yī)院醫(yī)生帶來一定的麻煩。1.3 課題主要內(nèi)容本課題的主要內(nèi)容為設計一個病床呼叫系統(tǒng),實現(xiàn)40位的病床呼叫,同時用數(shù)碼管顯示出病床的編號并伴有指示燈和語音提示。主要運

15、用VHDL語言進行編程和仿真實現(xiàn),使用系統(tǒng)仿真軟件Quartus II完成所有實驗項目的調(diào)試,并得出完整的仿真結(jié)果,然后將調(diào)試完成的程序文件適配到可編程器件FPGA中進行實驗,最終達到本次畢業(yè)設計的結(jié)果。1.4 論文的章節(jié)安排本論文在分析了病床呼叫系統(tǒng)和 EDA技術的國內(nèi)外發(fā)展情況下,給出了基于 FPGA病床呼叫系統(tǒng)的設計,對系統(tǒng)底層設計和頂層設計做了較為詳細的介紹,最后根據(jù)仿真結(jié)果做出了總結(jié)。 全文共分六章,具體安排如下: 第一章,緒論,從宏觀上介紹了課題的背景和選題意義、病床呼叫系統(tǒng)以及 EDA技術的國內(nèi)外發(fā)展現(xiàn)狀,提出了本文的主要內(nèi)容及章節(jié)安排。 第二章,開發(fā)工具介紹,主要介紹開發(fā)語言V

16、HDL、可編程邏輯器件FPGA、開發(fā)平臺Quartus II軟件。 第三章,系統(tǒng)總體方案設計,首先明確系統(tǒng)設計步驟,再次進行系統(tǒng)的功能需求分析,最后給出系統(tǒng)設計步驟。 第四章,底層模塊的詳細設計,根據(jù)功能需求分析的結(jié)果大體明確整個系統(tǒng)需要按鍵矩陣擴展模塊,定時模塊,二進制編碼轉(zhuǎn)BCD碼模塊,數(shù)碼管動態(tài)掃描模塊,顯示段碼轉(zhuǎn)換模塊,二分頻模塊,使用VHDL編寫程序,實現(xiàn)相應的功能,生成元器件符號圖并進行仿真,以檢驗模塊設計結(jié)果。 第五章,頂層電路的綜合設計,將設計好的底層模塊結(jié)合簡單的門電路按照設計要求連線,編譯仿真,若結(jié)果符合要求則將調(diào)試完成的程序文件適配到可編程器件FPGA中進行實驗,完成本次

17、設計。第六章,結(jié)論,本章從系統(tǒng)設計、調(diào)試結(jié)果等方面對課題的研究進行了總結(jié),并對課題中出現(xiàn)的問題作出了分析,并給出相應的解決措施,展望課題相關技術今后的發(fā)展方向。2 開發(fā)工具介紹2.1 開發(fā)語言VHDL2.1.1 簡介VHDL是英文名VHSIC(Very-High-Speed Integrated Circuit)Hardware Description Language的縮寫。VHDL語言是一種用于電路設計的高級語言。它出現(xiàn)于80年代的后期。最初是由美國國防部開發(fā)出來給美軍用來提高設計的可靠性和縮短開發(fā)周期的一種使用范圍較小的設計語言。將VHDL翻譯成中文就是超高速集成電路硬件描述語言,主要是

18、應用于數(shù)字電路的設計中。它在中國的應用多數(shù)是使用在FPGA/CPLD/EPLD的設計中。當然,在一些實力較為雄厚的單位,它也被用來設計ASIC。VHDL主要用來描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了擁有很多具有硬件特征的語句之外,VHDL的語言形式、描述的風格和語法是非常類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設計,或稱作設計實體(可以是一個元件,一個電路模塊或者一個系統(tǒng))分成外部(或稱可視部分以及端口)和內(nèi)部(或稱不可視部分),涉及實體的內(nèi)部功能和算法完成部分。在對一個設計實體進行定義外部界面之后,一旦其內(nèi)部開發(fā)完成后,其他的設計應用就可以直接調(diào)用這一實體。這種將設

19、計實體分成內(nèi)外兩部分的概念就是VHDL系統(tǒng)設計基本點2。2.1.2 特點與其他硬件描述語言相比,VHDL具有如下特點。1. 功能強大且設計靈活VHDL擁有功能強大的語言結(jié)構(gòu),可以使用明確而簡潔的源代碼來描述較為復雜的邏輯控制。它具有多層次的設計描述功能,層層細化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機電路的設計,這是其他硬件描述語言所不能比擬的。VHDL還支持各種設計方法,既支持自底向上的設計,又支持自頂向下的設計;既支持模塊化設計,又支持層次化設計。2. 支持廣泛且易于修改由于VHDL已經(jīng)成為IEEE標準所規(guī)范的硬件描述語言,大多數(shù)EDA工幾乎都支持VHDL,這為VH

20、DL的進一步推廣和廣泛應用奠定了基礎。在硬件電路設計過程中,主要的設計文件是用VHDL編寫的源代碼,因為VHDL易讀和結(jié)構(gòu)化,所以易于修改設計。3. 強大的系統(tǒng)硬件描述能力VHDL具有多層次設計的描述功能,不但可以描述系統(tǒng)級電路,而且可以描述門級電路。而描述既可以采用結(jié)構(gòu)描述、寄存器傳輸描述或行為描述,又可以采用三者相混合的混合級描述。另外,VHDL支持慣性延遲以及傳輸延遲,還可以準確地建立起硬件電路模型。VHDL支持預定義的,自定義的數(shù)據(jù)類型,給硬件描述帶來很大的自由度,使設計開發(fā)人員能夠方便創(chuàng)建較高層次的系統(tǒng)模型。4. 獨立于器件的設計且與工藝無關設計開發(fā)人員用VHDL進行設計開發(fā)時,不必

21、首先考慮選擇需要完成設計的器件,就可以集中精力以進行設計的優(yōu)化。當設計描述的工作完成后,可以使用多種不同的器件結(jié)構(gòu)實現(xiàn)其功能。5. 很強的移植能力VHDL是一種標準化的硬件描述語言,同一個設計描述可以被不同的工具所支持,使得設計描述的移植成為可能。6. 易于共享和復用VHDL采用基于庫(Library)的設計方法,可以建立各種可再次利用的模塊。這些模塊可以預先設計或使用以前設計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設計中進行復用,可以使設計成果在設計人員之間進行交流和共享,減少硬件電路設計。2.1.3 優(yōu)勢與其他的硬件描述語言相比,VHDL具有更為強大的行為描述能力,從而決定了他成

22、為系統(tǒng)設計領域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設計大規(guī)模電子系統(tǒng)的重要保證。VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設計早期就能查驗設計系統(tǒng)的功能可行性,隨時可對設計進行仿真模擬。VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設計的分解和已有設計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。對于用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設計轉(zhuǎn)變成門級網(wǎng)表。VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結(jié)構(gòu),也不必管

23、理最終設計實現(xiàn)的目標器件是什么,而進行獨立的設計。2.2 可編程邏輯器件FPGAFPGA(Field Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎之上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,不但解決了定制電路的不足,而且克服了原有可編程器件門電路數(shù)有限的缺點。2.2.1 背景以硬件描述語言(Verilog或VHDL)所完成的電路設計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC設計驗證的技術主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如

24、AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。系統(tǒng)設計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。FPGA一般來說比ASIC(專用集成電路)的速度要慢,實現(xiàn)同樣的功能比ASIC電路面積要大。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是

25、編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設計的開發(fā)是在普通的FPGA上完成的,然后將設計轉(zhuǎn)移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)。2.2.2 技術特點現(xiàn)場可編程門陣列(FPGA)作為新一代的ASIC器件,它是在可編程陣列邏輯和通用陣列邏輯等器件基礎之上發(fā)展起來的。同PAL、GAL相比來說,F(xiàn)PGA技術的集成度更高、功能更加強大,一片F(xiàn)PGA基本上就可代替上千塊通用IC芯片。FPGA除了具有ASIC所擁有的特點之外,還具有以下這些優(yōu)點。隨著微電子技術的快速發(fā)展,加上

26、芯片制造技術的日益提高,F(xiàn)PGA芯片的片內(nèi)資源也在不斷擴大,就現(xiàn)在的FPGA芯片來說,它們內(nèi)部的邏輯門數(shù)量己達到數(shù)百萬門乃至上千萬。所以,F(xiàn)PGA的功能己經(jīng)變的非常強大,而且應用也越來越廣泛。用戶可以充分的利用FPGA芯片的可編程特性,在 發(fā)項目的過程當中反復地編程、擦除,用戶只需要對軟件部分進行相應的修改就可以實現(xiàn)功能上的不同了。這樣的優(yōu)勢,在電路只做少量修改時表現(xiàn)的尤為明顯。FPGA的廠商會出廠以前對FPGA芯片進行測試,設計人員只需通過相應的軟件、硬件環(huán)境便可完成芯片相關功能的設計。從這個方面來看,在系統(tǒng)開發(fā)中使用FPGA芯片可以減少項目資金的投入,節(jié)約系統(tǒng)的成本,同時縮短了系統(tǒng)的開發(fā)周

27、期。FPGA技術之所以擁有現(xiàn)在這樣大的吸引力,個人認為這里的根本原因在于FPGA不僅僅實現(xiàn)了系統(tǒng)小型化、低功耗、高可靠性等構(gòu)想,而且它的開發(fā)周期相對來說比較短、而且芯片價格也在不斷下降。所以,可以預見的是FPGA正在越來越多地取代傳統(tǒng)意義上的ASIC,特別是在個性化、小批量的產(chǎn)品市場方面。2.2.3 設計流程FPGA是可編程芯片,因此FPGA的設計方法包括硬件設計和軟件設計兩部分內(nèi)容。硬件包括FPGA芯片、存儲器、輸入輸出接口和其他設備,軟件即相應的VHDL程序和Verilog HDL程序。FPGA設計采用的是自頂而下方法,最初從系統(tǒng)級設計,然后逐步劃分到二級單元,二級單元設計,直到可以直接操

28、作基本邏輯單元或IP核為止,一般來說FPGA的設計流程可以分為如下步驟。1. 功能定義在設計FPGA項目之前,就要對系統(tǒng)功能的定義和模塊進行劃分,另外一點就是要根據(jù)項目的要求,如是否需要使用到鎖相環(huán),是否需要IP核,對器件工作的速度以及它本身的資源、成本等方面進行權衡后,選擇合適的設計方案和性價比較高的器件類型。2. 設計輸入設計輸入有原理圖輸入和硬件描述語言兩種方式,原理圖輸入比較直觀但效率低,不容易維護,不利于模塊構(gòu)造和重用、可移植性差,當芯片結(jié)構(gòu)升級后,所有的原理圖都需要改動。硬件描述語言包括VHDL和VerilogHDL以及SystemC等,硬件描述語言輸入的特點是:設計與芯片工藝無關

29、,可以方便的進行自頂向下設計,輸入效率很高,有利于模塊的劃分與移植,可移植性好,同時具有很強的邏輯描述和仿真功能。3. 功能仿真功能仿真也可以稱之為前仿真。是指在編譯之前對用戶所設計的硬件電路進行邏輯功能驗證,由于沒有延時信息,所以僅僅是對功能的初步檢測。4. 綜合優(yōu)化綜合就是將較高層次的描述轉(zhuǎn)化成較低層次的描述。綜合優(yōu)化根據(jù)目標與要求優(yōu)化所生成的邏輯連接,使層次設計平面化,供FPGA進行布局布線。目前的層次來說,綜合優(yōu)化(Synthesis)是指將設計輸入編譯成由與或非門、RAM、觸發(fā)器等基本邏輯單元組成的邏輯連接網(wǎng)表,而非真正的門級電路。5. 綜合后仿真綜合后仿真是用來檢查綜合結(jié)果是否和原

30、設計一致。在仿真時,把綜合生成的標準延時文件反標注到綜合仿真模型中去,可用來估計門延時對整個系統(tǒng)的影響。但是這一步驟卻不能估計線延時,因此綜合后仿真與布線后實際情況還有一定的差距,并不準確。6. 實現(xiàn)與布局布線實現(xiàn)是將綜合生成的邏輯網(wǎng)表配置到具體的FPGA芯片上。布局布線可以認為是利用工具把邏輯映射到目標器件結(jié)構(gòu)的資源中去,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能鏈接的布線通道進行連線,并產(chǎn)生相應文件(如配置文件與相關報告)。7. 時序仿真時序仿真也稱后仿真,是指將布局布線的延時信息反標注到設計網(wǎng)表中來檢測有無時序違規(guī)(即不滿足時序約束條件或器件固有時序規(guī)則,如建立時間,保持時間等)現(xiàn)象。時

31、序仿真包含的延遲信息最精確,能較好地反映芯片的實際工作情況。8. 板級仿真與驗證板級仿真主要用于高速電路系統(tǒng)的設計當中,對高速電路系統(tǒng)的信號完整性、電磁干擾等性能進行分析,一般都需要借助于第三方工具進行仿真和驗證。9. 芯片編程與調(diào)試芯片編程與調(diào)試是設計的最后一步。芯片編程是抬產(chǎn)生使用的數(shù)據(jù)文件(位數(shù)據(jù)流文件,BitstreamGeneration),然后將編程數(shù)據(jù)配置到FPGA芯片當中去。目前,為了方便用戶進行芯片調(diào)試,F(xiàn)PGA芯片生產(chǎn)商都提供了內(nèi)嵌的在線邏輯分析儀。隨著FPGA廠商降低芯片的成本,F(xiàn)PGA被廣泛應用于,通信,數(shù)字信號處理,工業(yè)控制,航空航天等領域,并取得非常高的可靠性3。2

32、.2.4 產(chǎn)品比較早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設備中扎根。CPLD和FPGA包括了一些相對大數(shù)量的可編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個有點限制性的結(jié)構(gòu)。這個結(jié)構(gòu)由一個或者多個可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄存器組成。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預計的延遲時間和邏輯單元對連接單元高比率的優(yōu)點。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復雜的多。CPLD和FPGA另外一個區(qū)別是大多數(shù)的FPGA含有高層次的

33、內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。因此一個有關的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設計隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些FPGA可以讓設備的一部分重新編輯而其他部分繼續(xù)正常運行。CPLD和FPGA還有一個區(qū)別:CPLD下電之后,原有燒入的邏輯結(jié)構(gòu)不會消失;而FPGA下電之后,再次上電時,需要重新加載FLASH里面的邏輯代碼,需要一定的加載時間。2.2.5 工作原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊I

34、OB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了既可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模

35、塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實現(xiàn)的功能,F(xiàn)PGA允許無限次的編程。2.3 開發(fā)平臺Quartus II2.3.1 Quartus II軟件簡介Quartus II是Altera公司在Max+plus II基礎上推出的新一代功能強大的Windows環(huán)境下FPGA/CPLD的開發(fā)軟件。該開發(fā)軟件是一個完全集成化、易學易用的可編程邏輯設計環(huán)境,可以在多種平臺上運用。它所提供的靈活性和高效性是無可比擬的,其豐富的圖形界面,輔之以完整的、可及時訪問的在線文檔,使初學者能夠輕松掌握和使用Quartus II軟件。Quartus II軟件支持各種HDL設計輸入選項,如VHDL、

36、VerilogHDL和AHDL等,它允許設計人員添加自己認為有價值的宏單元。Quartus II系統(tǒng)的核心編譯器Compiler支持Altera公司的FLEX10K、FLEX6000、MAX9000、Cyclone、Cyclone II、Cyclone III、Stratix等可編程邏輯器件系列,提供了真正與結(jié)構(gòu)無關的可編程邏輯設計環(huán)境。Quartus II的編譯器還提供了強大的邏輯綜合與優(yōu)化功能,使用戶比較容易地將設計集成到器件中。2.3.2 Quartus II設計輸入Quartus II的設計過程主要由設計輸入、設計編譯、設計仿真和器件編程4部分組成。Quartus II軟件的設計輸入方

37、式有多種,主要包括文本設計輸入方式、原理圖設計輸入方式、波形設計輸入方式、EDIF輸入文件方式、圖形設計文件方式和宏功能模塊輸入方式等。設計人員可以根據(jù)自己的實際情況靈活選擇使用。1. 文本設計輸入方式Quartus II軟件支持VHDL、VerilogHDL和AHDL等硬件描述語言。下面介紹Quartus II開發(fā)軟件的文本設計輸入的使用方法。(1)新建設計項目(2)輸入文本文件(3)生成邏輯圖形符號2. 原理圖設計輸入方式(1)建立設計項目(2)建立原理圖文件(3)輸入原理圖符號(4)連線(5)為引腳和總線命名(6)生成邏輯圖形符號3. 混合輸入方式在一個設計項目中,文本和原理圖混合輸入方

38、式對層次化設計是非常有用的。上層文件不但可以通過創(chuàng)建默認符號的方法降為下層文件,而且還可單向調(diào)用下層文件,但是不允許同一層之間的直接或間接調(diào)用。使用混合輸入方式時應注意以下幾點:(1)首先建立文本文件*.vhd或者原理圖文件*.bdf。(2)將它們都生成相應的邏輯圖形符號,作為被調(diào)用的原件。(3)在圖形編輯器中調(diào)入已經(jīng)生成的邏輯圖形符號。(4)按設計邏輯功能要求把各邏輯圖形符號連接起來。2.3.3 Quartus II設計編譯1. 編譯前的設置 在器件編譯前需要對編譯的芯片進行選擇,并需要為其選擇配置器件,同時還需要選擇對器件的編程方式。其詳細操作過程如下:(1)選擇目標芯片依次選擇菜單命令“

39、AssignmentsSetting”,在Category項下選擇Device,默認值為建立新項目工程時選定的目標芯片,用戶如果需要更改可重新選擇目標芯片。此處不做任何修改,即目標芯片為EP2C5T144C8。(2)選擇配置器件和編程方式單擊“Device and Pin Options”按鈕,彈出選擇配置器件和編程方式對話框,單擊General標簽項,默認配置為選中“Auto-testart configuration after error”;單擊Configuration標簽項,選擇配置器件為EPCS1/EPCS4,其配置模式可選擇Active Serial。器件配置和編程方式選擇合適后

40、,單擊“確定”按鈕即可。2. 全程編譯Quartus II編譯一個設計項目時,Compiler在設計文件中讀取信息并產(chǎn)生編譯文件和仿真文件。Quartus II的全編譯過程包括分析綜合、布局布線、分配編譯和時序仿真4個環(huán)節(jié)。在Quartus II7.2中可以依次選擇菜單命令“ProcessingCompiler Tool”。分析綜合:在編譯過程中首先檢查文本輸入文件中有無語法錯誤、原理圖的信號線有無漏接和信號有無多重來源等。如果設計文件存在錯誤,則報告出錯信息并標出錯誤的位置,供設計者修改。如果設計文件不存在錯誤,則繼續(xù)進行綜合。通過綜合完成設計邏輯到器件資源的技術映射。布局布線:布局布線在分

41、析綜合成功完成后才能進行。在布局布線環(huán)節(jié)中,主要完成設計邏輯在器件中的布局和布線、選擇適當?shù)膬?nèi)部互連路徑、引腳分配、邏輯元件分配等操作。分配編譯:成功完成第2個環(huán)節(jié)后,才能進入分配編譯環(huán)節(jié)。在編譯工程中,產(chǎn)生了多種形式的器件編程映像文件。時序分析:成功完成布局布線后,設計編譯還需要進行時序分析。在此環(huán)節(jié)中,計算給定設計與器件上的延時,完成設計分析的時序分析和所有邏輯的性能分析。當完成全編譯后,單擊“Report”按鈕,會彈出編譯結(jié)果概要報告窗口,報告工程文件全編譯的相關信息,如下載目標芯片的型號名稱、占用目標芯片中邏輯單元的數(shù)目和占用芯片的引腳數(shù)目等。注意,在使用Quartus II編譯分層設

42、計項目時,首先要對每一個底層文件進行編譯,然后再對上層文件進行編譯。2.3.4 Quartus II設計仿真設計仿真過程包括功能仿真和時序仿真。功能仿真可以驗證項目的邏輯功能是否正確;時序仿真不僅可以驗證項目的邏輯功能是否正確,還可以測試器件最差情況下的時間關系。在仿真過程中,設計者給仿真器提供輸入向量,以便仿真后產(chǎn)生對應于這些輸入信號的輸出信號。在一定條件下,時序仿真中的仿真結(jié)果與實際的可編程器件的時序關系完全相同。1. 創(chuàng)建波形文件選擇菜單命令“FileNewOther Files”。在彈出的對話框中選擇Vector Waveform File,單擊“OK”按鈕,出現(xiàn)一個無標題的波形編輯窗

43、口。2. 創(chuàng)建輸入輸出向量創(chuàng)建輸入輸出向量的操作步驟如下:依次選擇菜單命令“EditInsertInsert Node or Bus”,或者在向量編程窗口空白位置處(黑粗矩形框內(nèi)空白位置)單擊鼠標右鍵,在右鍵下拉菜單中選擇“InsertInsert Node or Bus”。Insert Node or Bus對話框中提供了被添加Node或Bus的名稱、類型、數(shù)值類型、數(shù)制類型和總線寬度等屬性。單擊“Node Finder”按鈕,彈出Node Finder對話框,在“Filter”欄中選擇“Pins:all”,單擊“List”按鈕,可以發(fā)現(xiàn)在“Node Found”中列出文件中所有的輸入輸出向

44、量??梢酝ㄟ^“>>”和“<<”等按鈕將Node添加到“Selected Nodes”欄中或者從“Selected Nodes”欄中刪除。3. 設置仿真時間根據(jù)設計者的要求來確定仿真時間,系統(tǒng)默認的仿真時間為1微秒。選擇菜單命令“EditEnd Time”,彈出End Time對話框,可在Time中鍵入最終的仿真時間,例如1微秒,單擊“OK”按鈕即可。在End Time對話框中還顯示了信號向量的輸入輸出類型、數(shù)制類型等擴展屬性。4. 設置輸入信號編輯仿真輸入信號為波形時,仿真信號頻率要盡可能與實際信號的工作頻率相同。仿真信號功能按鈕主要分為工具按鈕和數(shù)據(jù)按鈕。如“選擇工具

45、”用于選擇某段波形區(qū)域,“文本工具”用于增加波形的注釋,“縮放工具”用于對波形編輯窗口中的波形進行縮放,“數(shù)據(jù)按鈕”用于為波形設置不同的數(shù)據(jù),便于觀察仿真結(jié)果。5. 波形仿真選擇菜單命令“ProcessingStart Simulation”,或者單擊“Start Simulation”命令按鈕,打開仿真窗口。如果在仿真過程中檢查有錯誤,其錯誤和警告信息將會顯示出來,需要返回修改,重新編譯。2.3.5 Quartus II器件編程1. 引腳設置和下載為了能對器件進行硬件測試,應將其輸入輸出信號鎖定在目標芯片的確定的引腳上,再編譯下載。依次選擇菜單命令“AssignmentAssignment

46、Editor”,彈出配置編輯窗口,在Category欄中選擇Pin。雙擊To欄中的new,在下拉列表中選擇本工程需要鎖定的端口信號名;同樣的方法,雙擊Location欄中的new ,在下拉列表中選擇對應端口信號名的器件引腳號。保存引腳鎖定的信息后,必須再重新編譯一次,才能將引腳鎖定的信息編譯進編程下載文件中。2. 器件編程下載當時序仿真完成后,最后一步就是把編譯生成的.sof文件下載到具體的CPLD/FPGA器件中。首先將下載電纜的一端與電腦的并行口相連,另一端與可編程器件的電路板相連,實現(xiàn)在系統(tǒng)編程。打開編程窗口和配置文件。選擇菜單命令“ToolsProgrammer”,彈出編程器窗口。在m

47、ode欄中有JTAG、Passive Serial、Active Serial和In-Socket Programming4種編程模式,為了直接對CPLD/FPGA進行配置,選擇JTAG編程模式,并在Program/Configure欄下的小方框中打鉤。同時仔細核對下載文件名和文件路徑,如果準確無誤,則單擊左側(cè)的“Add File”按鈕。如果是第一次使用該功能,“Hardware Setup”按鈕后顯示“No Hardware”,需要用戶安裝下砸電纜。單擊“Hardware Setup”按鈕,彈出Hardware Setup對話框,準備安裝下載電纜。在Hardware type下拉列表中選擇B

48、yteBlasterMV or ByteBlaster II,單擊“OK”按鈕。單擊“Start”按鈕進行編程,當進度為100%時,表示編程成功。至此,完成了在Quartus II開發(fā)軟件中設計輸入、設計編譯、設計仿真和設計編程的整個操作過程4。3 系統(tǒng)總體方案設計3.1 功能需求分析本次設計采用可編程邏輯器件FPGA來設計該病床呼叫系統(tǒng),基于以下功能分析,完成整個系統(tǒng)的設計。1. 病區(qū)分析:病區(qū)一般擁有比較多的病床,這里設計成實現(xiàn)40位病床的呼叫;2. 站點分析:可以得到從病區(qū)傳來的呼叫信息,包括報警信息,顯示信息;3. 顯示功能:顯示呼叫的病床號以及報警持續(xù)時間;4. 報警功能:指示燈閃爍

49、,同時伴有語音提示;5. 呼叫功能:每個病床都有一個呼叫按鈕,當病人需要幫助時,按下床頭的呼叫按鈕,站點可以接收到這一呼叫信息。6. 控制功能:整個系統(tǒng)設有一個使能端,作為整個系統(tǒng)的總開關。3.2 總體設計方案整個系統(tǒng)要實現(xiàn)40位病床的呼叫,使用的按鍵數(shù)目比較多。在鍵盤按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接接通,而是通過一個按鍵加以連接,這樣可以增加鍵盤數(shù)量,適合用在按鍵比較多的場合,所以系統(tǒng)有一個按鍵矩陣擴展模塊。每一個病床的報警持續(xù)時間不宜過短,也不宜太長,這里設為10秒,有按鍵按下時,在這10秒內(nèi)其他按鍵按下無效,

50、10秒過后,報警停止,其他按鍵按下有效,因此系統(tǒng)應該有一個定時模塊來實現(xiàn)這一效果。因為要實現(xiàn)顯示病床號這一功能,而病床號最大是40,需要兩個數(shù)碼管分別顯示十位和個位,按鍵矩陣擴展模塊輸出的病床信息是一串二進制碼,無法直接控制數(shù)碼管,應該首先將這串二進制碼拆分成兩個BCD碼,再將這兩個BCD碼和定時時間轉(zhuǎn)化成控制數(shù)碼管的段位碼,因而系統(tǒng)應有二進制編碼轉(zhuǎn)BCD碼模塊和顯示段碼轉(zhuǎn)換模塊。顯示功能要求顯示兩位數(shù)床位號和一位數(shù)定時時間,需要為數(shù)碼管顯示提供位選信號和與位選信號對應的段位BCD碼,還要具備一個數(shù)碼管動態(tài)掃描模塊。系統(tǒng)需要給定時模塊提供基信號,可以使用二分頻模塊來完成。整個系統(tǒng)由以上6個主要

51、模塊和一些簡單的門電路組成。其中按鍵矩陣擴展電路進行動態(tài)掃描操作,當有按鍵按下時定時模塊開始定時,在定時10秒內(nèi)控制矩陣擴展模塊讓其他按鈕按下無效,同時引腳speaker發(fā)出信號產(chǎn)生語音提示,引腳lamp發(fā)出信號通過指示燈閃爍提示;而二進制編碼轉(zhuǎn)換BCD碼模塊、顯示段碼轉(zhuǎn)換模塊等將按下的那個按鍵的二進制編碼依次轉(zhuǎn)換成BCD碼和LED七段碼,并通過數(shù)碼管動態(tài)掃描模塊將轉(zhuǎn)化后的需要顯示的數(shù)據(jù)的七段碼和微信號匹配后送LED數(shù)碼管顯示。3.3 系統(tǒng)設計步驟根據(jù)總體設計方案進行系統(tǒng)的設計,具體設計步驟如下:1. 建立相應的底層模塊文件,編譯2. 測試并仿真所建立的底層模塊3. 測試仿真成功后生成底層模塊

52、對應的模塊電路符號4. 建立頂層文件,將所有的底層模塊電路符號添加進來,并添加所需基本門電路5. 根據(jù)要求連接各個模塊和門電路,完成頂層文件的初步設計6. 編譯并仿真,觀察仿真結(jié)果,作出相應的修改直至符合設計要求4 底層模塊的詳細設計4.1 按鍵矩陣擴展模塊4.1.1 設計要求按鍵矩陣擴展模塊的主要作用是將按鍵擴展為40個按鍵,在時鐘控制下循環(huán)掃描鍵盤,根據(jù)行掃描信號和對應鍵盤響應信號確定鍵盤按鍵位置,并將掃描的行信息和是否按下的信息輸出。4.1.2 設計原理采用5×8矩陣鍵盤作為系統(tǒng)的輸入模塊。對于鍵盤上的每一個鍵的識別一般采取掃描的方法實現(xiàn),用行信號進行掃描時的基本原理和流程如下

53、:當進行行掃描時,掃描信號由行引腳進入鍵盤,以11110、11101、11011、10111、01111的順序每次掃描不同的一行,分別為第一、二、三、四、五行,然后讀取行引腳的電平信號,就可以判斷是哪個按鍵被按下5。4.1.3 設計方法采用文本編輯法利用VHDL語言描述5×8矩陣鍵盤列掃描電路,涉及到的VHDL語法有:IF-ELSE語句、CASE-WHEN語句、進程(PROCESS)語句和信號賦值語句。IF-ELSE語句是最常用的順序語句,其用法和語句格式與普通的計算機高級語言類似,在VHDL語言中,它只在進程中使用,根據(jù)一個或一組條件來選擇某一特定的執(zhí)行通道。 IF 語句中至少應包

54、含一個條件表達式,先判斷條件表達式的結(jié)果是否為真,若為真,則執(zhí)行THEN后面的語句方塊的語句,執(zhí)行完以后就跳轉(zhuǎn)到END IF之后的語句。若條件條件表達式的結(jié)果為假,則執(zhí)行ELSE之后的語句方塊。每一個 IF語句都必須有一個對應的 END IF語句, IF語句可以嵌套使用,即在一個IF語句中可以調(diào)用另一個 IF語句。ELSEIF允許在IF語句中出現(xiàn)多。CASE-WHEN語句屬于順序語句,只能在進程中使用,常用來選擇有明確描述的信號。CASE-WHEN語句的功能與WITH-SELECT語句的功能相似,都是通過選擇信號X的值的變化來選擇相應的操作。但兩者之間不同的是: 1. CASE-WHEN語句必

55、須放在進程中,而WITH-SELECT語句是并行語句必須放在進程外。 2. CASE-WHEN語句根據(jù)選擇信號的值,執(zhí)行不同的語句方塊,完成不同的功能。而WITH-SELECT語句根據(jù)選擇信號的值只能執(zhí)行一個操作。 3. 使用CASE-WHEN語句時,WHEN語句中的信號值必須在選擇信號的取值范圍內(nèi), 如果WHEN語句中列舉的信號值不能覆蓋選擇信號S的所有取值,就用關鍵字 OTHERS表示未能列出的其他可能的取值。使用CASE語句的時候要注意: 1. 至少要有一條分支條件。 2. 分支條件之間不能重疊 。3. 分支條件要覆蓋完全,如果不能完全列出,則要使用OTHERS關鍵字。 進程語句是在結(jié)構(gòu)

56、體中用來描述特定電路功能的程序模塊。進程語句的內(nèi)部主要是由一組順序語句組成的。進程中的語句具有順序處理和并行執(zhí)行的特點。在一個結(jié)構(gòu)體中可以包含多個進程語句,多個進程語句之間的是并行同時執(zhí)行的,所以并行語句本身屬于并行語句。進程語句即可以用來描述組合邏輯電路,也可以描述時序邏輯電路。每個進程語句結(jié)構(gòu)都可以取一個進程名稱,但進程語句的名稱是可以選用的。進程語句從PROCESS開始至END PROCESS結(jié)束。進程中的敏感信號表(sensitivity list)只能是進程中使用的一些信號,而不能是進程中的變量。當敏感信號表中的某個信號的值發(fā)生變化時,立即啟動進程語句,將進程中的順序語句按順序循環(huán)執(zhí)

57、行,直到敏感信號表中的信號值穩(wěn)定不變?yōu)橹?。也可以用WAIT語句來啟動進程。在進程說明部分能定義常數(shù)、變量和子程序等,但不能在進程內(nèi)部定義信號,信號只能在結(jié)構(gòu)體說明部分定義。 在進程中的語句是順序語句,包括信號賦值語句、變量賦值語句、IF語句、CASE語句和LOOP語句等。 一個結(jié)構(gòu)體可以包含多個進程,他們之間是并行執(zhí)行的,但是進程結(jié)構(gòu)中的語句是順序執(zhí)行的。進程間通過信號來實現(xiàn)通信,進程信號的賦值語句是順序執(zhí)行的,但是賦值是最后并行執(zhí)行的。在對信號進行賦值時,表達式的數(shù)據(jù)對象可以是常數(shù)、變量和信號,但是要求表達式的數(shù)據(jù)類型必須與信號定義語句中的數(shù)據(jù)類型一致。在結(jié)構(gòu)體中信號的賦值可以在進程中也可以在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論