软件:Quartus
语言:VHDL
代码功能:
六位数码管动态显示设计
利用QuartusII软件和VHDL语言,设计一个六位数码管动态显示系统:
1.显示功能:能够在6位数码管上清晰稳定地显示“123456”。
2.复位和启动:具有复位功能,即用开关清除数码管显示内容和启动显示。
3.流水灯功能:用4个发光二极管制作流水灯,间隔1秒,从左向右循环流动,并受复位和启动开关控制本代码已在至芯开发板验证。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ENTITY?display?IS ???PORT?( ??????clk_in??:?IN?STD_LOGIC;--时钟 ??????reset???:?IN?STD_LOGIC;--按下低电平 ??????start???:?IN?STD_LOGIC;--按下低电平 LED?????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--低电平亮 ??????SEL?????:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);--数码管位选 ??????SEG?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管段选 ???); END?display; ARCHITECTURE?RTL?OF?display?IS ???COMPONENT?SEG_ctrl?IS ??????PORT?( ??????clk_in??:?IN?STD_LOGIC;--时钟 ??????reset???:?IN?STD_LOGIC;--按下低电平 ??????start???:?IN?STD_LOGIC;--按下低电平 ??????SEL?????:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);--数码管位选 ??????SEG?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管段选 ??????); ???END?COMPONENT; ??? ???COMPONENT?LED_ctrl?IS ??????PORT?( ??????clk_in??:?IN?STD_LOGIC;--时钟 ??????reset???:?IN?STD_LOGIC;--按下低电平 ??????start???:?IN?STD_LOGIC;--按下低电平 ??????LED?????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--低电平亮 ??????); ???END?COMPONENT; BEGIN --数码管显示模块 ???i_SEG_ctrl?:?SEG_ctrl ??????PORT?MAP?( ?????????clk_in??=>?clk_in, ?????????reset???=>?reset, ?????????start???=>?start, ?????????SEL?????=>?SEL, ?????????SEG?????=>?SEG ??????); ??? --LED流水灯控制模块 ???i_LED_ctrl?:?LED_ctrl ??????PORT?MAP?( ?????????clk_in??=>?clk_in, ?????????reset???=>?reset, ?????????start???=>?start, ?????????LED?????=>?LED ??????); ??? END?RTL;
阅读全文