本帖最后由 远程烧录联盟 于 2020-12-17 16:23 编辑
我们伟大的数字逻辑老师出了一个伟大的课题让我们写一个电梯系统的课程设计。这个课设实在是太"高明"了,我不得不分享一下~~
首先让我们来看看老师给出的需求:是一幅设计图
这个设计中有很多搞人的地方:比如那个"置入"键的设定,听过这个设计的所有童鞋表示跟不上老师的节奏,压力很大。。。。。。还有那个两层楼间需要8秒,记过估算这个电梯平均每秒上升0.5米,从一楼上到八楼需要近1分钟的时间,如果上到30层楼就需要近4分钟,我们可以在电梯里煎一个**蛋了。。。。。。更滑稽的是开门等待时间居然设置为12秒,我的神啊!这让我想起以前的一部电影《一个都不能少》。
不管那么多了,反正不按他说的做就没有实现需求,既然这是需求作为程序员的我们就"当然无法理解了"。
之前并没有学习过VHDL这种语言,这次先花了1天时间学习了下基本语法,觉得这种语言就是描述硬件设备的功能,写起来相当简单,果然,3天的编写代码+debug+烧录进实验台终于非常圆满的完成了,因为有部分学校的课程设计是这个,所以我就不方便贴出所有代码了,那样只会让更多的童鞋不去自己动手写了,不过我还是贴一些代码供大家参考,实在有需要的可以和我联系:
最初我的设计思路是电梯状态机一个文件、数码管解码显示一个文件、时钟分频一个文件,防抖动一个文件,后来发现数码管解码的过程有现成的库函数可以调用,于是就省去了这个文件,于是我的工程就由3个vhd文件构成:
电梯状态机模块:
分频模块:
防抖动模块:
构架模块:
有学习VHDL语言的童鞋可以试试看,虽然很简单,但却很锻炼人,当然排除那些蛋疼的设定。
分享快乐~~
总有人找我要代码和设计报告,需要的朋友这里拿吧:
https://selfstore.io/products/166
|