名称:60秒循环计时器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
60秒循环计时器设计
输入时钟频率为8Hz,实现60秒的循环计时。
需要对时钟进行分频,得到1Hz的基准时钟。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
Quartus9.0版本
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
整体仿真图
计时到59后回到0
分频模块仿真图
计时模块仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --计时器 ENTITY timer IS PORT ( clk_1Hz : IN STD_LOGIC;--1Hz时钟 second_ten : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--秒钟十位 second_one : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)--秒钟个位 ); END timer; ARCHITECTURE behave OF timer IS --定义十位和个位 SIGNAL ten : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; SIGNAL one : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; BEGIN --计时进程 PROCESS (clk_1Hz) BEGIN IF (clk_1Hz'EVENT AND clk_1Hz = '1') THEN--时钟上升沿 IF (ten = "0101" AND one = "1001") THEN--若计时到59分 ten <= "0000";--回0 one <= "0000"; ELSIF (one = "1001") THEN--个位计时到9 ten <= ten + "0001";--十位加1 one <= "0000";--个位回0 ELSE ten <= ten; one <= one + "0001";--个位累加 END IF; END IF; END PROCESS;
阅读全文
95