{"id":26231051,"url":"https://github.com/wesleyel/elevatorcontroller","last_synced_at":"2026-01-27T21:11:46.883Z","repository":{"id":127490028,"uuid":"279029714","full_name":"wesleyel/elevatorController","owner":"wesleyel","description":"一个简易的8层电梯控制器，使用verilog HDL语言描述 / a simple elevator controller works with verilog HDL","archived":false,"fork":false,"pushed_at":"2020-07-15T18:30:16.000Z","size":1345,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-12T07:36:57.916Z","etag":null,"topics":["elevator-simulation"],"latest_commit_sha":null,"homepage":"","language":"Verilog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wesleyel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-12T09:12:08.000Z","updated_at":"2024-10-12T06:19:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"9fde87ca-b855-405c-be69-13a854aa56f1","html_url":"https://github.com/wesleyel/elevatorController","commit_stats":null,"previous_names":["snowmemo/elevatorcontroller","wesleyel/elevatorcontroller"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyel%2FelevatorController","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyel%2FelevatorController/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyel%2FelevatorController/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyel%2FelevatorController/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wesleyel","download_url":"https://codeload.github.com/wesleyel/elevatorController/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243307474,"owners_count":20270264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elevator-simulation"],"created_at":"2025-03-12T23:18:12.621Z","updated_at":"2026-01-27T21:11:41.860Z","avatar_url":"https://github.com/wesleyel.png","language":"Verilog","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 简易8层电梯控制器\n\n使用Verilog HDL语言描述\n\n## 设计目标\n\n本项目的设计目标是一个8层电梯的控制器。主要输入有：各楼层电梯外上下按钮，电梯内楼层选择按钮，显示屏开关以及电梯重置按钮。\n\n实现功能具体如下：\n\n- 电梯可往返于1至8楼；\n- 不同位置的用户可以同时请求电梯，电梯将按照以下原则运行\n  - 上升时：若有上升请求，就近依次停梯；在无上升请求以后执行下降请求。\n  - 下降时：若有下降请求，就近依次停梯；在无下降请求以后执行上升请求。\n  - 无上升或下降请求时，电梯在原位置待机。\n- 电梯楼层选择相关按钮均为脉冲触发；\n- 任何时候触发重置电梯按钮，电梯将取消当前任务，并移动至1楼后停止；\n- 在数码管上显示电梯当前位置和运行方向。\n- 在数码管上显示电梯当次运行时长。\n\n## 整体设计概述\n\n由于项目触发方式多样，所以采用自顶向下的设计思路，使用模块化设计。\n\n![设计框图](modules.png)\n\n控制器对于信号的处理方式为：首先综合楼内各位置请求信号到一起，再将脉冲信号转为电平信号后交由状态处理模块处理。\n\n状态处理模块会结合当前电梯运行方向，以及楼层计数器返回的当前楼层进行判断，输出电梯的下一状态（即电梯的运行方向），并发送至楼层计数器。\n\n楼层计数器接收运行方向信息后，自动增减当前楼层数，同时将当前楼层从电梯请求列表中删除。当方向信息为0时，楼层计数器的输出不发生变化。\n\n计时模块将记录电梯两次停梯的时间间隔，单位为1秒。\n\n收到重置电梯的信号后，请求综合模块将清除全部请求信号，并将输出设定为请求到1楼。\n\n## FSM\n\n运行状态机\n\n![fsm](fsm.png)\n\n## 仿真方法\n\n#### 使用[Digital](https://github.com/hneemann/Digital)进行仿真\n\n![设计框图](digital.png)\n\n### 使用 Quartus II 9.0 进行仿真\n\n在~~新建文件夹~~搞了\n\n## 感谢\n\n- https://github.com/1160300901/Elevator-Controller\n- https://github.com/hneemann/Digital\n- https://github.com/ElegantLaTeX/ElegantBook","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesleyel%2Felevatorcontroller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwesleyel%2Felevatorcontroller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesleyel%2Felevatorcontroller/lists"}