VHDL
VHDL
VHDL
Universidad de Pamplona
2021
Cuando el sensor de nivel alto está sumergido (activado) la lógica de control cierra la
válvula de entrada. El fluido contenido en el tanque debe mantenerse dentro de un rango
de temperatura especificado, el cual queda determinado por dos sensores de
temperatura. Uno de los sensores de temperatura indica si el fluido está demasiado
caliente y el otro si el fluido está demasiado frío. La lógica de control activa un dispositivo
de calefacción si los sensores de temperatura indican que el fluido está demasiado frío.
La lógica de control mantiene abierta la válvula de salida siempre que el sensor de nivel
bajo esté sumergido y el fluido se encuentre a la temperatura adecuada. Cuando el nivel
de fluido cae por debajo del sensor de nivel bajo, la lógica de control cierra la válvula de
salida. Los niveles máximo y mínimo de fluido quedan determinados por las posiciones
de los sensores de nivel del tanque.
La salida de cada sensor estará a nivel ALTO mientras que esté sumergido en el fluido y
estará a nivel BAJO cuando no quede sumergido. Cuando la salida del sensor de nivel
alto está a nivel BAJO, la lógica de control genera un nivel ALTO y abre la válvula de
entrada. Cuando la salida del sensor de nivel alto está a nivel ALTO, la lógica de control
genera un nivel BAJO y cierra la válvula de entrada. Para dar apertura a la válvula de
salida, el fluido debe estar dentro del rango de temperatura especificado.
Un sensor produce un nivel ALTO cuando el fluido está muy caliente y el otro sensor de
temperatura produce un nivel ALTO cuando la temperatura es muy baja. El control lógico
produce un nivel ALTO para activar el dispositivo de calefacción cuando se tiene la
indicación de temperatura baja; en caso contrario, el dispositivo de calefacción está
apagado.
Cuando aparece la condición de temperatura alta, se activa una alarma. Cuando el sensor
de nivel bajo genera una salida a nivel ALTO (lo que indica que está sumergido) y la salida
de los dos sensores de temperatura están a nivel BAJO (lo que indica que el fluido está a
X = A'B'C'D'+A'B'C'D+A'B'CD'+A'BC'D'+A'BC'D+A'BCD'
C’D’
C’D CD CD’
1 1
A’B’ 1 0
A’B 1 1 0 1
AB 0 0 0 0
AB’ 0 0 0 0
X = A'C'+A'D'
A’B’ 0 0 0 0
A’B 1 0 0 0
AB 1 0 0 0
AB’ 0 0 0 0
Y=BC'D'
A’B’ 0 1 0 0
A’B 0 1 0 0
AB 0 1 0 0
AB’ 0 0 0 0
Z=A'C'D+BC'D
W=A'B'CD'+A'B'CD+A'BCD'+A'BCD+AB'C'D'+AB'C'D+AB'CD'+AB'CD+ABCD'+ABCD
A’B’ 0 0 1 1
A’B 0 0 1 1
AB 0 0 1 1
AB’ 1 1 1 1
W=AB'+C
“Formando líderes para la construcción de un nuevo país en paz”
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia 8
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750
SC-CER96940 www.unipamplona.edu.co
X = A'C'+A'D'
Y=BC'D'
Z=A'C'D+BC'D
W=AB'+C
---INCLUCION DE LIBRERIAS
library std;
B: in std_logic; begin
W: out std_logic); Z <= ((not A)and(not C) and D) or (B and (not C) and D);
--- ARQUITECTURA
C: in std_logic;
---LIBRERIAS
D: in std_logic;
library IEEE;
X: out std_logic;
use IEEE.STD_LOGIC_1164.ALL;
Y: out std_logic;
---ENTIDAD
Z: out std_logic;
entity SIMULACION is
W: out std_logic);
end component;
end SIMULACION;
---ARQUITECTURA
---SENALES LOGICAS PARA LA SIMULACION
architecture SIMULACION1 of SIMULACION is
signal AI,BI,CI,DI,XO,YO,ZO,WO :std_logic;
---CREACION DEL COMPONENTE
component PUNTO1 is
begin
---VARIABLES LOGICAS
---ASIGNACION DE LAS SENALES A LAS VARIABLES
Port (
dut: PUNTO1 PORT MAP(
A: in std_logic;
Z => ZO,
AI <= '0';
BI <= '0';
DI <= '0';
BI <= '0';
DI <= '1';
DI <= '1';
BI <= '1';
DI <= '0';
BI <= '1';
DI <= '1';
BI <= '0';
DI <= '0';
BI <= '0';
AI <= '1';
---Espera 50 nanosegundos
---1110--14
BI <= '1';
DI <= '0';
A B C D Sa Sb Sc Sd Se Sf Sg
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 1 0 1 1
10 1 0 1 0 J 0 1 1 1 1 0 0
11 1 0 1 1 U 0 1 1 1 1 1 0
12 1 1 0 0 L 0 0 0 1 1 1 0
13 1 1 0 1 I 0 0 0 0 1 1 0
14 1 1 1 0 O 1 1 1 1 1 1 0
15 1 1 1 1 X X X X X X X
A B C D Sa
0 0 0 0 0 1 A’B’C’D’
1 0 0 0 1 0
2 0 0 1 0 1 A’B’CD’
3 0 0 1 1 1 A’B’CD
4 0 1 0 0 0
5 0 1 0 1 1 A’BC’D
6 0 1 1 0 1 A’BCD’
7 0 1 1 1 1 A’BCD
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 1 AB’C’D
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 1 ABCD’
15 1 1 1 1 X
A’B’ 1 0 1 1
A’B 0 1 1 1
AB 0 0 0 1
AB’ 1 1 0 0
Sa= A'B'D'+A'BD+A'C+AB'C'+BCD'
A B C D Sb
0 0 0 0 0 1 A’B’C’D’
1 0 0 0 1 1 A’B’C’D
2 0 0 1 0 1 A’B’CD’
3 0 0 1 1 1 A’B’CD
4 0 1 0 0 1 A’BC’D’
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 1 A’BCD
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 1 AB’C’D
10 1 0 1 0 1 AB’CD’
11 1 0 1 1 1 AB’CD
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 1 ABCD’
15 1 1 1 1 X
Sb= A’B’C’D’+ A’B’C’D+ A’B’CD’+ A’B’CD+ A’BC’D’+ A’BCD+ AB’C’D’+ AB’C’D+ AB’CD’ +AB’CD+
ABCD’
A’B’ 1 1 1 1
A’B 1 0 1 0
AB 0 0 0 1
AB’ 1 1 1 1
Sb=A'C'D'+A'CD+B'+ACD'
A B C D Sc
0 0 0 0 0 1 A’B’C’D’
1 0 0 0 1 1 A’B’C’D
2 0 0 1 0 0
3 0 0 1 1 1 A’B’CD
4 0 1 0 0 1 A’BC’D’
5 0 1 0 1 1 A’BC’D
6 0 1 1 0 1 A’BCD’
7 0 1 1 1 1 A’BCD
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 1 AB’C’D
10 1 0 1 0 1 AB’CD’
11 1 0 1 1 1 AB’CD
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 1 ABCD’
15 1 1 1 1 X
Sc= A'B'C'D'+A'B'C'D+A'B'CD+A'BC'D'+A'BC'D+A'BCD'+A'BCD+AB'C'D'+AB'C'D+AB'CD'+AB'CD+ABCD'
A’B’ 1 1 1 0
A’B 1 1 1 1
AB 0 0 0 1
AB’ 1 1 1 1
Sc=A’C’+A’D+AB’+BCD’
A B C D Sd
0 0 0 0 0 1 A’B’C’D’
1 0 0 0 1 0
2 0 0 1 0 1 A’B’CD’
3 0 0 1 1 1 A’B’CD
4 0 1 0 0 0
5 0 1 0 1 1 A’BC’D
6 0 1 1 0 1 A’BCD’
7 0 1 1 1 0
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 1 AB’C’D
10 1 0 1 0 1 AB’CD’
11 1 0 1 1 1 AB’CD
12 1 1 0 0 1 ABC’D’
13 1 1 0 1 0
14 1 1 1 0 1 ABCD’
15 1 1 1 1 X
Sd= A'B'C'D'+A'B'CD'+A'B'CD+A'BC'D+A'BCD'+AB'C'D'+AB'C'D+AB'CD'+AB'CD+ABC'D'+ABCD'
A’B’ 1 0 1 1
A’B 0 1 0 1
AB 1 0 0 1
AB’ 1 1 1 1
Sd=A'BC'D+AB'+B'D'+B'C+AD'+CD'
A B C D Se
0 0 0 0 0 1 A’B’C’D’
1 0 0 0 1 0
2 0 0 1 0 1 A’B’CD’
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 1 A’BCD’
7 0 1 1 1 0
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 0
10 1 0 1 0 1 AB’CD’
11 1 0 1 1 1 AB’CD
12 1 1 0 0 1 ABC’D’
13 1 1 0 1 1 ABC’D
14 1 1 1 0 1 ABCD’
15 1 1 1 1 X
Se= A'B'C'D'+A'B'CD'+A'BCD'+AB'C'D'+AB'CD'+AB'CD+ABC'D'+ABC'D+ABCD'
A’B’ 1 0 0 1
A’B 0 0 0 1
AB 1 1 0 1
AB’ 1 0 1 1
Se=B'D'+AB'C+ABC'+CD'
A B C D Sf
0 0 0 0 0 1 A’B’C’D’
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 1 A’BC’D’
5 0 1 0 1 1 A’BC’D
6 0 1 1 0 1 A’BCD’
7 0 1 1 1 0
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 1 AB’C’D
10 1 0 1 0 0
11 1 0 1 1 1 AB’CD
12 1 1 0 0 1 ABC’D’
13 1 1 0 1 1 ABC’D
14 1 1 1 0 1 ABCD’
15 1 1 1 1 X
Sf= A'B'C'D'+A'BC'D'+A'BC'D+A'BCD'+AB'C'D'+AB'C'D+AB'CD+ABC'D'+ABC'D+ABCD'
A’B’ 1 0 0 0
A’B 1 1 0 1
AB 1 1 0 1
AB’ 1 1 1 0
Sf=AB'D+C'D'+BC'+BD'
A B C D Sg
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 1 A’B’CD’
3 0 0 1 1 1 A’B’CD
4 0 1 0 0 1 A’BC’D’
5 0 1 0 1 1 A’BC’D
6 0 1 1 0 1 A’BCD’
7 0 1 1 1 0
8 1 0 0 0 1 AB’C’D’
9 1 0 0 1 1 AB’C’D
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 0
15 1 1 1 1 0
Sg= A'B'CD'+A'B'CD+A'BC'D'+A'BC'D+A'BCD'+AB'C'D'+AB'C'D
A’B’ 0 0 1 1
A’B 1 1 0 1
AB 0 0 0 0
AB’ 1 1 0 0
Sg=A'B'C+A'BC'+A'CD'+AB'C'
Sa= A'B'D'+A'BD+A'C+AB'C'+BCD'
Sb=A'C'D'+A'CD+B'+ACD'
Sc=A’C’+A’D+AB’+BCD’
Sd=A'BC'D+AB'+B'D'+B'C+AD'+CD'
Se=B'D'+AB'C+ABC'+CD'
Sf=AB'D+C'D'+BC'+BD'
Sg=A'B'C+A'BC'+A'CD'+AB'C'
---ENTIDAD ---Sc=A’C’+A’D+AB’+BCD’
end PUNTO2;
architecture P2 of PUNTO2 is
---ENTIDAD
C => CI,
DI <= '0';
---0001--1
CI <= '0';
CI <= '0';
CI <= '1';
CI <= '1';
CI <= '1';
CI <= '1';
DI <= '1';
BI <= '0';
DI <= '0';
BI <= '0';
DI <= '1';
BI <= '0';
DI <= '0';
---0111--15
BI <= '1';
CI <= '1';
DI <= '1';