名称:病房呼叫显示控制 FPGA 设计 Verilog ISE
语言:Verilog
功能介绍
本项目实现了一个病房呼叫显示控制 FPGA 设计,使用 Verilog 编写,面向病房按键呼叫、待处理状态指示和病房号数码管显示等基础应用场景。系统提供 5 路病房按键输入,配合处理按键和复位信号完成呼叫登记、状态提示与显示输出。
系统输出包含 5 位 LED 指示和七段数码管段码,其中 LED 用于表示对应病房的待处理状态,number 信号表示当前病房编号,seg 信号输出七段显示编码。该结构能较清晰地体现按键输入、控制状态、显示译码之间的关系,适合作为 Verilog 状态控制、模块化设计和 ISE 工程实践的学习案例。
工程包含顶层、控制模块、显示模块和 testbench,可进行综合编译与 ISim 仿真。设计文档中包含工程文件、程序文件、编译结果、RTL 图、Testbench 仿真图、顶层仿真图以及控制模块和显示模块相关内容,便于对照源码理解实现流程。
运行环境
开发语言:Verilog。
开发软件:Xilinx ISE 工程环境,配套 ISim 仿真流程。
工程形式:ISE 工程文件,包含 Verilog 源码、顶层工程配置、综合编译相关文件、testbench 与仿真结果文件。
设计思路
本设计以病房呼叫和处理流程为核心,将外部按键输入转换为内部控制状态,再通过 LED 和七段数码管给出当前待处理病房的提示。key_1 至 key_5 对应不同病房呼叫输入,deal_key 用于处理当前呼叫,rst_p 用于系统复位,整体接口简单,适合用于 FPGA 数字逻辑课程设计、按键控制实验和状态控制类 Verilog 项目参考。
控制部分负责维护病房呼叫状态和当前显示编号。当病房按键触发后,系统输出对应待处理指示灯 led,同时生成 number 信号表示需要显示的病房号;处理按键触发后,控制逻辑对当前状态进行更新,使显示和指示灯随处理流程变化。
显示部分采用独立七段译码模块,将控制模块输出的 number 转换为 seg 七段码。顶层模块只负责端口汇总和模块例化,使控制逻辑与显示译码分离,便于单独仿真、修改显示编码方式或扩展更多病房输入。
模块结构
顶层模块为 top_sickroom,负责连接外部时钟、复位、病房按键、处理按键、LED 指示、病房编号和七段显示输出,并例化控制模块与显示模块。
sickroom_ctrl 为核心控制模块,接收 clk、rst_p、key_1 至 key_5 以及 deal_key,输出 led 和 number,完成病房呼叫状态管理、待处理指示和当前显示编号生成。
display 为七段显示译码模块,输入 number,输出 seg,将病房编号转换为七段数码管显示码。
tb_sickroom 为仿真测试模块,用于对病房呼叫控制流程和顶层连接关系进行仿真验证。
演示视频
配套演示视频展示了病房呼叫显示控制的运行效果,可用于直观看到按键输入、待处理指示灯以及七段数码管显示之间的对应关系。通过视频可以辅助理解系统在多个病房按键触发和处理按键操作下的显示逻辑。
演示视频请点击左下角阅读原文查看。
仿真图/仿真说明/设计文档图片
设计文档内容包含工程文件、程序文件、程序编译、RTL 图、Testbench 仿真图、顶层仿真图、控制模块和显示模块等部分。仿真说明可用于查看 testbench 激励下的顶层响应,结合 RTL 图可以理解 top_sickroom、sickroom_ctrl 和 display 之间的层次关系。
项目同时包含 ISim 相关仿真文件,可作为病房按键输入、处理按键操作、LED 状态输出和七段显示输出的验证参考。
部分代码
以下展示顶层模块 top_sickroom 的部分代码,完整源码请下载压缩包查看。
module top_sickroom(
input clk,
input rst_p,
input key_1,
input key_2,
input key_3,
input key_4,
input key_5,
input deal_key,
output [6:0] seg,
output [4:0] led,
output [3:0] number
);
// 控制模块:产生当前需要显示的病房号与待处理指示灯
sickroom_ctrl u_ctrl (
.clk (clk),
.rst_p (rst_p),
.key_1 (key_1),
.key_2 (key_2),
.key_3 (key_3),
.key_4 (key_4),
.key_5 (key_5),
.deal_key(deal_key),
.led (led),
.number (number)
);
// 显示模块:把病房号转为七段码
display u_disp (
.number(number),
.seg (seg)
);
endmodule
代码获取:点击【来源:www.hdlcode.com】
64