4 votos

Circuito VHDL de desbordamiento

Estoy trabajando en un laboratorio de ingeniería digital y estoy tratando de averiguar cómo funciona este circuito de desbordamiento. Xilinx lo proporciona tal cual, pero no sé muy bien por qué hace lo que hace. ¿Algún consejo, tal vez? El siguiente es el código VHDL:

library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 
use IEEE.STD_LOGIC_ARITH.ALL; 
use IEEE.STD_LOGIC_UNSIGNED.ALL; 

entity Debouncer is 
    Port ( CLK : in  STD_LOGIC; 

           Sig : in  STD_LOGIC; 
           Deb_Sig : out  STD_LOGIC); 
end Debouncer; 
architecture Behavioral of Debouncer is 
 signal Q0, Q1, Q2 : STD_LOGIC := '0'; 

begin 
process (CLK) is 
begin 
 if (CLK'event and CLK = '1') then  
  Q0 <= Sig; 

  Q1 <= Q0; 

  Q2 <= Q1; 

 end if; 

end process; 

Deb_Sig <= Q0 and Q1 and (not Q2);

end Behavioral;

4voto

Nick Puntos 3061

No estoy familiarizado con VHDL, pero parece que hace lo siguiente: la salida Deb_Sig es 1 sólo cuando la entrada Sig ha sido 0->1->1 (el tiempo crece hacia la derecha), muestreada en los flancos ascendentes de CLK. De lo contrario, Deb_Sig es 0. Así, el módulo detecta bordes ascendentes en la entrada, y sólo las que van seguidas de un nivel alto que, tras el muestreo, se convierte en al menos dos muestras lógicas 1. De este modo, ignorará los pulsos que sean altos durante un solo instante de muestreo, que se considerarán ruido.

Yo diría que su código sintetiza algo equivalente a esto:

Figure

Curiosamente, puede ignorar los pulsos altos que duran 2T-epsilon (donde T es el periodo de muestreo), y detectar los pulsos altos que duran T+epsilon (que es más corto que 2T-epsilon), si el muestreo es tal que ve sólo un 1 lógico en el primer pulso, pero dos 1 lógicos en el segundo.

0voto

Anil Puntos 123

Creo que este circuito de desbordamiento es para la entrada activa alta. Utiliza los tres flip-flop. El primer flipflop acepta "sig" y la salida "Q0". El segundo flipflop acepta "Q0" y la salida "Q1". El tercer flipflop acepta "Q1" y la salida "Q2". Esta implementación de tres flipflop es para evitar/ignorar cualquier fallo en la entrada. Sólo conduce la señal de salida si el estado de la señal de entrada (lógica 0 o lógica 1) es estable durante al menos tres ciclos de reloj "3 x clk - bordes ascendentes".

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X