La Red de Conocimientos Pedagógicos - Conocimientos matemáticos - Diseño de circuito de reloj digital multifuncional.

Diseño de circuito de reloj digital multifuncional.

Diseño VHDL de reloj digital

1. Tareas y requisitos de diseño:

Tarea de diseño: diseñar un reloj digital que pueda mostrar horas, minutos y segundos.

Los requisitos específicos son los siguientes:

El segundo pulso se genera mediante la división de frecuencia de la señal del reloj en la caja experimental;

El circuito de temporización de 24 dígitos del contador de temporización;

La hora se puede corregir manualmente, la hora y los minutos se pueden corregir por separado;

Informes de hora;

2 códigos de programa y forma de onda correspondiente

Segundo 1 (en hexadecimal y 10 segundos representados)

Biblioteca ieee

Usa IEEE.STD_logic_1164.all;

Usa IEEE.STD_logic_unsigned.all ;

Los segundos de entidad 1 son

Puerto(clks, clr:in STD_logic;

Secs,Secg:out STD_logic_vector(3 hasta 0);

cout 1:out STD _ logic);

final del segundo 1;

La arquitectura a del segundo1 es

Iniciar

Proceso (reloj, reloj)

Variable ss, SG:STD_logic_vector(3 hasta 0);

Variable co:STD_ logic;

Inicio

Si clr='1' entonces ss:= "0000"; SG:= "0000";

Elsif clks event y clks ='1 'Entonces

Si ss ="0101 ", sg="1001 ", luego ss:= " 0000 "; SG:= " 0000 "; co:= ' 1 ';

elsif sg & lt "1001" luego SG: = SG+1; co:= ' 0 ';

elsif sg="1001 "entonces SG:= " 0000 "; ss:= ss+1; >

Finalizar si;

Finalizar si

cout 1 & lt; = co

Segs & lt= ss

Secg & lt= sg

Finalizar el proceso;

Finalizar a;

Min1(dieciséis Un subcontador en decimal y ALM 10 en decimal pueden indicar la hora)

Biblioteca ieee

Usa IEEE.STD_Logic_1164.all;

Usa IEEE.STD_logic_unsigned.all;

La entidad min1 es

Puerto(clkm, clr:in STD_logic;

mins, Ming:buffer STD_logic_vector(3 hasta 0);

enmin, alarma:out STD_logic);

Fin;

La arquitectura a de min1 es

Inicio

Proceso (clkm, clr)

Variable ms , mg: STD _ logic _ vector (3 hasta 0);

Variable entonces, ALM:STD_logic;

Iniciar

Si clr='1' , entonces ms:= "0000"; mg:= "0000";

p>

Elsif clkm 'evento y clkm='1' entonces

Si ms="0101" y mg="1001" entonces ms:=" 0000 "; mg:=" 0000 "; entonces:= ' 1 '; ALM:= ' 1 ';

elsif mg & lt "1001" entonces mg

:= mg+1; entonces:= ' 0 '; ALM:= ' 0 ';

elsif mg="1001 "Entonces mg:= " 0000 "; = ' 0 '; ALM:= ' 0 ';

Finalizar si

Finalizar si

Alerta & lt= alm

enmin & lt=so;

minutos& lt= ms

ming& lt= mg

Finalizar proceso;

Finalizar a ;

Hora1 (contador de horas cuaternario y binario)

Biblioteca ieee

Usa IEEE .STD_logic_1164.all;

Usa IEEE .STD_logic_unsigned .all ;

La hora de la entidad 1 es

Puerto(clkh, clr:in STD_logic;

horas, hourg:out std_logic_vector(3 hasta 0));

Fin;

La arquitectura a de la hora1 es

Inicio

Proceso(clkh, clr)

Variable hs, hg: STD_logic_vector(3 hasta 0);

Inicio

Si clr= '1 ', entonces hs:= " 0000 "; /p>

