NEC 红外接收与数码管显示 Verilog Quartus

名称:NEC 红外接收与数码管显示 Verilog Quartus

软件:Quartus

语言:Verilog

开发板/平台:DE2-115

功能介绍

本设计实现 NEC 红外遥控接收与数码管显示功能,适用于在 DE2-115 工程环境中学习红外协议解码、FPGA 状态控制和多位七段数码管驱动。顶层接收时钟、红外数据输入及复位信号,输出接收状态指示,并将接收数据映射到 8 位七段数码管显示接口。 工程按功能拆分了解码、显示控制、七段译码与驱动等模块,并包含用于仿真的测试平台和 Quartus 工程配置。代码采用 Verilog 为主要设计语言,项目中也提供 VHDL 接收器接口示例;配套约束面向 DE2-115,可用于理解引脚分配与板级连接。

运行环境

开发软件:Quartus。主要设计语言:Verilog。工程包含 DE2-115 管脚约束及 Quartus 工程文件。

设计思路

设计以 NEC 红外接收流程为主线,对输入信号进行协议解析,并将接收状态和数据送往显示部分。顶层接口包含系统时钟、红外数据输入和复位信号,同时提供接收指示输出以及 8 路七段数码管段选输出。参数 LC_on_max 用于设定引导码检测相关的时钟计数阈值,默认值按 50 MHz 时钟假设配置。 模块划分覆盖 NEC 解码、接收状态控制、数码管译码与驱动,以及重复按键对应的 LED 控制。解码后的数据通过显示链路呈现在多位七段数码管上,接收指示信号用于反映接收过程。工程同时提供测试平台与仿真项目,可结合协议解析、整体接收和显示控制模块查看设计行为。

模块结构

顶层接收模块连接红外数据输入、系统时钟和复位,并组织解码及显示输出。`nec_decoder_core`负责 NEC 协议数据解析,`ir_display_controller`与`rc_receiver`相关逻辑衔接接收数据和显示控制;`hex_to_7_seg`完成数码到七段段码的转换,`seven_seg_driver8`负责多位数码管驱动,`repeat_led_stretch`用于重复接收相关的 LED 控制。工程另含测试模块与仿真用例。

开发板验证

工程提供 DE2-115 的 Quartus 管脚分配约束,设计面向该开发板的引脚连接,可用于配置并验证红外接收与显示功能。

演示视频

工程演示视频展示红外接收设计的运行效果。

仿真图/仿真说明/设计文档图片

设计文档包含 RTL 图、管脚分配、Testbench、整体仿真图,以及 NEC 协议解析、LED 控制和数码管控制模块的相关说明。工程内附仿真测试平台与仿真日志,可用于了解设计验证流程。

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image1.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image10.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image11.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image2.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image3.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image4.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image5.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image6.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image7.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image8.png

NEC 红外接收与数码管显示 Verilog Quartus 设计文档图片 image9.png

部分代码

以下展示顶层模块 rc_receiver 的部分代码,完整源码请下载压缩包查看。

entity RC_receiver is
generic (
	-- number of clocks for the leader code-on signal (assuming 50MHz clock)
	LC_on_max					: integer := 450000);
port (
	-- outputs to the 8 7-segement displays.  The remote control
	-- outputs 32 bits of binary data (each byte displayed as
	-- 2 7-segment displays)
	HEX7						: out std_logic_vector(6 downto 0);
	HEX6						: out std_logic_vector(6 downto 0);
	HEX5						: out std_logic_vector(6 downto 0);
	HEX4						: out std_logic_vector(6 downto 0);
	HEX3						: out std_logic_vector(6 downto 0);
	HEX2						: out std_logic_vector(6 downto 0);
	HEX1						: out std_logic_vector(6 downto 0);
	HEX0						: out std_logic_vector(6 downto 0);
	-- output to display when receiver is receiving data
	rd_data						: out std_logic;
	-- clock, data input, and system reset
	clk							: in std_logic;
	data_in						: in std_logic;
	reset						: in std_logic);
end RC_receiver;

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » NEC 红外接收与数码管显示 Verilog Quartus

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员