《VHDL设计一个24进制BCD码计数器.doc》由会员分享,可在线阅读,更多相关《VHDL设计一个24进制BCD码计数器.doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流VHDL设计一个24进制BCD码计数器。【精品文档】第 3 页 设计一个24进制BCD码计数器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY h24 IS PORT( CLK1HZ : IN STD_LOGIC; EN : IN STD_LOGIC; LOW : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); HIGH : OUT STD_LOGIC_VECTOR(
2、3 DOWNTO 0)END h24;ARCHITECTURE rtl of h24 ISSIGNAL LOW_REG : STD_LOGIC_VECTOR(3 DOWNTO 0):=0000;SIGNAL HIGH_REG : STD_LOGIC_VECTOR(3 DOWNTO 0):=0000;SIGNAL CLR : STD_LOGIC:=0;BEGIN -个位计数 LOW_PROC:PROCESS(CLK1HZ,EN,CLR) BEGIN IF rising_edge(CLK1HZ) THEN IF EN = 1 THEN IF LOW_REG = 1001 OR CLR = 1 TH
3、EN -23:59进位 LOW_REG = 0000; ELSE LOW_REG = LOW_REG + 1; END IF; END IF; END IF; END PROCESS; LOW = LOW_REG; -十位计数 HIGH_PROC:PROCESS(CLK1HZ,EN,CLR) BEGIN IF rising_edge(CLK1HZ) THEN IF EN = 1 THEN IF CLR = 1 THEN HIGH_REG = 0000; ELSIF LOW_REG = 1001 THEN HIGH_REG = HIGH_REG + 1; END IF; END IF; END IF; END PROCESS; HIGH = HIGH_REG; CLR = 1 WHEN LOW_REG = 0011 AND HIGH_REG = 0010 ELSE 0; -23点以后进位END rtl;