A proposito del PWM trifase

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

A proposito del PWM trifase

Postby cavetto » 13 Apr 2012, 20:35

Scusate,
visto che avevo aperto un topic sulla possibilità di generare un segnale pwm con la fpga per realizzare un controller trifase,
vi volevo sottoporre il listato che avevo creato per generare un segnale pwm a partire di un valore d'ingresso di dutycycle tra 0 e 255.

Code: Select all
Library IEEE;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;

entity pwm_n is
   generic  (s:natural:=8);
         Port ( clk :    in STD_LOGIC;
                          reset :    in STD_LOGIC;
                  w :    in STD_LOGIC_VECTOR (s-1 downto 0);
                  pulse :    out STD_LOGIC);
end pwm_n;

architecture Behavioral of pwm_n is
   signal r_reg :       unsigned(s-1 downto 0);
   signal r_next :               unsigned(s-1 downto 0);
   signal buf_reg :               std_logic;
   signal buf_next :    std_logic;
   constant ref :       std_logic_vector(s-1 downto 0) := (others => '1');
begin
   
-- registri e gestione del buffer di output
process(clk, reset)
begin
   if(reset='0') then
      r_reg <= (others => '0');
      buf_reg <= '0';
   elsif rising_edge(clk) then
      r_reg <= r_next;
      buf_reg <= buf_next;
           end if;
end process;

   r_next <= r_reg + 1; -- next-state
   buf_next <= '1' when ((r_reg < unsigned(w)) or (w=ref)) else '0';
   pulse <= buf_reg;
   
end Behavioral;


Se potete mi potete aiutare per migliorarlo o ottimizzarlo ?
Grazie tante.
cavetto
 
Posts: 10
Joined: 28 Mar 2012, 17:44

Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 2 guests

cron