名称:篮球比赛计时器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
篮球比赛计时器
在现今的体育比赛中,计时器起到至关重要的作用。为了满足篮球比赛的计时需求,我们设计了一款基于FPGA的篮球计时器。设计各个功能子模块,再通过适当的接口和信号线进行通信和协调,最终实现篮球比赛计时器。
设计指标:
可以进行比赛计时,具有30秒倒计时,倒计时通过数码管显示;可通过按键对计时器清零、置数、启动和暂停。通过两个数码管显示两队比分。
当按下复位信号时,模块复位,按下开始键时开始倒计时,按下暂停键暂停,再次按下开始键时继续倒计时,直到倒计时为0后,LED闪烁报警。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.程序编译
4.RTL图
5.仿真图
整体仿真图
分频模块
倒计时模块
显示模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; USE ieee.std_logic_arith.all; --数码管显示模块 ENTITY display IS PORT ( clk : IN STD_LOGIC; second_time : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--秒钟 score_1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);--1队分数 score_2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);--2队分数 HEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); HEX1 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); HEX2 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); HEX3 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END display; ARCHITECTURE behave OF display IS SIGNAL second_time_one : INTEGER := 0; SIGNAL second_time_ten : INTEGER := 0; SIGNAL score_1_int : INTEGER := 0; SIGNAL score_2_int : INTEGER := 0; BEGIN second_time_one <= Conv_Integer(second_time) - second_time_ten*10;--获取秒个位 second_time_ten <= Conv_Integer(second_time) / 10;--获取秒十位 score_1_int<=Conv_Integer(score_1); score_2_int<=Conv_Integer(score_2); PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN CASE second_time_one IS--显示秒个位 WHEN 0 => HEX0 HEX0 HEX0 HEX0 HEX0 HEX0 HEX0 HEX0 HEX0 HEX0 END CASE; END IF; END PROCESS;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1517
阅读全文
847