R
robertzhan
Guest
Queridos todos,
Me gustaría hacer una rutina para tener un retraso de señal PWM, acerca de varios microsegundos, al igual que la bodega en la función.Sin embargo, surge el siguiente error:
Error: Error de VHDL en soft_switching.vhd (70): no se puede inferir registro para la señal "P01: counter [0]", porque la señal no tiene valor fuera de su flanco de reloj
No sé por qué.Esperamos sus sugerencias.
Si no se puede hacer así, cómo hacer una rutina para realizar la función de varios nos demora para la entrada de la señal PWM.
Gracias de antemano.
IEEE biblioteca;
USE ieee.std_logic_1164.ALL;
Ieee.std_logic_unsigned.all USO;- Declaración de la entidad
Soft_switching entidad es
- (()) ALTERA_IO_BEGIN NO RETIRE esta línea!
PUERTO
(
PWM: in std_logic;
ILT: in std_logic;
CLK: in std_logic;
pwm_delay: out std_logic;
Ficha: out std_logic;
TL: out std_logic
);
- (()) ALTERA_IO_END NO RETIRE esta línea!
Soft_switching END;- Arquitectura de Administración
Soft_switching_architecture ARQUITECTURA DE soft_switching ES
- Señal de contador: integer: = 0;
SEÑAL bandera: bit;
SEÑAL pwm_temp: std_logic;
BEGIN
P01: process (clk, PWM) es
variable contador: integer: = 0;
empezar
PWM caso es
cuando '1 '=>
loop1: bucle
if (clk'event Y = '1 'Y clk'last_value = '0') entonces
Contador: = contador 1;
END IF;
salida loop1 cuando el contador = 20;
Loop End loop1;
pwm_delay <= '1 ';
Contador: = 0;
cuando '0 '=>
LOOP2: bucle
if (clk'event Y = '1 'Y clk'last_value = '0') entonces
Contador: = contador 1;
END IF;
salida LOOP2 cuando el contador = 20;
Loop End LOOP2;
pwm_delay <= '0 ';
Contador: = 0;
caso extremo;
proceso de fin de p01;
Soft_switching_architecture END;
Me gustaría hacer una rutina para tener un retraso de señal PWM, acerca de varios microsegundos, al igual que la bodega en la función.Sin embargo, surge el siguiente error:
Error: Error de VHDL en soft_switching.vhd (70): no se puede inferir registro para la señal "P01: counter [0]", porque la señal no tiene valor fuera de su flanco de reloj
No sé por qué.Esperamos sus sugerencias.
Si no se puede hacer así, cómo hacer una rutina para realizar la función de varios nos demora para la entrada de la señal PWM.
Gracias de antemano.
IEEE biblioteca;
USE ieee.std_logic_1164.ALL;
Ieee.std_logic_unsigned.all USO;- Declaración de la entidad
Soft_switching entidad es
- (()) ALTERA_IO_BEGIN NO RETIRE esta línea!
PUERTO
(
PWM: in std_logic;
ILT: in std_logic;
CLK: in std_logic;
pwm_delay: out std_logic;
Ficha: out std_logic;
TL: out std_logic
);
- (()) ALTERA_IO_END NO RETIRE esta línea!
Soft_switching END;- Arquitectura de Administración
Soft_switching_architecture ARQUITECTURA DE soft_switching ES
- Señal de contador: integer: = 0;
SEÑAL bandera: bit;
SEÑAL pwm_temp: std_logic;
BEGIN
P01: process (clk, PWM) es
variable contador: integer: = 0;
empezar
PWM caso es
cuando '1 '=>
loop1: bucle
if (clk'event Y = '1 'Y clk'last_value = '0') entonces
Contador: = contador 1;
END IF;
salida loop1 cuando el contador = 20;
Loop End loop1;
pwm_delay <= '1 ';
Contador: = 0;
cuando '0 '=>
LOOP2: bucle
if (clk'event Y = '1 'Y clk'last_value = '0') entonces
Contador: = contador 1;
END IF;
salida LOOP2 cuando el contador = 20;
Loop End LOOP2;
pwm_delay <= '0 ';
Contador: = 0;
caso extremo;
proceso de fin de p01;
Soft_switching_architecture END;