PWM 波形產生器VHDL20240601_PWM_Generator

 

https://youtu.be/hOhVjwcwOTY



題目: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;

留言

這個網誌中的熱門文章

量測例外練習01(計算+量測)

數位電子乙級02,鍵盤掃瞄裝置