⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock.vhd

📁 应用MaxplusII平台的数字时钟的VHDL源程序
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY clock IS
PORT(clk:      IN STD_LOGIC;
     settime:  IN STD_LOGIC;
     hourhset: IN INTEGER RANGE 0 TO 2;
     hourlset: IN INTEGER RANGE 0 TO 9;
     minhset: IN INTEGER RANGE 0 TO 5;
     minlset: IN INTEGER RANGE 0 TO 9;
     sechset: IN INTEGER RANGE 0 TO 5;
     seclset: IN INTEGER RANGE 0 TO 9;
     hourhdis: OUT INTEGER RANGE 0 TO 2;
     hourldis: OUT INTEGER RANGE 0 TO 9;
     minhdis: OUT INTEGER RANGE 0 TO 5;
     minldis: OUT INTEGER RANGE 0 TO 9;
     sechdis: OUT INTEGER RANGE 0 TO 5;
     secldis: OUT INTEGER RANGE 0 TO 9);
END clock;
ARCHITECTURE archi OF clock IS
  SIGNAL seclow,minlow,hourlow:INTEGER RANGE 0 TO 9;
  SIGNAL sechigh,minhigh:INTEGER RANGE 0 TO 5;
  SIGNAL hourhigh:INTEGER RANGE 0 TO 2;
BEGIN
  secldis<=seclow;
  sechdis<=sechigh;
  minldis<=minlow;
  minhdis<=minhigh;
  hourldis<=hourlow;
  hourhdis<=hourhigh;
normal_run:
  PROCESS(clk,settime)
    BEGIN
         IF settime='1'THEN
            seclow<=seclset;
            sechigh<=sechset;  
            minlow<=minlset;
            minhigh<=minhset;
            hourlow<=hourlset;
            hourhigh<=hourhset;
         ELSE
           IF clk='1'AND clk'event THEN
             IF seclow=9 THEN
                seclow<=0;
                IF sechigh=5 THEN
                   sechigh<=0;
                   IF minlow=9 THEN
                      minlow<=0;
                      IF minhigh=5 THEN
                         minhigh<=0;
                         IF hourlow=9 THEN
                            hourlow<=0;
                            hourhigh<=hourhigh+1;
                            ELSIF hourlow=3 and hourhigh =2 THEN
                            hourhigh<=0;
                            hourlow<=0;
                         ELSE
                            hourlow<=hourlow+1;
                         END IF;
                      ELSE
                         minhigh<=minhigh+1;
                      END IF;
                   ELSE
                      minlow<=minlow+1;
                   END IF;
                ELSE
                   sechigh<=sechigh+1;
                END IF;
             ELSE
                seclow<=seclow+1;
             END IF;
           END IF;
         END IF;
    END PROCESS;
END archi;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -