Red de conocimiento informático - Conocimiento del nombre de dominio - Diseño de controlador de linterna circulante

Diseño de controlador de linterna circulante

Requisitos de diseño del sistema

1. Debe haber una variedad de cambios de patrones (al menos 4 diseños).

2. Se pueden cambiar y ciclar varias flores automáticamente.

3. Se puede seleccionar la velocidad de cambio de la linterna.

4. Interruptor cero.

Diseño del sistema

De acuerdo con los requisitos de diseño del sistema, se diseña un controlador de linterna con seis patrones de flores que cambian cíclicamente. El diseño del sistema adopta un método de diseño de arriba hacia abajo. El diagrama esquemático del diseño de la organización general del sistema se muestra en la siguiente figura, que consta de un módulo de control de sincronización y un módulo de control de pantalla. Todo el sistema tiene tres señales de entrada: la señal de reloj del sistema CLK, la señal de borrado del sistema CLR y el interruptor de selección SPRRD que controla la velocidad y el ritmo lento de las linternas. Los 9 LED de señal de salida [8...0] se utilizan para simular luces de colores.

TODOS;

La Entidad SX ES

PUERTO (

VELOCIDAD: EN STD_LOGIC;

CLK: EN STD_LOGIC;

CLR: IN STD_LOGIC;

CLK1: OUT STD_LOGIC

END SX

ARTE ARQUITECTURA DE SX

SEÑAL; CK: STD_LOGIC;

COMENZAR

PROCESO(CLK, CLR, VELOCIDAD)ES

VARBLE TEMP.STD_LOGIC_VECTOR(2 DOWNTO 0);

COMENZAR

IF CLR='1' ENTONCES

CKlt;='0';

TEMP:="000";

ELSIF(CLK'EVENT AND CLK='1') ENTONCES

IF(SPEED='1')ENTON

IF TEMP="001" ENTONCES

TEMP:="000";

CKlt;=NOT CK;

ELSE TEMP:=TEMP '1';

FINALIZAR SI;

p>

ELSE

IF TEMP="111" THEN

TEMP:="000";

CKlt;=NO CK ;

ELSE

TEMP:=TEMP '1'

END IF

END IF; /p>

END IF;

END PROCESO;

CLK1lt; =CK;

END ART; Programa fuente VHDL del módulo de control (XS.

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

ENTITY XS IS

PUERTO(CLK1: EN STD_LOGIC ;

CLR: EN STD_LOGIC;

LED: FUERA STD_LOGIC_VECTOR(8 DOWNTO 0));

END ENTITY XS

ARTE ARQUITECTURA DE LA LUZ: STD_LOGIC_VECTOR(8 DOWNTO 0);

COMENZAR

PROCESO(CLR, CLK1)ES

CONSTANTE L1: STD_LOGIC_VECTOR(8 DOWNTO 0):=" 001001001";

CONSTANTE L2: STD_LOGIC_VECTOR(8 DOWNTO 0):="010010010";

CONSTANTE L3: STD_LOGIC_VECTOR(8 DOWNTO 0) :="011011011";

CONSTAN

T L4: STD_LOGIC_VECTOR(8 DOWNTO 0):="100100100";

CONSTANTE L5: STD_LOGIC_VECTOR(8 DOWNTO 0):="101101101";

CONSTANTE L6: STD_LOGIC_VECTOR(8 DOWNTO 0):="110110110";

COMENZAR

IF CLR='1' ENTONCES

CURRENT_STATElt;=S0;

ELSIF(CLK1'EVENT AND; CURRENT_STATElt;=S2;

CUANDO S2=gt;LIGHTlt;=L2; CURRENT_STATElt;=S3;

CUANDO S3=gt; LIGHTlt;=L3 ; CURRENT_STATElt;=S4;

CUANDO S4=gt;=L4; CURRENT_STATElt;=S6;

CUANDO S6=gt; LIGHTlt; =L6; CURRENT_STATElt; =S1;

FINALIZAR CASO; PROCESO;

LEDlt;=LUZ;

ARTE FINAL;

Programa fuente VJDL (CAIDENG.VHD) para el diseño de nivel superior del controlador de linterna

BIBLIOTECA IEEE;

UTILIZAR IEEE.STD_LOGIC_1164.ALL;

ENTIDAD CAIDENG ES

PUERTO(CLK: EN STD_LOGIC;

CLR: EN STD_LOGIC;

VELOCIDAD: EN STD_LOGIC;

LED: FUERA STD_LOGIC_VECTOR(8 DOWNTO 0));

ENTIDAD FINAL; /p>

ARTE ARQUITECTURA DE CAIDENG ES

COMPONENTE SX ES

PUERTO(VELOCIDAD: EN STD_LOGIC;

CLK: EN STD_LOGIC;

CLR: EN STD_LOGIC;

CLK1: OUT STD_LOGIC

FINAL COMPONENTE SX

COMPONENTE XS

PUERTO(CLK1: EN STD_LOGIC;

CLR: EN STD_LOGIC;

LED: OUT STD_LOGIC_VECTOR(8 DOWNTO 0));

FINAL COMPONENTE XS

p>

SEÑAL S: STD_LOGIC;

COMIENZO

U1: MAPA DE PUERTO SX (VELOCIDAD, CLK, CLR, S

U2: XS); MAPA DE PUERTOS( S, CLR, LED);

FINAL ARTE;