elsif clkh ' event y clkh = ' 1 ' entonces

Si hs="0010 " , hg="0011", entonces hs:= " 0000 "; ";

elsif hg & lt "1001" luego Hg:= Hg+1;

elsif hg="1001 "Entonces Hg:= " 0000 "; hs:= hs+ 1; finalizar si;

finalizar si

hora& lt= hs

hora & lt= hg

Finalizar proceso;

Fin;

Revisión

Biblioteca ieee

Usando IEEE.STD_logic_1164.all;

Usando IEEE.STD_logic_unsigned. all;

La entidad madapt es

Puerto (en, clk, secin, m 1: in STD _ logic;

minset:out STD _ logic) ;

Fin;

La arquitectura de Madap es

Inicio

Proceso (es, m1)

Inicio

Si en='1 ', entonces

Si m1='1 ', entonces minset & lt= clk

de lo contrario minset & lt= secin termina si ;

else minset & lt= secin

Finalizar si;

Finalizar proceso;

Fin;

Horario escolar

Biblioteca ieee

Usando IEEE.STD_logic_1164.all;

Usando IEEE.STD_logic_unsigned.all;

La entidad hadapt es

Puerto(en, clk, minin, h 1:in STD_logic;

hourset:out STD_logic);

Fin;

El Edificio A de Hardap es

Iniciar

Proceso (es, h1)

Iniciar

Si en='1 ', entonces

Si h1='1 ', entonces horario & lt= clk

si no horario & lt= min end if;

else hourset & lt= minin

Finalizar si

Finalizar proceso

Fin

Topclock (archivo de nivel superior de creación de instancias de componentes)

Biblioteca ieee

Usando IEEE.STD_logic_1164.all;

Usando IEEE.STD_logic_arith.all;

p>

Usando IEEE.STD_logic_unsigned .all;

La entidad topclock es

Port(clk, clr, en, m1, h 1: in STD_logic ;

alarm:out STD_logic;

segundos, segundos, minutos, ming, horas, horas:buffer STD_logic_vector(3 hasta 0));

p>

Fin;

Uno de las arquitecturas de topclock es

Componente segundos 1

Puerto(clks, clr:in STD_logic;

p>

secs, secg:buffer STD_logic_vector (3 hasta 0);

cout 1:out STD_logic);

Componente final;

p>

Componente min1

Puerto(clkm, clr:in STD_logic;

mins, Ming:buffer STD_logic_vector(3 hasta 0);

enmin, alarma:out STD_logic);

Fin del componente;

Componente hora 1

Puerto(clkh, clr:in STD_logic;

horas, hourg:buffer std_logic_vector(3 hasta 0 ));

Componente final;

Componente madapt

Puerto(en, m1, clk, secin:in STD_logic;

minset :out STD_logic);

Fin del componente;

Componente hadapt

Puerto(en, h1, clk, Minin:in STD_logic;

hourset:out STD_logic);

Fin del componente;

Señales a, b, c, d: STD_logic;

Inicio

u1:asignación de puerto segundo1 (clr = & gtclr,

secs = & gtsecs, secg = & gtsecg, clks = & gtclk, cout1 = >a

u2:puerto min1); mapeo (clr = & gtclr, alarm = & gt alarm,

minutos=>mins, ming=>ming, clkm=>b, enmin=>c);

u3:mapeo de puerto hora1 ( clr=>clr,

horas =& gtú

rs, hourg = & gthourg, clkh = & gtd);

u4: mapeo de puertos madapt (en = & gten, m1 = & gtb, clk = & gtclk, secin = & gta, minset = & gtb);

u5:mapeo de puertos hadapt (en = & gten, h1 = >h1, clk = & gtclk, minin = & gtc, hourset = & gtd);

3 Diagrama de circuito

4 Experiencia experimental

Todos los programas están escritos para usted. Solo necesita simularlo usted mismo, descargarlo en el cuadro de experimentos y estará bien.