ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:334.68KB ,
资源ID:19649982      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19649982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新版Verilog实现的基于FPGA的五层楼电梯运行控制逻辑毕业设计论文Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新版Verilog实现的基于FPGA的五层楼电梯运行控制逻辑毕业设计论文Word格式文档下载.docx

1、当电梯开始启动的时候,将当前所处的楼层置为第一层,电梯为暂停状态,方向向上,然后等待控制器的调度;等待过程当中(FLOOR保持在该楼层),首先去判断当前楼层(第i层)以上的楼层是否发出召唤或者已经有人已经发请求,若有则向上运行;否则以同样的方法判断是否向下运行;若不向下运行则重复等待状态(故向上运行的优先级要高于向下运行);保持该状态循环进行操作直到检测到有向上或向下的任务;若已经判明要向上运行,则首先将运行停止状态置为运行,且标志向上运行,控制LED在该楼层亮T时间后将所在楼层加1,这时新的当前楼层(第i+1层)灯亮起,接着电梯检索去判断当前楼层是否发出向上召唤或者已经有人已经发出目的地为第

2、i+1层的请求,若有则在第i+1层停靠;否则检索去判断第i+1层以上的楼层是否发出召唤或者已经有人已经发出目的地为第i+1层以上的请求,若有则向上运行;否则(必定是有第i+1层向下的请求)在第i+1层,向下运行过程同理。31.4 电梯控制的流程图K1: 当前层i以上有召唤请求或者电梯内部目的地请求有i的请求;K2: 当前层i以下有召唤请求或者电梯内部目的地请求有K3: 所到达的i层为目的地或者i层有向上的请求;K4: 所到达的i层为目的地或者i层有向下的请求;1.5 状态设置S0 S14 共15个状态4:S0:初始化,电梯位于1楼,清除各请求 无条件转入下一状态S1等待S1:等待状态,判断K1

3、,若满足转入S3向上运行,不满足,转入S2判断S2:判断K2,若满足转入S9向下运行,不满足返回S1继续等待判断S3:电梯向上运行修改状态信息 无条件转入下一状态S4计数S4:运行时间计数器开始计数,计数完毕转入S5,否则继续计数S5:修改状态信息,楼层数加1,转入S6判断S6:判断K3,若满足转入S8停止,不满足转入S7判断S7:判断K1,若满足转入S4继续运行,不满足转入S8停止S8:暂停并开始计数时间,计数完毕转入S1,否则继续停在S8S9:向下运行,修改状态信息,无条件转入下一状态S10S10:运行时间计数器开始计数,技术完毕转入S11,否则继续计数S11:修改状态信息,楼层数减1,转

4、入S12判断S12:判断K4,若满足转入S14停止,不满足转入S13判断S13:判断K2,若满足转入S10继续运行,不满足转入S14停止S14:暂停并开始计数时间,计数完毕转入S1,否则继续计数2 电梯的设计实现52.1 Verilog 语言6描述的各个模块说明2.1.1电梯内部目的地请求记录indoor_callinput: set_dest:当按下对应楼层的目的地请求且当前电梯所停靠的cur_floor不是所请求的目的地时,便可以记录这个请求。 rst:在电梯进入初始状态时,撤销记录中的目的地请求。ce:在电梯进入暂停在cur_floor状态时ce=1;撤销cur_floor的目的地请求并

5、记录在当前状态下该楼层的目的地请求。 cur_Floor:当前楼层output: get_dest: 输出当前未完成的目的地请求。2.1.2电梯外部召唤请求记录outdoor_call set_call:当按下对应楼层的召唤请求且当前电梯未停在该楼层cur_floor时,便可以记录这个召唤。 rst:当电梯进入初始状态时,撤销目的地面板上的请求。 ce:在电梯进入暂停在cur_floor的状态时ce=1,控制撤销cur_floor 的所在所在召唤请求。 cur_Floor:当前楼层作为判断的条件。 get_call: 输出当前未完成的召唤请求。2.1.3当前楼层current_floor in

