数字秒表设计VHDL代码Quartus仿真
名称:数字秒表设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
数字秒表设计
(1)要求计时精度为10ms,计时范围59.99
(2)设置复位、暂停、继续等控制键;
(3)采用数码管显示秒读数
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
Quartus9.0版本

2. 程序文件


3. 程序编译

4. RTL图

5. 仿真文件

6. 仿真图






部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY stopwatch IS PORT ( clk_50M : IN STD_LOGIC; clk_100Hz : IN STD_LOGIC;--100Hz--对应10ms start_key : IN STD_LOGIC;--启动 stop_key : IN STD_LOGIC;--暂停 reset_key : IN STD_LOGIC;--复位 stopwatch_Millisecond : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--10毫秒 stopwatch_second : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--秒 ); END stopwatch; ARCHITECTURE trans OF stopwatch IS SIGNAL state : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000"; SIGNAL Millisecond_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; SIGNAL second_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; BEGIN --计时状态机 PROCESS (clk_50M) BEGIN IF (clk_50M'EVENT AND clk_50M = '1') THEN IF ((NOT(reset_key)) = '1') THEN state --复位状态 state --空闲状态 IF ((NOT(start_key)) = '1') THEN state <= "001"; ELSE state --计时状态 IF ((NOT(stop_key)) = '1') THEN state <= "010"; ELSE state --暂停状态 IF ((NOT(start_key)) = '1') THEN state <= "001"; ELSE state END CASE; END IF; END IF; END PROCESS; PROCESS (clk_50M) BEGIN IF (clk_50M'EVENT AND clk_50M = '1') THEN IF (state = "011") THEN--复位状态 second_cnt <= "00000000"; ELSIF (state = "001" AND clk_100Hz = '1') THEN--计时状态 IF (Millisecond_cnt = "01100011") THEN--990ms时向前记1秒 IF (second_cnt < "00111011") THEN second_cnt <= second_cnt + "00000001";--计时到990ms,下一次就到1秒了 ELSE second_cnt <= "00000000"; END IF; ELSE second_cnt <= second_cnt; END IF; END IF; END IF; END PROCESS;
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 数字秒表设计VHDL代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 数字秒表设计VHDL代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm