【正文】
_down_5 or call_down_6) down_all={call_down_6, call_down_5, call_down_4, call_down_3, call_down_2, 139。//清零,以備下次計數 //display which floor the elevator is.... display_decode h1(cp_50M,PosOut,out,over_alarm)。//只有當前樓層之下的??空埱?,下一狀態(tài)轉下降 end else if((up_allamp。pos))//??炕蛏仙埱笾杏挟斍皹菍拥恼埱蠓? NextState=UPSTOP。pos)amp。pos)) NextState=DOWNSTOP。(request_allamp。(request_allamp。(request_allamp。amp。amp。amp。FLOOR2)posamp。FLOOR4)posamp。FLOOR6)posamp。 else if((up_allamp。//???時鐘周期后開門 end DOWNSTOP: begin NextState=OPENDOOR。amp。pos)||(down_allamp。amp。amp。amp。FLOOR2)posamp。FLOOR4)posamp。FLOOR6)posamp。(down_allamp。(down_allamp。(down_allamp。FLOOR5))||((request_allamp。FLOOR3))||((request_allamp。FLOOR1))||((request_allamp。 else NextState=WAIT。 else if((request_allpos)||(up_allpos))//上升或??空埱笾杏挟斍皹菍又系恼埱蠓? NextState=UP。 else NextState=WAIT。amp。(up_allamp。(up_allamp。(up_allamp。FLOOR5))||((down_allamp。FLOOR3))||((down_allamp。FLOOR1))||((down_allamp。FLOOR6)posamp。FLOOR4)posamp。FLOOR2)posamp。//無任何請求,轉為WAIT模式 end //DOWN的狀態(tài)轉移請參見UP的狀態(tài)轉移 DOWN: begin if((request_allamp。pos)||(posFLOOR6)) //其實這樣做意義不大,只是使上下標志提前變化 NextState=UPSTOP。//無任何請求,繼續(xù)處于WAIT模式 end UP: begin if((request_allamp。//有當前樓層請求,則下一狀態(tài)轉開門 else if(request_allpos)//有當前樓層之上的??空埱蠓瘢▋?yōu)先向上的請求) NextState=UP。(count5))//or else if(NextState==OPENDOOR) count=count+1。 //將各上升請求信號實時地合并(6樓為頂層,無上升請求,考慮到通用性,將第4位填零) always (call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all={139。 //定義電梯上升,下降和靜止的符號常量 parameter UPFLAG=239。b010000, FLOOR6=639。b0010000, OPENDOOR=739。 reg [6:0] LiftState,NextState。如從WAIT切換到第一個UP時,pos立即加一,而PosOut則要等到第一個UP //即將切換到第二個UP時,才加一。//輸出樓層 output [6:0] LiftState。首先要感謝導師楊小獻老師,雖然我們是在開始畢設時才算真正的認識,但他卻能以一位長輩的風范來容諒我的無知,給我不厭其煩的指導,從論文定題、開發(fā)過程的疑難解決到論文概要、寫作方式以及用詞造句、標點符號,傾注了楊老師大量的心血。這個就不用多解釋了。結論與體會結論:我們設計的智能電梯控制器應該可以實時接受各樓層的上下請求信號及電梯內部的停靠請求,然后根據這些請求實現對電梯正確的控制:除了頂層和底層外,各樓層均設有上下請求開關,頂層和底層分別設有下降和上升請求開關,這一點應該不難理解。中途還遇到了字符型液晶不能更新的問題,不過在同學的幫助下,最終還是解決了。(2)分頻模塊frequence_div:這段分頻器完成對50Mhz的1分頻操作。 // LCD Read/Write Select, 0 = Write, 1 = Readoutput LCD_EN。output ports:output open_enable,stop_enable,up_enable,down_enable,close_enable。b0001000,739。UpDnFlag取值可為239。b000100,639。自90年代初, Verilog、VHDL、AHDL等硬件描述語言的輸入方法在大規(guī)模設計中得到了廣泛應用。設計者可以用自己熟悉的設計工具(如原理圖輸入或硬件描述語言)建立設計,MAX+PLUSII把這些設計轉自動換成最終所需的格式。b00。b1, FALSE=139。 //定義樓層的符號常量 parameterFLOOR1=639。 parameter WAIT=739。always (call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all={139。電梯在上述七個狀態(tài)間的轉移是通過三段式狀態(tài)機來實現的,各狀態(tài)間的轉移大體與生活中的電梯運轉一致,有如下的基本原則:方向為第一優(yōu)先準則,這就是曾老師給我們的技術指標。(6) 電梯的初始位置為一層,處于開門狀態(tài)。通過仿真結果驗證其正確性,并在開發(fā)板上進行硬件測試。其次表現在企業(yè)的規(guī)模效益逐步展現。③建立三資企業(yè),行業(yè)快速發(fā)展階段(自1980年至今),這一階段我國共生產安裝電梯約40萬臺。同時,對電梯操作人員定期考核,讓他們定期參加安全技術學習,扎扎實實地做好電梯維護和保養(yǎng)工作,才能使人們平安長久的使用電梯少,為了讓電梯更好的服務人們,各種電梯新技術不斷地發(fā)展起來。 ?、跅l件:又稱為“事件”。之所以能 做到這一點,是因為機器能跟蹤一個內部狀態(tài),它會在收到事件后進行更新。 Web應用程序由提交的表單和用戶請求的網頁來驅動,它們也可劃歸到上述類 別。在有限狀態(tài)機中,會有有許多變量,例如,狀態(tài) 機有很多與動作(actions)轉換(Mealy機)或狀態(tài)(摩爾機)關聯的動作,多重起始狀態(tài),基于沒有輸入符號的轉換,或者指定符號和狀態(tài)(非定有 限狀態(tài)機)的多個轉換,指派給接收狀態(tài)(識別者)的一個或多個狀態(tài),等等。狀態(tài)機通過響應一系列事件而“運行”。 (4) VHDL 語言的設計描述與器件無關 采用 VHDL 語言描述硬件電路時, 設計人員并不需要首先考慮選擇進行設計的器件。此外 ,VHDL 語言能夠同時支持同步電路、異步電路和隨機電路的設計實現, 這是其他硬件描述語言所不能比擬的。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。當需要修改FPGA功能時,只需換一片EPROM即可。 4)FPGA是ASIC電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。 CPLD和FPGA另外一個區(qū)別是大多數的FPGA含有高層次的內置模塊(比如加法器和乘法器)和內置的記憶體。 CPLD與FPGA的關系 早在1980年代中期,FPGA已經在PLD設備中扎根。在大多數的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。這樣就可以實現各種EDA工具的優(yōu)化組合,并集成在一個易于管理的統(tǒng)一環(huán)境下,實現資源共享。目前EDA技術已在各大公司、企事業(yè)單位和科研教學部門廣泛使用。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數字系統(tǒng)的設計帶來了極大的靈活性。t think by signal and inverted method, so need analysis of true is too many, I also have no confidence. Nevertheless the problem are always to be solved, later I in our bedroom is a classmate of reference books on saw a with VHDL language preparation intelligent elevator controller program, but is not plete, it gives me the greatest inspiration is signal and inverted algorithm, I discovered this way, then my workload is greatly was not only use signal and inverted algorithm outside, still adopted its to the floor for elevator status transfer basis thought, it is really a good method, but I haven39。實現了基本的功能,當時一遇到比較復雜的情況時(比喻同時有幾個人在請求或者是同時有兩個在不同樓層的請求時電梯該如何運行呢,這些特殊情況我在當時一直沒有找到合適和有效的方法去解決)。起初我想到的肯定是有限狀態(tài)機。當時我不僅采用“信號并置的算法”外,還采納了它的“以樓層為電梯的狀態(tài)轉移的依據”的思想,這確實是一個不錯的方法,不過當時我一直沒有任何進展,一是它是用VHDL語言編寫的,而且我對這個語言不是很熟悉所以不是特別理解。t got any progress, I give up this handle a variety of state method, then turned to my original finite state machine method. Use the finite state machine 3sectional methods also spent a lot of time to modify and improve. Realize the basic functions, when a meet more plex situations (parables meanwhile several people in request or is also have two in different floor request? How should the elevator running these special cases I at that time has not find appropriate and effective approach to solve).Abstract KEY WORDS: A signal and buy EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言HDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。(2)采用硬件描述語言進行設計采用硬件描述語言進行電路與系統(tǒng)的描述是當前EDA技術的另一個特征。EDA技術的發(fā)展和推廣應用極大地推動了電子工業(yè)的發(fā)展。 FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復雜的設計,而且消耗更多的電能。 CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結構。一些FPGA可以讓設備的一部分重新編輯而其他部分繼續(xù)正常運行。 FPGA是由存放在片內RAM中的程序來設置其工作狀態(tài)的,因此,工作時需要對片內的RAM進行編程。 VHDL語言及程序概述VHDL 的英文全名是 VeryHighSpeed Integrated Circuit Hardware Description Language,誕生于 1982 年。在設計語言中,