Red de conocimiento informático - Problemas con los teléfonos móviles - Número de línea de estadísticas del código fuente Vhdl

Número de línea de estadísticas del código fuente Vhdl

Nombre de archivo: fq_divider.vhd

-Este módulo es un divisor de frecuencia que divide la frecuencia del reloj de 1 KHZ una vez por minuto.

-De hecho, el código fuente puede realizar la división de frecuencia de cualquier número entero, principalmente estableciendo el valor de n en el número correspondiente.

-

Biblioteca IEEE

Usa IEEE. STD_LOGIC_1164. Todos;

Utiliza IEEE. STD_LOGIC_ARITH. Todos;

Utiliza IEEE.

STD_LOGIC_UNSIGNED todos;

La entidad fq_divider es

Genérica (n: entero:= 60000);

Puerto (

CLK, restablecer); :En STD_LOGIC;

CLK _Salida: Buffer Standard_Logic

);

Fin;

Arquitectura A de fq_divider para

Señal CNT1, CNT2: entero:= 0;

Señal de salida temp:STD_LOGIC;

Señal LOUT: STD_LOGIC;

SEÑAL out 3:STD_LOGIC:= ' 0 ';

Inicio

P1: Proceso (CLK)

Inicio

Si CLK evento y CLK='1' entonces

Si CNT1=n-1, entonces

CNT 1<=0;

Otros

CNT 1 <= CNT 1+1;

Finalizar SI;

Finalizar SI;

Finalizar proceso p 1 ;

P2: Proceso (CLK)

Inicio

Si evento CLK y CLK = 0, entonces

Si CNT2=n- 1, entonces

CNT2 & lt=0;

Otros

CNT2 & lt= cn T2+1;

Fin

Fin; IF;

Finalizar proceso P2;

P3: Proceso (CNT1, CNT2)

Iniciar

Si ((n mod 2) =1) entonces

Si CNT1=1, entonces

Si CNT2=0, entonces

OUTTEMP & lt=' 1';

Otro

OUTTEMP & lt='0';

Fin IF;

ELSIF CNT1=(n+1 )/2Entonces

Si CNT2=(n+1)/2, entonces

OUTTEMP & lt='1';

ELSE OUTTEMP & lt= '0';

Fin IF;

Otros

OUTTEMP & lt='0';

Fin IF;

Otros

Si cnt1=1, entonces

outtemp & lt='1';

elsif (cnt1=(n/2+1 ))Entonces

outtemp & lt='1';

Otro

outtemp & lt='0';

Finalizar si ;

Fin if;

Finalizar proceso P3;

P4: Procesamiento (temperatura de salida, reloj, reset)

Inicio

p>

Si reset ='0 ', luego

clk _ out & lt= clk

elsif ((n/=2) y (n/=1)) Luego

Si el evento OUTTEMP y OUTTEMP='1', entonces

CLK_OUT<= no es CLK_OUT;

End IF;

p>

elsif ( n=2) entonces

si (clk'event y clk='1 ') entonces

clk _ out & lt= no clk _ out

Fin if;

Otros

clk _ out & lt= clk

Finalizar si;

Finalizar proceso P4;

Fin A;