📄 counter.vhd
字号:
--/*****************************************************************************
-- * 源文件: counter.vhd
-- * 模块: 计数器/分频器
-- * 版权:
-- * Copyright(C) 北京联华众科科技有限公司
-- * www.lianhua-zhongke.com.cn
-- * 版本: Version 1.0
-- *
-- * 功能说明:
-- * 对输入时钟按照参数指定的分频系数进行分频输出
-- *
-- * 参数说明:
-- * 输出
-- * carrier - 分频输出,它的频率由输入时钟和分频参数确定
-- * f_carrier = f_clock/divisor
-- *
-- * 输入
-- * clock - 时钟
-- * reset - 复位信号,低电平有效
-- *
-- * 参数
-- * divisor - 分频系数,它的作用可用如下公司描述
-- * 计数器/分频器的输出频率 = 输入时钟 clock 频率/分频系数
-- *
-- * 变更记录:
-- * 2006.01.28, 新建
-- *
-- *****************************************************************************/
LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY counter IS GENERIC ( divisor : INTEGER RANGE 0 TO 24002:= 24000 ); PORT ( carrier : BUFFER STD_LOGIC; clock : IN STD_LOGIC; reset : IN STD_LOGIC ); END counter;ARCHITECTURE counter_architecture OF counter IS BEGIN PROCESS(clock, reset) VARIABLE delay_counter : INTEGER RANGE 0 TO divisor/2; BEGIN IF (reset = '0') THEN carrier <= '1'; --counter <= "0000"; delay_counter := 0; ELSE IF(clock = '1' AND clock'EVENT) THEN IF (delay_counter = divisor/2-1) THEN carrier <= NOT carrier; delay_counter := 0; ELSE delay_counter := delay_counter+1; END IF; END IF; END IF; END PROCESS;END counter_architecture;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -