(未做)排号机

题目描述:

实现一个简易的银行排号叫号系统

get    取号                     示例:"get"或"get vip"
call   叫号                     示例:"call"
delete 删除号码                 示例:"delete 5"
count  获取当前排队总人数       示例:"count"
countN 获取号码N以前的排队人数  示例:"countN"
reset  重置排号机               示例:"reset"
quit   退出排号机               示例:"quit"
运行时间限制: 无限制
内存限制: 无限制
输入:
每行只会有一条输入(比如:C语言可使用gets函数获取一行输入命令的字符串)。
1、若输入不符合要求(如:命令字非法,或其他认为输入的错误)均需输出"error"
2、每条输出后使用换行符隔开(如后面示例)
输出:
1)取号。可获取普通号和vip号码。如初始状态,输入"get",则获取普通号码,执行结果为"1",如再次输入"get vip",则获取VIP号码,执行结果为"vip 2"。如果末尾的2号被删除,则再次调用"get"时应输出"2"
         VIP号码有绝对的优先级。普通号和vip号码统一编号,取号均为连续号码。号码从1开始编号,最大为100000.


2)叫号。获取当前应该处理用户的号码。例如当前排队号码为1 2 3 4 5 7,当输入"call",执行结果为"1",如1为vip号码,则为"vip 1".如果再连续调用6次,第六次执行结果应为"error"


3)删除号码。客户不想办理时可删除号码,叫号时则跳过此号码。例如当前排队号码为1 2 3 4 5,输入"delete 5",执行结果为"5",如果5为vip则显示"vip 5"。再次输出"delete 5",执行结果为"error"


4)获取当前排队总人数。获取当前排队人数。例如当前排队号码为1 2 3 4 5 6,执行结果为"6"


5)获取在某个号码之前排队的总人数。例如当前排队号码为1 2 3 4 5 7,输入"countN 7",执行结果为"5"


6、重置排号机。例如输入"reset",则重置排号机,进入初始状态,无需输出。
7、退出排号机。例如输入"quit",则退出排号机,无需输出。
样例输入:
get
get
get
get vip
count
countN 1
call
quit
样例输出:
1
2
3
vip 4
4
1
vip 4
基于FPGA的柜台排号设计通常涉及硬件描述语言(HDL),如Verilog或 VHDL,以及 Altera的Quartus II开发环境。对于一个简单的柜台排号,Verilog代码可能会包含以下几个部分: 1. **模块定义**:创建一个模块(module),例如`CounterModule`,声明输入和输出端口,如计数输入(increment)、显示数字输出(display)和启动/停止控制信号。 ```verilog module CounterModule( input wire clk, // 时钟输入 input wire start, // 启动按钮 input wire increment, // 增加按钮 output reg [7:0] display // 显示数码管的7段输出 ); ``` 2. **状态**:使用组合逻辑和状态变量定义计数状态,比如使用一位二进制计数器。 ```verilog reg [1:0] count_state; // 二进制计数状态 always @(posedge clk) begin if (start) begin count_state <= 2'b00; end else if (increment && count_state == 2'b11) begin count_state <= 2'b00; else count_state <= count_state + 1'b1; end ``` 3. **显示逻辑**:根据计数状态更新显示数码管的值。 ```verilog assign display = count_state * 8'b10000000 + ...; // 位移和映射到对应的数码管显示 ``` 4. **Quartus仿真**:将上述代码导入Quartus II,在软件中配置FPGA器件,设置时钟频率和其他参数,然后进行波形模拟(Waveform Simulation)和功能仿真,确认代码功能无误。 完成以上步骤后,你可以使用Quartus II的Place and Route工具进行硬件布局和布线,最后下载到实际的FPGA板上,形成一个基于FPGA的自动排号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值