6、put: 初始状态时电梯所处的楼层归为第一层。 inc_Floor: 控制电梯在向上运行时楼层加1。 red_Floor: 控制电梯在向下运行时楼层减1。输出显示当前电梯所在楼层。2.1.4显示上下楼up_down 初始时电梯的运行方向向上。up_d:当其有一个正向的电平跳变时,电梯的运行方向由向上变为向上;有一个负向电平跳变时电梯的运行方向由向下变为向上。Up=0 ; Down=1 out_state_dir: 输出显示当前或电梯暂停前的运行方向。2.1.5显示运行停止stop_run 初始状态时,电梯状态未停止。stop_r: 当其有一个正向的电平跳变时,电梯状态由停止变为运行;有一个负向

7、电平跳变时电梯由运行变为停止。Stop=0 ;Run=1 out_state_run: 输出显示当前的电梯运行状态。2.1.6时间计数器counterce_count:当其为0时计数器不计数,但将其初始计数值赋给计数器,并将0作为结果返回给计数器;当其为1时,计数器开始减计数,每当来一个clk下降沿时计数值减1,当计数值减为0时将其返回给控制器。 clk:电路的时钟脉冲。 consignal:返回给控制器的反馈信号,当其为1时,表明计数完毕。2.1.7条件判断condition_judge input:sel_con:当其为00(K1)是判断cur_floor以上是否还有目的地请求或者召唤请求

8、;当其为01(K2)时,判断cur_floor以下是否还有目的地请求或者召唤请求;当其为10(K3)时,判断第cur_floor层是否还有目的地请求或者向上的召唤请求;当其为11(K4)时,判断第cur_floor层是否还有目的地请求或者向下的召唤请求。未完成的目的地请求。 get_call:未完成的召唤请求。 clk:时钟脉冲。 cur_Floor:当前楼层,作为判断条件。 result:是把sel_con中对应条件判断的结果送给控制器。2.1.8中心控制模块control 时钟脉冲。 reset复位端,低电平有效,将电路状态清0。来自counter模块的反馈信号。 result_Con:来

9、自condition模块的反馈信号。rst,sel_Con,inc_Floor,red_Floor,ce,up_d,stop_r, ce_Count为向其它模块的输出控制信号。2.2 顶层原理图3 测试3.1 test1 测试方案 初始化,3楼有向上请求,目的地请求为5楼,观察到达5楼后是否会停止;100#后3楼有向下请求,目的地为2楼,观察是否到达3楼并停止等人然后到2楼;100#后1楼有向上请求,目的地为4楼,观察最后是否会停在4楼。Input:Resul:波形图:3.2 test2 测试方案100#后3楼有向下请求,目的地为2楼和5楼,观察是否到达3楼并停止等人然后是先到2楼还是5楼(测

10、试上下楼的优先级); Input:Result:3.3 测试总结:通过系统详细的测试,系统的输出结果与我们的预期结果一致,系统并未出现问题,说明系统基本上是无故障的。4 结语:用Verilog硬件描述语言的形式进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误。降低了开发成本,这中设计方法必将在未来的数字系统设计中发挥越来越重的作用。本设计采用的正式FPGA来控制电梯的逻辑运行,具有编程灵活,性能可靠等优点,而且FPGA在去电后配置数据自动消失,用户可以控制加载进程,在现场修改器件的逻辑功能。在设计过程中我们首先把整个电梯设计根据功能分成若干个功

11、能模块,然后理清个模块的时序,一以便将各个功能模块综合在一起,能够公用书籍总线,使其能正常工作不受干扰,有些程序在仿真的时候其时序是完全正确的,但是当程序下载到芯片上之后就会发现错误了。这主要是因为各个功能在实现时会有延时,但这在仿真时是显示不出来的。因此编程时要注意在选芯片之前,要先将计算出的数据信号先放到数据总线上。FPGA在实现电梯控制方面比较灵活,可以通过对程序的修改来达到控制多个楼层,本设计在电梯控制方面做的比较全面,比如设计了内外电梯的指示系统和当前电梯运行情况显示,能够满足一般的载客电梯的工作功能需要。参考文献 1John.F.Wakerly.Digital Design Pri

