基于VHDL的三层电梯控制器的标准设计 - 图文(6)

2020-06-05 11:45

第四节 分频器模块仿真分析

此模块的功能是把高频率的时钟信号转换为低频脉冲信号。 仿真波形图如图4.7:

图4.7 分频器仿真波形

第五章 设计的扩展性

在本设计中,因为考虑了扩展性,所以在信号定义的时候就使用了二进制的向量,而不是整数。在设计方法上也做了特殊的设计,所以使得扩展性较好。如果要实现n层电梯的控制,首先在端口的地方就要加入所有的按键,而指示灯只要把向量中的3改成n就可以了。同时需要在按键控制进程里加入其他按键触发指示灯的语句。在电梯的升降状态将3改成n,在电梯的开门状态中将2改成n一1,在关门状态,将position=3改成position=n,关键是修改position=3的部分,如果按照每层罗列,将十分烦琐,所以得寻求各层判断条件的共性,解决方法之一就是,新建一个全局向量abc为std_logic_vector(n downto 1),abc的赋值为abc<=(pos=>?1?,other=>?0?)。在电梯的上升模式时,如果有本层请求信号,则电梯开门;如果没有任何请求信号,则电梯停在当前层;否则用abc和stoplight与fuplight向量比较,如果stoplight或fupligh比abc大,则说明更高层还有上升或者停战请求,电梯需继续上升;如果abc更大,则用abc与fdnlight作比较,如果fdnlight更大,则说明更高层有下降请求,电梯继续上升,否则电梯下降。电梯处在下降模式时同原理分析判定下一状态。这样可以大大简化程序,但要注意的是abc向量作为判断依据,需实时更新,可以单独写一个进程,触发时钟周期要设置得很小。在电梯的上升状态和开门状态中,把3改为n,在信号灯控制进程中加入其它按键触发指示灯的语句。

结束语

通过这次课程设计,让我明白了理论和实际操作之间差距,而且也让我明确的意识到自己在电子理论知识上还有很多知识漏洞,以后应该更深入的理解知识。学会将知识应用到实际生活和问题上才是真正的掌握了知识。在编译仿真时,需要对Quartus II软件的实验步骤重新熟练,在此基础上还要明白相应步骤选择的原因和目的,这样才能切合相应的实验主题,解决具体的问题。因为出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,因此必须不断根据思路和设计完善程序。另外在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。模式的选择也是如此。

总的来说在这次实课程设计中,虽然碰到了很多困难和问题,但我们还是靠自己的努力与坚持完成了任务。比如当遇到了自己无法解决的困难与问题的时候,通过网络查询,文献查询等很多方法自主解决。这次设计给我们最大的收获就是扩大了自己的知识面,了解更多与本专业有关的科技信息,学会将零散的知识点综合运用解决实际问题,觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力。但是我们同时也看到了本次设计的不足,对于硬件仿真就遇到了很大难题,对于引脚分配就没有了方向。许多工程实际问题不能完全用理论知识去解决,需要不断吸取现场经验,寻找解决问题方法。虽然我们能完成设计的基本功能,但仍有可拓展的空间,比如超载报警、多层电梯等,都是可以继续研究以满足更多的功能要求,但以我现在对EDA知识的了解,可能不太容易完成,希望以后有机会再深入地学习EDA,设计出更符合实际功能需求的代码。与时代共同进步。才能在将来成为有用的科技人才。

致谢

首先要感谢学校能给我们这次组合完成课程设计的机会,加强了自己的动手能力和对VHDL语言的理解能力,其次和同伴讨论的的过程中彼此深化了对专业知识的理解,发现了自我认知的不足。感谢韦老师在课程设计之初给予我们课程设计的方向和方法,尤其是在设计上应注意的问题,让我们的设计明确清晰,少走很多弯路。

这次课程设计,网上虽然有很多种类的完整的程序,但想要真正看懂并不容易,为此我们花了很多时间去理解,当回忆起老师上课时教过的方法时我们对程序的理解才慢慢有了起色,还在交流探讨中发现了程序的错误,感觉自己能运用老师所教的知识读懂

复杂冗长的程序,即使代码中可能仍存在一些不能解决的实际问题,也觉得有了一定的成就感。

最后再次感谢老师的辅导,帮助和传授的知识,让我们把理论和实际结合了起来,更加理解了VHDL语言在日常生活中的应用。懂得如何以实际的眼光看待自己所学的知识,这是一种重要的学习态度。

参考文献

1 黄正巾,徐坚等. CPLD系统设计与应用[M].北京:电子工业出版社,2002, 2 孟宪元.可编程ASIC集成数字系统[M].北京:电子工业出版社,2003, 3 潘松,王国栋. VHDL实用教程(修订版)[M].成都:成都电子科技大学出版社,2002,

4 王锁萍. 电子设计自动化(EDA)教程[M].成都:成都电子科技大学出版社,2006, 5 苏长赞. 电梯设计与应用[M]. 北京:人民邮电出版社,2008, 6 朱清慧. VHDL教程. 清华大学出版社[M],2008,

7 何立民. EDA应用技术选编[M].北京:北京航空航天大学出版社,2008,

电梯程序: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity threelift is

附录

port(

buttonclk:in std_logic; --按钮时钟信号

liftclk: in std_logic; --电梯时钟信号 reset:in std_logic; --复位键 f1upbutton:in std_logic; --一楼上升按钮 f2upbutton:in std_logic; --二楼上升按钮

f2dnbutton:in std_logic; --二楼下降按钮 f3dnbutton:in std_logic; --三楼下降按钮

fuplight:buffer std_logic_vector(3 downto 1); --上升指示灯 fdnlight:buffer std_logic_vector(3 downto 1); --下降指示灯 stop1button,stop2button,stop3button:in std_logic; --电梯内部按钮 stoplight:buffer std_logic_vector(3 downto 1); --内部停止指示灯 position:buffer integer range 1 to 3; --楼层位置显示 doorlight:out std_logic; --电梯门指示灯 ?1? 开 ?0?关 udsig:buffer std_logic ); --?0?处于上升模式,?1?处于下降模式 end threelift;

architecture art of threelift is

type lift_state is (stopon1,dooropen,doorclose,doorwait4,up,down,stop); 所处的7个状态

signal mylift:lift_state; --内部电梯状态信号

signal clearup:std_logic; --上升清除信号 signal cleardn:std_logic; --下降清除信号 begin

controllift:process(reset,liftclk) variable pos:integer range 1 to 3; --楼层位置变量 begin

if reset='1' then mylift<=stopon1; --起始状态 clearup<='0'; --上楼信号清除 cleardn<='0'; --下楼信号清除

--电梯


基于VHDL的三层电梯控制器的标准设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国内学习风格与相关领域综合研究新进展

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: