扫码加入

  • 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

60秒循环计时器设计VHDL代码Quartus仿真

1小时前
95
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2411211UZI36.doc

共1个文件

名称: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;

 

 

  • 2-2411211UZI36.doc
    下载

相关推荐