📄 pwm.vhd
字号:
--/*****************************************************************************
-- * 源文件: pwm.vhd
-- * 模块: PWM调制
-- * 版权:
-- * Copyright(C) 北京联华众科科技有限公司
-- * www.lianhua-zhongke.com.cn
-- * 版本: Version 1.0
-- *
-- * 功能说明:
-- * 调节输入的慢时钟的点空比,使高电平为输入的快时钟周期的整
-- * 数倍。
-- *
-- * 参数说明:
-- * 输出
-- * clock_out - 调制后的输出信号
-- *
-- * 输入
-- * clock_m - 慢时钟,将被调制的时钟
-- * clock - 快时钟,用以调制慢时钟
-- * reset - 复位信号,低电平有效
-- *
-- * 参数
-- * pulse_width - 输出信号的高电平持续时长,为快时钟周期的整数倍
-- *
-- * 变更记录:
-- * 2006.01.28, 新建
-- *
-- *****************************************************************************/
LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY pwm IS GENERIC ( pulse_width : INTEGER:= 2 ); PORT ( clock_out : OUT STD_LOGIC; clock_m : IN STD_LOGIC; clock : IN STD_LOGIC; reset : IN STD_LOGIC ); END pwm;ARCHITECTURE pwm_architecture OF pwm IS BEGIN PROCESS(clock, clock_m, reset) VARIABLE delay_counter : INTEGER; BEGIN IF (reset = '0') THEN clock_out <= '0'; delay_counter := 0; ELSIF(clock = '1' AND clock'EVENT) THEN IF (clock_m = '1') THEN IF (delay_counter = pulse_width) THEN clock_out <= '0'; ELSE clock_out <= '1'; delay_counter := delay_counter+1; END IF; ELSE clock_out <= '0'; delay_counter := 0; END IF; END IF; END PROCESS;END pwm_architecture;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -