> # ♻️ 资源
> **大小:** 2.62MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010360**](https://www.yuque.com/sxbn/ks/100010360)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87364008**](https://download.csdn.net/download/s1t16/87364008)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 数字逻辑与数字系统设计之电梯控制器设计
# 一、设计目的及要求
## 设计要求
1. 电梯最少可以往返于0—9层楼。
2. 乘客要去的楼层数A可手动输入并显示,按取消键可清除本次输入。
3. 可自动显示电梯运行的楼层数B
4. 当A>B时,电梯上升;
当A<B时,电梯下降;
当A=B时,电梯停止运行并开门;
5. 可以自动显示电梯每一次启停之间的运行时间
6. 任何时候按下复位键,电梯回到1层。
## 设计目的
目的是对“数字逻辑”课程内容全面、系统的总结、巩固和提高。根据数字逻辑的特点,选择相应的题目,在老师的指导下,由学生独立完成。通过实验使我们掌握数字逻辑电路设计的基本方法和技巧,正确运用vivado软件及实验室多功能学习机硬件平台,完成所选题目的设计任务,并掌握数字逻辑电路测试的基本方法,训练学生的动手能力和思维方法。通过实验,一方面提高运用数字逻辑电路解决实际问题的能力,另一方面使学生更深入的理解所学知识,为以后的计算机硬件课程的学习奠定良好的基础。
# 二、工作原理和系统框图
## 工作原理
本实验使用板上的四个开关来模拟电梯的叫梯按键,其中每个按钮有两个状态0和1,4个组成了电梯的叫楼层,将这4位二进制数字看成8421BCD码,转换成十进制数字。
对于电梯按键,当没用用户叫梯时,叫梯的数码管BIT5(G1)显示为0;当有用户叫梯时,控制叫梯的数码管显示为用户所叫的电梯楼层。
电梯运行时,显示电梯运行层数的数码管BIT1(G2)显示电梯运行的层数,假设电梯每运行一层的时间为1s,则该数码管BIT1(G2)数码管在转变为“0”之前显示的数字即为电梯运行的时间。
当SW1-N4 为1时,电梯回到0层。
## 系统框图
![418115395e72d1e2b5e779cba6b15bf0.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1710732837351-d34e6105-40a8-4113-a269-46b1955a8a45.png#averageHue=%23282222&clientId=u2d117a53-bef3-4&from=paste&height=535&id=u4ae26cb0&originHeight=669&originWidth=846&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=49672&status=done&style=none&taskId=u8b0ca99f-d696-4900-b34f-d7cc9ac1988&title=&width=676.8)![526a923dc45332ca1405a927fb6279f6.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1710732837363-508cfd7c-fabb-4ea9-b45b-1e4e221055ce.png#averageHue=%23242424&clientId=u2d117a53-bef3-4&from=paste&height=393&id=u1c021000&originHeight=492&originWidth=719&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=38036&status=done&style=none&taskId=u94ef5db0-cbb7-4761-9c4e-436489f05a2&title=&width=575)
# 三、各部分模块具体功能及设计思路
## 各部分选定方案
1.目的:电梯可以往返于0~9层楼,显示当前电梯的楼层B
;实现方法:用计数器来实现0~9之间的变化,并通过译码器接到数码管(BIT8)上显示
2.目的:手动输入要去的楼层A ,按取消键可清除本次输入。实现方法:A 用四个开关来表示,通过译码器接到7段数码管(BIT5)上显示相应的楼层数A。
3.目的:当A>B 时,电梯上升;当A<B 时,电梯下降;当A=B 时,电梯停止运行。实现方法:通过比较器来比较A 与B 的大小,若A>B 电梯上升,否则电梯下降,
4.目的:可以自动显示电梯每一次启停之间的运行时间。实现方法;继承3)的实现方法,若A>B 则计数器正向计数,若A<B 则计数器逆向计数。
5.目的:按下复位键时,电梯回到0层。实现方法:当复位启动时,则不论A 怎么输入,电梯都停在第0层。
## 相关模块
### 比较器(Compare)
输入电梯所在楼层B ,乘客要去的楼层 A ,输出O1O2,当A>B 时,输出01;当A<B 时,输出10;当A=B 时,输出00;
代码:
```c
module Compare(A,B,O1,O2);
input [3:0]A;//要去的楼层A
input [3:0]B;//电梯所在楼层B
output O1;
output O2;
assign O1 = (A>B);//A>B 输出01
assign O2 = (A<B); //A<B 输出10
endmodule
```
### 复位模块(IfReset)
输入reset 和In ,In 是一个4位的数组。当reset=1时,Out=0,电梯无论在几楼都会回到0楼;当reset==0时,输出Out=In ,接着运行下面的功能。
代码:
```c
module IfReset (In, Out, reset);
input [3:0] In;
input reset;
output reg [3:0]Out;
always begin #2
if(reset)
Out = 0;//如果reset = 1 则清零
else
Out = In;//如果reset!=1 则输入即为输出
end
endmodule
```
### 节拍发生器(BeatGenerator)
由于数码管只有七个管脚,AB 不能同时显示在同一个数码管上,所以通过节拍发生器来选择显示。因为时钟频率高达100MHz,所以肉眼所见的是A 和B 同时显示。
代码:
```c
module BeatGenerator(in1,in2,clk,sec,Out);
input [6:0]in1;//输入A
input [6:0]in2;//输入B
input clk;//时钟信号
output reg [1:0]sec;
output reg [6:0]Out;
reg [7:0]ControlLED;//七段数码管
initial //初始化变量
begin
sec = 1;
Out = in1;
ControlLED = 0;
end
always @(posedge clk)
begin
ControlLED = ControlLED + 1;
if(sec==1) //分频显示
begin
Out =in2;
end
else
begin
Out=in1;
end
end
always @(negedge ControlLED)
begin
if(sec==1)
begin
sec=2;
end
else
begin
sec=1;
end
end
endmodule
```
### 分频模块(FrequenceDivide)
将100MHz的时钟信号转换为肉眼可见的信号
代码:
```c
module FrequenceDivide(inClk, outClk);
input inClk; //输入时钟信号
output outClk;//输出时钟信号
reg [31:0]timeClk;//暂存时钟信号(32位)
assign outClk = timeClk[19];//每2^20ns 时钟沿变化一次
initial begin
timeClk = 0;
end
always@(posedge inClk)
begin
timeClk = timeClk + 1;
end
endmodule
```
### 译码器(Decoder)
将4位的A和B转换为七段数码管显示对应的数字
代码:
```c
module Decoder(floor, outLED, on);
input [3:0]floor;//楼层
input on;//运行状态 运行on=1,未运行on=0
output reg[6:0]outLED;//输出的显示
always @(*)
begin
if(!on)
outLED=7’b0000001;//未运行状态
else
case(floor)
4’b0000:outLED=7’b1111110; //0
4’b0001:outLED=7’b0110000; //1
4’b0010:outLED=7’b1101101; //2
4’b0011:outLED=7’b1111001; //3
4’b0100:outLED=7’b0110011; //4
4’b0101:outLED=7’b1011011; //5
4’b0110:outLED=7’b1011111; //6
4’b0111:outLED=7’b1110000; //7
4’b1000:outLED=7’b1111111; //8
4’b1001:outLED=7’b1111011; //9
default: outLED= 7’b1001111; /E(error) endcase
end
endmodule
```
### 计时器(clock)
计时器有一个暂停键与计数器的使能端相连,当switch1=switch0=0时,计时器的暂停键有效,计时器不计时;当switch1=1或switch0=1,计时器工作,且每次计时完成后归零,并从下一次电梯开始工作时计时。
�
没有合适的资源?快使用搜索试试~ 我知道了~
数字逻辑与数字系统设计之电梯控制器设计【100010360】
共413个文件
xml:135个
v:57个
txt:20个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 179 浏览量
2023-01-05
09:08:09
上传
评论
收藏 2.63MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010360 本实验使用板上的四个开关来模拟电梯的叫梯按键,其中每个按钮有两个状态0和1,4个组成了电梯的叫楼层,将这4位二进制数字看成8421BCD码,转换成十进制数字。 对于电梯按键,当没用用户叫梯时,叫梯的数码管BIT5(G1)显示为0;当有用户叫梯时,控制叫梯的数码管显示为用户所叫的电梯楼层。 电梯运行时,显示电梯运行层数的数码管BIT1(G2)显示电梯运行的层数,假设电梯每运行一层的时间为1s,则该数码管BIT1(G2)数码管在转变为“0”之前显示的数字即为电梯运行的时间。 当SW1-N4 为1时,电梯回到0层。
资源推荐
资源详情
资源评论
收起资源包目录
数字逻辑与数字系统设计之电梯控制器设计【100010360】 (413个子文件)
__synthesis_is_complete__ 0B
xsim.ini.bak 17KB
elaborate.bat 405B
compile.bat 308B
simulate.bat 271B
runme.bat 219B
runme.bat 219B
design_1.bd 20KB
design_1_wrapper.bin 2.09MB
design_1_wrapper.bit 2.09MB
design_1.bxml 6KB
xsim.dbg 6KB
design_1_wrapper_routed.dcp 210KB
design_1_wrapper_placed.dcp 192KB
design_1_wrapper_opt.dcp 175KB
design_1_wrapper.dcp 54KB
design_1_util_vector_logic_0_0.dcp 5KB
compile.do 2KB
compile.do 2KB
compile.do 2KB
compile.do 2KB
simulate.do 321B
simulate.do 314B
simulate.do 314B
elaborate.do 208B
simulate.do 177B
wave.do 30B
wave.do 30B
wave.do 30B
wave.do 30B
simulate.do 9B
报告.doc 1.57MB
xsimk.exe 67KB
run.f 1KB
usage_statistics_webtalk.html 38KB
usage_statistics_ext_xsim.html 4KB
design_1_wrapper.hwdef 11KB
design_1.hwdef 11KB
design_1.hwh 48KB
.xsim_webtallk.info 50B
xsim.ini 17KB
xsim.ini 17KB
vivado.jou 818B
vivado_6936.backup.jou 817B
vivado.jou 813B
webtalk.jou 768B
ISEWrap.js 8KB
ISEWrap.js 8KB
rundef.js 1KB
rundef.js 1KB
LICENSE 1KB
runme.log 43KB
runme.log 38KB
webtalk.log 837B
elaborate.log 735B
xvlog.log 505B
compile.log 505B
job.id.log 0B
job.id.log 0B
Lift2.lpr 335B
README.md 16KB
xsim.mem 3KB
elab.opt 213B
vivado.pb 64KB
init_design.pb 16KB
route_design.pb 14KB
place_design.pb 12KB
opt_design.pb 11KB
write_bitstream.pb 5KB
xelab.pb 1KB
xvlog.pb 947B
design_1_wrapper_power_summary_routed.pb 722B
design_1_wrapper_utilization_placed.pb 242B
design_1_wrapper_utilization_synth.pb 242B
vivado.pb 149B
design_1_wrapper_timing_summary_routed.pb 106B
design_1_wrapper_methodology_drc_routed.pb 52B
design_1_wrapper_route_status.pb 43B
design_1_wrapper_drc_routed.pb 37B
design_1_wrapper_drc_opted.pb 37B
design_1_wrapper_bus_skew_routed.pb 30B
vlog.prj 2KB
testxxx_vlog.prj 278B
xsim.reloc 1KB
xil_defaultlib.rlx 294B
design_1_wrapper_timing_summary_routed.rpt 131KB
design_1_wrapper_io_placed.rpt 97KB
design_1_wrapper_clock_utilization_routed.rpt 17KB
design_1_wrapper_power_routed.rpt 9KB
design_1_wrapper_utilization_placed.rpt 9KB
design_1_wrapper_utilization_synth.rpt 7KB
design_1_wrapper_methodology_drc_routed.rpt 7KB
design_1_wrapper_control_sets_placed.rpt 5KB
design_1_wrapper_drc_routed.rpt 3KB
design_1_wrapper_drc_opted.rpt 2KB
design_1_wrapper_bus_skew_routed.rpt 944B
design_1_wrapper_route_status.rpt 588B
design_1_wrapper_timing_summary_routed.rpx 126KB
design_1_wrapper_power_routed.rpx 55KB
design_1_wrapper_methodology_drc_routed.rpx 10KB
共 413 条
- 1
- 2
- 3
- 4
- 5
资源评论
神仙别闹
- 粉丝: 2687
- 资源: 7649
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功