Autor Tema: circuito antirrebotes  (Leído 542 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Lunalovegood

  • PIC10
  • *
  • Mensajes: 2
circuito antirrebotes
« en: 09 de Junio de 2021, 09:41:46 »
Hola a todos, estoy realizando un proyecto, en VHDL, para la placa Basys 3. El proyecto consiste en escribir en un display OLED a traves de un teclado hexadecimal.

El sistema a diseñar hace uso de una señal (CLK) de frecuencia igual a 100 MHz (periodo T=10 ns), la cual se genera en un oscilador presente en la placa Basys 3. Esta señal se va a utilizar como señal de sincronismo (reloj) de todos los módulos secuenciales del diseño. Por su parte, la entrada RST funciona como señal ASÍNCRONA de inicialización activa a nivel alto para llevar todos los bloques secuenciales a su estado inicial. 
Este es el esquema general

 

* diseño a realizar.JPG
(51.16 kB, 968x326 - visto 54 veces)

Me encuentro diseñando el bloque KYPD_controller, en el cual hay que instanciar un circuito antirrebotes que siga el siguiente diseño.

 

* cto antirrebotes.JPG
(20.88 kB, 557x243 - visto 54 veces)


En primer lugar, estoy diseñando el circuito antirrebotes, denominado debounce_module, y  he realizado el siguiente diseño en VHDL pero no consigo avanzar y me gustaría que me echárais una mano para ve que le falta y como tendría que hacerlo. Gracias

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity debounce_module is
  port (
    RST   : in  std_logic;
    CLK   : in  std_logic;
    ROW_I : in  std_logic;
    CE    : in  std_logic;
    Q_I   : out std_logic);

end entity;
architecture rtl of debounce_module is
signal Q0 ,Q1 ,Q2 ,Q3 : std_logic :=   '0' ;
begin  -- rtl
process   ( CLK )   is 
 begin 
  if   ( CLK 'event   and  CLK =   '1' )   
  then Q0 <= ROW_I   ;
  Q1 <=  Q0 ;
  Q2 <=  Q1 ; 
  Q3 <=  Q2 ;
  end   if ; 

 end   process ;
 Q_I <=  Q0 and  Q1 and   ( not  Q2 );
 Q_I <=  Q1 and  Q2 and   ( not  Q3 );
 end  Behavioral ;   

end rtl;







« Última modificación: 09 de Junio de 2021, 09:44:42 por Lunalovegood »


 

anything