電梯控制器 Verilog語言
《電梯控制器 Verilog語言》由會員分享,可在線閱讀,更多相關(guān)《電梯控制器 Verilog語言(24頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、山東建筑大學(xué)信息與電氣工程學(xué)院學(xué)院課程設(shè)計(jì)說明書 目錄 摘 要 2 正文 3 1設(shè)計(jì)目的及要求 3 2設(shè)計(jì)原理 3 2.1 設(shè)計(jì)實(shí)現(xiàn)原理 3 2.2項(xiàng)目分塊及其實(shí)現(xiàn)方案 5 2.3電梯控制器的流程圖 6 3設(shè)計(jì)內(nèi)容 7 3.1基本狀態(tài)設(shè)計(jì) 7 3.2模塊設(shè)計(jì) 8 3.3波形仿真 9 總結(jié)與致謝 13 參考文獻(xiàn) 14 附錄 15 摘 要 電梯作為垂直方向的交通工具,在高層建筑和公共場所已成為不可或缺的設(shè)備。中國是全球最大的電梯市場,也具有最強(qiáng)的電梯生產(chǎn)能力,但由于缺乏自主知識產(chǎn)權(quán)和核心技術(shù),自主品牌占
2、市場的份額很少。因此要加大對電梯技術(shù)的創(chuàng)新和發(fā)展,提升電梯的性能,就需要引進(jìn)更好的技術(shù),電梯控制器就是很好的裝置,大力開發(fā)控制器是很必要的。 電梯的微機(jī)化控制主要有以下幾種形式:PLC控制;單片機(jī)控制;單板機(jī)控制;單微機(jī)控制;多微機(jī)控制;人工智能控制。本次課程設(shè)計(jì)采用了EDA技術(shù)進(jìn)行操作EDA技術(shù)打破了軟件和硬件間的壁壘,使計(jì)算機(jī)的軟件技術(shù)與硬件實(shí)現(xiàn)、設(shè)計(jì)效率與產(chǎn)品性能合二為一,它代表了電子設(shè)計(jì)技術(shù)和應(yīng)用技術(shù)的發(fā)展方向。 本設(shè)計(jì)采用Verilog HDL語言的編程技術(shù),源程序Altera公司的Quartus II軟件仿真。 關(guān)鍵字:EDA技術(shù); Verilog HDL語言; Q
3、uartus II軟件 正文 1設(shè)計(jì)目的及要求 1、進(jìn)一步鞏固理論知識,培養(yǎng)所學(xué)理論知識的在實(shí)際中的應(yīng)用能力;掌握EDA設(shè)計(jì)的一般方法;熟悉一種EDA軟件,掌握一般EDA系統(tǒng)的調(diào)試方法;利用EDA軟件設(shè)計(jì)一個電子技術(shù)綜合問題,培養(yǎng)Verilog HDL編程、書寫技術(shù)報(bào)告的能力。為以后進(jìn)行工程實(shí)際問題的研究打下設(shè)計(jì)基礎(chǔ)。 2、設(shè)計(jì)一個6層電梯控制器電路,用數(shù)碼管顯示電梯所在樓層號,電梯初始狀態(tài)為第一樓層;每樓層電梯外都有上、下樓請求開關(guān),電梯內(nèi)設(shè)有乘客到達(dá)樓層的請求開關(guān)、電梯所處樓層、上升模式及下降模式的指示;電梯每2秒
4、升降一層,到達(dá)有停站請求的樓層后,經(jīng)4秒電梯門打開,開門指示燈亮,開門4秒后,指示燈滅,關(guān)門,關(guān)門時間3秒,電梯繼續(xù)運(yùn)行??梢酝ㄟ^快速關(guān)門和關(guān)門中斷信號控制;能記憶電梯內(nèi)外的請求信號,當(dāng)電梯處于上升模式時,只響應(yīng)比電梯所在位置高的樓請求信號,直到最后一個上樓請求執(zhí)行完畢,再進(jìn)入下降模式。 2設(shè)計(jì)原理 2.1 設(shè)計(jì)實(shí)現(xiàn)原理 根據(jù)系統(tǒng)設(shè)計(jì)要求,并考慮到系統(tǒng)的可檢驗(yàn)性,整個系統(tǒng)的輸入輸出接口設(shè)計(jì)如圖1所示:系統(tǒng)工作用2Hz基準(zhǔn)時鐘信號CLKIN,樓層上升請求鍵UPIN,樓層下降請求鍵DOWNIN,樓層選擇鍵入鍵ST_CH,提前關(guān)門輸入鍵CLOSE,延遲關(guān)門輸入鍵DELAY,電梯運(yùn)行的開關(guān)鍵R
5、UN_STOP,電梯運(yùn)行或停止指示鍵LAMP,電梯運(yùn)行或等待時間指示鍵RUN_WAIT,電梯所在樓層指示數(shù)碼管ST_OUT,樓層選擇指示數(shù)碼管DIRECT。 DTKZQ CLKIN LAMP UPIN DOWNIN ST_CH[1] RU_WAIT CLOSE ST_OUT DELAY DIRECT RUN_STOP 圖 1. 電梯控制器DTKZQ的輸入輸出接口圖 各輸入端口的功能如下: CLKIN:基準(zhǔn)時鐘信號,為系統(tǒng)提供2H
6、z的時鐘脈沖,上升沿有效; UPIN:電梯上升請求鍵。由用戶向電梯控制器發(fā)出上升請求。高電平有效; DOWNIN:電梯下降請求鍵,由用戶向電梯控制器發(fā)出下降請求。高電平有效; ST_CH[2..0]:樓層選擇鍵入鍵,結(jié)合DIRECT完成樓層選擇的鍵入,高電平有效; CLOSE:提前關(guān)門輸入鍵??蓪?shí)現(xiàn)無等待時間的提前關(guān)門操作,高電平有效; DELAY: 延遲關(guān)門輸入鍵。可實(shí)現(xiàn)有等待時間的延遲關(guān)門操作,高電平有效; RUN_STOP:電梯運(yùn)行或停止開關(guān)鍵。可實(shí)現(xiàn)由管理員控制電梯的運(yùn)行或停止,高電平有效。 一下為輸出端口: LAMP:電梯運(yùn)行或等待指示鍵,指示電梯的運(yùn)行或等待狀況。高
7、電平有效; RUN_WAIT:電梯運(yùn)行或等待時間指示鍵,指示電梯運(yùn)行狀況或等待時間的長短,高電平有效; ST_OUT:電梯所在樓層指示數(shù)碼管,只是電梯當(dāng)前所在的樓層數(shù)。即1~6層,高電平有效; DIRECT:樓層選擇指示數(shù)碼管,指示用戶所要選擇的樓層數(shù),高電平有效。 2.2項(xiàng)目分塊及其實(shí)現(xiàn)方案 電梯的控制狀態(tài)包括運(yùn)行狀態(tài)﹑停止?fàn)顟B(tài)及等待狀態(tài),其中運(yùn)行狀態(tài)又包含向上狀態(tài)和向下狀態(tài)。主要動作有開、關(guān)門,乘客可通過鍵入開、關(guān)門按鍵,呼喚按鍵,指定樓層按鈕等來控制電梯的行與停。 據(jù)此,整個電梯控制器DTLZQ應(yīng)包括如下幾個組成部分:①時序輸出及樓選計(jì)數(shù)器;②電梯服務(wù)請求處理器;③電梯升
8、降控制器;④上升及下降寄存器;⑤電梯次態(tài)生成器。該電梯控制器設(shè)計(jì)的關(guān)鍵是確定上升及下降寄存器的置位與復(fù)位。整個系統(tǒng)的內(nèi)部組成結(jié)構(gòu)圖2所示。 電梯服務(wù)請求處理器 時序輸出及樓選計(jì)數(shù)器(DIR) DRECT CLKIN UOIN DOWNIN ST_CH 電梯升降 控制器 (LIFTOR) DELAY 電梯次態(tài)生成器(LADD) 上升請求寄存器(UR) 下降請求寄存器(DR) CLOSE RUN_STOP LAMP RUN_WAIT ST_OUT 圖2. 電梯控制器的內(nèi)部組成結(jié)構(gòu)圖 時鐘CLK 請 求 信 號 輸 入
9、 模 塊 樓層請求 超 載 超 載 關(guān)門中斷 提前關(guān)門 清楚報(bào)警 控 制 模 塊 輸 出 顯示 模塊 請求信號顯示 運(yùn)行狀態(tài)顯示 所在樓層顯示 門控制信號 超載報(bào)警 圖3. 電梯控制器系統(tǒng)框圖 2.3電梯控制器的流程圖 初始化 外部按鍵 否 請求信號寄存器 是否有請求? 樓層檢測 電梯運(yùn)行 等待 判定電梯運(yùn)行方向 是 目標(biāo)層與本層是否同層? 狀態(tài)寄存器 是 內(nèi)部軟件執(zhí)行機(jī)構(gòu) 否 外
10、部硬件執(zhí)行機(jī)構(gòu) 圖4 總流程圖 是否目標(biāo)層? 否 是 電梯停止 開門 關(guān)門 否 是否停止運(yùn)行? 是 停止 圖5 電梯控制主流程圖 3設(shè)計(jì)內(nèi)容 3.1基本狀態(tài)設(shè)計(jì) 1、采用信號并置處理很多輸入信號的方式: always @(call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all={1'b0, call_
11、up_5, call_up_4, call_up_3, call_up_2, call_up_1}; //將各下降請求信號實(shí)時地合并(1樓為底層,無下降請求,考慮到通用性,將第1位填零) always @(call_down_2 or call_down_3 or call_down_4 or call_down_5 or call_down_6) down_all={call_down_6, call_down_5, call_down_4, call_down_3, call_down_2, 1'b0}; //將各??空埱笮盘枌?shí)時地合
12、并 always @(request_1 or request_2 or request_3 or request_4 or request_5 or request_6) request_all={request_6, request_5, request_4, request_3, request_2, request_1}; 2、通過參數(shù)定義把信號并置的方法和有限狀態(tài)機(jī)聯(lián)系起來 parameter WAIT=7'b0000001, UP=7'b0000010, DOWN=7'b0000100, UPSTOP=7'b0001000, DOWNST
13、OP=7'b0010000, OPENDOOR=7'b0100000, CLOSEDOOR=7'b1000000; //定義樓層的符號常量 parameterFLOOR1=6'b000001,FLOOR2=6'b000010,FLOOR3=6'b000100, FLOOR4=6'b001000, FLOOR5=6'b010000, FLOOR6=6'b100000; parameter TRUE=1'b1, FALSE=1'b0;//定義門打開和門關(guān)閉的符號常量 parameter OPEN=1'b1, CLOSED=1'b0;//定義電梯上升,下降和
14、靜止的符號常量 parameter UPFLAG=2'b01,DNFLAG=2'b10,STATIC=2'b00; 3、采用了七個狀態(tài)實(shí)現(xiàn)了有限狀態(tài)機(jī) WAIT UP UPSTOP DOWN OPENDOOR DOWNSTOP CLOSEDOOR 圖6.狀態(tài)轉(zhuǎn)換圖 黑線:WAIT TO UP TO UPSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT 粉紅線:WAIT TO DOWN TO DOWNSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT
15、 3.2模塊設(shè)計(jì) 1、電梯主控制器模塊elevator_controller: 此段智能電梯控制器由三個重要部分組成的。 (a)信號并置部分,完成對5路向上請求、5路向下請求、6路內(nèi)部請求的信號并置,化繁為簡。 (b)三段式有限狀態(tài)機(jī)部分。在有請求的情況下,電梯控制器還要根據(jù)電梯的當(dāng)前狀態(tài)和當(dāng)前的樓層去判斷電梯的下一步該如何運(yùn)作。 (c)計(jì)數(shù)器部分。完成電梯的開門、關(guān)門的時間管理。 圖7.電梯主控模塊 2、分頻模塊frequence_div: 這段分頻器完成對50Mhz的1分頻操作。采用傳統(tǒng)的“一半就翻轉(zhuǎn)”的計(jì)數(shù)技巧。 圖8.分頻模塊 3、
16、數(shù)碼管譯碼模塊 3.3波形仿真 1、當(dāng)電梯處于初始狀態(tài)時,電梯在高層有向下的請求時: 圖9 2、當(dāng)電梯停在6樓處于等待狀態(tài)時,在1樓和2樓同時有向上的請求時: 圖10 3、當(dāng)電梯停在1樓處于等待狀態(tài)時,在6樓和5樓同時有向下的請求時: 圖11 4、當(dāng)電梯停在6樓時,有在5樓的向下的請求時,電梯應(yīng)該先到五樓,電梯內(nèi)部請求到1樓,如果電梯在下降的過程中,有在2樓的向上的請求時,電梯應(yīng)該先相應(yīng)內(nèi)部請求,然后相應(yīng)外部請求: 圖12 5、電梯的強(qiáng)制運(yùn)行按鈕forbid: 圖13 總結(jié)與致謝 通過本次課程設(shè)計(jì)進(jìn)
17、一步熟悉Quartus II軟件的使用和操作方法,以及硬件實(shí)現(xiàn)時的下載方法與運(yùn)行方法;對Verilog HDL語言的自頂向下設(shè)計(jì)方法有了進(jìn)一步的認(rèn)識,對其中的許多語句也有了新了解,掌握;對自己獨(dú)立思考和解決問題的能力也有了很大的鍛煉。 短暫的課程設(shè)計(jì)就要結(jié)束了,在此,感謝所有在學(xué)習(xí)和生活中給予我關(guān)心和幫助的人們。 首先我要感謝楊紅娟、王濤兩位位老師,本次課程設(shè)計(jì)設(shè)計(jì)的選題、課題調(diào)研與撰寫工作實(shí)在和老師的指導(dǎo)下完成的。和老師淵博的知識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、一絲不茍的工作作風(fēng)、和不厭其煩的精神對我影響至深,使我受益終生,在此我向和老師表示崇高的敬意和衷心的感謝。 其次,在我的課程設(shè)計(jì)期間,同課題
18、的同學(xué)都給予了我熱情的幫助和無私的指導(dǎo),在此向這些同學(xué)們表示衷心的感謝。 最后,向所有曾給予我關(guān)心和幫助的老師和同學(xué)們再次致以最衷心的感謝,向參加報(bào)告評審、答辯的老師表示衷心的感謝和崇高的敬意。 參考文獻(xiàn) [1] 黃仁欣.EDA技術(shù)實(shí)用教程.北京:清華大學(xué)出版社,2006 [2] 潘松,黃繼業(yè).EDA技術(shù)與VHDL.北京:清華大學(xué)出版社,2009 [3] 江國強(qiáng)編著.EDA技術(shù)與應(yīng)用(第三版)..北京:電子工業(yè)出版社,2010 [4] 夏宇聞編著.Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)教程..北京:北京航空航天大學(xué)出版社,2008
19、[5] 周祖成,程曉軍,馬卓釗編著.?dāng)?shù)字電路與系統(tǒng)教學(xué)實(shí)驗(yàn)教程.北京:科學(xué)出版社,2010 [6] 周潤景,蘇良碧.基于Quartus II 的數(shù)字系統(tǒng)Verilog HDL設(shè)計(jì)實(shí)例詳解.北京:電子工業(yè)出版社,2010 [7] (美國)Sanir Palnitkar 譯者:夏宇聞 胡燕祥 刁嵐松.Verilog HDL數(shù)字設(shè)計(jì)與綜合(第2版).北京:電子工業(yè)出版社,2009 [8] 云創(chuàng)工作室.Verilog HDL程序設(shè)計(jì)與實(shí)踐.北京:人民郵電出版社,2009 [9] 劉福奇,劉波.Verilog HDL應(yīng)用程序設(shè)計(jì)實(shí)例精講.北京:電子工業(yè)出版社,2009 [10] 張延偉,楊金巖
20、,葛愛學(xué).verilog hdl程序設(shè)計(jì)實(shí)例詳解.北京:人民郵電出版社,2008 附錄 1、分頻模塊 module frequence_div(cp_50M,cp_1); input cp_50M;//板子提供的最高時鐘 output cp_1;//要求得到的秒脈沖 reg [27:0] counter_1;//計(jì)數(shù)器 reg cp_1;//類型聲明 always@(posedge cp_50M) begin if(counter_1==28'h17D7840)//50M的一半到了,秒脈沖翻轉(zhuǎn)
21、 begin cp_1<=~cp_1;//翻轉(zhuǎn) counter_1<=28'h0000000; end else counter_1<=counter_1+1'b1;//否則加1 end endmodule 2、智能電梯主控制模塊 module elevator_controller(//input ports: cp_50M,clk,reset,forbid, call_up_1, call_up_2, call_
22、up_3, call_up_4, call_up_5, call_down_2, call_down_3, call_down_4, call_down_5,call_down_6, request_1, request_2, request_3, request_4, request_5, request_6, //output ports: out,LiftState,over_alarm,count_out,count ); //output ports:
23、 output [6:0]out;//輸出樓層 output [6:0] LiftState;//輸出電梯狀態(tài) output over_alarm;//出錯 output [6:0]count_out;//計(jì)數(shù)器輸出,便于我控制開關(guān)門的狀態(tài)顯示 output [2:0]count;//計(jì)數(shù)器 //input ports: input cp_50M; input clk,reset,call_up_1,call_up_2,call_up_3,call_up_4,call_up_5,call_down_2,call_down_3,
24、call_down_4,call_down_5,call_down_6,request_1,request_2,request_3,request_4,request_5,request_6; input forbid; //pos與Posout的關(guān)系:當(dāng)前狀態(tài)一改變,pos立即作相應(yīng)改變,而PosOut則是當(dāng)前狀態(tài)在要變到下一狀態(tài)的瞬間 //,將PosOut作相應(yīng)改變。如從WAIT切換到第一個UP時,pos立即加一,而PosOut則要等到第一個UP //即將切換到第二個UP時,才加一。 //這個說的簡單一點(diǎn),就是移位寄存器,便于對電梯狀態(tài)的實(shí)時的控制 wire over
25、_alarm; wire [6:0]out; wire [6:0]count_out; reg [5:0]pos,PosOut; reg [2:0] count;//門開后要持續(xù)5個時鐘周期,用count來計(jì)數(shù) reg DoorFlag; reg [1:0] UpDnFlag; reg [6:0] LiftState,NextState;//分別表示電梯的當(dāng)前狀態(tài)和下一狀態(tài) wire real_clk; //up_all,down_all,request_all分別用來合并向上請求的各信號,向下請求的各信號和??空埱蟮?/p>
26、各信號 //以便判斷電梯在狀態(tài)間如何轉(zhuǎn)移時更簡潔 reg [5:0] up_all,down_all,request_all; //定義電梯7種狀態(tài)的符號常量 parameter WAIT=7'b0000001, UP=7'b0000010, DOWN=7'b0000100, UPSTOP=7'b0001000 , DOWNSTOP=7'b0010000, OPENDOOR=7'b0100000, CLOSEDOOR=7'b1000000; //定義樓層的符號常量 parameter FLOOR1=6'b000001, FLOOR2=6
27、'b000010, FLOOR3=6'b000100, FLOOR4=6'b001000, FLOOR5=6'b010000, FLOOR6=6'b100000; parameter TRUE=1'b1, FALSE=1'b0; //定義門打開和門關(guān)閉的符號常量 parameter OPEN=1'b1, CLOSED=1'b0; //定義電梯上升,下降和靜止的符號常量 parameter UPFLAG=2'b01,DNFLAG=2'b10,STATIC=2'b00; assign real_clk=(clk&(~forbid));
28、//采用屏蔽時鐘的方法來實(shí)現(xiàn)“電梯強(qiáng)制禁止運(yùn)行”。方法雖然違反了“同步電路最好 //沒有時鐘門控”的要求,但是在此只要“負(fù)面影響”不是很大還是可以接受的。 //將各上升請求信號實(shí)時地合并(6樓為頂層,無上升請求,考慮到通用性,將第4位填零) always @(call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all={1'b0, call_up_5, call_up_4, call_up_3, call_up_2, call_up_1}; //將各下降
29、請求信號實(shí)時地合并(1樓為底層,無下降請求,考慮到通用性,將第1位填零) always @(call_down_2 or call_down_3 or call_down_4 or call_down_5 or call_down_6) down_all={call_down_6, call_down_5, call_down_4, call_down_3, call_down_2, 1'b0}; //將各停靠請求信號實(shí)時地合并 always @(request_1 or request_2 or request_3 or request_4 o
30、r request_5 or request_6) request_all={request_6, request_5, request_4, request_3, request_2, request_1}; always @(posedge real_clk or posedge reset) if(reset) count<=0; else if((NextState==OPENDOOR)&&(count<5))//or else if(NextState==OPENDOOR)
31、 count<=count+1;//如果計(jì)數(shù)不到5且下一狀態(tài)為OPENDOOR的話,繼續(xù)計(jì)數(shù) else count<=0;//清零,以備下次計(jì)數(shù) //display which floor the elevator is.... display_decode h1(cp_50M,PosOut,out,over_alarm); display_decode_count h2(cp_50M,count,count_out); // finite state machine in t
32、he style of three segments ,三段式 //1st StateShift always block,sequential state transition,有限狀態(tài)機(jī)第一段 always @(posedge real_clk or posedge reset) if(reset) begin LiftState<=WAIT; end else LiftState<=NextState; //2nd
33、StateShift always block,combinational condition judgement,有限狀態(tài)機(jī)第二段 always @(LiftState or up_all or down_all or request_all or pos or count or UpDnFlag) case(LiftState) WAIT: begin if(request_all>0)//有停靠請求否 begin
34、 if((request_all&pos)>0)//??空埱笾杏挟?dāng)前樓層停靠請求否 NextState=OPENDOOR;//有當(dāng)前樓層請求,則下一狀態(tài)轉(zhuǎn)開門 else if(request_all>pos)//有當(dāng)前樓層之上的??空埱蠓瘢▋?yōu)先向上的請求) NextState=UP;//有則,下一狀態(tài)轉(zhuǎn)上升
35、 else NextState=DOWN;//只有當(dāng)前樓層之下的??空埱螅乱粻顟B(tài)轉(zhuǎn)下降 end else if((up_all&pos)||(down_all&pos))//上下請求中有當(dāng)前樓層請求否 begin NextState=OPENDOOR; end
36、 else if((up_all>pos)||(down_all>pos))//上下請求中有當(dāng)前樓層之上的請求否 NextState=UP; else if(up_all||down_all)//上下請求中有當(dāng)前樓層之下的請求否 NextState=DOWN; else NextState=WAIT;//無任何請求,繼續(xù)處
37、于WAIT模式 end UP: begin if((request_all&pos)||(up_all&pos))//??炕蛏仙埱笾杏挟?dāng)前樓層的請求否 NextState=UPSTOP;//有,下一狀態(tài)轉(zhuǎn)為UPSTOP(??亢笠?s才開門,UPSTOP即為這1s的過渡期) else if((
38、request_all>pos)||(up_all>pos))//??炕蛏仙埱笾杏挟?dāng)前樓層之上的請求否 NextState=UP; else if(down_all>0)//有下降請求否 begin if((down_all>pos)&&((down_all^pos)>pos))//下降請求中有當(dāng)前樓層的請求否 NextState
39、=UP;
else if((down_all&pos)||(pos 40、 else//下降請求中只有當(dāng)前樓層之下的請求
NextState=DOWN;
end
else if(request_all||up_all)//只有當(dāng)前樓層之上的??炕蛏仙埱蠓?
NextState=DOWN;
else
NextState=WAI 41、T;//無任何請求,轉(zhuǎn)為WAIT模式
end
//DOWN的狀態(tài)轉(zhuǎn)移請參見UP的狀態(tài)轉(zhuǎn)移
DOWN:
begin
if((request_all&pos)||(down_all&pos))
NextState=DOWNSTOP;
else if(((request_all&FLOOR1) 42、l&FLOOR2) 43、lse if(((down_all&FLOOR1) 44、extState=DOWN;
else if(up_all>0)
begin
if(((up_all&FLOOR1) 45、os&&(up_all&FLOOR5))||((up_all&FLOOR6) 46、 NextState=UPSTOP;
else
NextState=UP;
end
else if(request_all||down_all)
NextState=UP;
else
47、 NextState=WAIT;
end
UPSTOP:
begin
NextState=OPENDOOR;//???時鐘周期后開門
end
DOWNSTOP:
begin
NextState=OPENDOOR;//停靠1時鐘周期后開門
end
OPENDOOR:
48、 begin
if(count<5)//開門不足5周期,則繼續(xù)轉(zhuǎn)移到開門狀態(tài)
NextState=OPENDOOR;
else
NextState=CLOSEDOOR;//開門5周期后,關(guān)門
end
CLOSEDOOR:
begin
if(UpDnF 49、lag==UPFLAG)//開門關(guān)門前電梯是處于上升狀態(tài)嗎
begin
if((request_all&pos)||(up_all&pos))//上升或停靠請求中有當(dāng)前樓層的請求否,有可能關(guān)門的瞬間又有新的請求
NextState=OPENDOOR;
else if((request_all>pos)||(up_all>pos))//上升或停靠請求中有當(dāng)前樓層之上的請求否 50、
NextState=UP;
else if(down_all>0)//有下降請求否
begin
if((down_all>pos)&&((down_all^pos)>pos))
NextState=UP;//有當(dāng)前樓層之上的下降請求,則下一狀態(tài)轉(zhuǎn)移上升 51、
else if((down_all&pos)>0)//有當(dāng)前樓層的下降請求信號,且更上層無下降請求
NextState=OPENDOOR;
else//只有低于當(dāng)前層的下降請求
NextState=DOWN;
end
52、 else if(request_all||up_all)//上升和??空埱笾杏挟?dāng)前層的請求且只有當(dāng)前層下的請求
NextState=DOWN;
else
NextState=WAIT;//無任何請求,轉(zhuǎn)為WAIT模式
end
//請參考UpDnFlag=UPFLAG的注釋
53、 else if(UpDnFlag==DNFLAG)
begin
if((request_all&pos)||(down_all&pos))
NextState=OPENDOOR;
else if(((request_all&FLOOR1) 54、OR2) 55、 else if(((down_all&FLOOR1) 56、 NextState=DOWN;
else if(up_all>0)
begin
if(((up_all&FLOOR1) 57、(up_all&FLOOR4))||((up_all&FLOOR5) 58、 else
NextState=UP;//
end
else if(request_all||down_all)
NextState=UP;
else
NextSta 59、te=WAIT;//
end
//請參考WAIT模式的注釋
else
begin
if(request_all>0)
begin
if((request_all&pos)>0)
60、 NextState=OPENDOOR;
else if(request_all>pos)
NextState=UP;
else
NextState=DOWN;
end
61、 else if((up_all&pos)||(down_all&pos))
begin
NextState=OPENDOOR;
end
else if((up_all>pos)||(down_all>pos))
NextState=UP;
62、 else if(up_all||down_all)
NextState=DOWN;
else
begin
NextState=WAIT;
end
63、
end
end
default:
NextState=WAIT;
endcase
//3rd StateShift always block,the sequential FSM output,有限狀態(tài)機(jī)第三段
always @(posedge real_clk or pose 64、dge reset)//output
if(reset)
//復(fù)位后初始化當(dāng)前樓層為第一層,門是關(guān)閉的,電梯是靜止的
begin
pos<=FLOOR1;
DoorFlag<=CLOSED;
UpDnFlag<=STATIC;
end
else
begin
PosOut<=pos;//PosOut的輸出慢pos一個時鐘周期
65、
case(NextState)
WAIT:
//狀態(tài)為WAIT時,樓層不變,門是關(guān)閉的,電梯是靜止的,其他模式的情況請大家自己推導(dǎo)
begin
pos<=pos;
DoorFlag<=CLOSED;
UpDnFlag<=STATIC;
end
UP:
66、 begin
pos<=pos<<1;
DoorFlag<=CLOSED;
UpDnFlag<=UPFLAG;
end
DOWN:
begin
pos<=pos>>1;
DoorFlag<=CLOSED;
UpDnFlag<=DNFLAG;
end
UPSTOP:
begin
pos<=pos;
DoorFlag<=CLOSED
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版必修五《林教頭風(fēng)雪山神廟》ppt課件
- 人教版《分?jǐn)?shù)的意義和性質(zhì)》(完美版)課件
- 正比例函數(shù)及性質(zhì)
- 企業(yè)戰(zhàn)略環(huán)境分析
- 前列腺增生3課件
- 煉鐵基礎(chǔ)非高爐煉鐵課件
- 小兒腹瀉小講課分析課件
- 職業(yè)經(jīng)理人的壓力管理課件
- 街道改造PPT方案展示-項(xiàng)目概況案例分析現(xiàn)存建筑質(zhì)量設(shè)計(jì)理念課件
- 2022年北師大版小學(xué)數(shù)學(xué)《小數(shù)目物品平均分》課件
- 作文指導(dǎo)--場面描寫-PPT
- 肺癌診斷和治療的幾個問題
- 一下《王二小》
- 第八章專題八(教育精品)
- 六年級數(shù)學(xué)下冊 正負(fù)數(shù) 2課件 人教新課標(biāo)