FPGA设计电梯控制器模块
设计一个10层楼的电梯控制器模块
1. 实验内容与原理说明
要求:(1) 以按键的时间先后优先级进行设计;
或者 (2) 以楼层最短位置先后优先级进行设计.
由题意可知,因为每层楼设有上下两个按钮,其中1层只能有上楼请求,10层只能有下楼请求,同一层不能既有上楼请求又有下楼请求。上楼或下楼请求被响应后对应位清零。当有其中一层的按钮按下时,电梯前往;根据时间优先级,可以设置先按下的请求先响应;根据位置优先级,可以设置距离近的请求先响应。可以设置clk,reset,up1-up9,down2-down10共计20个端口,用来输入时钟信号、复位信号和每层楼的上下请求。
有限状态机共stopon1,dooropen,doorclose,wait1, wait2, wait3, wait4, up, down, stop十个状态,分别对应停在一楼、开门、关门、等待(共4s)、上、下、停止十个工作状态。
由上分析,可以绘制其仿真的状态图如下:
整体仿真的流程图如下:
2. 实验模块程序代码和激励代码
(1)设计模块代码
(2)激励模块代码
3. 波形仿真图
4.门级电路图
设计模块所占用器件的资源情况如下所示:
【实验结果及思考】
此次实验有关有限状态机的设计,包括一个交通红绿灯控制器模块,实现主干道和支路之间红绿黄灯的信号转换,小轿车尾灯控制器模块以及设计一个10层楼的电梯控制器模块。总体来说是上学期数电中有关状态机的实际应用,但是给我思路上的启发是巨大的,帮助我从实践的角度理解Mealy状态图和Moore状态图。也帮助我捋清了状态机的设计步骤,即:
1)依据具体的设计原则,确定采用Moore状态机还是Mealy状态机。
2)分析设计要求列出状态机的所有状态,并对每一个状态进行状态编码
3)根据状态转移关系和输出函数画出状态图。
4)根据所画的状态图,采用硬件描述语言对状态机进行描述。
对状态机的各个状态赋予一组特定的二进制数称为状态编码。在状态机的编码中,我尝试了自然二进制编码、格雷编码和One-Hot编码。通过占用情况可以很明显地看出自然二进制码和格雷码的编码方案使用的触发器较少,其编码效率较高,但负责根据当前状态和状态转换条件进行译码的组合电路会比较复杂,其逻辑规模也较大,使得次态逻辑在传输过程中需要经过多级逻辑,从而影响电路的工作速度。在设计的过程中,我也在实践中复习了ASM的相关知识。通过ASM图设计数字系统,可以很容易将语言描述的设计问题变成时序流程图的描述。根据时序流程图就可以得到电路的状态图和输出函数,从而得出相应的硬件电路。在设计的过程中体会到了它的便利之处。
理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论、验证结论,才能真正提高自己的实际动手和独立思考的能力。在设计的过程中遇到问题,通过查阅资料、查阅手册及共同讨论的方式,最终解决了遇到的难关。
- 点赞
- 收藏
- 关注作者
评论(0)