12、nciples and Practices.北京:高等教育出版社 2阎石等.数字电子技术基础.北京:高等教育出版社。3毛法尧等.数字逻辑.武汉:华中科技大学出版社。 4邹寿彬等.电子技术基础-数字部分.成都:5欧伟明等.电子信息系统设计.西安.西安电子科技大学出版社6夏宇闻.Verilog数字系统设计教程.北京.北京航空航天大学出版社课程设计总结: 通过学习这门课程,我们了解到数字系统设计的基本步骤和其在实现过程当中必须注意的各个方面。以前的课程较多的停留在理论的高度上,而这次课程设计使我们真正认识到如何才能成为真正的硬件设计师。在课程设计的实践当中,我们的电梯设计也可谓经历了风风雨雨,在IS

13、E中的语言设计过程当中进行的还算顺利的情况下,经过软件模拟成功以后很快就可以进行硬件的综合仿真了。但是并不代表着硬件仿真也可以了,最后经过多次调试发现在cur_floor中加入时钟变量才能使其稳定变化。成功的喜悦之情难以言表,做工程的确是有苦有甜。在这个过程当中,周老师给了我们很大的帮助,特别是反复强调要注意硬件的设计要考虑实现以及后模拟的重要性。我们在将来的实践过程当中一定注意以上的问题。着门课程使我对硬件设计产生了浓厚的兴趣,这必将成为推动我在这个领域前进的不竭动力。再次感谢周老师在这次课程设计中给予我的帮助,周老师在百忙中抽出时间给我详细讲了有关状态机的设计,并提出多种设计思路,使我受益

14、匪浅。附各个模块Verilog源代码:(1) indoor_call:module indoor_call( set_dest,rst,ce,cur_Floor,get_dest ); input 4:0 set_dest; input 2:0 cur_Floor; input rst,ce; output 4:0 get_dest; reg 4: always (rst or ce or set_dest0 or cur_Floor) begin if(rst=1) get_dest0=0; else begin if(set_dest0=0) if(ce=0|cur_Floor!=1) g

15、et_dest0=1; else get_dest0=0; end else if(ce=1&cur_Floor=1) end always (rst or ce or set_dest1 or cur_Floor) begin get_dest1=0; else if(set_dest1=0) if(ce=0|cur_Floor!=2) get_dest1=1; else if(ce=1&cur_Floor=2) end always (rst or ce or set_dest2 or cur_Floor) get_dest2=0; else if(set_dest2=0)=3) get_

16、dest2=1;cur_Floor=3) end always (rst or ce or set_dest3 or cur_Floor) get_dest3=0; else if(set_dest3=0)=4) get_dest3=1;cur_Floor=4) always (rst or ce or set_dest4 or cur_Floor) get_dest4=0; else if(set_dest4=0)=5) get_dest4=1;cur_Floor=5)endmodule(2) outdoor_callmodule outdoor_call( set_call,rst,cur

17、_Floor,ce,get_call ); input 7:0 set_call; output 7:0 get_call; reg 7: always (rst or ce or set_call0 or cur_Floor) get_call0=0; else if(set_call0=0)=1) get_call0=1; get_call0=0;cur_Floor=1) always (rst or ce or set_call1 or cur_Floor) get_call1=0; else if(set_call1=0) get_call1=1; get_call1=0;cur_Fl

18、oor=2) always (rst or ce or set_call2 or cur_Floor) get_call2=0; else if(set_call2=0) get_call2=1; always ( rst or ce or set_call3 or cur_Floor) get_call3=0; else if(set_call3=0) get_call3=1; always ( rst or ce or set_call4 or cur_Floor) get_call4=0; else if(set_call4=0) get_call4=1; always ( rst or ce or set_call5 or cur_Floor) get_call5=0; else if(set_call5=0) get_call5=1; always ( rst or ce or set_call6 or cur_Floor) get_call6=0; else if(set_call6=0) get_call6=1; always ( rst or ce or set_call7 or cur_Floor) get_call7=0; else if(set_call7=0) get_call7=1; get

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1