PWM 波形產生器VHDL20240601_PWM_Generator
題目:PWM 波形產生器
設計一個脈衝寬度調變(PWM)波形產生器,具有可變佔空比:
- 輸入
duty_cycle
為 8 位元數據,代表佔空比的百分比(0-255)。 clk
為時鐘信號,reset
為重置信號。- 輸出
pwm_out
為 PWM 波形輸出。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
use ieee.numeric_std.all;
entity VHDL20240601_PWM_Generator is
port(
duty_cycle:in std_logic_vector(7 downto 0);
clk_4M:in std_logic;
reset:in std_logic;
pwm_out:out std_logic);
end VHDL20240601_PWM_Generator;
architecture aa of VHDL20240601_PWM_Generator is
signal cnt1:std_logic_vector(7 downto 0):="00000000";
begin
process(clk_4M, reset)
begin
if reset='0' then
cnt1<="00000000";
elsif rising_edge(clk_4M) then
cnt1<=cnt1+1;
end if;
end process;
pwm_out<='1' when cnt1<duty_cycle else '0';
end aa;
留言
張貼留言