【正文】
d11; cc_u=39。; if d1=39。 then d33=39。;opendoor=39。; elsif dd_cc000011 then en_up=39。; elsif dd_cc=000000 then opendoor=39。; elsif q1=3 then door=01;q1=q1+1; else q1=q1+1;door=00; end if; end if; if g1=39。 then door=10;q1=0;q2=q2+1; elsif quick=39。 then alarm=39。(3)quick:電梯接受到提前關(guān)門(mén)信號(hào)quick,電梯跳過(guò)關(guān)門(mén)等待時(shí)間。(5)led_c_d:在電梯接收到c_d3后,賦值樓層編碼為100,表示梯外有人請(qǐng)求下降,電梯運(yùn)行到達(dá)請(qǐng)求發(fā)出的樓層(三樓)后,電梯賦值變?yōu)?00,表示下降請(qǐng)求得到滿足或在待機(jī)。(3)down:在電梯接收到d1后,賦值為1,表示電梯受控制處于下降過(guò)程,當(dāng)電梯運(yùn)行到一樓以后,賦值變?yōu)?。五、程序仿真(一)波形輸入建立1. 新建波形編輯器編譯完全通過(guò)后,新建波形編輯器進(jìn)行設(shè)計(jì)仿真。c_d22amp。139。 then door=10;q1=0;q2=q2+1; elsif quick=39。;down=39。 then if clr=39。139。139。本程序只使用到上述的語(yǔ)言結(jié)構(gòu),相對(duì)簡(jiǎn)易。進(jìn)程語(yǔ)句部分在begin和end process之間,進(jìn)程內(nèi)的所有語(yǔ)句都是按順序一個(gè)接一個(gè)執(zhí)行的。139。本設(shè)計(jì)的寄存器包括:電梯內(nèi)人請(qǐng)求到達(dá)一樓信號(hào)寄存(d11)、電梯內(nèi)人請(qǐng)求到達(dá)二樓信號(hào)寄存(d22)、 電梯內(nèi)人請(qǐng)求到達(dá)三樓信號(hào)寄存(d33)一樓電梯外人上升請(qǐng)求信號(hào)寄存(c_u11)、二樓電梯外人上升請(qǐng)求信號(hào)寄存(c_u22)二樓電梯外人下降請(qǐng)求信號(hào)寄存(c_d22)、三樓電梯外人下降請(qǐng)求信號(hào)寄存(c_d33)分頻信號(hào)(q)關(guān)門(mén)延時(shí)計(jì)數(shù)器(q1)、看門(mén)狗計(jì)數(shù)器(q2)電梯內(nèi)請(qǐng)求信號(hào)寄存器(dd)電梯外上升請(qǐng)求信號(hào)寄存器(cc_u)、電梯外下降請(qǐng)求信號(hào)寄存器(cc_d)電梯請(qǐng)求信號(hào)寄存器(dd_cc)開(kāi)門(mén)使能信號(hào)(opendoor)電梯運(yùn)動(dòng)方向信號(hào)寄存器(updown)預(yù)備上升操作使能(en_up)、預(yù)備下降預(yù)操作使能(en_dw)。如果電梯沒(méi)有接收到請(qǐng)求信號(hào),電梯則返回一樓待機(jī)。其行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。在MAX+plusII平臺(tái)上進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)過(guò)程一般要經(jīng)過(guò)四個(gè)階段:設(shè)計(jì)輸入、項(xiàng)目編譯、項(xiàng)目校驗(yàn)和器件編程。(一)EDA技術(shù)介紹EDA技術(shù)是20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。本設(shè)計(jì)是基于可編程邏輯器件(PLD)技術(shù)中的甚高速集成電路硬件描述語(yǔ)言(VHDL)語(yǔ)言所開(kāi)發(fā)的三層電梯控制程序。在客運(yùn)上,三層電梯雖然涉及樓層不高,應(yīng)用范圍不大,但就特殊而言,可以為一些上下樓層不方便的人們提供相當(dāng)?shù)膸椭HDL語(yǔ)言能夠成為標(biāo)準(zhǔn)化的硬件描述語(yǔ)言并獲得廣泛應(yīng)用,就在于它有以下優(yōu)點(diǎn):,設(shè)計(jì)方式多樣。隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的迅猛發(fā)展,可編程控制器更多地具有了計(jì)算機(jī)的功能,不僅能實(shí)現(xiàn)邏輯控制,還具有了數(shù)據(jù)處理、通信、網(wǎng)絡(luò)等功能。(2)電梯處于各樓層時(shí)的運(yùn)行說(shuō)明處于一樓時(shí),不管是梯內(nèi)梯外,電梯只接收上升的請(qǐng)求信號(hào)。在電梯進(jìn)行完關(guān)門(mén)倒數(shù)計(jì)時(shí)、超重排除以及故障排除后,關(guān)門(mén)使能信號(hào)將促使電梯關(guān)門(mén)進(jìn)入預(yù)操作狀態(tài)。event and clk=39。c_u11; cc_d=c_d33amp。039。 then d22=39。 or c_d22=39。; 有上升請(qǐng)求,則電梯進(jìn)入預(yù)備上升狀態(tài) end if;在上述語(yǔ)句中的“elsif g2=39。039。139。else q=1;alarm=39。 then c_d33=c_d3; end if; dd=d33amp。因?yàn)槭鞘褂肰HDL語(yǔ)言,所以文件后綴名須改成VHD。 截止時(shí)間設(shè)置圖 單位時(shí)間設(shè)置(二)電梯運(yùn)行情況仿真本設(shè)計(jì)的運(yùn)行情況比較復(fù)雜,本文主要介紹以下兩種情況。由于二樓并沒(méi)有請(qǐng)求,所以電梯不作停頓地下降到一樓。電梯接受到deng、c_d3和d3電梯重新進(jìn)入預(yù)備下降狀態(tài),并且c_d3和d3信號(hào)都可以對(duì)q2(q23時(shí))進(jìn)行清零處理。139。039。139。039。139。139。039。039。139。039。139。139。139。039。139。039。139。139。附錄一 三層電梯控制的源程序library ieee;use ;use ;use ;entity dianti is port ( clk : in std_logic; full,deng,quick,clr : in std_logic; c_u1,c_u2: in std_logic; c_d2,c_d3: in std_logic; d1,d2,d3: in std_logic; g1,g2,g3: in std_logic; door : out std_logic_vector(1 downto 0); led : out std_logic_vector(6 downto 0); led_c_u:out std_logic_vector(2 downto 0); led_c_d:out std_logic_vector(2 downto 0); led_d : out std_logic_vector(2 downto 0); wahaha : out std_logic; ud,alarm : out std_logic; up,down : out std_logic ); end dianti;architecture behav of dianti issignal d11,d22,d33:std_logic; signal c_u11,c_u22:std_logic; signal c_d22,c_d33:std_logic; signal q:integer range 0 to 1; signal q1:integer range 0 to 6; signal q2:integer range 0 to 9; signal dd,cc_u,cc_d,dd_cc:std_logic_vector(2 downto 0); signal opendoor:std_logic; signal updown:std_logic; signal en_up,en_dw:std_logic; begin:process(clk)beginif clk39。039。電梯到達(dá)二樓,載客繼續(xù)上升。 對(duì)clk信號(hào)賦值圖在進(jìn)行仿真前,還需對(duì)仿真截止時(shí)間和最小單位時(shí)間進(jìn)行一下調(diào)整。 程序輸入界面輸入完畢后,對(duì)程序進(jìn)行保存。 then c_d22=c_d2; 對(duì)電梯外人下降請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存elsif c_d3=39。139。139。; opendoor=39。; 有下降請(qǐng)求,則電梯進(jìn)入預(yù)備下降狀態(tài) end if; 電梯前一運(yùn)動(dòng)狀態(tài)為下降 elsif d22=39。 or c_u22=39。139。amp。Architectecture和begin之間是結(jié)構(gòu)體說(shuō)明區(qū),詳細(xì)定義了各種信號(hào)端的模式和取值范圍begin和end之間是結(jié)構(gòu)體語(yǔ)句區(qū),在此將嵌入process進(jìn)程語(yǔ)句去對(duì)實(shí)體行為作出說(shuō)明。當(dāng)電梯接收到請(qǐng)求信號(hào)后,將以隨機(jī)邏輯控制的方式到達(dá)發(fā)出請(qǐng)求的樓層。當(dāng)電梯所在樓層低于發(fā)出梯外請(qǐng)求的樓層或者低于梯內(nèi)請(qǐng)求所要到達(dá)的目的樓層時(shí),電梯必須在下一操作中作出上升運(yùn)行,這時(shí)的請(qǐng)求信號(hào)就是上升請(qǐng)求信號(hào)。它采用一種可編程的存儲(chǔ)器,在其內(nèi)部存儲(chǔ)執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)和算術(shù)運(yùn)算等操作的指令,通過(guò)數(shù)字式或模擬式的輸入輸出來(lái)控制各種類型的機(jī)械設(shè)備或生產(chǎn)過(guò)程。(二)VHDL語(yǔ)言介紹VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。因此,能使人們快速、便捷地到達(dá)目的樓層的電梯便應(yīng)運(yùn)而生了。通過(guò)程序調(diào)試及運(yùn)行仿真,結(jié)果表明,本程序可以完成:電梯運(yùn)行所在樓層指示、電梯運(yùn)行方向指示、關(guān)門(mén)延時(shí)設(shè)置、看門(mén)狗報(bào)警、超載報(bào)警、故障報(bào)警等。就FPGA/CPLD開(kāi)發(fā)來(lái)說(shuō),比較常用和流行的HDL主要有ABELHDL和VHDL等。對(duì)各子模塊分別進(jìn)行邏輯設(shè)計(jì)、編譯、仿真與驗(yàn)證。 VHDL設(shè)計(jì)流程圖