ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Diseño Digital con VHDL


Enviado por   •  26 de Enero de 2021  •  Trabajo  •  1.155 Palabras (5 Páginas)  •  64 Visitas

Página 1 de 5

Instituto Tecnológico de Celaya

Departamento de Ingeniería Electrónica

Diseño Digital con VHDL

Timer genérico.[pic 1]

Objetivo: Desarrollar el diseño de un bloque hardware para controlar el tiempo de una acción a realizar(generar tiempos de espera), esto con 2 maneras de implementación según sea el caso, redisparable o no redisparable.

 Diego Isaac Macias Rodríguez

23 de enero de 2020

1.-Introducción

En la vida cotidiana existen diferentes situaciones o problemas por lo cual el uso de la electrónica a facilitado estos problemas o ha ayudado a hacerlo más fácil y practico. Esto gracias a diferentes factores como son la automatización, la rapidez, los costos, la infraestructura entre otros más.

En este caso el uso de la automatización es demasiado útil para diferentes sistemas que necesiten control del tiempo y así llevar control al llevar a cabo 1 tarea. Por este motivo es necesario de diferentes bloques que puedan llevar el control del tiempo.

En este modulo se explica la elaboración de un bloque denominado “Timer”, que genera tiempos de espera para realizar una acción, ya sea redisparable o no redisparable.

El bloque únicamente consta de 2 entradas de 1bit, una de disparo (TRIGGER) esta accionara el bloque, otra para sincronizar el conteo (CLK) y su única salida de 1bit que durara el tiempo establecido dependiendo si es redisparable o no.

El tiempo se calcula mediante la siguiente formula:

[pic 2]

[pic 3]

[pic 4]

2.-Interface del módulo Timer.

[pic 5]

Figura 1 Puertos del timer.

En la Figura 1 se muestra la interface del módulo timer. Sus entradas son la de disparo (TRIGGER) y el reloj (CLK). La salida es Q, esta durara el tiempo preestablecido en la descripción del bloque con ayuda de la formula antes mencionada.

[pic 6]

Figura 2 Diagrama esquemático del timer.

En la figura 2 se muestra el contenido de nuestro timer, 1 contador que ira contando hasta la constante(N) que nosotros establezcamos para la duración de la salida Q y un comparador que nos dirá hasta cuando el contador llego a N. Mas adelante se menciona como calcular esa constante para la implementación de nuestro bloque.

3.-Código del módulo.

  1. Descripción comportamental del timer.

entity timer is

GENERIC (N: INTEGER RANGE 20 TO 500000000 := 100);

Port ( CLK, TRIGGER : in  STD_LOGIC;

Q : out  STD_LOGIC);

end timer;

architecture Behavioral of timer is

signal conteo : integer range 0 to N:=N;

begin

process(clk)

begin

      if rising_edge(clk)

      then  if trigger = '1' and conteo=N

      then conteo <= 0;

      elsif conteo < N

      then conteo <= conteo + 1;

      end if;

end if;

end process;

q <= '1' when conteo < N else '0';

end Behavioral;

Al agregar o eliminar lo marcado en color verde en nuestra descripción, determina si nuestro timer es redisparable o no redisparable. Al no agregar la condición en color verde decimos que es un timer redisparable, ya que en cualquier momento que exista una señal de disparo (TRIGGER) el contador se pondrá en ‘0’ y comenzara a contar hasta ‘N’, esto aunque ya lleve previo un conteo. Pero con esta condición incluida, decimos que es un timer no redisparable y no únicamente cuando exista una señal ‘N’ comenzara a contar sino hasta que también el conteo sea igual a ‘N’, esto hace referencia a que aunque ya exista un conteo y volvamos a aplicar una señal de disparo, el contador no se pondrá en ‘0’ y volverá a contar.

4.- Ejemplo: 2 timers con diferente tiempo.

Se desarrollará un circuito que tiene una entrada (trigger) y dos salidas (Q1 y Q2). Al activar el trigger en Q1 ocurrirá un pulso con duración de un microsegundo y en Q2 otro pulso con duración de 3 microsegundos.

Para 1ms; [pic 7]

Para 2ms;  [pic 8]

  1. Descripción estructural de los 2 timers.

entity MODULO_TIMER is

    Port ( CLK,TRIGGER : in  STD_LOGIC;

           Q1, Q2 : out  STD_LOGIC);

end MODULO_TIMER;

architecture ESTRUCTURAL of MODULO_TIMER is

begin

U1: entity work.timer generic map (50) port map (trigger=>trigger,clk=>clk,Q=>Q1);

...

Descargar como (para miembros actualizados) txt (7 Kb) pdf (906 Kb) docx (1 Mb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com